26-01-2008, 03:20 PM | #30 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
Hi, đã làm xong phần truyền nhận RS232, nhưng mới chỉ truyền nhận được từng ký tự, chưa truyền nhận chuỗi được. Sau đây là chương trình nhận chuỗi gồm 10 ký tự, bắt đầu bằng ký tự '0', kết thúc bằng ký tự '9'. Mục tiêu là như vậy nhưng chạy thử thì chưa được. Các bạn giúp tớ 1 tay nhé:
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) #define OK PIN_B6 #define Cancel PIN_B7 #define OK_PRESSED !input(OK) #include <lcd_lib_4bit.c> char mang[11]; int8 dem=0; int1 flag; char c; //----------------------------------------------------------------- void main(void) { int8 i; press=0; output_b(0xC0); set_tris_a(0xC0); set_tris_b(0xC1); port_b_pullups (TRUE); set_tris_c(0x90); LCD_putcmd(0x01); LCD_putcmd(0x80); while(1) { if(kbhit()) {c=getc(); if(c=='0') flag=1; if((c=='9')&&(flag==1)){flag=0; break;} if(flag==1) {dem++; mang[dem]=c;}} } mang[10]='\0'; // kết thúc xâu ký tự printf(LCD_putchar,"%s",mang); // Hiển thị lên LCD printf("%s",mang); // truyền lên máy tính }
__________________
Do more than exist, LIVE |
|
|