这是一个小的串口仿真。希望可以帮助一下
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- void UART() interrupt 4
- {
- if(RI == 1)
- {
- RI = 0;
- P1 = SBUF;
- }
-
- }
- void init_UART()
- {
- EA = 1;
- ES = 1;
- TMOD = 0x20; //模式2 8位自动重载模式 溢出时,将TH1装入TL1
- TH1 = 0xFD; //波特率:9600
- TL1 = TH1;
- SCON = 0x50; //方式1(定时器1溢出率)允许接收
- PCON = 0x00;
- TR1 = 1;
- }
- void Send_One_Byte(uchar Byte)
- {
- SBUF = Byte;
- while(!TI); //TI == 1 跳出循环
- TI = 0;
-
- }
- void main()
- {
-
- uchar num;
- init_UART();
- while(1)
- {
- num = P2;
- Send_One_Byte(num);
- }
- }
复制代码
所有资料51hei提供下载:
51单片机串口仿真【全双工 有中断】.rar
(43.9 KB, 下载次数: 91)
|