《AT89X52 RS232 单片机 串口 通信》由会员分享,可在线阅读,更多相关《AT89X52 RS232 单片机 串口 通信(11页珍藏版)》请在金锄头文库上搜索。
1、#include #define uchar unsigned char #define uint unsigned int uchar code table1=“error“; uchar code table2=“OK“; uchar table30=0; uchar flag,flag_reset=0,a; uchar test=0; void send_error(); void send_OK(); /*/ void delayms( uint xms)/delay ms uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-); /*/ void in
2、it_uart() TMOD=0x20;/TIMER1工作在MODE2 PCON=PCON/SMOD=0 TH1=0xfd; TL1=0xfd;/波特?率为a9600 SCON=0x50;/UART工作在MODE1 TR1=1;/开a始?计?数y IE=0x90; IP=0x10; /*/ void receive()/接收?数y据Y模块 uchar num=0; while(1) if(flag=1) if(a!=O) ES=0; tablenum=a; num+; flag=0; ES=1; else break; flag=0; /*/void send_error()/发送“error
3、“ uchar i; ES=0; for (i=0;i5;i+) SBUF=table1i; while(!TI); TI=0; ES=1; /*/ void send_OK()/发送“OK“ uchar i; ES=0; for (i=0;i2;i+) SBUF=table2i; while(!TI); TI=0; ES=1; /*/ void send(uchar i) /发送“1“或“0“ ES=0; SBUF=i; while(!TI); TI=0; ES=1; /*/ void estimate()/判D断?接收?到?的?数y据Y if(table0=W send_OK(); bre
4、ak; case 1: P11=1; send_OK(); break; case 2: P12=1; send_OK(); break; case 3: P13=1; send_OK();break; case 4: P14=1; send_OK(); break; case 5: P15=1; send_OK(); break; case 6: P16=1; send_OK(); break; case 7: P17=1; send_OK(); break; default : send_error(); else if(table0=W send_OK(); break; case 1:
5、 P11=0; send_OK(); break; case 2: P12=0; send_OK(); break; case 3: P13=0; send_OK(); break; case 4: P14=0; send_OK(); break; case 5: P15=0; send_OK(); break; case 6: P16=0; send_OK(); break; case 7: P17=0; send_OK(); break; default : send_error();else if(table0=W send_OK(); break; case 1: P21=1; sen
6、d_OK(); break; case 2: P22=1; send_OK(); break; case 3: P23=1; send_OK(); break; case 4: P24=1; send_OK(); break; case 5: P25=1; send_OK(); break; case 6: P26=1; send_OK(); break; case 7: P27=1; send_OK(); break; default : send_error(); else if(table0=W send_OK(); break; case 1: P21=0; send_OK(); br
7、eak; case 2: P22=0; send_OK(); break; case 3: P23=0; send_OK(); break; case 4: P24=0; send_OK(); break; case 5: P25=0; send_OK(); break;case 6: P26=0; send_OK(); break; case 7: P27=0; send_OK(); break; default : send_error(); else if(table0=W send_OK(); break; case 1: P31=1; send_OK(); break; case 2
8、: P32=1; send_OK(); break; case 3: P33=1; send_OK(); break; case 4: P34=1; send_OK(); break; case 5: P35=1; send_OK(); break; case 6: P36=1; send_OK(); break; case 7: P37=1; send_OK(); break; default : send_error(); else if(table0=W send_OK(); break; case 1: P31=0; send_OK();break; case 2: P32=0; se
9、nd_OK(); break; case 3: P33=0; send_OK(); break; case 4: P34=0; send_OK(); break; case 5: P35=0; send_OK(); break; case 6: P36=0; send_OK(); break; case 7: P37=0; send_OK(); break; default : send_error();else if(table0=R if(CY) send(1); else send(0); break; case 1: CY=P01; if(CY) send(1); else send(
10、0); break; case 2: CY=P02; if(CY) send(1); else send(0); break; case 3: CY=P03; if(CY) send(1); else send(0); break;case 4: CY=P04; if(CY) send(1); else send(0); break; case 5: CY=P05; if(CY) send(1); else send(0); break; case 6: CY=P06; if(CY) send(1); else send(0); break; case 7: CY=P07; if(CY) se
11、nd(1); else send(0); break; default : send_error(); else if(table0=R if(CY) send(1); else send(0); break; case 1: CY=P11; if(CY) send(1); else send(0); break; case 2: CY=P12; if(CY) send(1); else send(0); break; case 3: CY=P13; if(CY)send(1); else send(0); break; case 4: CY=P14; if(CY) send(1); else
12、 send(0); break; case 5: CY=P15; if(CY) send(1); else send(0); break; case 6: CY=P16; if(CY) send(1); else send(0); break; case 7: CY=P17; if(CY) send(1); else send(0); break; default : send_error();else if(table0=R if(CY) send(1); else send(0); break; case 1: CY=P21; if(CY) send(1); else send(0); b
13、reak; case 2: CY=P22; if(CY)send(1); else send(0); break; case 3: CY=P23; if(CY) send(1); else send(0); break; case 4: CY=P24; if(CY) send(1); else send(0); break; case 5: CY=P25; if(CY) send(1); else send(0); break; case 6: CY=P26; if(CY) send(1); else send(0); break; case 7: CY=P27; if(CY) send(1)
14、; else send(0); break; default : send_error(); else if(table0=R if(CY) send(1); else send(0); break; case 1: CY=P31; if(CY) send(1);else send(0); break; case 2: CY=P32; if(CY) send(1); else send(0); break; case 3: CY=P33; if(CY) send(1); else send(0); break; case 4: CY=P34; if(CY) send(1); else send(0); break; case 5: C