收藏 分享(赏)

51单片机常用外设(硬件)软仿真.doc

上传人:cjc2202537 文档编号:1195372 上传时间:2018-06-17 格式:DOC 页数:16 大小:377KB
下载 相关 举报
51单片机常用外设(硬件)软仿真.doc_第1页
第1页 / 共16页
51单片机常用外设(硬件)软仿真.doc_第2页
第2页 / 共16页
51单片机常用外设(硬件)软仿真.doc_第3页
第3页 / 共16页
51单片机常用外设(硬件)软仿真.doc_第4页
第4页 / 共16页
51单片机常用外设(硬件)软仿真.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、151单片机常用外设(硬件)软仿真摘 要 :单片机体积小,功能强,具有很强的灵活性,具有逻辑判断,定时计数等多种功能,广泛应用于仪器仪表,家用电器,医用设备的智能化管理和 过程控制等领域。以单片机为核心的嵌入式系统已经成为目前电子设计最活跃的领域之一。但在嵌入式系统的中,开 发板成本高,特别是对于大量的初学者而言, 还可能由于设计的错误导致开发板损坏。然而我 们也发现基于51单片机的嵌入式应用几乎都要用到这几种常用外设硬件(51单片机,LED, LCD,RAM,键盘,D/A,A/D)。Proteus就是一款功能强大的EDA仿真软件。它拥有丰富的库 元件,尤其是动态外设的仿真极大地补充了其他仿真

2、软件的不足;虚拟工具箱的引入为仿真测试提供了方便。本文以51单片机为例具体分析了该软件在仿真微处理器及其外设硬件方面的独到之处,protues能有效的仿真51单片机及其常用外设硬件,大幅提高开 发效率和降低开发成本。关键词: 51单片机 Proteus软仿真 常用外设(硬件)0.引言单片机应用技术所涉及到的试验实践环节比较多,而且硬件投入比较大。在具体的工程实践中,如果因为方案有误而进行相应的开发设计,会浪费较多的时间和经费。所以进行软件的软仿真是非常有用和必要的。有一点必须先肯定,软件仿真不能替代硬件仿真。软件仿真只是对硬件的仿真模拟,但是软件仿真仍有必要。目标系统是千变万化的,需要开发者去

3、实现。实现可能需要相当长一段时间,甚至完成后不能随意调试,因此有必要对目标系统进行模拟或仿真,以便开发、检测嵌入式软件。外围设备软件仿真可以快速建立开发目标的模拟系统。由于各仿真部件是软件,因此只要部件存在,就没有采购、制作电路板的过程。将各部件按规则布置、用软件连接,就构成了目标模拟系统。外围设备软件仿真可以使嵌入式的软件设计与硬件设计相对独立。软件设计者可以先在模拟软件上进行功能和逻辑测试,从而减少了对硬件的依赖。外围设备仿真软件在一定条件下可以制作为检测硬件功能的工具。如果仿真部件的连接口可以转化为硬件接口,那么就可以在硬件上用软件仿真部件代替被仿真部件运行。外围设备软件仿真可以降低开发

4、成本。过去有时为了配合软件开发,需要在硬件开发初期制作一些测试硬件。而现在,硬件开发可以按自己的需要按部就班地进行,只要在必要时与软件设计者沟通就可以了。外围设备软件仿真可以方便单片机程序的调试,在程序涉及外围设备时不必做任何处理直接运行,仿真软件会自动处理对它的访问。21.Proteus 仿真功能简介作为一款EDA仿真软件,Proteus与同类软件有着很多的相似之处。相比之下,其主要的特点有两个:一是对动态元件的实时仿真,它对“人机对话”的模拟增强了系统的真实性;二是虚拟工具箱的功能,它能与仿真同时进行,测量方便而准确。下面着重介绍一下该软件的这两个突出特点。1.1.实时动态仿真与多数仿真软

5、件相似,Proteus有着数量庞大的元件库。Labcenter公司与相关的第三方软件阵容共同开发了6000多个模拟和数字电路中常用的spice模型以及各种动态元件,基本元件如电阻、电容、各种二极管、三极管、MOS 管、555定时器等;74系列TTL 元件和 4000系列CMOS 元件;存储芯片包括各种常用的ROM, RAM,EEPROM, 还有常见I2C器件等。在丰富的库元件的支持下,原理布图时只要进行相应的调用和连线,通过对每个元件的属性设置完成绘图,然后即可进行仿真和虚拟测量。关于原理图的具体绘制方法不是本文讨论的重点,请参考软件提供的帮助教程1.2虚拟工具箱3Proteus 的虚拟工具箱

