时间:2024-05-04
刘玉玲
摘要:单片机课程在理工科专业中地位重要,也是后续开展相关实践活动的必备工具。针对该课程的实践用性,教学中较易出现侧重理论、内容抽象、实验箱由于集成度过高达不到实验目的等客观弊端,提出一系列仿真技术应用到教学中,如Keil C(单片机编程软件)、Proteus(EDA工具软件)、VSPD(虚拟串口软件)和串口调试助手等软件,并对存储器、定时器/计数器模块、串口模块等几个重要的片内资源给出了具体的实操步骤。该教学方法灵活、成本低、简单直观,可提高学生的学习兴趣,从实际教学看的确取得了良好的教学效果。
关键词:虚拟仿真技术;单片机教学;实践教学
中图分类号:G424 文献标识码:A
文章编号:1009-3044(2020)28-0228-03
Abstract:The course of principle and application of single-chip microcomputer occupies an important position in science and engineering majors, and it is also an essential tool for students to carry out subsequent practical activities. Because of the practical application, it is easy to have some objective disadvantages in teaching, such as focusing on theory, abstract content, too high integration of experiment box to achieve the purpose of the experiment, etc. on this basis, a series of simulation technologies are put forward, such as Keil C (SCM programming software), Proteus (EDA tool software), VSPD (virtual serial port software) and serial debugging assistant. The practical operation steps are given for memory, timer/counter module, serial port module, and other important on-chip resources. This teaching method is flexible, low-cost, simple, and intuitive, greatly enhance students' interest in learning, and indeed achieve good teaching results from the actual teaching.
Key words:Virtual simulation technology; SCM teaching;Practice Teaching
1 单片机教学现状
单片机原理及应用是电子、电气、通信、机械制造等相关专业的一门重要的专业基础课[1],它是一门理论与实践结合紧密,并强调动手能力的课程,课程相对概念抽象,学生普遍反映不好学,难以理解单片机的内部结构,而单片机的传统教学多以课堂讲解为主,少与硬件结合,仅依赖于有限的实验箱根本不能真正参与其中,学生无法得知单片机系统内部具体的工作情况,课堂效率较低[2]。
2 基于虚拟仿真的教学改革
虚拟仿真教学是利用实物和计算机软件共同模拟出真实的情境,让学生在模拟的情境下进行学习和探究[3]。该教学则以其高效率、低成本、内容丰富、性能有限和安全等优势得到越来越多的推广,因此在单片机这一课程教学中具有重要的意义[4][5]。
虚拟仿真技术提供了一个较为理想的教学手段,近年国内外也有不少学者针对虚拟仿真技术对单片机课程提出相关改革方案,比如将Proteus和Keil C软件结合在一起,但鲜有人对这种结合的具体操作给出相应的方案,本次单片机教学改革就针对几个重要的部分给出具体的虚拟软件仿真的操作,让学生真正可以在课堂和实验室就深入了解单片机,知道它系统内部的运行状况,具体调试该如何进行等相关实操[6]。
2.1存储器(Keil)
51单片机有4K的片内程序存储器,可以外扩至64K,128B片内数据存储器(52系列有256B),64K片外數据存储器[7]。这些存储器在学生初次接触单片机时,完全没有概念,也不清楚这与实际的物理结构有何联系。以下几种方式,让学生懂得如何虚拟地查看存储器。
(1)片内数据存储器的查看
图1是将0x00-0x07的8个数据传送至40H开始的8个片内数据存储器中,想要查看数据是否正确传送,只需在Keil的Debug模式下打开memory1对话框,在地址栏输入D:0x40,D表示访问内部数据存储器,则memory1的下方显示40H开始的片内数据存储器。程序运行完毕,8个数据正确传送至地址为40H-47H的内部数据存储器中,如图1所示。若是汇编语言书写,此时的传送为MOV指令。
(2)程序存储器的查看
图2是以0x2000开始的8个程序存储器中的数据传送至0x40开始的8个片内数据存储器中。在Keil的Debug模式下打开memory1和memory2对话框,分别输入C:0x2000和D:0x40,其中C表示访问程序存储器,则memory1和memory2的下方对应显示2000H和40H开始的一系列程序存储器和片内数据存储器。程序运行完毕,以0x2000开始的8个数据,拷贝至0x40开始的8个片内数据存储器中,如图2所示。若是汇编语言书写,此时的传送为MOVC指令。
(3)片外数据存储器的查看
图3是以0x2000开始的8个片外存储器中的数据传送至0x40开始的8个片内数据存储器中。在Keil的Debug模式下打开memory1和memory2对话框,分别输入X:0x2000和D:0x40,其中X表示访问片外数据存储器,则memory1和memory2的下方对应显示2000H和40H开始的一系列片外和片内数据存储器。程序运行完毕,以0x2000开始的8个数据,拷贝至0x40开始的8个片内数据存储器中,如图3所示。若是汇编语言书写,此时的传送为MOVX指令。
2.2 定时器/计数器模块(Protues+Keil)
定时器/计数器模块是单片机系统中一个很重要的内部资源,在大部分控制场合都会用到。定时器的定时时间可以通过公式计算得出,但并不直观,或者计算错误而无从发觉。通过Protues和Keil的结合,可以虛拟地仿真出定时时间。具体步骤如下:
(1)Keil编好程序,定时时间(比如1ms)到IO电平翻转一次。
(2)设置晶振为12Mhz。KeilàProjectàOptions for Targettarget 1àTargetàXtal(Mhz)设为12.0。
(3)生成HEX文件。KeilàProjectàOptions for Targettarget 1àOutputàCreate HEX File前勾选。
(4)打开Proteus,画单片机最小系统图,IO口接虚拟示波器。双击单片机器件,载入Keil生成的HEX文件,并设置晶振频率为12Mhz。点击Proteus的仿真键,波形图显示如图4所示,图上可看出方波0.5m一格,高低电平各两格,即1ms信号翻转一次,与原设计吻合。
除定时器模块外,单片机的内部资源和大部分外设(篇幅有限,其他资源不一一赘述,步骤和方法同定时器模块)都可以通过Keil连接Protues进行虚拟仿真[8-10],在软件平台完成硬件的设计和验证,既可以提高学生的直观认知,又可以节约设计时间和成本。
2.3串口模块(Keil+VSPD+串口调试助手)
众所周知,串口通信通常存在于两台PC机、两个单片机或者一个单片机和一台PC机之间,但如果当前只有PC1,且PC1没有物理串口(如大多数笔记本电脑),此时就需要安装VSPD(virtual serial ports driver 虚拟串口软件)[11][12],并建立虚拟串口之间的连接。之后,Keil就可以在虚拟环境下与串口调试助手进行通信[13][14]。具体步骤如下:
(1) Keil中编好程序
(2)打开VSPD进行串口设计,点击右侧Add pair添加串口对,如图5所示COM1和COM2已经虚拟互联。
(3)Keil与虚拟出的串口进行绑定。Keil进入Debug模式,在下方的command窗口输入MODE COM19600,0,8,1(参数分别为设置串口1的波特率、奇偶校验位、数据位、停止位),ASSIGN COM1
(4)打开串口调试助手,设置串口为COM2,设置与Keil相同的波特率、奇偶校验位、数据位和停止位。之后通过Keil发送数据,在串口调试助手中显示出来。也可以通过串口调试助手发送数据,在Keil中接收。图6是Keil中连续发送0x10-01f的16个数据,串口调试助手可正确地接收到。
3总结
单片机课程的实践应用性较强,学生如果不是切身体会,很难了解真谛,以上利用各种虚拟仿真工具,把抽象的事物具体化,让学生更加透彻地认知单片机。虚拟仿真技术的优点在于弱化了系统对硬件的依赖,降低了实验室建设成本,不再受限于实验条件,而是随时随地可以进行实践。学生可进一步在此基础上进行单片机实际的硬件系统搭建,由于前期的软件仿真,整个系统的设计时间缩短,成功率提高,从而使得单片机教学质量得到有效的改善[15]。
参考文献:
[1] 王洪生.单片机课程虚拟仿真教学改革的探讨[J].科技风,2019(27):49.
[2] 万军,李岩,韩学超.基于翻转课堂的单片机硬件实习教学改革[J].中国教育技术装备,2017(4):144-146.
[3] 许燕.虚拟仿真技术在单片机教学中的应用分析[J].现代盐化工,2019(4):92-93.
[4] 程艺苑,李根全,姬晓旭,等.虚拟仿真技术在《单片机原理及其应用》教学中的应用[J].南阳师范学院学报,2018,17(4):55-58.
[5] 陈海卫,盛卫锋,化春键,等.基于虚拟仿真平台的单片机课程教学的思考[J].教育教学论坛,2019(2):226-227.
[6] 谭筠梅,李玉龙,王履程.基于Proteus的单片机虚拟仿真实验案例设计[J].实验技术与管理,2018,35(5):122-125.
[7] 徐春辉.单片微机原理及应用[M].北京:电子工业出版社,2013.
[8] 李刚仁,王进.基于单片机AT89S52的实时电子钟的Proteus仿真[J].公路与汽运,2011(2):20-22,54.
[9] 鹿玉红,戴彦,江培蕾.基于PROTEUS的DS18B20数字温度计的仿真实现[J].福建电脑,2010,26(1):117,139.
[10] 王波.基于proteus的51单片机16×64LED的设计[J].西安航空技术高等专科学校学报,2011,29(1):67-70.
[11] 周文谊.基于单片机虚拟串口实现交通灯远程控制仿真[J].科技风,2016(18):237.
[12] 田社平,方向忠,张峰.VSPD和Proteus串口通信教学实验[J].实验室研究与探索,2018,37(9):211-214,334.
[13] 从宏寿,檀华江.基于Proteus虚拟环境单片机与PC串口通信[J].自动化与仪器仪表,2014(12):117-119.
[14] 王忠远,张凤桐.基于Proteus仿真软件实现单片机与PC机多字节串行通信[J].电脑知识与技术,2016,12(36):261-262,280.
[15] 金国华,翟朝霞,周丽娜,等.Proteus和Keil软件在单片机理论与实践教学中的应用[J].中国现代教育装备,2017(3):43-45.
【通联编辑:唐一东】
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!