- #include <stc12c5a60s2.h>
- #include<intrins.h>
- sbit RE=P1^1;
- sbit DE=P1^0;
-
- bit SendFlag;
- unsigned int ReData,SenData;
- void configuart(unsigned int baud);
- /**************************************
- 延时程序
- **************************************/
- void delay10us(unsigned char t)
- {
- do{
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- }while(--t);
- }
- void main ()
- {
- EA=1;
- configuart(9600);
- while(1)
- {
-
- if (SendFlag==1)
- {
- DE=1; //
- SBUF=SenData; //发送数据
- delay10us(5);
- //RE=0;
- }
- else
- {
- RE=0; //接收状态
- }
- }
-
- }
- void configuart(unsigned int baud)
- {
- //RE=0;
- SCON = 0x50;
- TMOD&=0X0F;
- TMOD|=0X20;
- TH1=256-(22118400/12/32)/baud;
- TL1=TH1;
-
- ET1=0;
- ES=1;
- TR1=1;
- }
- /****************************************************
- 串口中断程序
- ******************************************************/
- void ser_int (void) interrupt 4
- {
- if(TI == 1)
- {
- TI = 0;
- SendFlag = 0;
- }
- if(RI == 1) //RI接受中断标志
- {
- RI = 0; //清除RI接受中断标志
- ReData = SBUF; //SUBF接受/发送缓冲器
- SenData=ReData;
- SendFlag = 1;
-
- }
- }
复制代码
代码是发送什么就接收什么 为什么 串口助手接收的数据不对勒
|