APP下载

双机通信案例在单片机串口教学中的应用

2019-11-03冯康

电脑知识与技术 2019年23期
关键词:波特率中断串口

冯康

摘要:为解决将单片机串口的理论应用于实践的问题,在单片机串口教学中设计出双机通信案例。该案例使用两台单片机分别作为发送机和接收机,两台单片机串口均工作于方式一;发送机运行发送程序,按下发送机控制的矩阵键盘的按键,其键值通过串口传送到接收机;接收机运行接收程序,并将从串口接收到的键值在数码管上显示出来。该案例不但可以直观地展现出单片机串口通信的过程,还可以帮助学生掌握将单片机串口理论应用于实践的技能,因此,可以推广到高等学校单片机课程的教学中。

关键词:单片机;串口;波特率;矩阵键盘;中断

中图分类号:G642.0        文献标识码:A

文章编号:1009-3044(2019)23-0075-03

开放科学(资源服务)标识码(OSID):

Application of Dual MCU Communication Example in Serial Port Teaching

FENG Kang

(School of Computer Science, Huainan Normal University, Huainan 232038, China)

Abstract:To solve the problem of applying micro control unit(MCU) serial port theory to practice, a dual MCU communication example is designed in the serial port teaching. In this example, two MCUs are used as sending MCU and receiving MCU, and the serial ports of the two MCUs work in mode one. The sending MCU executes the sending program which the key of the matrix keyboard is pressed; the key value is sent the receiving MCU through the serial port. The receiving MCU executes the receiving program which displays the key value on the digital tubes. This example does not only show the process of MCU serial port communication, but also help college students gain the skill of applying MCU serial port theory to practice. Therefore, the dual MCU communication example can be apply to the teaching of MCU course in colleges.

Key words:MCU; serial port; baud rate; matrix keyboard; interrupt

《單片机原理及应用》是应用型本科高校电子信息类专业广泛开设的专业必修课程,该课程的教学内容丰富,既有单片机(MCU, Micro Control Unit)工作原理的理论知识,又有将硬件设计和软件编程结合的单片机实践应用,因此,教学的难度较大,尤其是单片机串口这一章的教学,涉及大量单片机串口的理论知识,如单片机串口的控制寄存器SCON、串行数据缓冲寄存器SBUF、串行口的工作方式、串行通信波特率设置等。这些理论知识很多比较抽象,也很难懂[1]。因此,很多讲授《单片机原理及应用》课程的老师都将备课的重点放在了理论知识的传授,比如将串行口的结构和工作原理制作成动画放在课件中、用具体的字符传输来讲解单片机串口方式1的一帧数据传输的过程、用简化的公式来讲解波特率计算公式,这样再经过教师课堂的细心讲解,同学们基本上可以掌握单片机串口的工作原理,但对于如何将单片机串口的工作原理应用于实践,仍然理解不透,掌握不深[2]。因此,需要相关的教师进行针对性的教学研究,解决单片机串口教学中这一存在的问题。

1 原因分析及突破口

为什么学生经过《单片机原理及应用》课程的学习,能够掌握单片机串口的理论知识,却无法掌握将单片机串口的工作原理应用于实践的技能,究其原因,主要在于以下几个方面。一是单片机串口有四种工作方式,如果提供四种工作方式的实践应用案例,教材内容的篇幅过大,在课时限定的情况下,教师很难在规定的课时内讲授完全部内容;二是现有的《单片机原理及应用》课程教材在介绍单片机串口时,都只提供单片机原理的素材,甚至很深的理论都涉及了,但却都没有提供单片机串口实践应用的案例[3];三是串口的实践应用案例必须结合具体的硬件平台,很难找到合适的通用的硬件平台来支持单片机串口的实践应用;四是即使有合适的硬件平台,也没有合适的实践案例在较短的课时内让学生掌握单片机串口的实践应用[4]。由于上述原因,造成了很多高校《单片机原理及应用》课程单片机串口的教学效果不佳,同学们经过认真的学习,仍然缺乏将单片机串口的理论应用于实践的技能,

我校是一所应用型本科高校,共有计算机科学与技术、网络工程、物联网工程、电子工程共4个专业开设了《单片机原理及应用》课程,其中,串口章节是教学大纲中规定的教学内容,以前串口章节的课程教学也普遍存在前述的问题,但从2016年开始,我们就开始进行了《单片机原理及应用》课程的教学研究,重点攻关单片机串口教学存在的学生通过理论学习却仍然缺乏将单片机串口理论应用于实践的技能,并取得了一定的成果。通过2016级、2017级、2018级三届学生的实践,无论是学生评教、期末考核、课程设计、学科竞赛、创新实践,学生都普遍展现出较强单片机实践能力,尤其是将串口理论应用于实践中的技能,现将我们的教学方法做一总结。

