anh f ơi. anh hoc PFIEV a? em đang làm đề tài PIC18f4550. sử dụng RS232 lấy 1 string từ máy tính. em chap 2 chân sau con MAX232 kiểm tra đúng hết rồi. anh làm ơn kiểm tra dùm em dọan chương trình này với nó cứ bị đứng khi xảy ra ngắt RDA.
#include <18F4550.h>
#device *=16 ADC=8
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=20M)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,bits=8)
... doan khai bao biet
#int_rda
void rcv_data()
{
char key;
int8 ii=0;
disable_interrupts(INT_RDA);
disable_interrupts(INT_TIMER0);
key = getch();
chedo=key;
// phan tu dau tien cua goi tin la phan tu chon che dolam viec
do
{
if(kbhit()) //neu goi tin san sang
{
key= getc();
text[ii] =key;
putc(text[ii]);//kiem tra lai gia tri truyen co dung khong
ii++;
if(ii>tmax) break;
}
}while(key!='\0');
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
}
... ham con
void main()
{void main()
{
int8 g,n,itext=0,ich=0,demp=0,k,kt=1;
set_tris_b(0);
set_tris_d(0);
set_tris_c(0b10000000);
setup_timer_0( RTCC_INTERNAL |RTCC_DIV_64|RTCC_8_BIT);
set_timer0(0);
enable_interrupts(global);
enable_interrupts(INT_RDA);
enable_interrupts(int_timer0);
for (g=0;g<8*nmatrix;g++)
{XRE[g]=255;
XGR[g]=255;
XBL[g]=255;
}
while(1)
{
if(demp!=demout)
xu ly du lieu.
Nếu anh trả lời làm ơn nhắn dùm em với:
nguencuong_178@yahoo.com
hay mail
nguyencuong388@gmail.com
thank anh nhieu!