这是一个单片机与单片机通信的
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- /*发送程序*/
- #include<reg52.h>
- #define uchar unsigned char
- void initUart(void); //初始化串口波特率
- void time(unsigned int ucMs); //延时单位:毫秒
- void main(void){
- uchar counter=0; //定义计数器
- initUart();
- while(1){
- SBUF = counter; //发送联络信号
- while(!TI); //等待发送完成
- TI = 0; //清TI标志位
- while(!RI); //等待乙机回答
- RI = 0;
- if(SBUF ==counter){ //若返回值与发送值相同,组织新数据
- P2 = counter; //显示已发送值
- if(++counter>15) counter=0;//修正计数器值
- time(500);
- }}}
- void time(unsigned int ucMs)//延时单位:ms
- {
- #define DELAYTIMES 239
- unsigned char ucCounter; // 延时设定的循环次数
- while (ucMs!=0) {
- for (ucCounter=0; ucCounter<DELAYTIMES; ucCounter++){}//延时
- ucMs--;
- }
- }
- /********** 初始化串口波特率 ************/
- void initUart(void)
- { SCON=0X50; //串口工作在方式1
- PCON=0;
- TMOD=0X20;
- TH1=0XF4; //2400bps
- TL1=0XF4;
- TCON=0X40;
- }
复制代码
所有资料51hei提供下载:
串口双机通信.zip
(129.73 KB, 下载次数: 22)
|