6、提供了电路测试中的常用工具和仪器,主要用于在实时仿真同时的电路参数观测,测量结果随仿真动态变化并显示,可以满足精度要求不是很高的测量分析,对于电路特性的定性分析可以起到事半功倍的效果,大大节约了测试时间和开发成本。软件提供的虚拟工具和仪器如图1.1所示。*图1.1 虚拟工具箱下面我们以示波器为例来说明虚拟工具箱的应用。图1.24图中的电路非常简单,单片机AT89C52中写入的是一个输出驱动直流电机的PWM方波的程序。我们把输出管脚连接到示波器的 CH1通道,运行仿真,用鼠标调节虚拟示波器的Y轴幅度和X轴扫描频率,整个调节步骤同真实的示波器完全一样。当波形稳定时可以观测到一个占空比可调的PWM方

7、波,如图所示。2.Proteus 在单片机仿真中的应用基于VSM 的理论, Proteus可以仿真很多常用的微处理器。具体来讲,它支持PIC, 8051, AVR, HC11, ARM7/LPC2000等系列多种型号的微处理器、微控制器,仿真时只需在设定元件属性时指定下载程序的路径即可进行实时动态仿真。2.1.Proteus 对 51 单片机的仿真就Atmel公司的51系列单片机而言,Proteus支持的型号非常全面,从低端ATtiny10到高端的ATmega128均有可以直接调用的库元件。下面以AT89c52 为例介绍 Proteus支持的仿真功能。图2.1是Proteus中的AT89c52

8、 库元件,其管脚上的标识与该芯片的Datasheet 是基本一致的,唯一的不同是隐去了GND和VCC管脚,在绘制原理图的时候可以不用对其进行连接,系统默认的设置就是将它们分别连到地和5V电源上。具体可以仿真的功能有:支持所有的I/O操作,内部的定时器、计数器的模拟(包括输入捕获、输出比较、PWM模式) ,看门狗定时器,串行 UART接口,主、从模式串*SPI接口,支持内置数模转换ADC,支持Atmel 的TWI (Two*Wire nterface)通信方式,存贮器方面支持外部SRAM 扩展以及内置 EEPRO的模拟,支持多个微控制器的协同工作仿真等等。仿真时,首先绘制原理图,然后将任何AVR

9、源程序编译器(WinAVR等)生成的下载文件(*.hex格式)路径指定给原理图中的芯片,就可以观察程序的运行。另外值得一提的是,实时仿真运行的过程中,每个管脚的旁边会出现一个小正方形的指示,红色代表高电平,蓝色带表低电平,从这个小正方形我们可以不用虚拟工具的测量很直观的看到每个管脚的电平变化,对程序的运行做出最基本的判断,对于简单的分析可以节省很多的时间。5在本文图1.2和图2.2的例子中,AT89c52 的19管脚输出的是方波,所以旁边可以看到一个红蓝交替、以一定频率闪烁的小正方形。2.2.Proteus 与其他单片机仿真 软件的比较 51 系列单片机可以可用很多的软件进行仿真。常用的有 A

10、VR Studio 和Vmlab。AVR Studio、Vmlab 和 Proteus 都属于代码级的仿真软件,与芯片级仿真不同,代码级仿真完全在计算机上完成,不需要硬件的参与,主要用于查看代码的执行过程和参数变化。在具体功能上,这三款软件各有千秋。AVR Studio 是一款完全免费的 AVR 单片机集成开发环境,包括 AVR Assembler 编译器和 AVR Studio 调试功能, AVR Prog 串行、并行下载功能和 Jtag ICE 仿真功能。它最主要的功能是观察代码执行过程中单片机内部各个寄存器值的变化,尤其是一些寄存器关键位的置位、复位操作与代码的关系。利用单步调试功能可以

11、更细致的检查代码的执行过程。对于内部的定时中断也可以较好的仿真,使实验者清楚了解中断对于整个程序流程的影响。但是对于外部中断和输入捕获等需要动态外设配合的功能,AVR Studio 就显得无能为力了。同时该软件使用黑色、白色的方块来表示 1 和 0,用以反映寄存器值的变化,当需要观察某些波形时,这样的仿真结果显得很不直观。Vmlab 在这方面要做得好一些。VMLAB 的全称为:Visual Micro Lab。它针对于 AVR 以及 ST62 系列单片机设计,是一个单片机的虚拟原型框架。它具有强大的多窗口、多文件的编辑器,微控制器的集成开发环境,拥有一系列的集成开发工具,图形界面调试器,混合模

