单片机间进行串口通信
2014-04-18 00:19
387 查看
说明:
1、所用仿真软件:Proteus 8 Professional
2、实现功能:上位机进行了按键操作后,上位机数码管显示按键数值,下位机通过串口获取按键数值并显示
3、上位机3.1端口(TXD)可直接与下位机3.0(RXD)端口相连,两个单片机需要共地
4、仿真文件下载
上位机(图中左侧MCU):
1、所用仿真软件:Proteus 8 Professional
2、实现功能:上位机进行了按键操作后,上位机数码管显示按键数值,下位机通过串口获取按键数值并显示
3、上位机3.1端口(TXD)可直接与下位机3.0(RXD)端口相连,两个单片机需要共地
4、仿真文件下载
上位机(图中左侧MCU):
#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x7f}; void Delayms(uint); void KeyScan(); void SendData(uint num); void Init(); uchar num=4; void main(){ Init(); while(1){ keyScan(); P1=table[num]; } } void Init(){ //初始化定时器与串口 TMOD=0x20; //设置定时器1 工作方式2 TH1=0xfd; TL1=0xfd; TR1=1; //启动定时器1 (8位自动重装初始值) SM0=0; SM1=1; //使用串口的 方式1 工作 REN=1; // 允许串口接收数据 EA=1; //开全局中断 ES=1; //开串口中断 } void SendData(uchar num){ SBUF=num; while(!TI); //串口发送停止位的开始时,内部硬件使TI置1,CPU发出中断申请 TI=0; } void Delayms(uint xms){ uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void KeyScan(){ if(key1==0) { Delayms(10); if(key1==0) num=0; SendData(num); } if(key2==0) { Delayms(10); if(key2==0) num=1; SendData(num); } if(key3==0) { Delayms(10); if(key3==0) num=2; SendData(num); } if(key4==0) { Delayms(10); if(key4==0) num=3; SendData(num); } }下位机(图中右侧MCU):
#include<reg52.h> #define uchar unsigned char uchar code table[]={0x3f,0x06,0x5b,0x4f,0x7f}; void Init(); uchar num=4; void main(){ Init(); while(1){ P1=table[num]; } } void Init(){ //初始化定时器与串口 TMOD=0x20; //设置定时器1 工作方式2 TH1=0xfd; TL1=0xfd; TR1=1; //启动定时器1 (8位自动重装初始值) SM0=0; SM1=1; //使用串口的 方式1 工作 REN=1; // 允许串口接收数据 EA=1; //开全局中断 ES=1; //开串口中断 } void receive() interrupt 4 { RI=0; num=SBUF; }仿真结果:
相关文章推荐
- android 使用串口Modbus协议和单片机进行通信
- 单片机和虚拟机里的Linux进行串口通信
- 使用MSComm控件进行多串口通信
- 单片机是如何与电脑进行通信的,电子工程师必知内容(转)
- Python使用pyserial进行串口通信
- 两个Arduino之间进行串口通信出错的原因
- 关于串口与单片机通信电平转换的总结
- 51 单片机与PC 串口通信程序及硬件电路图
- 使用WindowsAPI和多线程进行串口通信[2]
- 使用Visual C++进行串口通信编程
- 单片机串口通信波特率计算
- 【单片机】STC12C5A60S2双串口通信
- 单片机的串口通信编程的总结
- VM中linux和windows主机进行串口通信
- 虚拟串口完成主机与vmware下虚拟机进行串口通信
- linux与windows系统进行串口通信
- 使用Visual C++进行串口通信编程[一]
- 单片机串口通信原理及原理图
- VM中linux和windows主机进行串口通信
- 关于单片机串口通信波特率问题