PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 03-12-2005, 03:44 PM   #1
chutchit
Nhập môn đệ tử
 
Tham gia ngày: Dec 2005
Bài gửi: 3
:
Tập lệnh trên CCS cho PIC

Tui đang làm giao tiếp RS232 với máy tính.
Nhưng tui không biết tập lệnh của nó! Mò trong những ví dụ và phần Help của nó khổ quá! Có ai biết tập lệnh 16F877 được miêu tả rõ ràng hơn ở đâu không? Làm ơn chỉ tui với! Gấp lắm!
chutchit vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-12-2005, 05:39 PM   #2
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
http://www.picvietnam.com/forum//showthread.php?t=155

Bạn vào đây để download tài liệu CCS C tiếng Việt do txt cung cấp.

Ngoài ra, để dùng giao tiếp rs232 rất đơn giản:

#uses rs232

printf (xuất)
getc(nhập)

Bạn xem chi tiết lệnh ở trong phần hướng dẫn chi tiết.

Chúc vui.

thay đổi nội dung bởi: falleaf, 16-02-2008 lúc 04:45 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-12-2005, 09:19 PM   #3
chutchit
Nhập môn đệ tử
 
Tham gia ngày: Dec 2005
Bài gửi: 3
:
Cám ơn bác, em đã load cái đó về rùi. Tuy nhiên nó chỉ có một vài cái cơ bản. Em nghĩ phải có nhiều hơn nữa chứ? Nếu bác có cái link nào tiếng Anh cũng OK.
chẳng lẽ để giao tiếp rs232 chỉ cần có 2 lệnh đó thôi sao? thế còn việc kiểm tra xem lúc nào bộ đệm tràn? như ở bên máy tính em làm cả khâu kiểm tra này, còn ở PIC thì sao? xử lý khi báo tràn như thế nào? EM có đọc datasheet của PIC 16F877 nhưng chưa thông lắm! Mong bác chỉ giáo. Ngoài ra em còn muốn xử lý data xuất/nhập này thì làm như thế nào? có phải ghi từ thanh ghi đệm vào bộ nhớ PIC rồi lấy data từ đó xử lý? Ví dụ như là em muốn cho nó xuất led chẳng hạn!
Mong bác thông cảm, có lẽ em hỏi hơi bị ngây ngô! Em mới chuyển từ 8051 sang PIC mấy tuần nay! CHưa biết gì cả!
chutchit vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-12-2005, 02:33 AM   #4
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Bạn xem kỹ tài liệu, khi uses 232, thì có hàng loạt thông số kèm theo, chỉ cần nhu vậy thôi, hay vì bạn thấy PIC nó quá đơn giản nên còn đắn đo?

Học pic trong 1 ngày, đó là thông điệp của F mà.

Chúc học tốt.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-02-2006, 11:23 PM   #5
linhnc308
Đệ tử 5 túi
 
Tham gia ngày: Oct 2005
Bài gửi: 117
:
Trích:
Nguyên văn bởi chutchit
Cám ơn bác, em đã load cái đó về rùi. Tuy nhiên nó chỉ có một vài cái cơ bản. Em nghĩ phải có nhiều hơn nữa chứ? Nếu bác có cái link nào tiếng Anh cũng OK.
chẳng lẽ để giao tiếp rs232 chỉ cần có 2 lệnh đó thôi sao? thế còn việc kiểm tra xem lúc nào bộ đệm tràn? như ở bên máy tính em làm cả khâu kiểm tra này, còn ở PIC thì sao? xử lý khi báo tràn như thế nào? EM có đọc datasheet của PIC 16F877 nhưng chưa thông lắm! Mong bác chỉ giáo. Ngoài ra em còn muốn xử lý data xuất/nhập này thì làm như thế nào? có phải ghi từ thanh ghi đệm vào bộ nhớ PIC rồi lấy data từ đó xử lý? Ví dụ như là em muốn cho nó xuất led chẳng hạn!
Mong bác thông cảm, có lẽ em hỏi hơi bị ngây ngô! Em mới chuyển từ 8051 sang PIC mấy tuần nay! CHưa biết gì cả!
Tôi thấy như vậy đã là đủ rồi, kho các hàm của CCS rất nhiệu Về RS232 cho pic thì bạn xem lại trong datasheet, PIC chi có 8 bit cho truyền và 8 bit cho nhân. Tài liệu đầy đủ nhất là help cua nó, kết hợp các hàm lại với nhau sẽ giúp bạn giải quyết nhiều bài toán.
Còn về lập trình giao tiếp RS232 tôi đã có một bài mẫu. Chương trình nhận ký tự từ bàn phím và hiên thị ra LCD, rồi xuất trả lại máy tính ký tự đó.

Code:
#include <16f877a.h>
#include <def_877a.h>
#use delay(clock=20000000)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)

#include <lcd_lib_4bit.c>
#include <input.c>

int8 count=0;
char string_in[16];

#INT_RDA
Receive_isr() {
char c;
int8 i;
count++;
c = getc();
putc(c);
if (c=='c' | c=='C') {LCD_putcmd(0x01);count=0;} //Clear Screen
if (count<=16) LCD_putchar(c);
else {count=0;LCD_putcmd(0xC0);}
}
void main()
{

enable_interrupts(int_rda);
enable_interrupts(GLOBAL);

lcd_init();
lcd_putcmd(0x01);
lcd_putcmd(line_1);
printf("Enter a String.");
printf("Or anything you want!");
while (1) {}
}
File Kèm Theo
File Type: zip giao tiep COM_LCD.zip (1.6 KB, 936 lần tải)

thay đổi nội dung bởi: falleaf, 04-02-2008 lúc 10:32 AM.
linhnc308 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-02-2006, 07:39 PM   #6
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Hôm nọ vì lý do sửa diễn đàn, nên bài viết của txt bị mất, trong bài đó có cái link tài liệu CCS C tiếng Việt, nay F post lại cái link đó cho mọi người.

Thành thật xin lỗi txt vì diễn đàn đang trong thời gian sửa chữa.

http://www.picvietnam.com/download/T...tieng_Viet.pdf

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-10-2007, 02:42 PM   #7
chauhoang
Nhập môn đệ tử
 
Tham gia ngày: Oct 2007
Bài gửi: 3
:
Trích:
Nguyên văn bởi falleaf View Post
Hôm nọ vì lý do sửa diễn đàn, nên bài viết của txt bị mất, trong bài đó có cái link tài liệu CCS C tiếng Việt, nay F post lại cái link đó cho mọi người.

Thành thật xin lỗi txt vì diễn đàn đang trong thời gian sửa chữa.

http://www.picvietnam.com/download/T...tieng_Viet.pdf

Chúc vui
xin chào các bác Mình là thành viên mới, mình có doyn bài CCS c bằng tiếng việt của bác txt và mình thấy rất hay, tại sao bác lại k post tiếp nhỉ?

__________________
www.dientuvietnam.net - www.vntelecom.org - www.tailieuvietnam.net

Học PIC như thế nào?

Không download được file? Bấm vào đây
Gõ dấu tiếng Việt trong diễn đàn


mail@falleaf.net
+82 10 4763 0970

thay đổi nội dung bởi: falleaf, 04-02-2008 lúc 10:33 AM.
chauhoang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-12-2005, 07:33 AM   #8
chutchit
Nhập môn đệ tử
 
Tham gia ngày: Dec 2005
Bài gửi: 3
:
Cam on bac.Dung la em lam phuc tap hoa van de that! Qua la no don gian hon em nghi!
chutchit vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-01-2006, 08:48 PM   #9
MoH
Đệ tử 1 túi
 
Tham gia ngày: Dec 2005
Bài gửi: 18
:
Các bác cho em hỏi. Khi dung CCSC thì có thể set dược toàn bộ địa chỉ cho 1 port giống như dùng Keil cho 89 hay không?
ví dụ như:
Trong Keil cho 89: P0 = 0xFA chẳng hạn
==> Có lệnh nào tương đương đối với PIC hay không?
À. Em cũng đã thử giao tiếp RS232 sử dụng
#uses rs232
printf (xuất)
getc(nhập)
Nhưng không xuất lên máy tính được, máy tính truyền xuống nó nhận được nhưng không biết có nhận đúng hay không (vì không truyền được lên máy tính để kiểm tra)
MoH vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-01-2006, 09:44 AM   #10
txt
Đệ tử 2 túi
 