12、式的模拟-数字电路仿真器,代码质量检查器等等。硬件和应用软件能进行并发仿真。与 Proteus 最为相似的一点是它可以以单片机为核心仿真出包括模拟元器件在内的一些动态外设(按键,LED,液晶显示器等) ,具有图形显示和波形显示的功能。如果就单片机及一些简单的动态外设而言,Vmlab 和 Proteus 有着很大的相似,最多只是软件本身的操作方法有着很大的不同。但是 Proteus 不仅仅是一个 51 系列单片机的仿真软件,它所支持的大量常用芯片模型为单片机和其他芯片协同仿真复杂的完整系统提供了极大的方便。请看下面的例子,如图 2.2 所示63.Proteus 仿真实例分析单片机、矩阵键盘、RA

13、M扩展和字符型液晶或LED数码管的组合是单片机实验中最常用的简单系统之一,是很多最小系统板的核心部分。在开发实际的单片机系统时, “人机对话”部分主要靠这个系统来实现。在编写这部分程序时要进行频繁的测试从而更改一些参数使系统达到良好的工作状态,常见的问题有:显示界面的布局、菜单层次的设置、按键灵敏度和防抖的参数等。有了下面介绍的Proteus仿真,这些测试和一些经验值的调整就可以不需要进行频繁的硬件测试了,而只需要改动源程序中的一些函数调用。这个系统可以稍加改动轻松应用于其他各类系统的输入和输出部分,具有普遍意义。3.1.1602 字符型液晶简介该显示模块由字符型液晶显示屏(LCD) ,控制驱

14、动主电路HD44780及其扩展驱动电路HD44100,少量阻、容元件,结构件等装配在PCB板上而成。液晶显示屏是以若干个58或511点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。该字符型LCD具有字符发生器ROM可显示192种字符(160个57点阵字符和32个510 点阵字符)具有64个字节的自定义字符RAM,可自定义8个58 点阵字符或四个511点阵字符。且具有80个字节的RAM。可以分两行、每一行显示16个ASCII字符,足以应付简单用户界面(主要由数字和英文字母组成)的开发和系统参数的显示。3.2.4*4矩阵键盘4*4矩阵键盘有4行4列,键盘上有4*4=

15、16个按键,而它只需要占用4+4=8个I/O口,这样的设计大大节省了单片机宝贵的I/O口资源2。单片机提供一定频率的扫描信号并对用户的按键值进行分析和处理,达到正确判断16个按键的目的。对于一般的单片机系统,16个按键足以满足多应用的需求。因此,它可以作为很多系统的按键输入工具。3.3RAM扩展因为51系列单片机片内部RAM一般只有256字节,所以在一些应用中往往不7够用,那么就需要扩展外部RAM。6116是 2K*8 static RAM,已经完全够用。3.4.系统综合分析根据以上的分析,以及各器件的工作原理,绘制系统原理图3.1。图3.1LED和键盘综合应用 8图3.2液晶和键盘综合应用9

16、图3.3RAM 扩展单片机 AT89C52是这三个系统的核心,下载的程序是液晶和键盘的驱动。其中P20-P22分别连接液晶的三个控制使能端,通过它们的译码组合来实现液晶读写指令和数据的控制。P00-P07连接液晶的八位数据端,负责控制命令和读写字符的数据传输。P10-P13是输出端,连接键盘的4列,输出列扫描信号;P14-P17是输入端,连接键盘的4行,捕捉用户的按键作为行信号,通过行列信号的组合可以唯一确定16个按键之一,从而供单片机处理。图中模拟的情况是,LED数码管显示的是按键的值(0F) ,液晶的第一行显示预置的字符串信息“THE 1602LCD Test”, 。当鼠标按下其他的健时,

17、液晶的显示会同步更新,这就是Proteus实时动态仿真的神奇之所在!3.5关键程序如下:1602lcd:/* THE 1602 CHAR LCD LIBCOPYRIGHT (c) 2008 BY YCHJ.- ALL RIGHTS RESERVED -10File Name: LCD.hAuthor: Yang ChunjiangCreated: 2008/5/1Modified: NORevision: 1.0*#ifndef LCD_CHAR_1602_2005_4_9#define LCD_CHAR_1602_2005_4_9#include /Port Definitions*sbit LcdRs = P20;sbit LcdRw = P21;sbit LcdEn = P22;sfr DBPort = 0x80; /P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口/内部等待函数*unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1; _nop_();LcdEn=1; _nop_();/while(DBPort/在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,/可能在写该控制字时,该模块没有返回写入完备命令,即DBPortreturn DBPort;/向LCD写入命令或数据*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报