Proteus 在单片机教学中的应用.doc
浅谈Proteus 在单片机教学中的应用 1、引言Proteus在全球广泛应用,是由Labcenter Electronics 公司开发的EDA工具软件。它的功能强大,集电路设计、制版及仿真等多种功能于一身,能够对电工、电子学科涉及的电子线路进行设计与分析,特别是在对于单片机系统的设计和仿真,并且功能齐全,界面多彩,是单片机课堂教学的得力助手。2、Proteus 在单片机教学中实际应用单片机的广泛应用于各个领域,各种产品只要是用上了单片机,就使产品升级并常在产品前加上“智能”。它非常普及又在不断推陈出新,是高校电类专业的一门重要专业课程,但如用传统的课堂式教学内容枯燥专业性强学生很难掌握;若是采用硬件实训教学则需要教学硬件投入,并加上学生使用操作不当会增加硬件器材消耗。Proteus则解决了上述的问题:它不仅将许多单片机功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果,而且不需要硬件投入,学生普遍反映,通过使用Proteus 软件进行单片机系统仿真设计对单片机的学习比单纯学习书本知识更容易接受,更容易提高。下面以按键值检测为例,详细说明Proteus 在单片机系统设计的使用。2.1 原理单片机常用的输入设备是按键,在日常使用中人对单片机的控制大都是通过键盘将信息输入的,按键的好会将影响则人对单片机系统的控制,因此在使用前需要对其进行功能检测以确定好坏。按键值检测方法可一次检测四个按键,是较为简单的一种检测:用单片机与蜂鸣器电路和键盘电路连接。依次将四个按键排上序号S1、S2、S3、S4,单片机通过键盘扫描程序对所按下的健进行确认,并执行对应的操作用来判断按键的好坏。S1键按下时,蜂鸣器响1声;S2键按下时,蜂鸣器响2声;S3键按下时,蜂鸣器响3声;S4键按下时,蜂鸣器响4声。2.2 电路(1)单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。现在市面上有众多型号的单片机供选择,实际上一般使用的较多的是51系列单片机,它的最小系统一般应该包括:单片机、时钟电路、复位电路。复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。这里采用按键复位,除在系统上电时复位,在系统运行中可通过按键将系统复位。时钟电路是微型计算机的心脏,它控制着计算机的工作节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。51系列单片机的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号:另一种为外部方式,时钟信号由外部引入。这里采用内部方式,在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30左右pF,晶振的频率取值在1.2MHz12MHz之间。(2)独立按键电路在单片机系统中,当所设置的功能键或数字键按下时,系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。 对于一组键或一个键盘,总有一个接口电路与 CPU 相连。 CPU 可以采用查询或中断方式了解有无将键输入,并检查是哪一个键按下,然后转入执行该键的功能程序。(3)蜂鸣器电路在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等,这里就用来提示是哪个按键按下。2.3 程序系统程序常用汇编语言和C语言编程,两者有各自的优点,对于一般使用者使用C语言就行了,对于初学者使用汇编语言了解一些底层的操作,对于专业单片机编程者需要精通汇编。2.3.1 C语言编程(1) 独立键盘扫描程序机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。 在硬件上可采用在键输出端加 R-S 触发器 ( 双稳态触发器 ) 或单稳态触发器构成去抖动电路。软件上采取的措施是:在检测到有按键按下时,执行一个 10 ms 左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。这里采用软件去抖动。/*延时程序*/void delay(uchar x)uchar y;for(;x>0;x-)for(y=114;y>0;y-);/*独立键盘扫描程序*/uchar Key()if(Key1=0)delay(10);if(Key1=1)return(0);elsereturn(1);/按键S1按下if(Key2=0)delay(10);if(Key2=1)return(0);elsereturn(2);/按键S2按下if(Key3=0)delay(10);if(Key3=1)return(0);elsereturn(3); /按键S3按下if(Key4=0)delay(10);if(Key4=1)return(0);elsereturn(4); /按键S4按下(2)主函数通过执行独立键盘扫描程序确定按键并返回相应值,根据值蜂鸣器鸣叫对应次数。/*主函数*/void main()uchar Keytemp;while(1)Keytemp=Key();switch(Keytemp)case 1: Key5=0;/蜂鸣器鸣叫 delay(1000); Key5=1; break;case 2:. 2.4仿真双击单片机AT89C51,打开其属性编辑框,在“program file”栏中,单击打开按钮,选取后缀名为*.HEX的目标代码文件。在“clock frequency”栏中设置时钟频率为12MHZ。在Proteus仿真界面中单击运行按钮,全速启动仿真3、结语51系列单片机系统只是EDA软件Proteus 的一方面,对其系列的CPU都可进行设计仿真。EDA技术开启了电子行业设计的一场革命,高速发展,因此我们应让学生尽早接触在教学中使用。