![]() |
|
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 101
: |
Báo cáo, tớ đã làm xong phần truyền nhận chuỗi gồm 10 ký tự. Chuỗi này có ký tự bắt đầu là 0, ký tự kết thúc là 9. Có thể dễ dàng modify chương trình để có số ký tự truyền nhận hoặc thay đổi ký tự bắt đầu - kết thúc. Sau đây là chương trình post lên cho những người mới học như tớ tham khảo:
Code:
#include <16F877A.h> #include <def_877a.h> #device *=16 adc=10 #FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=4000000) #use fast_io (b) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) #include <lcd_lib_4bit.c> char mang[11]; int8 dem=0; int1 flag, flag1; char c; #INT_RDA Receive_isr() { c=getc(); if(c=='0') flag=1; if((c=='9')&&(flag==1)){mang[dem]=c; dem++; flag=0; flag1=1;} if(flag==1) {mang[dem]=c; dem++;} } //----------------------------------------------------------------- void main(void) { output_b(0xC0); set_tris_a(0xC0); set_tris_b(0xC1); port_b_pullups (TRUE); set_tris_c(0x90); LCD_init(); delay_ms(500); LCD_putcmd(0x80); Printf(LCD_putchar,"Hi ev'body"); //Hien thi man hinh 1 LCD_putcmd(0xC0); Printf(LCD_putchar,__DATE__); enable_interrupts(INT_RDA); enable_interrupts (global); while(1) { if(flag1==1) { LCD_putcmd(0x01); //xoa man hinh LCD_putcmd(0x80); mang[10]='\0'; printf(LCD_putchar,"%s",mang); printf("%s",mang); } } } |
![]() |
![]() |
![]() |
#2 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 101
: |
Phần tiếp theo tớ sẽ học là giao tiếp I2C giữa PIC6F877A và IC thời gian thực PCF8583. Ai có hứng thú thì nhào dzô trao đổi nhé.
|
![]() |
![]() |
![]() |
#3 | |
PIC Bang chủ
|
Trích:
Chúc vui
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|