Tham gia ngày: Sep 2005
Bài gửi: 32
:
Trong CCs tiếng việt trên , tôi có trình bày cách set po rt , VD po rt B
1/ thiết lập cơ chế truy xuất nhanh po rtB :
khai báo #U SE FAST_IO(po rtB)
khởi tạo 1 biến danh định chỉ tới địa chỉ PO rt B :Vd po rtB ở địa chỉ 0x3F thì set:
#LOCATE portB = 0x3F
portB chỉ là tên , có thể dùng tên khác tùy ý.

2/ sau đó trong chương trình , set chân vào ra :
VD : set_tris_B(0x11110000b) ; // B0->B3 : ngõ ra , B4->B7 : ngõ vào
VD : set_tris_B(255); // tất cà là ngõ vào
VD : set_tris_B( 0) ; // tất cả là ngõ ra
khi đó chỉ cần:
Vd : tất cả là ngõ vào thì có thể khiểm tra 1 cái gì đó :
if ( portB==0x0011b) { . . .} // nếu B0 và B1 có tín hiệu vào thì . . .
nếu set tất cả là ngõ ra thì :
Vd : portB = 127 ; // =0x01111111 : xuất tín hiệu ra trên B0->B6 ,B7 không có .
txt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-09-2011, 03:51 PM   #11
ngosythuat
Đệ tử 1 túi
 
Tham gia ngày: Sep 2011
Bài gửi: 17
:
Trích:
Nguyên văn bởi txt View Post
Trong CCs tiếng việt trên , tôi có trình bày cách set po rt , VD po rt B
1/ thiết lập cơ chế truy xuất nhanh po rtB :
khai báo #U SE FAST_IO(po rtB)
khởi tạo 1 biến danh định chỉ tới địa chỉ PO rt B :Vd po rtB ở địa chỉ 0x3F thì set:
#LOCATE portB = 0x3F
portB chỉ là tên , có thể dùng tên khác tùy ý.

2/ sau đó trong chương trình , set chân vào ra :
VD : set_tris_B(0x11110000b) ; // B0->B3 : ngõ ra , B4->B7 : ngõ vào
VD : set_tris_B(255); // tất cà là ngõ vào
VD : set_tris_B( 0) ; // tất cả là ngõ ra
khi đó chỉ cần:
Vd : tất cả là ngõ vào thì có thể khiểm tra 1 cái gì đó :
if ( portB==0x0011b) { . . .} // nếu B0 và B1 có tín hiệu vào thì . . .
nếu set tất cả là ngõ ra thì :
Vd : portB = 127 ; // =0x01111111 : xuất tín hiệu ra trên B0->B6 ,B7 không có .
a ơi cho em hỏi chút. portB em chỉ muốn sử dụng một cổng chẳng hạn B0 để làm input còn những cái còn lại không dùng có được không
ngosythuat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-09-2006, 12:10 AM   #12
vtt
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 44
:
Chào bác linhnc308!
Bác có giới thiệu chương trình giao tiếp PC với PIC, trên PIC. Còn chương trình trên PC thì như thế nào, bác có thể post một chương trình để anh em tham khảo được không, vì bọn mình bây giờ mới bắt đầu mà. Cám ơn bác trước nhé.
Nếu bác nào đọc được bài này mà đã từng làm rồi thì có thể post bài lên được không.
Cám ơn tất cả các bác.
vtt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-10-2006, 12:56 AM   #13
chumeodihia
Đệ tử 1 túi
 
Tham gia ngày: Sep 2006
Bài gửi: 17
:
chương trình trên pc thì mới học bạn nên dùng visual basic chỉ có một vài lệnh(kèm theo khai báo chế độ cho cổng) là bạn có thể gởi 1 byte xuống cổng com hà.Visual dễ lắm bạn tự học đi,chủ yếu là xem trong thư viện MSDL của visual basic.
ví dụ như:
strdata = .Input nhận từ cổng com về
frmMain.MSComm1.Output = Chr(j) gởi 1 byte xuống cổng com

chú mèo đihia tái bút
thanks
chumeodihia vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-10-2006, 02:14 PM   #14
navyvinpearl
Nhập môn đệ tử
 
Tham gia ngày: Oct 2006
Bài gửi: 1
:
Ban nao da dung PIC de do duong ket hop voi dieu khien DC motor chua mach nuoc cho minh di moi !
navyvinpearl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-10-2006, 03:47 PM   #15
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Bạn thảo luận vấn đề này bên dientuvietnam, phần chuyên trang robocon.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:02 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam