标题:
8051单片机双机传送proteus仿真与源程序
[打印本页]
作者:
lienze1998
时间:
2018-5-27 11:11
标题:
8051单片机双机传送proteus仿真与源程序
我是电子专业的,这是我上个学期期末的大作业,8051设计,实现双机传送,有Protus电路图和keil代码
双机传送
系统设计说明:
1. 主片用来接收外部按键输入,存入SBUF,通过P3.1TxD发送给从片,同时申请4号中断。
2. 从片通过P3.0RxD接收主片传送的SBUF,选中对应的段码,送到LED共阳极数码管显示,同时申请4号中断。
3. 十个按键从上到下代表输入9~0。
系统功能说明:
实现双机传送数据。
软件设计说明:
采用中断方式,8位定时器,自动重装计数值,波特率为9600b/s,串口方式1。
调试及运行结果:
系统按设计运行,按键按下,LED数码管显示对应的数字,LED灯闪烁一次。
心得体会:
比8086简单。。。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(12.47 KB, 下载次数: 45)
下载附件
2018-5-28 02:48 上传
0.png
(47.13 KB, 下载次数: 35)
下载附件
2018-5-28 02:48 上传
单片机源程序如下:
#include<STC15f2k60s2.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define _Nop() _nop_()
uchar x;
sbit KEY0=P0^0;
sbit KEY1=P0^1;
sbit KEY2=P0^2;
sbit KEY3=P0^3;
sbit KEY4=P0^4;
sbit KEY5=P0^5;
sbit KEY6=P0^6;
sbit KEY7=P0^7;
sbit KEY8=P2^1;
sbit KEY9=P2^2;
void delay_1(uchar x)
{
uchar i,j;
for(i=0;i<=x;i++)
for(j=0;j<=200;j++)
_Nop();
}
void serial_ISR(void) interrupt 4
{
P1=~0x01;
delay_1(20000) ;
P1=0x01;
RI = 0;
}
void serial_initial(void)
{
TMOD = 0x20;
TL1 = 0xfd;
TH1 = 0xfd;
TR1 =1;
SCON = 0x40;
ES = 1;
EA = 1;
}
void Send_Byte(uchar x)
{
SBUF=x;
while(TI==0);
TI=0;
}
void main(void)
{
serial_initial();
while(1)
{
if(KEY0==0)
{
while(KEY0==0);
Send_Byte(0);
}
if(KEY1==0)
{
while(KEY1==0);
Send_Byte(1);
}
if(KEY2==0)
{
while(KEY2==0);
Send_Byte(2);
}
if(KEY3==0)
{
while(KEY3==0);
Send_Byte(3);
}
if(KEY4==0)
{
while(KEY4==0);
Send_Byte(4);
}
if(KEY5==0)
{
while(KEY5==0);
Send_Byte(5);
}
if(KEY6==0)
{
while(KEY6==0);
Send_Byte(6);
}
if(KEY7==0)
{
while(KEY7==0);
Send_Byte(7);
}
if(KEY8==0)
{
while(KEY8==0);
Send_Byte(8);
}
if(KEY9==0)
{
while(KEY9==0);
Send_Byte(9);
}
}
}
复制代码
所有资料51hei提供下载:
8051--双机传送.zip
(58.36 KB, 下载次数: 8)
2018-5-27 11:10 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1