PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Tập lệnh trên CCS cho PIC (http://www.picvietnam.com/forum/showthread.php?t=236)

Macintosh 25-01-2008 11:30 AM

các bác cho em hỏi:
em có y tưởng hiển thi LCD thông qua con shift register 74164,dữ liệu nhận từ cổng rs232,PIC. bước đầu tiên em thử là dùng lệnh: putc(value),nhưng thấy giá trị nhận được ở đầu ra parallel con 164 ko phải là các bit tuơng ứng của value.Vậy putc() có phải là lệnh thích hợp ko nhỉ.
Việc này em đã làm đuợc trên con 89,UART truyền ra thì ok

Macintosh 25-01-2008 11:41 AM

em được biết cơ chế truyền dl đồng bộ trên con 89 là khi ta đặt data vào thanh ghi buffer thì nó được truyền ngay,RX truyền data,TX clock. thế thì làm việc này trên PIC như thế nào hả các pác?

LeDuc 04-02-2008 01:19 AM

Trích:

Nguyên văn bởi Macintosh (Post 14127)
em được biết cơ chế truyền dl đồng bộ trên con 89 là khi ta đặt data vào thanh ghi buffer thì nó được truyền ngay,RX truyền data,TX clock. thế thì làm việc này trên PIC như thế nào hả các pác?

nếu muốn vậy thì bạn chỉ việc đưa dữ liệu cần truyền vào thanh ghi txreg , rồi cho phép truyền dữ liệu ở chế độ đồng bộ ...

mepic 13-02-2008 09:32 PM

bác nào đã xài JDM thì chỉ mình setting hadware.cám ơn các bác trước.

princedx 12-08-2011 04:29 PM

hoi về pic
 
putc('A'); putc('T'); putc('+'); putc('C'); putc('M'); putc('G'); putc('S'); putc('='); putc(34);
putc('0'); putc('9'); putc('7'); putc('5'); putc('1'); putc('9'); putc('1'); putc('4'); putc('0');
putc('9'); putc(34); putc(13); delay_ms(200);
putc(str3[0]); putc(str3[1]); putc(str3[2]); putc(str3[3]); putc(str3[4]); putc(str3[5]);
putc(str3[6]); putc(str3[7]); putc(str3[8]); putc(str3[9]); putc(str3[10]); putc(str3[11]); putc(str3[12]);putc(26); putc(13);

bác nào biết cho em hỏi đoạn chương trình kia tại sao lại phải thêm putc(34); putc(13); delay_ms(200);
putc(str3[0]); putc(str3[1]); putc(str3[2]); putc(str3[3]); putc(str3[4]); putc(str3[5]);
putc(str3[6]); putc(str3[7]); putc(str3[8]); putc(str3[9]); putc(str3[10]); putc(str3[11]); putc(str3[12]);putc(26); putc(13);
đây là đoạn code viết cho sim 300 với pic16f877a

ngosythuat 26-09-2011 03:51 PM

Trích:

Nguyên văn bởi txt (Post 1352)
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

quangbuu 11-10-2013 03:09 AM

Trích:

Nguyên văn bởi chutchit (Post 1125)
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! :eek:

nếu cấu hình RS232 thì sử dụng lệnh
#use rs232(baud=9600,Parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)
còn muốn nhận dữ liệu thì khai báo ngắt
#int_rda
void uart()
{
ch = gets; // ham nhan 1 ki tu
// xử lý code tiếp ở đây
}
...
void main()
{
...
enable_interrupts(int_rda);//cho phép ngắt uart
enable_interrupts(GLOBAL);// cho phép ngắt toàn cục
while(1)
{
//xử lí code ở đây
}
}

quangbuu 11-10-2013 03:11 AM

Trích:

Nguyên văn bởi chutchit (Post 1125)
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! :eek:

printf("%u",chuoi) // xuất đi một xâu kí tự lên PC
//các đối số khác cũng tương tự


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam