《单片机原理及其应用》课程是高校电气工程及其自动化、计算机以及电子信息类相关专业的一门非常重要的专业核心课程,也是学生参加大学生学科竞赛和进行科技创新活动必须熟练掌握的一门课程. 学习和掌握以单片机为控制器的嵌入式系统设计,有助于学生毕业后面对以智能制造为核心的中国制造2025 和工业4. 0 时代的挑战. 单片机技术涉及数电、通信、微机接口及编程等许多方面的知识,是一种软硬结合的技术. 传统教学一般先理论后实践,理论和实践相脱节,同时由于实验实践环节的课时有限,导致学生觉得理论知识晦涩难懂,电路和程序不够直观,动手训练机会太少,从而对单片机的学习失去兴趣,教学效果并不乐观,所以,传统的单片机教学已经无法满足培养高素质应用型专业人才的需要. 使用Proteus 软件和Keil 软件,将虚拟仿真技术应用于单片机课程教学的各个环节,可以培养学生软硬件的设计能力,提高学生的实践动手能力和创新能力. 本文以单片机系统中常用的七段数码管的应用为实例,详细叙述了虚拟仿真技术的具体应用. 实践表明,虚拟仿真技术将抽象的单片机教学内容形象化、直观化,使得枯燥无味的理论知识变得生动有趣,激发了学生的学习兴趣,改善了教学效果.
1 单片机教学现状以及存在的问题
1. 1 课堂教学抽象不直观
传统单片机课程主要采用在教室运用板书和多媒体课件相结合的手段来进行理论教学,然后再到实验室用单片机的试验箱和电脑来进行一些验证性的实验,往往是先课堂学习理论知识,再进行实验室的实践操作,这种模式使得实践操作与理论知识相脱节. 在课堂的理论教学中,主要讲解单片机的内部原理和软件编程,往往内容比较抽象,学生难以理解,课堂实例无法检验接口电路是否可行、所编程序是否有效以及程序在电路中的运行结果是否正确,所以导致学生没有直观的体验和认识,也就感觉枯燥无味,学习积极性不高. 在实验室的实验环节,实验箱和程序都是现成的,且大多数实验为验证性实验,只需简单的连线即可完成,导致学生无法了解单片机接口电路具体的工作原理,因此学习兴趣也不大.
1. 2 实践环节受时间和资源的限制
单片机的实践要求比较高,相对于传统的教学模式,理论教学之后进入实验室进行实践,而在实验室中往往只能在实验箱中进行单片机的一些应用系统的验证,学生不能针对具体功能进行自行设计,具有一定的局限性. 其次,在计算机、电源和实验箱等设备连接过程中,一旦操作失误,就会导致电路板、仿真接口等的损坏,从而导致不能看到实验结果. 由于受到时间和资源的限制,学生接触实验箱的学时有限,所以学生动手训练的机会不多,导致学生不能充分发挥能动性,使学生的综合设计能力和创新意识受限.
2 虚拟仿真技术在单片机教学中的应用
在单片机的教学过程中,可以采用Proteus 软件和Keil 软件建立单片机虚拟实验平台,应用于单片机的课堂教学和实验实践.
Proteus是英国Labcenter Electronics 公司研制的一款可用于设计和开发单片机系统的仿真平台软件,具有丰富的器件资源,另外还提供了大量的模拟与数字元器件和外部设备,其中包括了各种虚拟仪器,例如电压表、电流表、示波器和信号发生器等,可以用来仿真和分析各种模拟电路与集成电路,对单片机及其外围电路组成的综合系统进行交互仿真. Keil软件是德国Keil 公司出品的一个商业软件,是目前最流行的开发80C51 系列单片机的软件工具. 用Keil 软件进行编译生成单片机可执行的HEX 文件,再将HEX文件加载到Proteus 中所绘制的硬件电路图中的单片机中即可实现模拟仿真.
Proteus 软件和Keil 软件可以建立一个设备齐全的虚拟单片机实验室,只需一台计算机,单片机的硬件设计、软件设计和系统调试都可以实现. 在课堂上,通过虚拟实验室,可以让学生很直观地观察单片机系统的仿真过程和实验结果,从而加深对理论知识的理解. 在实验实践中,学生可以随时随地通过仿真软件
来设计单片机系统,进行仿真和验证电路设计的合理性,从而节省了制作实际电路板的过程,并且可以灵活、高效地修改电路的设计,不会产生元器件的损耗. 虚拟仿真技术在单片机教学中的应用可以弥补传统教学的不足,提高课堂效率和学习兴趣,有助于学生创新实践能力的提高.
下面以七段数码管的应用为实例,介绍采用Proteus 软件与Keil 软件进行单片机应用系统模拟仿真的详细过程.
3 七段数码管的应用教学实例
七段数码管是一种常用的数字显示器件,具有功耗低、寿命长、尺寸小等优点,被广泛应用于单片机的控制系统中. 七段数码管的教学内容通常放在单片机的并行口的应用中,在讲授七段数码管的基本工作原理之后,可以通过Proteus 软件对教学内容进行仿真模拟,来辅助课堂讲授,以帮助学生对单片机控制七段数码的内容进行深入的理解. 本文以设计一个一位秒表为例来说明.
3. 1 设计要求
运用单片机和七段数码管设计一个一位秒表,要求开始时显示0,之后每隔1s 显示内容加1,显示内容从0 ~ 9 不断循环. 设计Proteus 仿真电路,编写程序,并进行仿真电路的验证.
图1 仿真电路图
3. 2 硬件设计
单片机AT89C51 是一位秒表的主控核心部分,首先由晶振电路和复位电路构成单片机的最小应用系统,然后单片机驱动一位共阴极的七段数码管进行时间的动态显示,即可以采用单片机的P0、P1、P2 或P3 任意一个口和七段数码管相连,同时需要锁存器将输出的数值进行保持. 打开Proteus 软件的ISIS 7 Professional 界面,从丰富的电子元件库中,通过关键字查询添加相应的电子元件并进行连接,绘制电路原理图如图1 所示,其中所用到的电子元件名字、关键字和参数属性具体如表1 所示. Proteus 搭建的电路原理图和真实电路比较接近,非常形象直观,容易让学生理解系统的硬件组成.
3. 3 软件设计
该实例采用C 语言进行程序设计. 单片机要使七段数码管显示出相应的数字,必须使单片机的P0 口输出对应的段码值,为了实现0 ~ 9 的循环显示,可以通过查表的方式,将对应数字的段码值通过P0 口输出,每隔1s 循环一次. 我们可以将共阴极的七段数码管0 ~ 9 的段码值存放在单片机的片外程序存储区即code 区,定义数组为: unsigned char code LED_CODE[]= { 0x3f,0 x06,0x5b,0 x4f,0 x66,0x6d,0x7d,0x07,0x7f,0x6f} .
表1 所用元器件情况
如果已学过单片机的定时器/计数器,则可以引导采用定时器/计数器的中断方式产生精确的1s 定时; 如果尚未讲到定时器/计数器,则可以引导学生采用软件延时的方法来实现非精确的1s 延时.
3. 4 仿真调试
图2 电路仿真结果
使用Keil 软件的编译器来编写C 语言程序,最终生成单片机可以执行的HEX 文件. 在Proteus 软件的仿真电路中,双击单片机AT89C51,将可执行的HEX 文件加载到芯片中,点击Play 运行按钮,通过观察运行结果来判断系统硬件与软件设计的正确性. 文中的实例运行后可以看到七段数码管循环显示数字0 ~ 9 以及各个电路端口的电平情况. 此外,还可以点击单步执行和暂停按钮来观察电路中间某一时刻的执行情况. 本文实例某一时刻的电路仿真结果如图2 所示,可以看到七段数码管的公共极是接地,说明是共阴极的数码管,锁存器一端是单片机的P0 口输出的电平情况,另一端连接的是七段数码管.
3. 5 扩展实践
在通过以上虚拟仿真实现一位秒表之后,可以鼓励学生将已经验证过的电路和程序做成实物,可以用实验室的单片机实验箱实现,也可以自己焊板子搭建电路实现. 甚至还可以鼓励学生发散思维,由一位秒表扩展为多位秒表、万年历等系统,鼓励学生课下进行各类创新实践,从而熟练掌握七段数码管和单片机的接口电路.
七段数码管是单片机系统中常用的显示器件,通过一位秒表的仿真实践,可以使学生掌握七段数码管和单片机接口电路以及软件编程,对学生将来的单片机系统的开发应用起帮助和促进作用.
4 总结
在单片机的课堂和实践环节中,采用虚拟仿真技术可以使学生充分接触和利用现代信息技术的硬件和软件,把抽象的理论知识通过仿真技术形象化,从而帮助学生对单片机的结构、原理、应用以及编程进行深入理解. 另外,虚拟仿真技术可以不受硬件实验资源的限制,学生可以随时随地利用自己的电脑来获得更多的动手实践的机会,同时也可以选择更多实验室无法接触到的元件和仪器,可以在教师的启发指导下积极独立地完成各类项目任务,从而增强教学效果,可以引导学生自主学习,锻炼学生的实践能力,从而激发学生创新思维和单片机开发应用能力.
本站部分图片和内容来源于网络,版权归原作者或原公司所有,如果您认为我们侵犯了您的版权请告知我们将立即删除