2 设计双机通信案例作为单片机串口教学的实践案例

双机通信案例是一种我们自己开发设计的,单片机串口工作于方式1,使用深圳普中科技有限公司的EM3-V22通用单片机开发仪硬件平台,能够在2个课时讲授完毕的单片机串口实践案例,这个选择主要是基于以下四点的考虑,一是单片机串口的四种工作方式中,方式0是作为扩展并行输入输出口使用的,实践应用场合不多[5];方式2和方式3是1位起始位、9位数据位、1位停止位的异步通信,实践应用中9位数据位很少见,因此方式2和方式3的应用价值不大[6];而方式1是1位起始位、8位数据位、1位停止位的异步通信,是最常见的一种串行通信数据格式,可广泛地应用于单片机和单片机之间的串口通信,单片机和计算机之间的串口通信,计算机和计算机之间的串口通信,其8位数据格式的特征类似于方式0,传输波特率可变的特性类似于方式2和方式3,因此掌握单片机串口方式1的应用也可以推广到方式0、方式2和方式3的应用[7]。二是双机通信案例使用的是两块深圳普中科技有限公司生产的EM3-V22通用单片机开发仪,这是一种非常适合串口开发的通用平台,提供了单片机串口RXD、TXD、GND的引出脚,很容易外接到其他板卡,而且该平台还有丰富的输入输出外接设备如键盘、数码管、液晶屏等[8]。三是双机通信案例的实现原理、硬件设计、软件编程、下载调试验证的难度和份量适中,刚好可以在2个课时讲授完毕,非常适合课堂教学且不会占用太多的教学课时。四是双机通信案例虽然教材没有提供,但教师可以通过智慧课堂、QQ、微信、邮箱等方式提前将相关资料推送给学生,不会妨碍同学们的预习。

3 双机通信案例的设计

3.1 案例介绍

双机通信的案例是这样的:利用A、B两台EM3-V22单片机开发仪,以串口方式1实现单片机甲和单片机乙的双机通信;其中,单片机甲位于EM3-V22单片机开发仪A中,单片机乙位于开发仪B中,要求按下开发仪A矩阵键盘中的按键S0,S1,S2,……,S15,在开发仪B的8个数码管M0,M1 ,……,M7上显示键盘按键按下的键值,完成硬件的设计、软件的编程、并下载调试验证。这个案例的设计非常精巧,一是很直观地显示出什么是串口通信,明明是按下开发仪A的矩阵键盘按键,其键值却在另一台开发仪B的数码管上显示出来,由于矩阵键盘一共有16个键,通过按键的变换,数码管依次显示不同的键值,更能使学生体会到串行通信的神奇;二是体会到串口的作用,因为两台开发仪只是将各自单片机串口的RXD、TXD、GND三个引脚互连,没有其他的连接,更没有单片机P0口、P1口、P2口、P3口4个并口的相连,就能实现双机的通信;三是体会到单片机串口方式1的强大功能,因为在程序中只设置了方式1,没有设置方式0、方式2、方式3。

3.2 硬件設计

双机通信案例的硬件设计的大致框图如图1所示,其中甲乙两个单片机均为STC90C5RC,单片机甲作为发送机,其P0口接矩阵键盘阵列,当矩阵键盘的某个按键按下后,通过发送程序的运行,提取出键值并从串口的TXD引脚将键值发送到单片机乙的RXD引脚中;单片机乙作为接收机,其P0口接8个数码管阵列的数据线,P2.0、P2.1、P2.2三个引脚接74LS138译码器的输入端,译码器的输出作为数码管阵列8个数码管的片选信号。两个单片机的串口互连,其中单片机甲的TXD、RXD、GND引脚分别接单片机乙的RXD、TXD、GND引脚,即两个单片机共地。

3.3 软件编码

软件编码包括发送机发送程序的编码和接收机接收程序的编码。

3.3.1 发送程序的编码

发送程序的编码包括头文件和宏定义,将P0口的高四位定义为四个位变量,为接收矩阵键盘的编码做准备,定义无符号整型变量key存放矩阵按键的编码,多参数延时主程序,可根据参数设置的不同提供多个延时时间;主函数中代码TMOD=0x20;TH1=0xfd;TL1=0xfd;设置单片机发送机串口通信的波特率为9600,这是对单片机串口通信比较合适的波特率,并启动定时器T1,接着设置发送机串口的工作方式为方式1,开中断;然后反复执行键盘扫描程序,如果有键按下,则将该按键对应数字的段码值存入变量key中,并送入SBUF寄存器中,当发送完毕后,及时用软件将TI清零。主函数的主要编码如下:

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

