单片机仿真

2024-11-13

单片机仿真(共11篇)

单片机仿真 篇1

单片机在嵌入式电子线路系统中的应用极大地推动了现代电子技术和自动化智能化工控系统的发展。实际应用中直接应用各电子元器件搭建电路系统对其进行性能分析, 不仅成本高、风险高, 而且可控性较差。为提升单片机电路设计与应用的灵活性, 多种单片机虚拟仿真软件被应用到单片机电子线路设计与分析中进行仿真分析。目前常用的仿真软件如Proteus、Keil、Multisim等不仅可以应用其所提供的丰富、功能强大的元器件库和开发平台进行单片机虚拟系统搭建, 还可以对所搭建的系统进行编程和仿真分析, 从而让开发人员便捷高效地对动态电路运行中的各参量进行实时观察。仿真软件在单片机电路系统中的应用极大地降低了学习和应用成本, 提升了分析效率。

1 电子仿真软件的功能特点

电子仿真软件允许在计算机平台中对特定的单片机电路系统方案进行模拟分析。在电路形式确定后, 仿真软件可以针对电路系统中的任意元器件参数进行容差和灵敏度分析, 获取整个单片机电路系统运行中的各端口实时参数。仿真软件的应用极大地降低了硬件搭建成本, 缩短了整个电路系统设计与分析周期。特别地, 仿真软件还可以对某些特定参数的变化进行定量统计与分析, 这是传统的电路测量方法所无法实现的。

此外, 为获得更加完整的性能分析, 还需要对电路系统进行极端环境性、破坏性测试。在这些测试中, 仿真软件所具有的优势更为明显。例如, 为获得单片机电路设计方案的耐高压特性或耐大电流特性, 需要人为地向电路提供高电压或大电流, 这些变量参数的输入很有会对电路系统造成不可恢复性破坏, 阻碍正常测试与分析流程的进行。但是仿真软件的应用则可以有效避免这种情况的发生, 在保证高效率、高精度的前提下避免对元器件的破坏, 增加电路设计方案的成功概率。

需要说明的是, 仿真所得到的各性能数据和参数在某些情况下仍旧无法替代真实电路的测量与分析, 但是可以作为一种数据依据来指导实际单片机电路的设计与优化。

2 电子仿真软件在单片机电路仿真中的应用

在单片机电路仿真中常用的仿真软件有Proteus、SPICE、Multisim、Keil等。这些软件可以向用户提供多种单片机驱动, 用户可以根据设计方案选用适当的单片机控制器和周围器件设计单片机电路模型, 然后根据模型进行布线和模块设计, 进而利用所搭建的虚拟硬件电路进行仿真和调试。以Proteus和Keil为例, 可以进行如下仿真应用。

2.1 仿真系统搭建

Proteus集成了SPICE的电路仿真、PCB设计以及自动布线等功能, 可以对单片机硬件进行模拟。Keil被广泛应用于单片机编译和软件仿真。两软件联调应用可以实现单片机电路系统从硬件到软件再到整个软件综合的整个过程仿真。

具体的, 在部署完上述两个软件后首先要对Proteus的运行环境进行设置, 然后可以在Keil中通过Proteus VSM Simulator设置选项完整与Proteus的关联设置, 之后则需要在Protues软件环境中启用debug-use remote debug monitor, 最后进入Keil软件中完成工程debug的相关设置即可。

2.2 基于51单片机的键盘显示电路仿真分析

应用上述仿真系统可以搭建基于51单片机的键盘显示电路, 对该电路进行仿真分析不仅可以在硬件层面完成电路图的设计与布线, 还能够在数据层面对各寄存器和引脚的参数变化进行观察。

仿真电路中的单片机选用AT89C51作为微控制器核心、选用七段数码管进行数字显示, 选用矩阵的键盘作为输入键盘。单片机各属性可以在单片机属性中进行设置, 如时钟频率、复位等。仿真电路搭建完毕后可以调用Keil软件对单片机进行编程, 以控制电路具体功能的实现。同时, 设置单步运行方式还可以对电路进行调试, 观察一个或多个时钟周期后各引脚或寄存器的数据参数。

2.3 基于51单片机的定时计数电路仿真分析

单片机电路中常常需要控制生成特定频率特定占空比的时钟信号, 该信号无法直接由时钟信号提供, 但是可以通过单片机电路的定时计数功能实现。如若希望单片机电路可以生成一个频率稳定为50Hz的方波信号可以通过以下方式完成:

(1) 选用AT89C51单片机定时器0执行计数功能, 根据定时器0的工作方式和所需要获得的方波信号的频率以及时钟频率可以计算得到定时计数器的初值。 (2) 在其基础上搭建仿真电路图。为观察确认所搭建的硬件电路是否能够完成相应的操作, 可以在方波输出引脚添加一个虚拟示波器对输出结果进行波形观察。需要说明的是, 电路搭建完毕后的单片机的控制指令编写与相关变量赋值是通过Keil软件完成的。此外, 在电路仿真运行过程中还可以对各参数进行调整以观察该电路输出信号的变化情况。

3 结语

随着信息技术的发展, 电子仿真软件也得到了不断的完善和升级, 其所能够模拟的器件越来越多, 所能够实现的功能也越来越丰富。利用仿真软件对单片机电路进行仿真模拟不仅可以实现传统测试方式所无法实现的效果, 还能够极大地提升电路分析灵活性和工作效率。

参考文献

[1]董普松.Protues在单片机系统设计中的应用[J].现代电子技术, 2008 (14)

[2]陈令荣.仿真软件在单片机教学中的应用[J].计算机光盘软件与应用, 2013 (3)

[3]甘雨.电路仿真软件的特点和选用[J].电子世界, 2012 (11)

单片机仿真 篇2

单片机课程是电子信息类专业的核心课程。单片机芯片中包含微处理器、存储器和外部接口。单片机系统是以单片机芯片为核心开发的应用系统,单片机系统的应用的领域非常广泛,几乎涉及到我们能够想到的各个领域,如生产、生活、军事、教育等各个方面。

单片机芯片的性能直接决定单片机系统的功能,所以单片芯片在高速发展以适应单片机系统功能不断发展的新要求。单片机课程的特点是应用性非常强,使用的芯片发展非常快,整个课程的开发应该围绕使用什么芯片使课程保持先进性,课程有哪些应用项目使课程提高理论结合实践的应用性两个核心,以教学为主题展开。围绕着两个核心,我们做了做了大量研究工作,结合课程的应用项目开发了单片机实验平台。在以教学为主题的研究中将单片机实验平台和PROTUES构建的仿真平台相结合,形成立体化的教学模式,提高教学的效率和效果。

一、单片机实验平台的开发

(一)、使用什么芯片

