实验5 多机通信仿真.docVIP

  • 20
  • 0
  • 约3.92千字
  • 约 12页
  • 2015-09-22 发布于山西
  • 举报
班级:年 2 二、80C51串行接口 3 三、串口助手的使用 4 四、软件程序 5 五、作业 6 7 8 9 实训环境和器材 1、单片机实训操作台1张; 2、单片机实验板1套(含下载器); 3、计算机1台; 4、电源、通讯电缆、下载线等配件。 5、软件环境:Proteus Professional 7.1仿真软件、Keil 7.50A编程软件 一、系统框架图 系统工作原理:按下软件下方的“开始”图标,启动系统,按下“1号机”按键,主机与从机1接通,通过主机外接的4*4矩阵键盘控制从机1的数码管,按下标号为0-9的按键时,对应从机1的数码管显示0-9,按下从机1外接的8个开关,可以控制的主机外接的8个LED发光二极管,实现全双工通信。按下“2号机”按键,机与从机2接通,通过主机外接的4*4矩阵键盘控制从机2的数码管,按下标号为0-9的按键时,对应从机2的数码管显示0-9,按下从机2外接的8个开关,可以控制的主机外接的8个LED发光二极管,也可以实现全双工通信。 二、系统功能仿真 元器件清单: 单片机AT89C51×3 按键Button×32 发光二极管LED-RED×8 数码管7SEG×2 三、软件设计流程 系统软件分为两个部分,主机软件设计和从机软件设计。主机软件设计流程图如图4-1所示。 图4.1 主机软件设计流程图 从机软件设计流程图如图4-2所示。 图4.2 从机软件设计流程图 实验参考程序 主机程序: #includereg51.h #includestdio.h #includeintrins.h #define uchar unsigned char #define uint unsigned int uchar key_bpard; uchar D_ADDR; /********************************************************************/ void delay(uint tt) { uchar i; for(;tt0;tt--) { for(i=0;i2;i++); } } /********************************************************************/ uchar GET_KEY(void) { uchar lin_on,lin_tw; P1=0XF0; if((P10x0f)!=0xf0) { delay(20); if((P10x0f)!=0xf0) { lin_on=0xfe; while((lin_on0x10)!=0) { P1=lin_on; if((P10XF0)!=0XF0) { lin_tw=(P10XF0)|0X0F; return((~lin_tw)+(~lin_on)); } else { lin_on=(lin_on1)|0x01; } } } } return(0); } /********************************************************************/ void CHOSE_key(void) { uchar i; P1=0XF0; if((P10x0f)!=0xf0) { i=GET_KEY(); P1=0XF0; while((P10xf0)!=0xf0); } switch(i) { case 136:key_bpard=1; break; case 72:key_bpard=2; break; case 40:key_bpard=3; break; case 24:key_bpard=4; break; case 132:key_bpard=5; break; case 68:key_bpard=6; break; case 36:key_bpard=7; break; case 20:key_bpard=8; break; case 130:key_bpard

文档评论(0)

1亿VIP精品文档

相关文档