基于AT89S51和ADC0809简易数字电压表的设计教学文案.doc
Good is good, but better carries it.精益求精,善益求善。基于AT89S51和ADC0809简易数字电压表的设计-桂林电子科技大学微机综合设计设计报告指导老师:学生:黎金辉学号:0700150313桂林电子科技大学机电工程学院微机综合设计设计报告一、设计题目二、设计内容与要求三、设计目的意义四、系统硬件电路图五、程序流程图与源程序六、系统功能分析与说明七、设计体会八、参考文献基于AT89S51的简易数字电压表的设计摘要:本课题是利用单片机设计一个数字电压表,能够测量05V之间的直流电压值,四位数码管显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。此外,本文还讨论了设计过程中的所用的软件硬件环境,调试所出现的问题等。关键词:单片机;AT89S51;数字电压表;ADC0809,四位数码管Abstract:Thistopicistheuseofmicrocontrollerdesignadigitalvoltmeter,capableofmeasuringbetween0-5VDCvoltage,fourdigitaldisplay,theuseoffewercomponents.ExternalanalogvoltageinputtotheA/DconversionpartoftheinputoftheconversionintoadigitalsignalthroughtheADC0809,transmissiontothemicrocontroller.Andthenbythemicrocontrollertothedigitalcontroldigitalsignal,controlthelight,sothedisplayednumber.Inaddition,thearticlealsodiscussesthedesignprocessofsoftwareusedinthehardwareenvironment,debuggingtheproblemsandsoon.Keywords:SCM;AT89S51;digitalvoltmeter;ADC0809,fourdigital一、设计题目基于AT89S51的简易数字电压表的设计。二、设计内容与要求用AT89S51单片机和ADC0809组成一个数字电压表,要求能够测量05V的直流电压值,并用四位数码管显示,并要求所用元器件最少。三、设计目的意义1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。2.通过数字电压表的设计系统掌握51单片机的应用。掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。四、系统硬件电路图4.1系统原理框图选择AT89S51作为单片机芯片,选用四位8段共阴极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。P2口接数码管位选,P1接数码管,实现数据的动态显示,如图4.1所示。AT89S51P1P0P3P2AD0809D0D7IN0IN7VREF+VREF-CLKOEST、ALE四位数码管位选段选控制线数据待测电压图4.1系统原理框图4.2AT89S51的结构在本次课题设计中我们选择了AT89S51芯片。AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。4.2.1AT89S51内部结构概述三级程序存储器保密锁定128*8位内部RAM32条可编程I/O线两个16位定时器/计数器6个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路图4.2单片机(AT89S51)引脚及外观4.2.2CPU结构CPU是单片机的核心部件。它由运算器和控制器等部件组成。1. 运算器运算器以完成二进制的算术/逻辑运算部件ALU为核心。它可以对半字节(4)、单字节等数据进行操作。例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。2.程序计数器PCPC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。3.指令寄存器指令寄存器用于存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。4.2.3存储器和特殊功能寄存器1.存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。2.特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。各特殊功能寄存器的符号和地址见附表2。其中带号的可位寻址。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。用于CPUPSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MCS51共有P0P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。4.2.4P0-P3口结构P0口功能:P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7P0.0用于传送CPU的输入/输出数据。输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。第二,P0.7P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写P1口功能 :P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。P2口的功能:P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。P3口功能:P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。表4.1P3口第二功能引脚名称功能P3.0RXD串行数据接收口P3.1TXD串行数据发送口P3.2INT0外中断0输入P3.3INT1外中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写选通信号P3.7RD外部RAM读选通信号4.2.5时钟电路和复位电路1.时钟电路单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。MCS-51内部有一个用于构成振荡器的可控高增益反向放大器。两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。在片外跨接一晶振和两个匹配电容C1、C2如图2.5所示。就构成一个自激振荡器。振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。匹配电容C1、C2要根据石英晶体振荡器的要求选取。当晶振频率为12MHz时,C1C2一般选30pF左右。图2.5中PD是电源控制寄存器PCON.1的掉电方式位,正常工作方式PD=0。当PD=1时单片机进入掉电工作方式,是一种节能工作方式。上述电路是靠MCS-51单片机内部电路产生振荡的。也可以由外部振荡器或时钟直接驱动MCS-51。图4.3复位电路的内部及外部方式2.复位电路复位是单片机的初始化操作。其功能主要是将程序计数器(PC)初始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。复位是使单片机退出低功耗工作方式而进入正常状态一种操作。复位是上电的第一个操作,然后程序从0000H开始执行。在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。要使其进入正常状态,唯一办法是将单片机复位,以重新启动。复位后,程序计数器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。表4.2程序计数器及各特殊功能寄存器的复位值寄存器复位状态寄存器复位状态PC0000HTH100HACC00HP0P3FFHPSW00HIPxx000000BSP07HIE0xx00000BDPTR0000HTMOD00HTCON00HSCON00HTL000HSBUF不定TH000HPCON0xxx0000BTL100HRST引脚是复位端,高电平有效。在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。RST引脚内部有一个斯密特ST触发器(图2.10)以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。使用时,一般在此引脚与VSS引脚之间接一个8.2k的下拉电阻,与VCC引脚之间接一个约10F的电解电容,即可保证上电自动复位。图4.4自动和手动复位电路图上电或手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。4.3器件的比较与选择4.3.1显示器本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。1.数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。但数码管只能是显示09的数据。不能够显示字符。这也是数码管的不足之处。2.LED点阵显示器件是由好多个发光二极管组成的。具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。3.1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。使用时直接编写软件程序按一定的时序驱动即可。它的特点是显示字迹清楚,价格相对便宜。4.12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。使用时也直接编写软件程序按一定的时序驱动即可。不过它的价格比1602液晶贵了很多。综合上述,根据本设计的要求和价格的考虑,选择数码管显示器。单位数码管如图4.4所示,四位共阴极数码管如图4.5所示。图4.4单位数码管图4.5四位共阴极数码管4.3.2模数(A/D)芯片A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。A/D转换的常用方法有:计数式A/D转换,逐次逼近型A/D转换,双积分式A/D转换,V/F变换型A/D转换。在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的是双积分和逐次逼近式。(1)A/D芯片的比较双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。1.AD0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。2.AD0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道。它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。3.TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。它可以从主机高速传输转换数据。它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。综合上述,逐次逼近型A/D转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。图4.6ADC0809内部结构图4.6ADC0809引脚图(2)ADC0809的工作原理1.IN0IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条。ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如表4.3所示。表4.3ADC0809通道选择表2.数字量输出及控制线:11条ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。3.ADC0809应用说明ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。初始化时,使ST和OE信号全为低电平。送要转换的哪一通道的地址到A,B,C端口上。在ST端给出一个至少有100ns宽的正脉冲信号。是否转换完毕,我们根据EOC信号来判断。当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC信号在START的下降沿10us后才变为无效的低电平。这要求查询程序待EOC无效后再开始查询,转换完成后,EOC输出高电平,再由OE变为高电平来输出转换数据。我们在设计程序时可以利用EOC信号来通知单片机(查询法或中断法)读入已转换的数据,也可以在启动AD0809后经适当的延时再读入已转换的数据。AT89S51的输出频为晶振频的1/6(2MHZ),AT89S1与SUN7474连接经与7474的ST脚提供AD0809的工作时钟。AD0809的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ时,其转换速度为128us。4.4系统硬件及仿真图4.4.1系统仿真图4.4.2系统原理图4.4.3系统PCB图4.5相关软件简介4.5.1Protel99Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。(1)Protel99SE的系统组成按照系统功能来划分,Protel99se主要包含以下俩大部分和6个功能模块。1.电路工程设计部分电路原理设计部分(AdvancedSchematic99):电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。印刷电路板设计系统(AdvancedPCB99):印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。自动布线系统(AdvancedRoute99):本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。(2)电路仿真与PLD部分电路模拟仿真系统(AdvancedSIM99):电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。可编程逻辑设计系统(AdvancedPLD99):可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。高级信号完整性分析系统(AdvancedIntegrity99):信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。(3)Protel99SE的功能特性开放式集成化的设计管理体系超强功能的、修改与编辑功能强大的设计自动化功能4.5.2KeilKeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。(1)系统概述KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部分功能和使用。(2)KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项:*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。(3)Keil优点KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。4.5.3ProtuesProtues软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。(1)功能特点Protues软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:1.原理布图2.PCB自动或人工布线3.SPICE电路仿真(2)革命性的特点1.互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。2.仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Protues建立了完备的电子设计开发环境。(3)四大功能模块1.智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。2.完善的电路仿真功能(Prospice)ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析;3.独特的单片机协同仿真功能(VSM)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试;4.实用的PCB设计平台原理图到PCB的快速通道:原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览;多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。(3)Protues提供了丰富的资源1.Protues可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。2.Protues可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。3.除了现实存在的仪器外,Protues还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。4.Protues可提供的调试手段Protues提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。(4)软件仿真支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。1.提供软件调试功能2.提供丰富的外围接口器件及其仿真RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。3.提供丰富的虚拟仪器利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。4.具有强大的原理图绘制功能(5)电路功能仿真在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。PROTUES是单片机课堂教学的先进助手。PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。五、程序流程图与源程序5.1程序流程图初始化开始ST、OE端口拉低ST上升沿清除AD缓存器CLK提供AD工作的时钟信号ST下降沿,AD开始转换转换结束?P1口读取数据,存储在地址70H数据除以51,商为电压整数部分,储存在地址71H余数乘以10后,再除以51,为电压小数相应位部分,分别储存在地址72H74H电压小数相应位加5调整余数>25?四位处理完?NYP2口为位选延时1.5msP0分别赋地址71H74H里的值,P0口为段选查询数码管显示表四位显示完?返回程序开始图5.1程序流程图NY开始AD采集函数数据处理函数显示函数图5.2主函数流程图5.2存储空间定义安排(1)70H用于存放A/D转换结果,71H、72H、73H、74H分别存储显示用的三位数据如表5.1所示。表5.1存储空间定义表70H用于存放A/D转换结果71H电压值整数部分72H74H电压值小数部分(2)地址30H39H存放显示在数码管上09的数。如表5.2所示。表5.2数码管表存储数据地址存储值数码显示值30H3FH031H06H132H5BH233H4FH334H66H435H6DH536H7DH637H07H738H7FH839H6FH95.3汇编语言程序清单QIANEQU71HBAIEQU72HSHIEQU73HGEWEIEQU74H;71H-74H存放显示数据,依次为个位、十位、百位、千位SHUJUEQU70H;地址70H存放采集数据STBITP3.0;START和ALE共用一个端口OEBITP3.6EOCBITP3.7CLKBITP3.3ORG0000HLJMPSTARTORG0030HTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHSTART:MAIN:LCALLTEST;数据采集函数LCALLTURNDATA;数据处理函数LCALLDISPLAY;显示函数LJMPMAIN/*延时函数*/DELAY:MOVR7,#06H;约延时1.5msLOOP1:MOVR6,#0FFHLOOP2:DJNZR6,LOOP2DJNZR7,LOOP1RET/*ADC0809采集函数*/TEST:CLRSTCLROESETBSTCLRST;ST端口下降沿,开始转换LOOPCLK:SETBCLK;由软件来提供ADC0809工作的时钟频率CLRCLKJNBEOC,LOOPCLK;EOC