PROTEUS仿真软件在单片机实践课程中的应用
2018-01-04楼俊君程启明赵永熹
楼俊君 程启明 赵永熹
摘要:该文提出了将仿真软件PROTEUS应用于单片机实践课程教学,并以简易电子琴的设计为实例说明如何具体应用该软件辅助实践教学。因为仿真软件所见即所得,直观高效,提高了学生的学习兴趣,达到了事半功倍的效果。
关键词:仿真软件;单片机;实践
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)30-0091-02
1 前言
单片机作为微型计算机的一个分支,具有可靠性高、体积小、抗干扰能力强等优点,现在已经广泛应用于工业控制、智能仪器仪表、机电一体化等领域。单片机课程在高校理工科专业都已普遍开设。《单片机系统实践》是我院为自动化和测控两个专业大学生开设的必修课,是学生完成《单片机原理》这一理论课程的学习后开设的理论和实践结合的综合性课程。众所周知,单片机课程的学习不能仅以接触了单片机原理以及单片机编程语言,就算完成了单片机的学习任务,而应以单片机应用系统的开发与设计为学习目标。单片机应用系统的电路设计、PCB板制作、元器件焊接等内容,是单片机应用系统的开发与设计的一个重要环节,是一个从硬件到软件、从理论到实践的系统工程,这些也是单片机课程需要掌握的知识。因此,与时俱进,应用新的教学工具软件和新的教学方法,进行单片机实践课程的教学改革,对提高单片机课程的教学质量有非常重要的意义。
传统的单片机实践课程中,学生编写的程序需要在硬件电路完成制板、元器件焊接完成的情况下才能进行调试,这样很不直观。而且一旦硬件电路有改动,则要重新制板焊接才能调试,这需要学生投入大量的时间和精力,导致学生的工作效率不高。
为了解决上述问题,我院使用PROTEUS仿真软件,建立单片机虚拟实验平台,应用于单片机课程的课堂教学和实践课程中,取得了很好的教学效果。
Proteus软件是由英国LABCENTER公司推出的一款功能强大的电子设计自动化软件,它具有单片机系统仿真功能,能够很好地支持多种单片机,系统器件库包含大量元器件,并提供了多种虚拟仪器,使得仅用一台PC在纯软件环境中完成单片机系统设计、调试、运行成为可能,是单片机实践课最理想的开发平台。
2 基于仿真软件PROTEUS的单片机实践教学实例
下面就以一款简易电子琴的设计为例介绍PROTEUS在整个实践教学中的应用。这款电子琴基本结构虽然简单,但是它能够弹奏出声音,而且能够简单的播放内置歌曲,同时在弹奏和播放的时候会显示出对应的音阶,方便寻找音感。这款电子琴比较适用于儿童初学音乐,内置音乐都是旋律简单但却又耳熟能详,方便学习。另外设计操作简便,没有任何复杂操作,简单明了,通过简单的按键选择播放或者弹奏,非常适合作为音乐启迪玩具,
2.1 电子琴的仿真演示
在课堂提出电子琴如何用单片机为内核设计实现的问题后学生们都感觉很新奇有趣、贴近生活,然后教师调出PROTEUS仿真软件里已经画好的电子琴原理图在线仿真运行,开始仿真后,首先会看到显示模块显示的预设字样,会发现代表着弹奏的LED在亮着,按下矩阵键盘的左上角第一个按键后,会听到响亮的声音“dao”,同时会显示出该键的键号。若一直按着不送开,它便会一直响,松开此按键,声音消失。依次按其他的按键后,会发出“re”“mi”“fa”等不同的声音,同时显示不同的键号。接下来选择到播放按键,按下矩阵键盘的一个按键后,代表弹奏的LED灯灭,代表播放的LED会亮起来,在显示模块的上半部分会显示变化的字符,也就是不断变化着的音调,还有歌曲的序号,在下半部分会显示出歌曲名字的拼音,与此同时扬声器会播放出这首歌的旋律,一首歌曲放完之后,仍然会处于播放状态,但是声音会停下来,也就是它不会按着顺序自动播放,必须要人为的按下按键之后,它才可以继续的播放。教师可以即兴弹奏一首流行歌曲如小苹果,轻快的旋律响起,自然激发起学生的学习兴趣。
接下来教师就可以趁热打铁,介绍电路的工作原理、用到的关键技术、电路原理图设计、软件程序设计等知识。从原理上来说,本设计以stc89c52型号的单片机为控制中心,控制该设计的发声,显示等功能。通过电源电路向单片机等整个电路系统供电,晶振电路向单片机提供基准频率,保证工作频率的稳定,同时可以提供时钟信号,复位电路的设计防止系统跑飞,可以回到程序的初始位置,通过烧录电路方便修改程序后,将程序下载到单片机内部,实现其功能。通过中断的方式选择播放还是弹奏,然后扫描矩阵键盘确定是哪一个按键按下,通过功放电路播放相应的歌曲或发出相应的音阶的响声,显示电路显示出相应的歌曲名字和对应音符。
2.2 建立PROTEUS原理图
由之前的分析可以确定电子琴的硬件模块结构如图2所示。
在电子琴的设计中最关键的技术就是如何弹奏出音乐。众所周知,声音是由振动产生的,振动的频率越高,音调也会越高,振幅越大,声音也就会越大。所以本设计的原理就是通过单片机发出不同频率的电流,通过放大器放大电流,通过扬声器将电流的频率转换为振动的频率,从而能够发出不同音调的声音。
在本设计中若要产生不同的声音,也就意味着对于每个音符都要产生音频脉冲。音频脉冲的频率要与各个音符的频率一致,每个音符都会对应一个特定的频率,单片机虽然不能直接控制声音,但是它可以发出高低电平,而且可以控制高低电平转换时间。而程序开发者需要做的就是将音符所对应的频率,通过T0计时器,计算出固定的时间,然后转换高低电平信号,自然也就出现了所谓的电平脉冲,然后经过扬声器便可以发出声音。
2.3 软件程序设计、编译、调试和仿真
软件编程最简单的理解方式就是人与计算机之间的对话,计算机只会明白编程语言。为了使计算机能够明白人的意图,人必须要将自己解决問题的思路方法,创新创意以计算机的语言传递过去,使得计算机一步步按照人初始的意愿执行下去。本设计的编程语言采用的是C语言,是一门高级语言,非常适合硬件编程。但是单片机只能理解机器语言,所以必须使用keil这一款编译软件,通过编译器将C语言转为汇编语言,进而翻译成机器语言,然后烧录到单片机中。
通过画出流程图,可以看出整个程序的编程思路。在确定编程任务后,不能马上就去写程序,更重要的是先理清逻辑,把思路理清楚,避免到编程后期出现错误,程序混乱的问题。在画好程序框图后,对于程序的修改也会变得非常的方便,只要明白需要修改的功能,顺着程序流程图的思路,便能很快找到需要修改的部分。
如下图3所示是主程序设计的流程图。
本设计控制播放或者弹奏的按键是由中断来控制的。这样做的优点是通过中断设置按键处理程序会得到立即执行,会使按键的反应速度大大提升。另外重要的是通过检测下降沿来确定按键是否按下,所以又可以达到一定的消除抖动的作用。在中断程序内写入控制LED灯的程序,有同时可以判断是否按键是有效的,从而避免出现操作上的失误。
课堂演示讲解成功后,学生的学习兴趣正浓,教师应布置学生到实验室进行实践,让学生先在PROTEUS仿真环境下调试通过,再完成实际电路板的焊接制作。当然这个过程中可能会出现不少问题,如学生可能把LED正负极接错、单片机引脚接错、编写的软件程序有语法错误编译失败等,当学生出现问题时提倡学生自己去查找原因,找资料或互相讨论,实在找不到原因时教师再给予帮助。当学生成功地完成了仿真和实物后,就十分有成就感,对单片机产生浓厚的兴趣了。
3 结论
通过将仿真软件PROTEUS应用于单片机实践课程教学,取得了非常不错的效果。因为仿真软件所见即所得,直观高效,提高了学生的学习兴趣,达到了事半功倍的效果,值得在后期的实践课教学中推广。
参考文献:
[1] 楼俊君,程启明,黄云峰,赵永熹.PROTEUS仿真软件在单片机课程创新教改中的应用[J].兰州石化职业技术学院学报,2017,17(01):64-66.
[2] 王伟.基于PROTEUS与KEIL C51软件平台的单片机仿真教学[J].电子制作,2015,13.
[3] 林立.单片机原理及应用——基于Proteus和Keil C[M].北京:电子工业出版社,2009.
【通联编辑:梁书】