29-01-2008, 10:35 AM | #31 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
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); } } }
__________________
Do more than exist, LIVE |
|
|