SM0=0;

SM1=1;

EA=1;

ES=1;

3.3.2 接收程序的编码

接收程序的编码包括头文件,主函数,串口中断函数。主函数中,设置接收机的波特率和发送机相同,均为9600,启动定时器T1,设置接收机串口的工作方式为方式1,启动串口中断,并设置允许接收REN=1;熄灭数码管,这样接收机启动后在没有收到发送机按键时不显示任何内容,只有接收到传送过来的按键的段码值才对应显示。串口中断函数的功能是根据接收的段码值的不同,选择数码管并显示对应的键值,在显示完后,RI=0;软件复位RI。

3.4 下载及联机调试

在发送程序和接收程序编制完成后,在集成开发环境Keil uvison4中编译生成两个独立的*.HEX文件,并经和EM3-V22单片机开发仪配套的下载软件PZISP下载软件分别下载到EM3-V22单片机开发仪A、B机中。下载完成后关闭两个开发实验仪电源,以方便两台实验仪的硬件电路连接,连接完成后打开两台实验仪的电源,即可开始实验,由于发送机是矩阵键盘按下,接收机是数码管显示,可以很直观地向学生演示发送机的按键按下后,其键值在接收机的数码管上显示,实现了双机通信。

4 结束语

在单片机串口课程的教学中引入双机通信案例作为单片机串口教学的实践案例,所用的课时只有2个课时,但它所带来的课堂教学效果却非常显著。一是同学们掌握了单片机串口方式1可以适用的实践场合,比如双机的单工通信、半双工通信、全双工通信;二是同学们掌握的了串口通信的硬件设计,发送机串口的数据线TXD、RXD如何和接收方的数据线TXD、RXD相连,两个单片机的串口如何实现共地,如何进行其他辅助线路的连接;三是掌握了双机通信代码编写的技巧,即波特率的设置方法、串口工作方式设置的方法、发送机发送的启动代码、接收机接收的启动代码、串口中断函数的编写方法等;四是掌握多个单片机协同工作的软件编程,发送机的发送程序和接收机的接收程序需要单独编写,编辑及编译使用的集成开发环境的使用,下载软件的下载方法,如何操作硬件验证双机通信。掌握这些技能后,学生即可灵活熟练地将单片机串口的理论应用于实践案例,解决诸如单片机和单片机之间的全双工串口通信,单片机和计算机之间的全双工串口通信等一系列高级的实践应用,从而真正掌握了单片机串口的知识和技能。在我校4个专业三届同学的单片机教学中,我们一直把双机通信案例作为单片机串口教学的重点内容加以推广,学生通过双机通信案例的教学,不但掌握了单片机串口的工作原理,更能灵活熟练地将单片机串口的理论应用于实践中,收到了非常好的教学效果。因此,双机通信案例可以推广到全国高等学校单片机课程的教学中。

参考文献:

[1] 金国华,毕胜,王璐, 等.单片机实践教学体系构建与实施[J].电气电子教学学报,2018,40(6):129-133.

[2] 黄青颖.单片机课程项目化教学探索[J].山东工业技术,2018,(24):232,196.

[3] 杜衍喆,魏庆云,郭跃虎.基于能力培养的单片机实验教学模式研究[J].集成电路应用,2019,36(2):52-53.

[4] 王建菊,黄华.单片机开发仪在单片机教学中的使用[J].电子世界,2019,(4):27-28.

[5] 曾德康.基于单片机的数据串口通信研究[J].通信电源技术,2019,36(3):194-195.

[6] 朱昆,杨佳尧.单片机中多串口扩展技术的应用分析[J].数字化用户,2019,25(2):56.

[7] 王春光,姜兴伟,吕德东.一种基于单片机的串口联网服务器系统设计[J].数字化用户,2018,24(48):118.

[8] 徐宏庆,郑龙根.基于单片机串口报文的数据采集模块的研制[J].工业控制计算机,2018,31(11):44-45,47.

【通联编辑:王力】

猜你喜欢

波特率中断串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于FPGA的异步串行通信波特率容错设计
跟踪导练(二)(5)
千里移防,卫勤保障不中断
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
基于并行控制的FPGA多串口拓展实现
AT89C51与中断有关的寄存器功能表解
C*Core芯片SCI串口波特率容限优化
FPGA内嵌PowerPC的中断响应分析