单片机实验平台开发的第一个要确定的是使用什么样的芯片。在当前流行的众多单片机芯片中,我们选择了AVR单片机芯片ATmega16。AVR单片机芯片是ATMEL公司的`产品,发展非常快,正在逐步成为主流单片机芯片。其优点是它是新型的高速8位单片机,运行速度高,AVR单片机的片上资源非常丰富,具有极高的性价比。因此AVR最小系统构成简单,程序下载方便,只需要一条ISP下载线,进入AVR单片机开发的门槛较低,费用低廉,基于以上出发点,我们选择了AVR单片机芯片。

(二)、实验平台的功能模块和课程项目

实验平台的功能模块来源于实际应用,我们对单片机的应用领域进行了分析,提取了一些公共的应用和特殊应用,做为实验平台的功能模块。在实验平台的开发过程中课程项目开发和实验平台功能模块的开发是相辅相成的。这些模块直接支持课程开发中的具体项目。

1.8-12V电源模块:为电路板提供电源。

2.ATmega16L最小系统模块:是整个实验板的核心,它提供系统的复位、系统所使用的时钟电路和并口下载的接口。

3.16路开关:用于对各功能模块的开关控制。

4.8位发光二极管:可实现LED的指示、流水灯和学习C语言基础等项目。

5.8位数码管:可实现数码的显示功能,如数码的静态显示,动态显示,时钟显示等项目;

6.8*8LED显示:可实现字符点阵的显示项目。

7.液晶1602:可实现16*2液晶显示功能项目

8.74HC595芯片:可实现数字I/O口的串行扩展项目。

9.键盘:可实现4个按键的输入和外部中断源实验项目。

10.4*3矩阵键盘:可实现12个按键的输入项目。

11.频率发生器MC4060:实现单片机定时/计数器的外部时钟及时钟分频等项目。

12.EEPROM存储器:可实现ATmega16外部存储器的的扩展项目。

13.时钟芯片DS1302:是一个时钟功能芯片,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。利用它可构成一个时间可调的实时时钟。

14.I2C总线24C01:

15.AD转换器:可实现数/模转换和模/数转换项目。

16.MX232串口通信:可实现ATmega16单片机的异步串行通讯项目。

17.温度传感器DS18B20:可实现ATmega16单片机的温度控制项目。

18蜂鸣器:发声的执行部件,可实现报警和音乐播放等的执行项目。

19.红外接收头:红外信号的接收部件,可实现遥控等项目。

20.放大电路LM358:可实现电流信号的放大功能。

(三)、软件开发工具

在编程语言中我们选择了C语言,在软件平台的选择上,我们使用了CodeVisionAVR作为C语言程序的编辑和编译工具,使用SLISP作为程序的下载工具。

二、仿真平台的应用

在课程的开发中仅研究教什么还远远不够,还应该研究怎样教。使用自己开发实验平台是一个好的解决方法,但还存在效率不高,灵活性不够的缺点。因此,我们在研究怎样教时,使用了单片机的仿真平台Protues。Protues软件是英国Labcenter electronics公司出版的EDA工具软件,它是目前最好的仿真单片机及外围器件的工具。

使用实验平台和仿真平台配合进行单片机教学和学习的过程如下

1. 分析项目要求;

2. 在Protues中画出电路原理图;

3. 根据原理图在CodeVisionAVR中编写、编辑、编译C语言程序;

4. 在Protues中将编译好的目标程序加载到Mega16芯片中;

5. 在Protues中仿真;

6. 在单片机实验平台中连接电路;

7. 使用SLISP软件通过下载线将目标程序下载到实验平台,完成一个学习过程。

三、基于实验平台和仿真平台的单片机实验室建设

从上面的讨论可知,硬件的实验平台和软件的仿真平台的结合,使单片机的课程即保证了实践第一的特色,又做到了灵活多变,事半功倍。在单片机实验室的建设上也就自然将实验平台和仿真平台有机地结合。下面是以上课规模50人,一人一机的单片机实验室建设方案。

1.奔腾及以上的PC电脑50台;

2.并口下载线,50根;

3.5V高稳定专用稳压电源50台;

4.AVR单片机JTAG仿真器个;

5.自行开发的单片机嵌入式开放实验平台50台;

6.C语言程序的编辑和编译环境CodeVisionAVR

7.SLISP单片机程序下载软件

8.PROTUES单片机仿真软件

9.Multisim电子仿真软件

四、课程的考核体系的建立

考核中结合实验平台和仿真平台的项目应用情况,采用过程化考核,注重平时考核,建立日常考核、测验和期末考核三级考核体系,均采用项目考核,以培养学生的实际应用能力。将平时随堂小项目的完成做为日常考核,如流水灯、数码管、LED点阵、LCD液晶显示、按键控制、定时计数器等、将具有典型代表性的项目作为测验如矩阵键盘、音乐播放器、串行通信等,将综合项目做为期末考核如数字时钟、温度测量等。在三级考核体系中日常占30%,测验占30%,期末占40%。

单片机仿真 篇3

关键词:红外遥控AVR单片机Proteus仿真

中图分类号:TP273文献标识码:A文章编号:1674-098X(2011)06(a)-0069-01

红外遥控技术实际上是一种远程遥控技术,它在工业控制、家用电器等领域应用广泛。红外遥控是一种无线、非接触式的控制技术,具有抗干扰能力强,信息传输可靠等优点,被越来越多的电子设备广泛采用,并逐渐应用到计算机系统中。

1 红外遥控的原理及特点

红外遥控的发射端采用红外发光二极管来发出经过调制的红外光波;红外接收端主要由红外接收二极管组成,能将红外发射端发出的红外光转换为相应的电信号。

由于红外遥控不具备像无线电遥控那样穿过障碍物去控制被控对象的能力,所以同类产品的红外遥控器,可以有相同的遥控编码,而不会出现遥控信号“串门”的情况。这为大批量生产以及在家用电器上普及红外遥控提供了极大的方便。

2 Proteus仿真软件简介

Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及其外围器件。它是目前最好的仿真单片机及其外围器件的工具。使用Proteus丰富的硬件资源库和强大的仿真能力,它能够仿真现阶段大部分常用型号的单片机及其外围电子系统。在软件调试方面,将其与单片机编译器联合调试,可以立即进行硬、软件联调的系统仿真,直接使用仿真器来调试系统,观察调试效果。

3 设计思路

红外光的波长为950nm,低于人眼的可见光谱,因此我们是看不见这种光线的。在大量的电子产品中都能使用红外遥控器对受控设备进行非接触式控制,但由于有热量的物体都能发出红外光,所以为了保证红外遥控器发出的红外信号能够不受干扰地被接收端识别,应将红外信号进行编码。为了解决这个问题,需要将待发送的编码进行调制。红外发射端和接收端都调谐到一定的频率,这个频率就是收发双方所使用的载波频率。

使用红外信号发送编码时,我们使用的是Proteus组件IRLINK兼容SONY的SIRC协议。SIRC红外控制协议有3个版本:12位、15位及20位版本。本设计中使用的是12位版本,其中5位为地址编码,7位为命令编码,使用的载波频率为40KHz。其中地址编码与命令编码需要事先预定义好。

SONY的SIRC协议使用脉宽调制,使用不同的脉冲宽度来对比特位进行编码。对于40KHz的载波,它用1.2ms载波脉冲宽度表示逻辑“1”,用0.6ms载波脉冲宽度表示逻辑“0”,载波脉冲之间用0.6ms的固定空闲周期进行分隔。在发送12位的编码之前要先发送2.4ms宽度的脉冲信号作为起始信号,随后是0.6ms的空闲周期,接下来再发送7位命令与5位地址,发送顺序是从低位向高位逐次发送。

4 具体实现方法

当前版本的Proteus中还未有调制发送SIRC滤波与解码的仿真器件。本设计是通过两块AVR单片机来实现的,其中一块ATmega8用于生成滤波信号,调制发送自己编制好的SIRC编码,另一块ATmega16则通过兼容SIRC协议的IRLINK组件接收红外信号并进行解码。前者在本设计中作为“红外遥控器”使用,后者则作为红外受控器件使用。

程序首先编写出输出600μs红外载波的脉宽程序,因为载波脉冲宽度有3种,为2.4ms、1.2ms、0.6ms,它们分别是600μs的4倍、2倍和1倍,这样调用时分别给出参数值4、2、1即可输出3种不同宽度的滤波,它们分别表示起始信号,逻辑“1”与逻辑“0”。

在编写好了输出脉宽程序后,在发送12位红外编码数据的函数中就可以随意调用它了,函数首先发送2.4ms起始信号,然后开始发送12位编码,控制这12位编码由低位到高位的逐次比特发送过程。当遇到1时就发送1.2ms宽度载波脉冲,当遇到0时就发送0.6ms宽度载波脉冲,每发送完一位后接着送出0.6ms的空闲区,该空闲区用来分隔所调制的各个比特位。

在调试过程中,可以用虚拟示波器的A、B两通道观察IRLINK的I/O信号,可观察到两组波形,上面是发送的调制信号,前面较宽的区域是2.4ms的载波信号,之间间隔的区域是0.6ms的间隔区域,如我们发送编码“403”时,按从后向前的顺序就可观察到所显示的频带编码是010000000011。下面的波形是通过IRLINK解调的结果,滤波已去掉,我们可以清晰地观察到在ATmega16上接收到的脉冲波的“0”和“1”两种逻辑状態。

最后就是ATmega16单片机在已接收到滤波信号后,如何解析出对应的12位SIRC编码的问题。在滤波信号中,所有的高电平都与600μs的间隔区域相对应,它们的宽度完全相同。而所有的低电平则具有不同的宽度,SIRC编码就是由这些不同宽度的低电平来分别表示逻辑“0”和“1”的。由IRLINK解调后的信号通过INT0送入ATmega16,再通过编写INT0中断程序来进一步完成解调后的信号解码工作。对于最终解析出来的12位编码,在本设计中将其看成3个独立的字节,将其分别显示在3个数码管上。

5 结语

上述设计说明,利用Proteus仿真可以实现红外遥控功能。并且利用Proteus软件所提供的虚拟仪器和仪表来设计单片机系统,不仅经济优势明显,而且大大提高了开发效率。但我们还应该意识到,这种实现方式还存在着一定的弊端,比如,Proteus元件库中的模拟器件类型较少,可供我们选择的余地较小等缺点。而且,仿真也不能完全地取代实物,只有将Proteus软件的模拟结果应用于真实的电路系统中,才能真正完成一个实体项目。

参考文献

[1]彭伟.单片机C语言程序设计实例100例——基于AVR+Protues仿真[M].北京:北航出版社,2010.

单片机硬件仿真实用方案 篇4

关键词:单片机硬件仿真,存储器,地址总线,数据总线,系统时钟

0 引言

单片机作为计算机发展的一个重要分支领域,广泛应用于人类生活的各个领域。单片机仿真是单片机应用系统软件开发调试的一个常用方法,单片机仿真分为硬件仿真和软件仿真。尽管软件仿真具有无需搭建硬件电路就可以对程序进行验证的优点,但无法完全反映真实硬件的运行状况,因此还要通过硬件仿真来完成最终的设计。本文将提出一种性价比很高的、实用的单片机硬件仿真解决方案,通过控制单片机的系统时种和运行系统监控程序,读取单片机数据总线的数据,实现单片机硬件仿真的功能。

1 总体方案

图1为实现单片机硬件仿真的总体结构框图。主控MCU与PC通信,将目标代码下载到FLASH。主控MCU通过控制被仿真单片机的系统时钟,就可以控制被仿真单片机运行FLASH中的目标代码,实现单步运行程序、让程序运行到指定的程序行停止或查看存储器资源等调试功能。

2 工作原理

要实现此方案的单片机硬件仿真功能,必须要有一个被仿真单片机的仿真芯片,此芯片与被仿真单片机相比,其它硬件相同,但没有内部程序存储器,而且多预留出程序地址总线AD16、程序数据总线DATA16、系统数据总线SDA8和一些仿真调试的引脚。

如图2所示,主控MCU通过16根地址线(ADDR16)、16根数据线(DATA16)、CE线、OE线、WE线与FLASH相连。仿真芯片的16根程序地址总线AD16通过三态缓冲 器74HC244与FLASH的地址线相连,16根程序数据总线DATA16与FLASH的数据线相连,8根系统数据总线SDA8与主控MCU相连。

以下按下载程序、全速运行、单步运行、查看存储器资源4种情况分别详述其工作原理。

2.1 下载程序

主控MCU的P1.0输出高电平,禁止74HC244 ;主控MCU的P1.1输出低电平,选通FLASH ;P1.2输出高电平,P1.3输出低电平,让FLASH处于写状态。仿真芯片即可与PC通信,将PC端的目标代码写到FLASH中,完成下载程序的功能。

2.2 全速运行

主控MCU的P1.0输出低电平,选通74HC244,仿真芯片的程序地址总线AD16与FLASH的地址线相连 ;主控MCU的P1.1、P1.2输出低电平,P1.3输出高电平,让FLASH处于读状态,仿真芯片就可从FLASH中读取目标代码 ;主控MCU的P1.4输出高电平,P1.5不输出,由晶振提供系统时钟给仿真芯片。这样,仿真芯片即可模拟被仿真单片机全速运行。

2.3 单步运行

主控MCU的P1.0输出低电 平,选通74HC244,ICE芯片的程 序地址总线AD16与FLASH的地址线相连 ;主控MCU的P1.1、P1.2输出低电平,P1.3输出高电平,让FLASH处于读状态,仿真芯片就可从FLASH中读取目标代码。当需要单步运行时,主控MCU的P1.4输出低电平,切断晶振提供的系统时钟,由主控MCU的P1.5给仿真芯片提供系统时钟。这样,主控MCU即可通过P1.5控制系统时钟,从而控制仿真芯片运行目标代码,实现单步运行功能。

2.4 查看存储器资源

当仿真芯片停止运行时,还可以查看存储器资源,观察到单片机内部各个存储单元的状态,完全反映真实硬件的运行状况。

当需要查看存储器资源时,主控MCU修改FLASH中的数据,将目标代码改为一段系统监控程序。主控MCU的P1.4输出低电平,切断晶振提供的系统时钟,由主控MCU的P1.5给仿真芯片提供系统时钟,逐条运行系统监控程序。与此同时,主控MCU通过仿真芯片的系统数据总线SDA8读取系统数据,即可逐个读出存储器的值,完成查看存储器资源的功能。

全部存储器都读完后,主控MCU要将FLASH中的系统监控程序还原为目标代码。

3 结束语

单片机仿真 篇5

【关键词】 LED显示屏 Proteus仿真 单片机 点阵字库

1 引言

LED显示屏具有功耗小、亮度高,寿命长,性能稳定,驱动简单以及可视距离远等优点,已经成为最受欢迎的信息传播媒体工具。目前,LED显示屏应用十分广泛,如城市广场群显示、道路交通信息显示、世界杯体育场馆显示比赛信息、世界博览会会会场馆照明等各个领域。显示汉字信息时,一般需要多个LED点阵显示组合,最常见的组合方式有8x8,16×16,32×16等。本文将介绍由Proteus软件进行的LED显示屏仿真电路设计。

2 Proteus软件介绍

Proteus 7.4软件集电路设计、制版及仿真等多种功能于一身,是目前世界上较为先进、完整的嵌入式系统设计与仿真平台。它是一种可视化的支持多种型号单片机(如51 、PIC、AVR 等),并且支持与当前流行的单片机开发环境( Keil、IAR等) 连接调试的软硬件仿真系统。针对微控制系统与外设的混合电路的电路仿真、软件仿真、系统协同仿真,做到了一体化和互动效果。

PROTEUS 是纯软件环境,可免费下载。 在进行单片机系统的开发时,可以先在软件环境中模拟通过,再进行硬件的投入。这样处理,不仅省时省力,也可以节省因为方案不正确所造成的硬件投入的浪费。本文利AT89C5l单片机作为主控制器,采用Proteus软件实现对16×16 LED点阵汉字的分批显示。仿真运行通过后再进行点阵显示电路制作,大大缩减实际开发周期,节约了开发成本。

3 硬件電路设计

点阵式LED滚动汉字显示屏硬件电路分单片机控制部分、显示驱动、显示模块。设计框图如图1所示。

电路设计的核心是利用单片机读取显示字型码,通过驱动电路对16×16 LED点阵进行动态列扫描,以实现汉字的移动显示。设计选用的单片机为ATMEL公司的AT89C51,显示屏采用16×16 LED点阵。由于Proteus软件目前版本中还没有16×16点阵模块,设计中采用4个8×8点阵模块组合成1个16×16点阵模块。

LED显示屏驱动电路分阳极驱动和阴极驱动。阳极驱动电路向16×16点阵送字型码,本设计采用74HC595。阴极驱动电路对16×16点阵进行列扫描,本设计采用74HCl54。

4 软件设计

AT89C51单片机只有8位数据总线,要向16×16点阵送出16行阳极驱动,需要送两次,或先送上8行,或先送下8行,为了能够实现每一列字型码的完整显示,利用两片74HC595进行锁存,否则会出现字型残缺现象。

16×16共阴极LED点阵由4个8×8点阵构成,需要显示汉字字符串“单片机”,可通过建立数据表格的形式进行。通过16×16点阵汉字字模提取软件,可提取各显示汉字的字模数据, “单片机”字型码表如下:

本设计利用了Keil μVision2软件进行程序编写。 在新建Keil项目时选择AT89C51单片机作为CPU;编写C语言源程序并检查;确认程序无误后在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生LED.HEX文件。

5 系统调试与仿真

在利用Proteus、 Keil μVision2软件里分别设计好LED显示屏的硬件电路和程序部分后就可以进行系统调试了。Proteus仿真时,单片机需要加载程序,加载程序为从软件设计中获得的LED.HEX文件。在Proteus ISIS中,选中AT89C51并单击鼠标左键,对AT89C51进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载LED.HEX文件。设置完毕相应参数后就可以开始仿真了。仿真过程中如有硬件问题可在Proteus软件中直接修改,如有软件问题可在Keil μVision2中修改,通过Keil与Proteus的联合调试就可以得到满意的结果。

6 结论

利用Proteus实现了对点阵式LED滚动汉字显示屏的仿真,显示了“单片机”3个字,达到了良好的设计效果。该仿真电路接近实际电路,可以直接由该电路利用相关软件设计印制电路板,加上电源、时钟和复位电路,就可以制作出实际的点阵式LED汉字显示屏。通过前期仿真缩短了开发周期,降低了开发成本,不失为进行单片机系统设计的有效手段。

参考文献:

[1] 朱清慧,张凤蕊,翟天嵩,等. Proteus 教程2电子线路设计、制版与仿真[M]. 北京:清华大学出版社,2008 :2892310

[2] 朱清慧, 王志奎. Proteus 在L ED 点阵滚动显示屏设计中的应用[J].液晶与显示, 2009(4)

[3] 孙凌燕,黄允千. Proteus 与Keil 软件的整合在单片机实验开发中的应用[J]. 实验室研究与探索, 2008(4)

基于单片机的电子时钟的仿真 篇6

传统的教学模式已经不能适应现代工科人才的培养, 传统的教学模式是以教师讲, 学生听为主的教学模式, 然后外加实验环节来构成对工科学生全方位的培养, 但是理想与现实的差距是始终避免不了的;教学环节与实验环节的脱节, 带来的是学生对理论的学习与动手实践的学习的分离, 很难达到预定的理论与实践互相促进的效果。然而, 实验室资源和时空的限制, 必然带来了学生参加实践的困难, 也极大的打击了学生参加实践的积极性。

目前, 计算机的发展极大的促进了虚拟仪器的发展, 诸如EDA, CAD, Multisim, Proteus, Matalab等。虚拟仪器所带来的直接好处则是利用计算机的虚拟环境搭建虚拟的硬件平台来代替实际的硬件资源, 而这种仿真的环境与现实的参数通常相差无几。虚拟仪器的开发最初的设想是方便开发, 提高开发效率, 缩短开发周期, 排除掉很多开发中的非核心技术所带来的调试问题。而虚拟仪器的这种特性也刚好可以用在高校的理工科教学中, 这样能极大的避免了硬件资源的限制给学生的学习带来的诸多非知识型的障碍。

本文主要应用到的软件有ISIS 7 Professional和Keil u Vision4, 由ISIS 7 Professional来仿真电子钟的所有硬件平台, 用Keil u Vision4编写的C程序来替代复杂的汇编语言。

2 Keilc51平台与Proteus仿真系统的简介

Proteus软件是是一种混合电路仿真工具, 它包括模数电路的仿真, 单片机及其外围电路组成的仿真等。它由ISIS (一款便捷的电子系统仿真平台软件) 和ARES (一款高级的布线编辑软件) 两个软件所构成, 集成混合模式SPICE电路仿真, 高级原理布图, PCB设计及自动布线来构成了一个完整的EDA电子设计自动化系统。

Keil C51是一种编译型程序设计语言, 它兼顾了多种高级语言的特点, 并具备汇编语言的功能。Keil u Vision4提供丰富的库函数和功能强大的集成开发调试工具, 利用它编译后生成的汇编代码, 其目标代码效率非常之高, 在开发大型软件时更能体现高级语言的优势。

3 基于51单片机的电子钟硬件

以51单片机电子钟为例, 介绍利用仿真软件来进行电子钟的设计与仿真。

整个电路分为:晶振电路, 复位电路, 显示模块以及按键模块。里面所用到的主要器件有单片机AT89C51, 8为数码管, 排阻, 按键以及晶振。具体的系统模块图与仿真电路图如下:

4 电子钟的软件流程

本电子钟主要是通过按键来设置时间, 通过8位数码管显示时、分、秒。

由于用Keil C很容易做到软件功能的模块化, 因此, 本电子钟的主程序主要包括了:初始化程序, 显示子程序, 计数程序以及键盘扫描子程序, 如图2。显示子程序主要完成了具体如何让单片机控制9位数码管在什么地方显示什么数字;计数程序的功能则主要完成到什么时间数码管应该显示什么内容;键盘扫描子程序的功能则是如何组合按下三个按键来实现设定时分秒的时间显示。

这里主要介绍按键功能流程:

(1) 按key1键一下, 则进入到调秒钟模式, 如图3, 此时再按一下key2键数码管上秒数加1, 计数器也同时加1;或者按一下key3键数码管上秒数减1, 计数器也同时减1。此时, 计数器里的秒钟变量采用模60来实现, 最大不超过60, 最小不小于0; (2) 按key1键两下, 则进入到调分钟模式, 其他原理同上; (3) 如按key1键三下, 则进入到调时钟模式, 其他原理同上。此时, 计数器里的时钟变量采用模24来实现, 最大不超过24, 最小不小于0。

5 结论

(1) 利用Proteus与Keil C51确实能达到仿真学习的目的, 尽管有些细节性的东西不能被仿真出来, 比如虚焊等。

(2) 本文的电子时钟结构简单, 还可以进一步通过1602的LCD屏幕来显示更多的信息, 比如年月日等, 也可以更换定时更为精确地时钟芯片来确保时间的精准。

摘要:电子信息技术相关专业的学生应以具体的工程实践来不断的提升技术能力, 而现实的条件却在时空以及原材料的配置上打消了学生积极参与技能实践的热情, 因此本文以电子仿真软件proteus以及keilc平台来虚拟真实的电子时钟为例, 说明利用虚拟仿真仪器在工科生的课外实践中的优势以及可行性。

关键词:AT89C51,proteus仿真,电路原理图,电子时钟

参考文献

[1]曹洪奎, 马莹莹, 李宁.基于Proteus的单片机系统设计与仿真[J].辽宁工学院学报.2007.8:4 (27) .

[2]李丽丽, 施伟.基于AT89S52的多功能电子钟设计与仿真[J].微计算机信息, 2011:11 (27) .

单片机计数编程问题的仿真教学 篇7

关键词:计数程序,设计修改

1 软件介绍与仿真教学

PROTEUS软件是英国Lab Center Electronics公司出版的EDA (电子设计自动化) 工具软件。 Keil C51 是美国Keil Software公司出品的51 系列兼容单片机C语言软件开发系统。两软件的联合调试是单片机仿真教学的基础。通过实验室仿真实验, 可以使学生深入学习单片机编程技术。起到单纯的理论教学无法企及的教学高度。本文通过0 ~ 59 计数器的基本编程和仿真的变化过程, 来探讨此类仿真教学的特点。

2 计数问题基本编程与创新设计

设计一个计数电路, 在7段数码管上显示。要求按一下按键, 计数器增加一个值。从0开始到59计数。首先在PROTEUS的设计区, 设计对应的电路图。见图1。然后, 使用KEIL C51程序设计对应的C语言程序。如图2所示。

在PROTEUS程序中调用KEIL C51 编译后的HEX十六进制程序, 开始联合调试软硬件程序。程序的调试结果见图3。这是基本程序的的设计与调试过程。当学生按照设计要求, 调试成功基本程序后, 将获得一种成功的喜悦。在基本程序基础上, 对学生提出再次修改的要求。要求学生修改按键的硬件接口电路。软件的相应口定义将随之改变。然后重新仿真整个过程;修改百位计数器的变量值, 使计数由0 ~ 59, 变为0 ~ 10、0 ~ 20、…0 ~ 100, 重复整个仿真过程;将秒脉冲发生器放到按键位置代替按键, 变成秒计数器。通过这些变化, 启发学生积极主动的创新思维, 使学生深入理解与自我单片机设计的精髓, 达到一通百通, 融会贯通的学习效果。实践证明, 使用PROTEUS和KEIL C51 仿真软件, 在基础编程的基础上, 扩展思路中变化设计方案, 可以极大地促进学生的学习积极性和主动性, 提高学生对获得知识的兴趣, 提高学生的自主创新能力。

参考文献

[1]《单片机C语言应用100例第二版》王东峰, 陈圆圆, 郭向阳编著电子工业出版社2013.5

[2]《8051单片机C程序设计完全手册》求是科技编著人民邮电出版社2006.04

基于单片机的电梯控制仿真系统 篇8

楼层设为8层, 键盘数字键1~8用来键入希望停的楼层, 8×8点阵指示电梯当前所处的状态是上升还是下降, 数码管显示电梯当前所处的楼层。要求“电梯”能按以下方式运行:

1) 设当前电梯停在某层。键入1~8数字键, 如键入的数字与当前电梯停层同, 则不发生任何动作;若不同则相应楼层的数码管亮。电梯则自动判别上升或下降 (在运行过程中数码管显示楼层变化) 一直到达希望停的楼层 (数码管显示该楼层, 相应蜂鸣器响表示电梯门打开) ;

2) 设当前电梯正在上升或下降运行 (此时数码管显示楼层变化, 数码管指示希望抵达的楼层) , 若键入新的希望停的楼层数字 (相应的数码管亮) , 则对同方向 (上升或下降) 未到的楼层能停, 对其他情况则先停原希望停的楼层, 然后按运行键后继续进行) 。

3) 扩展功能:要求电梯具有直达的功能, 满足特殊情况的需要。即在直达模式下, 即使沿途按下了相应的按钮, 电梯也不停。这个功能在医院的紧急情况下经常使用。

2 系统的硬件电路设计

2.1 单片机的最小系统

单片机的最小系统包括:晶振电路、复位电路 (包括上电复位、按键复位) 和EA引脚接高电平。P0口作输出口, 所以加上拉电阻, 在这加了一个排阻。

2.2 8×8点阵

8×8点阵模块中用74HC573缓冲器来分别驱动点阵的行线和列线。即分别用P0口连接一片74HC573来驱动行线, 用P2口连接一片74HC573来驱动列线。

2.3 蜂鸣器电路

用单片机的P3.5引脚来接8550三极管的基极, 由于8550是PNP的三极管, 把蜂鸣器接在三极管的集电极上。

2.4 按键模块

用单片机的P1.5~P1.7和P3.2引脚分别连接在7289芯片的DA-TA、CLK、cs和ke y引脚上。对于7289芯片上的DG0和DG1作为列线, 7289芯片上的SA~SG和DP作为按键的行线, 连接成16个按键。

2.5 数码管模块

数码管的位选端由7289芯片的DG0~DG7来控制, 段选端由7289芯片的DP及SA~SG来控制。

3 系统的软件设计

根据需求分析, 首先把软件设计划分为相对独立的功能模块, 系统详细模块划分, 包括:检测按键函数模块、数码管显示模块、电梯直达模块等3个模块, 每个模块包含若干相关的函数

模块划分

1) 主函数:包括:初始化及循环调用检测按键函数

2) 检测按键函数模块:包括:7289写一个字节、7289读取按键值、外部中断零初始化

3) 数码管显示模块:包括7289控制的数码管显示函数

4) 电梯直达模块:包括:读取按键值和点阵显示函数

其主程序流程图如图1所示

4 结语

本文提出的电梯控制仿真系统既能直观透彻地反映电梯的运行规律, 达到事半功倍的效果, 又能将单片机控制技术应用于电梯技术的教学和科研中。本系统已经应用于现代电梯控制技术的教学中, 取到了良好的教学效果。同时, 本系统可以为深入开发电梯控制系统的关键技术提供实际有效的平台。

摘要:研究了基于单片机的一个用矩阵键盘、8×8点阵和8个数码管模拟电梯运行的控制系统。采用模块化设计的方法, 该系统使用和扩展方便, 为各种新型电梯控制技术的进一步研究提供平台。

关键词:单片机,点阵,数码管,模块化

参考文献

[1]钟晓.PLC及变频器在电梯控制系统中的应用.装备制造技术, 2009.

[2]岳庆来.电梯现代智能控制技术.北京:机械工业出版社, 2009.

单片机仿真 篇9

单片机软件开发过程中, 软件调试遇到的各种问题常令初学者感到不知所措。实际上, 各种仿真开发软件的程序调试基本方法和技巧大同小异, 掌握正确的程序调试基本技巧, 对于排查这些程序错误问题可以起到举一反三、事半功倍的效果。软件调试是单片机技术人员必须掌握的重要基本技能。下面以单片机常用开发软件Keil为例, 通过一个项目任务实例来介绍单片机软件仿真与调试的方法。

二、Keil仿真与调试

点击运行软件Keil u Vision2, 其调试操作步骤大体可以分为5步:

1. 创建工程

在项目开发中, 并不是仅有一个用户源程序就够了, 还要为这个项目选择CPU型号、设置编译和调试参数, 有一些项目还会有多个文件组成。因此将这些参数设置和所需要的所有文件统称为一个工程, 存放于专门的工程文件夹下。这里先建立一个工程文件夹如F:exam。

(1) 创建新工程。鼠标左键单击主菜单Project->New Project, 弹出“Create New Project”对话框, 用鼠标选择你要保存工程的文件夹 (如F:exam) , 输入新工程名 (如“exam”) , 单击“保存”按键。

(2) 在随后弹出的CPU型号设置对话框中选择单片机的型号 (如“AT89C51”) , 单击“确定”完成。

2. 建立源程序文件并加入工程

(1) 鼠标左键单击菜单“File->New新建文件。弹出图1窗口, 自动进入编辑工作模式。

(2) 在文本窗口中输入和编辑用户的源程序。

【项目任务】设计一种花样彩灯程序, 实现单片机P1口驱动相连的8个发光二极管依次循环点亮。

(3) 单击菜单“File->Save as”弹出文件保存对话框, 选择工程文件夹 (“F:exam”) , 输入源程序文件名 (如“exam.asm”) , 点击“保存”按钮。注意汇编源程序的扩展名必须为*.asm, C51源程序扩展名必须为*.c。

(4) 将源程序加入工程。用鼠标点击图标“Target1”前的“+”号, 展开后右键单击Source Group弹出快捷菜单, 点击“Add File to Group‘Source Group 1’”项弹出源程序加入工程对话框, 选择刚保存的用户源程序exam.asm, 点击ADD按钮加入工程, 点击Close关闭对话框。

3. 工程参数设置

用鼠标左键单击主菜单Project->Options for Target'Target1弹出工程参数设置对话框。关于工程参数设置的内容很多, 篇幅所限, 这里仅介绍通常需要设置的三个参数:

(1) 设置CPU型号。前面已经进行了设置。

(2) 在设置对话框的“Target”标签下“Xtal (Mhz) ”处输入单片机的晶振 (如“12”) 如图2。

(3) 在设置对话框的“Output”标签下, 选中“Create HEX file”项。用以编译生成可执行的机器码hex文件, 如图3所示。该hex文件可以通过编程器写入或下载到单片机中运行。

4. 编译源文件

鼠标左键单击主菜单Project->Built target或快捷按钮编译文件。

若有语法错误, 输出窗口将有相应提示信息。双击提示信息行, 光标会停留在源程序出错处, 如图4所示, 经检查发现:本程序第3条DJNZ指令被错误输入成了DJNA。用户可根据提示修改源程序, 然后再次编译。注意, Keil具有语法检查功能, 源程序中正确的指令关键词将变颜色, 没变色的为输入错误, 方便用户查找语法错误。

若编译后输出信息窗口显示“0 Errors (s) , 0Warning (s) ”, 则说明源程序的语法错误已经全部排除。注意:有Errors不能Debug, 也不产生HEX码, 有Warning是允许的, 可以运行。

5. 调试程序

源程序编译通过, 表明语法正确, 却并不能保证该程序能够正确运行, 还需要对其逻辑功能进行调试。Keil软件具有很强的软件仿真功能。

鼠标左击主菜单Debug->StartStop Debug Session子菜单或调试/编辑模式切换按钮, 进入调试程序工作模式, 软件窗口如图5所示。重复点击该按钮可以实现在编辑模式和调试模式之间进行切换。

调试程序时的程序运行控制按钮从左到右依次为复位、连续运行, 暂停、单步、过程单步、执行完当前子程序、运行到光标当前行。复位按钮模拟芯片的复位, 它将使程序回到最开头处执行。当程序处于停止状态时复位才有效, 程序处于运行状态时停止按钮才有效。

(1) 为了方便观察程序调试过程中各变量和RAM单元的中间结果, 点击主菜单View->Watch&Call Stack Window和View->Memory Window打开观察变量窗口和存储器窗口进行显示。由于本例还要观察P1口的输出变化, 可以点击主菜单Peripherals->I/O-Ports->Port 1打开I/O口P1的观察窗口。

(2) 程序调试。

程序可以单步执行或连续执行。连续执行是指一条指令执行完后接着连续立即执行下一条, 中间不停止。这样程序执行的速度很快, 可以看到程序执行的总体效果, 即最终结果是正确或错误。但如果程序有错, 则难以确认具体出错地方。例如本例中点击连续运行按钮后, P1口输出01H后便始终保持不变, 这显然与花样彩灯程序的循环显示要求不符, 程序运行出错, 如图6所示。

单步执行指每执行完一条指令后即停止, 等待命令执行下一行程序, 此时可以观察该条指令执行后得到的实际结果, 对比分析是否与预期结果一致, 借此可以找到程序中的错误原因所在。这种方式的缺点是需要时间长, 排查错误效率很低, 尤其当程序很大时。

因此, 对于用户确认没有错误的程序段可以采用连续运行, 对怀疑出错或容易出错的地方则单步执行, 对比排查错误, 这样调试的效率将会高一些。

本例通过单步执行, 发现程序运行过程中循环变量R3的值总在250和249之间变化, 而且R1、R2、R7均始终无变化, 如图7所示。对比程序分析, 发现出现了死循环, 原因在于第1条“DJNZ R3, DEL2”的转移目的地址为DEL2, 应该改为DEL3。

回到编辑状态, 修改为“DJNZ R3, DEL3”, 编译后再次进入调试工作模式时, 发现故障已经排除。此时P1口的输出仅1位高电平, 且依次向左循环移位, R1、R2、R3、R7正常递减变化。如图8所示。

(3) 断点设置

程序调试时, 一些程序行必须满足一定的条件才能被执行到 (如程序中某变量达到一定的值、按键被按下、有中断产生等) , 这些条件往往是异步发生或难以预先设定的, 这类问题采用单步执行的方法是很难调试的, 这时可使用另一种重要的调试方法—断点设置。可以使用Debug->Insert/Remove Break Point设置或移除断点。

断点设置的方法有多种, 常用的是在某一程序行设置断点, 设置好断点后可以连续运行程序, 一旦执行到该程序即停止, 可在此观察有关变量值, 对比分析程序预期理想值, 以确定问题所在。

三、结束语

单片机仿真 篇10

摘要:单片机课程是一门实践性强的课程,实验教学对学生掌握单片机系统开发与应用至关重要。为解决目前实验教学过程中存在的实验内容单一、验证性实验为主、实验课时及硬件条件有限等问题,本文将Proteus和Keil相结合的虚拟仿真技术应用到单片机实验教学中,给出了两者联合仿真的方法与步骤,通过具体实例验证了应用虚拟仿真技术的可行性,表明了虚拟仿真技术在单片机实验教学中具有应用前景。

关键词:实验教学;单片机课程;虚拟仿真;Proteus软件

中图分类号:G712 文献标识码:A 文章编号:1007-0079(2014)32-0121-02

单片微型计算机简称单片机,是将一个计算机系统集成在一个芯片上,它具有体积小、耗能低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于智能仪器仪表、工业控制、汽车电子、医疗电子、家用电器等领域。鉴于单片机优点及其广阔的应用前景,单片机课程已成为很多高校电子信息类专业本科生必修课程之一。作为一门实践性很强的课程,传统的单片机课程教学多以MCS-51单片机及其汇编语言开发作为主要授课内容,汇编指令可以帮助学生直接了解和掌握系统硬件及编程,但由于单片机汇编指令较多,在学习过程中若不反复使用这些指令来开发一些实际系统,学生是很难记住,更谈不上熟练掌握这些指令,从而限制学生深层次地理解单片机内部结构以及接口设计的内涵。尽管目前单片机课程教学中都设有实验环节,但毕竟实验课时有限,而且多数实验以验证性为主,学生很难在短时间的验证性实验教学中对单片机系统一探究竟。由于硬件条件与实验条件的限制,不可能每个学生都有机会在课余时间进行单片机系统的开发训练。虽然单片机开发系统有限,但计算机已很普及,拥有计算机的学生很多,为此本文拟采用Proteus和Keil软件相结合的虚拟仿真技术[1],模拟单片机开发系统及编程,进行单片机课程实验教学的改革与实践,通过仿真环境增强学生的感性认识,激发学生的学习兴趣和主观能动性,从而来提高教学质量。

一、单片机课程实验教学现状及存在的问题

目前,很多高校的单片机课程以MCS-51内核的单片机作为授课内容,着重介绍此类单片机的汇编语言编程与开发。而单片机实验教学主要围绕课堂教学展开,实验课时非常有限,开设的实验项目主要用于验证书本上的内容。总的来说,目前单片机实验教学存在一些问题[2-4],主要表现在以下几个方面:

(1)实验内容单调,多以验证性实验为主。由于实验课时的限制,为了尽可能多地涉及到课本上的一些主要内容,在实验课时安排上只能以验证性实验为主,实验教学时会具体给出实验目的、实验要求和实验步骤,甚至连实验程序一并给出。在这样的实验教学中,学生处于被动地位,其独立思考问题能力、解决问题能力和创新能力得不到有效的锻炼。

(2)实验过程中学生的硬件设计能力得不到锻炼。由于实验教学中所采用的实验设备大多为高度集成的实验箱或实验台,实验过程中学生不需要自行搭建硬件电路,而只需进行简单的连线即可满足实验的硬件设计要求。因此,学生无法实践单片机硬件电路的设计,更谈不上自行设计电路并通过实验来验证正确与否了。

(3)实验硬件缺失,难以开展综合性实验。单片机学习不仅是编程序,验证一下指令系统那么简单。在掌握单片机内部结构和软件编程的基础上,将单片机最小系统与外部硬件结合起来,能够将单片机真正应用到实践中,这样才能让学生建立起单片机系统的概念,让他们真正体会到单片机的应用价值,激发学生学习和实践的兴趣。然而,由于实验硬件条件有限,能够增强学生建立单片机系统概念的综合性实验很难开展起来。实际上,也只有一小部分学生能通过学科竞赛而不是实验教学来真正掌握单片机系统的开发。

二、虚拟仿真技术的应用

虚拟仿真又称虚拟现实技术或模拟技术,就是用一个虚拟的系统模仿另一个真实系统的技术。Proteus软件是一款电路分析仿真软件,非常适用于开发单片机系统的虚拟仿真。Keil软件是一款单片机系统开发软件,支持汇编、C语言及混合编程。通过Proteus软件建立虚拟的单片机系统,再利用Keil软件对单片机程序进行调试,程序的运行结果能够在Proteus环境中得以反映,这两者的有机结合完全可以模拟出“单片机系统+仿真器+开发软件”这种实际系统的运行效果。

1.Proteus与Keil软件简介

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件,它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。从原理图绘制、PCB设计、代码调试到单片机与外围电路协同仿真,真正实现了从概念到产品的完整设计。Proteus是目前世界上唯一将电路仿真软件、PCB設计软件和虚拟模型仿真软件三合一的设计平台,可以仿真51系列、AVR、PIC、ARM、等常用主流单片机以及Cortex和DSP系列处理器。支持汇编语言的编辑、编译、源码级仿真,内带汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试,配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

Keil软件是一款兼容51系列单片机的开发工具,它提供了丰富的库函数和功能强大的集成开发调试工具。支持汇编、C语言及混合编程,可以在无硬件情况下进行纯程序调试的模拟仿真,也可以通过单片机仿真器、JTAG等程序调试接口对实际系统进行程序调试。

2.Proteus与Keil软件的联合仿真步骤

在进行联合仿真之前,需要将Proteus软件和Keil软件联系起来,联合仿真的具体操作步骤如下:

第一步:安装Keil环境下的Proteus VSM仿真器的驱动程序(vdmagdi.exe);

第二步:在Proteus开发环境中建立项目文件,根据具体仿真内容,绘制单片机系统电路图,包括添加信号源、显示工具等;

第三步:在Proteus开发环境中,Debug菜单项选择“Use Remote Debug Monitor”;

第四步:在Keil开发环境中建立项目文件,根据具体仿真内容编写单片机程序代码;

第五步:设置Keil开发环境下的项目文件的“Target”选项,选择“Debug”方式为“Proteus VSM Simulator”。

第六步:在Keil开发环境下编译项目文件,运行单片机程序。然后在Proteus环境中观测运行结果,若结果有误可返回Keil环境中修改单片机程序,直至运行结果正确为止。

在软件调试过程中,也可以在Keil环境中设置断点、程序运行到指定程序段等方式来查看系统部分运行结果或中间结果,如单片机内部寄存器、内存单元等其中的内容。

3.应用实例

下面以单片机AT89C51控制4位7段数码管的动态扫描显示为例,介绍Proteus与Keil在单片机实验教学中的应用。

(1)Proteus环境下的硬件电路设计。应用实例硬件电路在Proteus软件环境下进行设计,根据数码管动态扫描显示的原理与要求,4位7段数码管(共阳极)的段选信号由单片机的P3控制,位选信号由单片机的P1.4~P1.7来控制,位选信号控制PNP型三极管的导通与截止,从而提供或停止提供灌电流,即选择数据码是否点亮。应用实例的具体硬件电路如图1所示。

(2)Keil环境下的软件编程与调试。软件编程实现4位数码管的动态扫描显示功能,在Keil项目文件中可新建ASM文件或C文件,在文件中编写相应语言的程序代码。图2给出该实例的程序流程,显示内容为“25.78”。

软件编写完成后,按照之前的步骤,就可以进行整个系统的软硬件仿真,仿真运行结果见图1中的数码管显示。在程序调试的过程中,逐步增加延时程序的延时时间,可以了解到数码动态扫描显示的全过程。随着延时时间的增加,数码管从闪烁显示到按位轮流显示,这样可以帮助学生感性地来认识动態扫描显示的原理与过程,从而使学生牢牢地掌握这一知识点。

三、结束语

Proteus和Keil软件相结合的虚拟仿真技术既节省了实验教学硬件成本,又缩短了学生学习和开发单片机系统的周期,仿真平台的直观运行效果可以使学生更好地理解和掌握单片机课程内容及相关理论知识,该技术在单片机课程实验教学中的应用有利于培养学生的实践动手能力、创新能力和综合运用知识的能力,有助于电子信息类专业人才的培养。

参考文献:

[1]魏力.PROTEUS仿真技术应用浅析[J].天津职业院校联合学报,2013,(8):94-96.

[2]孟建,刘瑞祥,刘永启.“单片机原理及应用”课程改革实践和探索[J].中国电力教育,2013,(35):74-76.

[3]金红,蒋存波.单片机课程教学的探索与实践[J].电气电子教学学报,2013,(2):44-46.

[4]丁保华,张有忠,陈军,等.单片机原理与接口技术实验教学改革与实践[J].实验技术与管理,2010,(1):117-119.

一种单片机在线仿真方法的实现 篇11

1仿真模式所需信号

1.1 Vtst/IRQ

在MCU上电复位后, 要进入监控模式, 须在引脚上提供一个低电压称之为Vtst。

1.2 COM/RS232

一种基于软件的串行通信协议。 它能以9600波特率的速度与PC的RS232进行通信。

2在线仿真接口的硬件设计

如图1所示以MC68HC908QT4芯片为平台设计的在线仿真接口电路, 它在上电时PTA2为低电压的时候, 跳转到监控的固件。 这个片子引脚很少, 以至于在线仿真接口占用了它所有的引脚。 用户监控是一个驻留在FLASH中的程序, 它允许片子在没有Vtst上的高电压、 晶振或模式选择脚的情况下进入监控模式。

IRQ引脚在大多数的MC68单片机中通常是一个输入口。 它需要承受高于Vdd的Vtst所需要的电压。 PTA0当其配置为输入口时, 可接收双向的COM串行信号。 在大多数的M68HC08单片机中, 这个引脚是键盘中断输入。 它同样是个模数转换输入和通用I/O。 如果在正常模式下, 它们被配置为一个输入口, 当COM信号被连接到这个脚就不会有冲突。 如果这个引脚被配置为一个输出口, 连接到这个引脚的电路必须要分离出双向的串行数据来避免冲突。

3 MCU内监控程序设计

进入监控程序入口, 监控程序启动。 完成以下操作:

(1)首先屏蔽中断。对模块进行初始化。

(2) 初始化RAM单元。

(3)初始化映像单元。

(4) 然后进入MAIN循环入口。

(5)接收上位机命令。

(6) 接收到上位机命令。 判断是不是通信同步握手信号A。 若与通信同步信号一致则建立好连接。 随后可以发送其他命令。

(7) 若不是通信握手信号, 则进行比较。 向上位机返回应答信号。

(8) 跳转到相应的命令处理入口。 返到MAIN循环入口。 继续等待上位机发送的其他命令。

4结语

采用基于芯片内监控的在线仿真系统可以以专用硬件仿真20%的成本, 实现其80%以上的功能。 而且由于片内监控方式不需要添加任何仿真硬件, 所以可靠性较高, 不需要进行后续维护。 所以基于芯片内监控的在线仿真技术仅依靠MCU内植入的特殊监控代码就可以实现专用硬件仿真器的大部分仿真功能, 成为当前研究的热点。 目前国内单片机实验系统绝大部分采用的是专用硬件仿真器, 专用硬件仿真器约占单片机实验系统总体成本的20%-40%。 如果单片机加入在线仿真技术, 将大幅度地降低产品的采购和维护成本, 非常有利于单片机技术在国内的普及。 片内监控调试技术是MCU调试技术的重要发展方向, 具有良好的经济效益和社会效益。

参考文献

[1]王为青,程国钢.单片机Keil Cx51应用开发技术[M].北京:人民邮电出版社,2007.

[2]黄俊.电力电子变流技术[M].北京:机械工业出版社,2005.

上一篇:间接教育论文下一篇:原发性中度高血压