基于PROTEUS的单片机虚拟实验文档格式.doc
《基于PROTEUS的单片机虚拟实验文档格式.doc》由会员分享,可在线阅读,更多相关《基于PROTEUS的单片机虚拟实验文档格式.doc(37页珍藏版)》请在冰点文库上搜索。
2.4.2KeilC51uVision3软件 2
第三章硬件电路详细设计 2
3.1整体框图设计 2
3.2主芯片——AT89C52 2
3.34×
4矩阵式键盘 2
3.48位发光二极管 2
3.5数模转换电路设计 2
第四章电路仿真与测试 2
4.1PROTEUS和KEIL的硬件环境设置 2
4.2电路仿真演示 2
第五章总结 28
5.1课题前期遇到的问题 28
5.2课题中期遇到的问题 28
5.3课题后期遇到的问题 28
结束语 29
参考文献 30
附录一 31
致谢 32
18
金陵科技学院学士学位论文摘要
基于PROTEUS的单片机虚拟实验系统的设计
摘要
基于C51的单片机在现实生活中有着广泛的应用,本文基于PROTEUS软件,简单设计了一个单片机虚拟硬件环境的实验系统,以便做一些简单的单片机实验。
本课题针对PROTEUS软件和编译软件KEIL做了一下简单的介绍。
本文重点对单片机虚拟硬件环境各部分电路进行详细介绍,包括键盘、显示、A/D、D/A等人机通道、前向通道、后向通道。
重点介绍了4X4键盘的显示功能、8位发光二极管以流水灯的方式显示、LCD的显示以及A/D和D/A转换器的功能。
最后作者还介绍了一下PROTEUS和KEIL的联调设置以用各电路的仿真结果。
关键词:
proteus软件;
单片机
;
仿真;
虚拟实验
金陵科技学院学士学位论文Abstract
BasedonthevirtualexperimentsystemPROTEUSchipdesign
Abstract
WidespreadapplicationbasedontheC51monolithicintegratedcircuitinthereallife.ThisarticlebasedonPROTEUSsoftware,simplydesignedamonolithicintegratedcircuithypothesizedhardwareenvironmentexperimentsystem.InordertomakesomesimpleMCUexperiment.ThissubjectgivesabriefintroductiontoKEILandPROTEUS.Thisarticlemainintroducethedetailtovariouspartofelectriccircuits.Includekeyboard,display,A/D,D/A,man-machinechannel,forwardchannel,backwardchannel,the4X4keyboard'
sdemonstrationfunction,8lightemitterdiodesbyclasslanternfloateddownriver'
swaydemonstration,LCDdisplayedaswellasA/DandD/Aswitch'
sfunction.Atlast,writeralsointroducedthesimulationresultbyKEILandPROTEUSindifferentcircuitswiththejointingsetting.
KeyWords:
Proteussoftware,SCM,Simulation,Virtualexperiment
金陵科技学院学士学位论文第一章绪论
第一章绪论
1.1项目背景分析
传统的单片机教学实验,要采用硬件仿真器、实验箱或实验板,需采购大量的、昂贵的硬件设备,同时设备维护工作量也非常大。
由于单片机应用技术涉及到数字电子、模拟电子、计算机甚至通信等多学科的知识,且实践性又很强,所以在教学实验过程中必须软件硬件结合,也就是将单片机程序和外围电路相结合。
若用实验箱则费用高,又不能充分利用,若用实验板则开发周期长,方案变更困难。
单片机应用技术所涉及到的实验实践环节比较多,而且硬件投入比较大。
在具体的工程实践中,如果因为方案有误而进行相应的开发设计,会浪费较多的时间和经费。
这里我们利用Proteus仿真软件,设计了纯软件的单片机虚拟实验系统,既可调试单片机程序,也可仿真单片机外围器件的工作情况;
既能充分利用学校计算机房现有计算机,减少硬件设备的维护工作量,也能为学生提供丰富的实验内容。
1.2技术概况及发展趋势
现代科技的发展,促进了计算机技术在软件和硬件上的飞速发展,利用计算机软件的仿真技术,可以充分地仿真诸如电路的工作等实际的工程问题。
目前,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术以及人们的日常生活等方方面面中。
由于社会对掌握嵌入式技术人才的大量需求,使得嵌入式软硬件工程师成为未来几年内最为热门的职业之一,相当一部分高校已开设嵌入式系统的相关课程。
嵌入式系统是理论与实践结合密切的课程。
但对于嵌入式系统开发的爱好者而言,往往没有足够的资金购买昂贵的开发板来进行开发,这时可以选择通过软件仿真来学习嵌入式系统开发。
Proteus是目前最好的能够虚拟嵌入式系统开发中常用的处理器和外围器件的EDA工具。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
1.3课题解决的问题
(1)4X4键盘:
主要输入数据
(2)显示部分:
LED:
LED是一种特别的二极管,当连接最电的时候就会发出光,通常被用在电子器具来显示电路是否关闭或打开的指示灯。
LCD:
LCD为英文LiquidCrystalDisplay的缩写,即液晶显示器,是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,在平面面板上产生图象。
与传统的阴极射线管(CRT)相比,LCD占用空间小,低功耗,低辐射,无闪烁,降低视觉疲劳。
不足:
与同大小的CRT相比,价格更加昂贵。
(3)A/D和D/A:
真实世界的模拟信号,例如温度、压力、声音或者图像等,被不断转换成更容易储存、处理和发射的数字形式。
但是在很多系统中,数字信息也必须重新转换成模拟信号来实现一些真实世界的功能。
数模转换器(DAC)就可以做到这一点,而且它们的输出还可以用来驱动各种设备,例如扩音器、发动机、射频发射器和温度控制器等。
DAC一般被放置在数字系统中。
在数字系统中,一些真实世界的信号通过模数转换器(ADC)数字化和处理过后,然后需要重新转化成模拟信号的系统中。
这些系统所要求的DAC性能会受到系统其它组件的性能和要求的影响。
1.4课题的意义
单片机技术是现代电子工程领域一门迅速发展的技术,应用于各种嵌入式系统中。
单片机技术的发展和推广极大地推动了电子工业的发展,其在教学和产业界的技术推广仍然是当今业界的一个热点。
单片机技术是现代电子工业中不可缺少的一项技术,掌握单片机技术是电子信息类专业学生就业的一个基本条件
由于现代科技的发展,单片机促进了计算机技术在软件和硬件上的飞速发展,利用计算机软件的仿真技术,可以充分地仿真诸如电路的工作等实际的工程问题。
本课题充分利用了PROTEUS软件的功能,对各个电路部分进行仿真。
为进行一些简单的单片机实验构建一个虚拟硬件环境。
金陵科技学院学士学位论文 第二章系统设计
第二章系统设计
模数转换电路
主芯片AT89C52
键盘部分
LCD显示电路
数模转换电路
发光二极管
2.1电路整体设计
本课题共分为几大模块,具体为4X4键盘显示、8位发光二极管流水灯显示、LCD显示以及A/D和D/A转换5个模块。
所有电路都是围绕主芯片AT89C52来完成的,下图为作者设计的电路的整体框图,如图2-1所示。
图2-1系统电路图
2.2电路图仿真部分
电路图仿真部分主要通过PROTEUS实现,Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
采用Proteus
仿真软件进行虚拟单片机实验,具有比较明显的优势,如涉及到的实验实习内容全面、硬件投入少、学生可自行实验、实验过程中损耗小、与工程实践最为接近等。
2.3程序编译部分
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
编译部分主要通过KeilC51uVision3来编译,KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.4开发工具介绍
2.4.1proteus软件
Proteus软件由于其强大、直观、全面的功能,已为越来越多国内大学作为电工电子虚拟实验平台、单片机设计与仿真实验室、嵌入式系统设计与仿真实验室和创新实验平台等电类综合实验平台,也为教学改革、创新教学提供了很好的平台。
以下我们介绍一下该软件的使用。
(1)Proteus介绍
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
(2)proteus的工作过程
运行proteus的ISIS程序后,进入该仿真软件的主界面。
在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。
通过工具栏中的p(从库中选择元件命令)命令,在pick
devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;
在source菜单Define
code
generationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;
在source菜单的Add/remove
source
files命令下,加入单片机硬件电路的对应程序;
通过debug菜单的相应命令仿真程序和电路的运行情况。
(3)Proteus软件所提供的元件资源
Proteus
软件所提供了30多个元件库,数千种元件。
元件涉及到数字和模拟、交流和直流等。
(4)Proteus软件所提供的仪表资源
对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。
在Proteus软件包中,不存在同类仪表使用数量的问题。
除了所列的测试仪表外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。
(5)Proteus软件所提供的调试手段
Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
对于单片机硬件电路和软件的调试,Proteus
提供了两种方法:
一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。
对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pause
animation菜单项或pause键暂停系统的运行;
或用debug菜单下的stopanimation菜单项或shift-break组合键停止系统的运行。
其运行方式也可以选择工具栏中的相应工具进行。
对于软件的分步调试,应先执行debug菜单下的start/restart
debugging菜单项命令,此时可以选择step
over
、step
into
和
step
out命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。
在执行了start
/
restart
debuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。
2.4.2KeilC51uVision3软件
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
该软件支持众多不同公司的MCS51架构的芯片,集编辑、编译和程序仿真等于一体,同时还支持PLM、汇编和C语言的程序设计。
它的界面友好易学,在调试程序、软件仿真方面有很强大的功能,并且通过设置可与ISIS联机调试单片机系统。
C51工具包的整体结构,所示,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
以下我们也简单介绍一下在keil中调用proteus进行MCU外围器件的仿真。
(1)、安装keilc51v7.20与proteus6.5。
(2)、把proteus安装目录下VDM51.dll文件复制到Keil安装目录的\C51\BIN目录中。
(3)、找到安装keil的文件夹修改keil安装目录下Tools.ini文件,在C51字段加入TDRV5=BIN\VDM51.DLL("
ProteusVSMMonitor-51Driver"
)注意:
不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。
(4)、打开proteus,画出相应电路(注意:
proteus中mouse的左右键与一般程序是相反的样子)。
在proteus的tools菜单中选中useremotedebugmonitor
(5)、在keil中编写MCU的程序
(6)、进入KEIL的project菜单optionfortarget'
'
工程名'
。
在DEBUG选项中右栏上部的下拉菜选中ProteusVSMMonitor-51Driver。
在进入seting,如果同一台机IP名为127.0.0.1,如不是同一台机则填另一台的IP地址。
端口号一定为8000。
注意:
可以在一台机器上运行keil,另一台中运行proteus进行远程仿真。
(7)、在keil中进行debug,同时在proteus中查看直观的结果(如流水灯等。
金陵科技学院学士学位论文第三章硬件电路详细设计
第三章硬件电路详细设计
3.1整体框图设计
我们所设计的电路是围绕芯片AT89C52来设计的,下图为在PROTEUS中的电路总图设计,如图3-1所示。
下一节我们将重点介绍各电路模块的设计。
图3-1电路总设计图
3.2主芯片——AT89C52
本设计主要是围绕芯片AT89C52来设计的,下图为芯片AT89C52引脚的具体说明,如图3-2所示。
图3-2AT89C52芯片
1)AT89C52介绍
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
2)AT89C52管脚说明:
AT89C52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
VCC:
供电电压。
GND:
接地。
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C52不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表1。
Flash编程和程序校验期间,P1接收低8位地址。
表一P1.0和P1.1的第二功能:
引脚号
功能特性
P1.0
T2,时钟输出
P1.1
T2EX(定时/计数器2)
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