從機程序:
- /*********************主機程序**************************/
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit t0 = P3^7;//發(fā)送、接收使能
- /***********延時函數(shù)**************************/
- void delay(uint x)
- {
- uchar i;
- while(x--)
- { for(i=0;i<110;i++); }
- }
- /***********串口初始化函數(shù)**************************/
- void init_UART()
- {
- SCON = 0xd0; //工作方式3 允許串口接收
- TMOD = 0x20; //定時器T/C1工作方式2
- PCON = 0x00; //波特率倍頻
- TH1 = 0xfd;
- TL1 = 0xfd;
- TR1 = 1;
- }
- /*****************主函數(shù)************************/
- void main()
- {
- uchar ADDR=0x01,num=0,tmp;//ADDR地址碼,num地址個數(shù)
- init_UART();//串口初始
- // P1=0xc0;//初始時顯示0
- while(1)
- {
- /*********接受從機地址**********/
- t0=0; //接受使能
- delay(20);
- while(!RI);//等待接收從機發(fā)回的握手信號
- tmp=SBUF; //接收回來的值賦值給顯示變量
- RI=0; //接收成功
- delay(20);
- tmp++;
- /*********發(fā)送從機地址**********/
- TI=0;
- TB8=1;//發(fā)送地址信號
- t0=1; //發(fā)送使能
- delay(20);
- SBUF=tmp;//發(fā)送地址信號加1
- while(!TI);//等待發(fā)送
- TI=0;//發(fā)送成功
- delay(1000);
- }
- }
- /*
- 本程序為從機程序
- 11.0592M晶振 波特率9600
- 從機:STC12C4052AD 主機:STC12C5A60S2
- 從機數(shù)據(jù)接加1后發(fā)送回主機
- 2014年9月4日 23時50分
- 實驗成功
- */
復制代碼 |