proteus仿真51串口实两个单片机串口通信,一个发( {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};),一个收(收到的数据点亮LED)
发送端与接收端源程序及仿真文件见附件
单片机源程序如下:
- #include<reg51.h>
- //--声明全局函数--//
- void UsartConfiguration();
- void Delay10ms(unsigned int c); //误差 0us
- /*******************************************************************************
- * 函 数 名 : main
- * 函数功能 : 主函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void main()
- {
- // unsigned char i;
- UsartConfiguration();
- while(1)
- {
- if(RI)
- {
- P0=SBUF; //接收的数据点亮led (跑马灯)
- RI=0;
- }
-
-
- }
- }
- /*******************************************************************************
- * 函 数 名 :UsartConfiguration()
- * 函数功能 :设置串口
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void UsartConfiguration()
- {
- SCON=0X50; //设置为工作方式1
- TMOD=0X20; //设置计数器工作方式2
- PCON=0X00; //波特率不加倍
- TH1=0XFD; //计数器初始值设置,注意波特率是9600的
- TL1=0XFD;
- // ES=1; //打开接收中断
- // EA=1; //打开总中断
- TR1=1; //打开计数器
- }
- /*******************************************************************************
- * 函 数 名 : Delay10ms
- * 函数功能 : 延时函数,延时10ms
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void Delay10ms(unsigned int c) //误差 0us
- {
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
串口.rar
(17.63 KB, 下载次数: 88)
|