采用Protues虚拟仿真,甲乙机之间采用方式1双向串行通信
甲机的K1按键可通过串口控制乙机的LED1点亮,LED2灭;
甲机的K2按键控制乙机的LED1灭,LED2亮;
甲机的K3按键控制乙机的LED1和LED2全亮。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- void main()
- {
- uchar temp=0;
- TMOD=0x20;
- TH1=0xfd;
- TL1=0xfd;
- SCON=0x50;
- PCON=0x00;
- TR1=1;
- while(1)
- {
- while(RI==0);
- RI=0;
- temp=SBUF;
- if(temp==0xfe)
- P1=0xfe;
- else if(temp==0xfd)
- P1=0xfd;
- else if(temp==0xfb)
- P1=0xfc;
- else
- P1=0xff;
- }
- }
复制代码- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- void main()
- {
- uchar temp=0;
- TMOD=0x20;
- TH1=0xfd;
- TL1=0xfd;
- SCON=0x40;
- PCON=0x00;
- TR1=1;
- P1=0xff;
- while(1)
- {
- temp=P1;
- SBUF=temp;
- while(TI==0);
- TI=0;
- }
- }
复制代码
所有资料51hei提供下载:
串口通信keil程序及仿真图.zip
(8.42 KB, 下载次数: 40)
|