美章网 资料文库 单片机通信任务设计实现分析范文

单片机通信任务设计实现分析范文

本站小编为你精心准备了单片机通信任务设计实现分析参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

单片机通信任务设计实现分析

摘要:介绍单片机通信任务设计实现。介绍硬件电路设计原理、有关数据传送编程的注意思想,并在Proteus环境下仿真验证硬件电路设计合理,结果表明编写程序符合控制要求。

关键词:单片机;通信;Proteus

引言

单片机课程是电子类专业的必修课,在专业学习中起着非常重要的作用[1-2]。串行通信技术是单片机的一个重要应用[3]。目前Proteus虚拟仿真已被广泛应用到单片机原理与应用学习中,针对单片机通信原理复杂难懂,将介绍如何通过Proteus软件学习单片机有关通信任务。

1控制要求

以单工通信为例,具体控制要求如下:(1)两个单片机最小系统,一个是主机(发送),一个是从机(接收);主机发送命令,控制从机的数码管和LED灯工作。(2)LED彩灯、数码管分别接到从机并行I/O口,3个开关(开始、暂停/继续、停止)接到主机的I/O口。(3)系统上电,数码管显示“P”,LED灯不亮,按下“开始”按钮,数码管显示的数字和LED灯亮的数目一致(显示“2”,亮两个LED灯),0,1,…,8,数码管、LED灯循环工作;任何时候按下“暂停/继续”按钮,数码管、LED灯停在当前状态,再次按下“暂停/继续”按钮,系统继续循环工作;任何时候按下“停止”按钮,系统循环要结束(数码管显示“8”,亮8个LED灯→数码管显示“P”,LED灯不亮);等待再次按下“开始”按钮,系统继续工作。

2硬件电路设计

Proteus提供多种元件库,比如单片机、晶振、电容、电阻、LED灯等。根据案例要求,进行功能分析后,在Proteus环境下设计仿真电路图如图1所示。LED灯和数码管接在从机的P0口和P2口。3个开关分别接在主机P3口的P3.2、P3.3、P3.4,另一端接地。根据通信要求[4-9],主机和从机的P3.0/RXD(串行口输入)和P3.1/TXD(串行口输出)要交叉连接,如图2所示。为了画图清晰,避免元件、连线凌乱采用设置“总线”的方式,所有元件连线都可以接到总线上,然后在连接线上“wirelabel”。如图3所示,主机的串行口P3.0/RXD、P3.1/TXD接到总线上,分别贴上标签“30”和“31”,从机的串行口P3.0/RXD、P3.1/TXD也对应着接到总线上,贴上标签“31”和“30”。

3软件设计

根据该案列要求,软件设计包括3部分:按键模块、主机模块和从机模块。

3.1按键模块

通过3个按键“开始”、“暂停/继续”、“停止”实现对从机LED灯、数码管的控制。8个LED灯、数码管显示“0—8”,整个系统有9个工作状态。编程采用循环结构,用0组寄存器R0作为计数初值(R0)=0,每显示一个状态,(R0)+1→R0,当(R0)=10,重新赋值(R0)=0,开始下一轮循环。具体流程图如图3所示。编写数据传送与接收程序注意主机和从机波特率的确定以及要对串行口初始化。数据传送可以采用查询方式也可以采用中断方式。案例采用的是查询方式。

3.2主机发送模块

主机发送数据程序模块编写时,要注意:初始化时串行口发送中断标志TI要清零,每发送完一帧数据,由硬件置位TI,为了要发送下一帧数据,要用软件清TI标志。发送数据流程图如图4所示。

3.3从机接收模块

从机接收数据程序模块编写时,要注意:串行口接收使能位REN=1,启动串行口接收数据,每接收完一帧数据,由内部硬件使RI置1,为了要接收下一帧数据,要用软件将其清零。接收数据程序流程图如图5所示。部分接收数据程序源程序:编写程序是个复杂的过程,一个环节考虑不周全,或者某条指令理解不清楚,会导致任务要求不能实现,因此编写程序需要反复修改。仿真软件Proteus提供了这样便捷的环境,把编写的程序分别烧写到图1的主机与从机,可以看到仿真效果是否符合要求,经过多次修改,最终完善程序。

4仿真

用鼠标单击仿真按钮“”,可以看到系统上电的仿真结果,如图6所示。按下“开始”按钮,系统运行,如果按下“暂停/继续”按钮,系统停在当前位置,比如数码管显示“5”,LED灯亮了5个。仿真结果如图7所示。

5结束语

从硬件设计和软件编程两方面详尽介绍了基于单片机单工通信控制系统的设计,并通过Proteus软件仿真整体电路系统,仿真结果验证该设计原理正确,程序编写符合控制要求。

参考文献:

[1]王海燕,杨艳华.Proteus和Keil软件在单片机实验教学中的应用[J].实验室研究与探索,2012,31(5):88-91.

[2]王娟.Proteus软件在单片机专题实训中的应用[J].实验室研究与探索,2012,31(8):72-75.

[3]孙万麟.基于Proteus的单片机通信电路设计[J].实验室研究与探索,2016,35(10):135-138.

[4]李现国,张艳.Proteus仿真在微机原理及接口技术教学中的应用[J].实验技术与管理,2010,27(12):125-127.

[5]苏变玲,朱志平,袁卫.基于Proteus的单片机仿真教学的研究[J].实验室研究与探索,2009,28(4):75-78.

[6]王娟.Proteus软件在单片机专题实训中的应用[J].实验室研究与探索,2012,31(8):72-110.

[7]周润景.基于Proteus的电路及单片机系统设计与仿真[M].北京:北京航天航空大学出版社,2006.

[8]刘胜,杨夏.基于Proteus的数字电路虚拟实验室建设[J].电气电子教学学报,2012,34(3):85-87.

[9]艾明晶.基于自动设计方法的数字逻辑课程改革研究与实践[J].实验技术与管理,2012,29(9):151-155.

作者:张翠云 单位:河南工业和信息化职业学院