标题:
单片机之间的串口通信实例 proteus仿真及源码
[打印本页]
作者:
51黑ff
时间:
2016-10-10 13:22
标题:
单片机之间的串口通信实例 proteus仿真及源码
给51黑电子论坛的朋友们分享一个单片机之间的串口通信实例。下面是仿真原理图:
0.png
(27 KB, 下载次数: 109)
下载附件
2016-10-10 13:19 上传
0.png
(59.88 KB, 下载次数: 121)
下载附件
2016-10-10 13:20 上传
单片机串口通信仿真工程文件及所有完整程序等资料下载地址(压缩包一共有45个单片机仿真,全部下载后找到这个项目即可):
http://www.51hei.com/bbs/dpj-56298-1.html
单片机主机程序:
/********************************************************************
天马电子
*********************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
//uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端 (开发板)
uchar wei[4]={0X80,0X40,0X20,0X10}; //位的控制端 (仿真)
uint z,x,c,v, date; //定义数据类型
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
/******************************************************************
延时函数
******************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/**********************************************************************
数码管动态扫描
*********************************************************************/
void xianshi()
{
/*****************数据转换*****************************/
z=date/1000; //求千位
x=date%1000/100; //求百位
c=date%100/10; //求十位
v=date%10; //求个位
P2=wei[0];
P0=duan[z];
delay(50);
P2=wei[1];
P0=duan[x];
delay(50);
P2=wei[2];
P0=duan[c];
delay(50);
P2=wei[3];
P0=duan[v];
delay(50);
}
/*************************************************************************
串口初始化,波特率9600,方式1
**************************************************************************/
void Init_Com(void)
{
TMOD = 0x20; //16位定时计数器
PCON = 0x00; //电源控制寄存器
SCON = 0x50; //串口寄存器
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/*************************************************************************
主函数
**************************************************************************/
void main()
{
Init_Com();//串口初始化
// date=1234;
P1=0X0A;
while(1)
{
if(P2_0==0)P1=0XAA;
if(P2_1==0)P1=0X55;
if(P2_2==0)P1=0X0F;
if(P2_3==0)P1=0XF0;
SBUF=P1;
while(!TI);
TI=0;
}
}
复制代码
单片机从机程序:
/********************************************************************
天马电子
*********************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
//uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端 (开发板)
uchar wei[4]={0X80,0X40,0X20,0X10}; //位的控制端 (仿真)
uint z,x,c,v, date; //定义数据类型
/******************************************************************
延时函数
******************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/**********************************************************************
数码管动态扫描
*********************************************************************/
void xianshi()
{
/*****************数据转换*****************************/
z=date/1000; //求千位
x=date%1000/100; //求百位
c=date%100/10; //求十位
v=date%10; //求个位
P2=wei[0];
P0=duan[z];
delay(50);
P2=wei[1];
P0=duan[x];
delay(50);
P2=wei[2];
P0=duan[c];
delay(50);
P2=wei[3];
P0=duan[v];
delay(50);
}
/*************************************************************************
串口初始化,波特率9600,方式1
**************************************************************************/
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/*************************************************************************
主函数
**************************************************************************/
void main()
{
Init_Com();//串口初始化
// date=1234;
while(1)
{
while(!RI);
P1=~SBUF;
RI=0;
}
}
复制代码
作者:
Mos.杏子
时间:
2018-5-9 09:14
感觉很有用
作者:
ntwxd
时间:
2018-5-9 10:05
牛,学习了
作者:
niuniniu
时间:
2018-6-20 11:00
牛逼 很有用
作者:
chenfynh
时间:
2018-12-8 16:40
正在查这类的程序,刚好可以参考,感谢分享.
作者:
Mos.杏子
时间:
2019-1-4 10:10
你好 为什么显示器上只显示U呢?
作者:
芜湖
时间:
2020-4-27 08:43
你好,请问为什么我开始运行之后会很卡,并且界面找不到鼠标呢
作者:
kevind
时间:
2020-5-6 22:34
感谢楼主分享,学习了
作者:
黑天科技
时间:
2021-3-18 23:13
试一下,不知道好不好
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1