从机程序:
- /*********************主机程序**************************/
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit t0 = P3^7;//发送、接收使能
- /***********延时函数**************************/
- void delay(uint x)
- {
- uchar i;
- while(x--)
- { for(i=0;i<110;i++); }
- }
- /***********串口初始化函数**************************/
- void init_UART()
- {
- SCON = 0xd0; //工作方式3 允许串口接收
- TMOD = 0x20; //定时器T/C1工作方式2
- PCON = 0x00; //波特率倍频
- TH1 = 0xfd;
- TL1 = 0xfd;
- TR1 = 1;
- }
- /*****************主函数************************/
- void main()
- {
- uchar ADDR=0x01,num=0,tmp;//ADDR地址码,num地址个数
- init_UART();//串口初始
- // P1=0xc0;//初始时显示0
- while(1)
- {
- /*********接受从机地址**********/
- t0=0; //接受使能
- delay(20);
- while(!RI);//等待接收从机发回的握手信号
- tmp=SBUF; //接收回来的值赋值给显示变量
- RI=0; //接收成功
- delay(20);
- tmp++;
- /*********发送从机地址**********/
- TI=0;
- TB8=1;//发送地址信号
- t0=1; //发送使能
- delay(20);
- SBUF=tmp;//发送地址信号加1
- while(!TI);//等待发送
- TI=0;//发送成功
- delay(1000);
- }
- }
- /*
- 本程序为从机程序
- 11.0592M晶振 波特率9600
- 从机:STC12C4052AD 主机:STC12C5A60S2
- 从机数据接加1后发送回主机
- 2014年9月4日 23时50分
- 实验成功
- */
复制代码 |