简易型数字化微控调节器的设计与实现_第1页
简易型数字化微控调节器的设计与实现_第2页
简易型数字化微控调节器的设计与实现_第3页
简易型数字化微控调节器的设计与实现_第4页
简易型数字化微控调节器的设计与实现_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0简易型数字化微控调节器的设计与实现序言微控调节器是以微处理器为核心的单回路智能调节器,在自动控制系统中,用它来构成不同的调节规律,以及对系统进行各种切换操作和控制。图1是调节器系统框图。微控调节器有以下特点:采用单片机作为运算控制核心,通过软件编程可实现各种运算功能,用键盘实现各种系统参数给定;键盘可以选择多种功能,任意给定各种参数并可数字显示;有自诊断功能,可以对调节器的自身电路进行检查,并用报警灯和开关输出信号的方式显示故障。图1微控调节器结构框图本次毕业设计(论文)主要是键盘和显示器的硬件扩展和软件设计,所以下面将着重讲解键盘和显示器有关知识和内容。本文第一章绪论中介绍了单片机的发展、分类、应用介绍,AT89C51的中断系统以及本次设计的任务和意义等等;第二章论述了8255A芯片结构、功能及控制字;第三章主要描述了系统扩展硬件电路设计、硬件设计图及所使用的芯片功能与特性;第1四章中具体论述单片机、键盘和显示器的软件设计、仿真调试和硬件测试与调试。由于本人水平有限,加之时间仓促,论文中难免会有错误和不足之外,恳请指导老师和各位专家老师批评指正。2第1章绪论1.1单片机发展概况6单片机是在一块集成电路芯片上集中了控制器、存贮器、运算器和输入输出端口的单片微型计算机,体积小,耗电省。1971年Intel公司首次发明了4位单片机,至今单片机已经发展到现在的几十种产品,有4位机、8位机和16位机等,单片机的性能不断增强,但价格却越来越便宜。单片机以其高性价比和灵活性,在工业控制、仪器仪表和家电领域得到了广泛的应用。目前的单片机分通用型和专用型两种。MCS-51系列单片机是属于通用型的单片机,通用型的单片机把开发资源全部公开,用户可以根据自己的应用系统进行设计,适用面广,应用灵活。低功耗是单片机所追求的一个指标,目前低功耗单片机的静态电流可以低至A或nA级。有的单片机还有等待、关断、睡眠等多种工作模式以降低功耗。单片机的低功耗在智能化仪表中有重要的应用。封装有双列直插和贴片系列,体积变得更小,另外,单片机的时钟频率也达到20MHz以上。1.2单机的内部结构4本次实验采用的是AT89C51,AT89C51是较为流行的单片机,资源丰富而价格低廉。这里不在详述它的结构和使用方法,只简单列出主要特点和资源如下:4K字节可编程闪烁存储器全静态工作:OHz-24MHz128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路31.3单片机应用介绍61.3.1单片机在数据处理中的应用单片机在应用中的数据处理有数制转换的处理、查表计算、函数计算等多种运算。可以利用单片机进行函数计算来处理数据,可以进行矩阵运算和微积分之类的复杂运算。1.3.2单片机在工业控制中的应用在工业控制中的控制器,可以应用软件的方法,实现复杂的控制过程,改变控制算法方便。有丰富的逻辑判断和位操作指令,可以在开关量控制、顺序控制、逻辑控制中发挥作用。1.3.3智能化仪器在仪表中引入单片机后,可以利用单片机完成数据的采集、处理、零位校正、数字显示、报警、记录打印等工作。使仪表具有智能化的功能,有温度计、流量计、气体分析仪、转速表、电子秤、血压计、万用表、电度表等。1.4AT89C51中断系统7单片机与外部设备交换信息可以采用两种方式,即查询方式和中断方式。由于中断具有CPU效率高、适合于实时控制系统等优点,因而更为常用。中断系统也就是中断管理系统。所谓“中断”,即CPU暂时终止当前正在执行的程序而转去执行中断服务子程序,处理完以后,再回到原来中断的地方,继续原来的工作。实现这种功能的部件称为中断系统。发出中断的申请的来源就称为中断源。AT89C51单片机内部有五个中断源,分别是外部中断0、定时器T0、外部中断1、定时器T1、和串行口中断。这次设计中用到了外部中断1,以实现键盘的识别与数码管是显示。外部中断1入口地址为0013HAT89C51单片机的中断系统从用户的角度来看,就是若干个特殊功能寄存器:定时器控制寄存器TCON4D7D6D5D4D3D2D1D0TF1-TF0-IE1IT1IE0IT0中断允许寄存器IE中断优先级控制寄存器IP串行口控制寄存器SCON通过以上特殊功能寄存器中相应的位置1或清0,可实现各种中断控制功能。1.4.1外部中断源AT89C51有5个中断源,其中2个外部中断源INT0(P3.2)和INT1(P3.3),3个内部中断源,分别是定时器/计数器T0、T1的溢出中断源和串行口的发送接受中断。这些中断源分别锁在TCON、SCON的相应位中。INT0、INT1上输入的两个外部中断源和它们的触发方式控制位存在特殊寄存器TCON的低四位,TCON的高四位为T1、T0的运行控制位和溢出标志位:IE0/IE1外部中断0/1请求源(INT0,P3.2/INT1,P3.3)标志。IE0/IE1=1外部中断0/1向CPU请求中断,当CPU响应该中断时,由硬件清“0”IE0/IE1(边沿触发方式)。IT0/IT1外部中断0/1触发方式控制位。IT0/IT1=0,外部中断0/1为电平触发方式;IT0/IT1=1,外部中断0/1为边沿触发方式。1.4.2中断使能控制单片机对中断源的开放或屏蔽,每个中断源是否被允许中断,是由AT89C51内部的中断允许寄存器IE控制的(IE为特殊功能寄存器,它的字节地址为A8H),其格式如下:D7D6D5D4D3D2D1D0EA-ESET1EX1ET0EX0EACPU的中断开放标志.EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断申请。ES串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。ET1/ET0定时器/计数器T1/T0的溢出中断允许位。ET1/ET0=1,允许T1/T0中断;ET1/ET0=0,禁止T1/T0中断。5EX1/EX0外部中断1中断允许位。EX1/EX0=1允许外部中断1/0中断;EX1/EX0=0,禁止外部中断1/0中断。1.5设计的任务与意义设计的任务是:1.完成系统键盘和显示部分的硬件扩展设计;2.编写键盘处理和显示程序并调试;3.与系统联调。主要要完成的是键盘/显示电路的硬件扩展和软件设计,设计框图如图1-1所示中断1AT89C518255ALED显示键盘图1-1键盘显示扩展框图智能化仪器与传统仪器的最大区别是:前者对于仪器的操作是通过计算机的外部输入/输出设备来进行的,而键盘和显示器则是最常用的两个外部输入/输出设备,是构成人机对话的一种基本方式。键盘能实现向计算机输入数据、传送命令等功能;显示器则显示控制过程量或结果数值。后者没有上述特点。通过本次毕业设计,可以充分掌握了键盘与显示器的硬件扩展和软件的设计。6第2章可编程并行接口8255A2.1可编程并行接口8255A的引脚说明58255A芯片有40脚的DIP和44脚的PLCC两种封装形式。右图2-1是8255A芯片DIP封装分配图。8255A芯片具有24条I/O引脚,这24条引脚分为3部分,分别称之为A口,B口和C口。其中:PA0PA7:A组数据信号PB0PB7:B组数据信号PC0PC7:C组数据信号RD读信号,低有效。当该信号有效时,CPU可以从8255A中读出数据。WR:写信号,低有效。当该信号有效时,CPU可以将数据或控制字写入8255A。D7D0:双向数据线。CS:片选信号,低有效。RESET:复位线A1、A0:端口选择信号。当A1,A0为00选中A口,为01选中B口,为10选中C口,为11选中控制口。RESET:复位线(高电平有效),当有效时,A口,B口和C口均为输入口,各口的锁存器均被清零。图2-18255A的引脚图72.28255A逻辑框图5图2-28255A逻辑框图从上图中可以看出,左边的信号与CPU相连;右边的信号与外设相连。同时可以看出,8255A由外设接口、A口和B口控制、读/写控制电路和数据总线缓存器四部分构成。2.2.1外设接口8255A有A、B、C三个端口,每个端口都是8位的,都可以通过编程选择作为输入或输出,但每个端口都有自己的特点。A口:有一个8位的数据输入锁存器和一个8位输出锁存/缓冲器。端口A不管用作输入还是输出,数据均锁存。B口:有一个8位的数据输入缓冲器和个8位输出锁存/缓冲器。端口B用作输入时,数据不锁存;用作输出时,数据锁存。C口:有一个8位的数据输入缓冲器和个8位输出锁存/缓冲器。端口C用作输入时,数据不锁存;用作输出时,数据锁存。2.2.2读/写控制电路读/写控制电路复杂管理8255A的数据传输过程,它接收CS和来自系统地址总线8的信号A1、A0以及来自控制总线的信号RESET、WR、RD,将这些信号组合之后,得到对A组控制部件和B组控制部件的命令,并将命令发送给这两个部件,以完成对数据、状态信息和控制信息的传输。2.3.3数据总线缓存器这是一个双向三态的8位数据缓存器,8255A正是通过它与系统总线相连。输入数据、输出数据和命令都是通过该缓存器传递的。2.38255A的工作方式的功能51方式0:基本输入/输出方式在这种工作方式下,不需要任何选通信号,A口、B口及C口的两个4位口(C口的高4位和低4位)都可以由程序设定为基本输入或输出。作为输出口时,输出数据被锁存;作为输入口时,输入数据不被锁存。2方式1:选通输入/输出方式只有A口和B口可以选择这种工作方式。在这种工作方式下,A、B、C三个口分为A、B两组:A组包括A口和C口的高4位,A口可由编程设定为输入或输出口,C口的高4位用作A口输入/输出操作的控制联络信号;B组包括B口和C口的低4位,B口可由编程设定为输入或输出口,C口的低4位用作B口输入/输出操作的控制联络信号。A口和B口的输入或输出数据都被锁存。3方式2:双向传递方式在这种工作方式下,外设既能在A口的8条引线上发送数据,又能接收数据。与方式1类似,A口工作于方式2时,需要借用C口的5条信号线用作控制和状态线,A口的输入和输出均带有锁存。2.48255A的控制字52.4.18255A的工作方式控制字格式8255A有三种工作方式:方式0:基本输入/输出方式;方式1:选通输入/输出方式;方式2:双向传送方9式。如图8255A的工作方式控制字格式:图2-38255A的方式控制字格式2.4.28255A位控字8255A还有一个位控字,用来设置C口某位的状态,而不影响其他位。位控制字的格式如图2-4所示,其D7=0是位控字的标志位。图2-4PC口置位/复位控制字格式102.58255A的读写信号8255A中有三个输入输出端口。另外,内部还有一个控制寄存器,共有四个端口,有A1、A0来加以选择。A1、A0和,及的组合所实现的各种功能见表2-1。RDWCS表2-18255A的读写信号A1A0S操作001010000111000A口数据总线B口数据总线C口数据总线输入操作00110101111100000000数据总线A口数据总线B口数据总线C口数据总线控制口输出操作11011100数据总线为高阻态非法状态数据总线为高阻态禁止操作112.68255A选通信号2.78255A与AT89C51的连接8图2-58255A与AT89C51系列单片机的连接图中8255A的CS接到AT89C51的P2.7端,A1、A0接到锁存后的P0.1、P0.0端。在这种接法下,8255A各端口的地址为(假设未用到的地址线取1):A口:7FFCH;B口:7FFDH;C口:7FFEH;控制口:7FFFH。A1A0CS所选通的端口000A口010B口100C口110命令口表2-28255选通信号12第3章硬件电路及其设计3.1键盘及其接口技术3在计算机控制系统中,除了与生产过程进行信息传递的过程输入输出设备以外,还有与操作人员进行信息交换的常规输入设备和输出设备。键盘是一种最常用的输入设备,它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是输入数据与命令,查询和控制系统的工作状态,实现简单的人机对话。键盘接口电路可分为编码键盘和非编码键盘两种类型。编码键盘采用硬件编码电路来实现键的编码,每按下一个键,键盘便能自动产生按键代码。编码键盘主要有BCD码键盘、ASCII码键盘等类型。非编码键盘仅提供按键的通或断状态,按键代码的产生与识别由软件完成。编码键盘的特点是使用方便,占用CPU时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,因而硬件电路复杂、成本高。而非编码键盘硬件电路简单,成本低,但占用CPU的时间较长。本次毕业设计使用的是基于AT89C51中断的非编码键盘,具有CPU占用时间少,成本底的优点。3.1.1键盘输入电路1键盘的抖动干扰由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰,其产生的波形如图3-1所示,当按键按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。这是所有机械触点式按键在状态输出时的共性问题,抖动的时间长短取决于按键的机械特性与操作状态,一般为10100ms,这是键处理程序设计时要考虑的一个重要参数。13前沿抖动后沿抖动图6-2按键的抖动干扰闭合稳定释放稳定键按下键释放图3-1按键的抖动干扰2抖动干扰的消除按键的抖动会造成按一次键产生的开关状态被CPU误读几次。为了使CPU能正确地读取按键状态,必须在按键闭合或断开时,消除产生的前沿或后沿抖动,去抖动的方法有硬件方法和软件方法两种。硬件方法硬件方法是设计一个滤波延时电路或单稳态电路等硬件电路来避开按键的抖动时间。图3-2是由R2和C组成的滤波延时消抖电路,设置在按键S与CPU数据线Di之间。按键S未按下时,电容两端电压为0,即与非门输入Vi为0,输出Vo为1。当S按下时,由于C两端电压不能突变,充电电压Vi在充电时间内未达到与非门的开启电压,门的输出Vo将不会改变,直到充电电压Vi大于门的开启电压时,与非门的输出Vo才变为0,这段充电延迟时间取决于R1、R2和C值的大小,电路设计时只要使之大于或等于100ms即可避开按键抖动的影响。同理,按键S断开时,即使出现抖动,由于C的放电延迟过程,也会消除按键抖动的影响图中,V1是未施加滤波电路含有前沿抖动、后沿抖动的波形,V2是施加滤波电路后消除抖动的波形。142RV5+1R1V2V图5-3滤波延时消抖电路SiVoV(Di)(Di)图3-2滤波延时消抖电路软件方法软件方法是指编制一段时间大于10ms的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后再检测该键状态,如果该键仍然保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。这次毕业设计就是采用软件延时的方法消除按键的抖动的。3.1.2非编码独立式键盘1查询法接口电路现以3个按键为例,图3-3即为独立式键盘查询法接口电路。按键S0、S1、S2分别通过上拉电阻与CPU的数据线D0、D1、D2相连,当按键Si闭合时,数据线直接接地,因而CPU读入Di=0;当按键Si断开时,数据线通过上拉电阻接到正电源,因而CPU读入Di=1。该接口电路实现的功能为:查询检测是否有键按下,如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。其程序流程如图3-4所示。采用查询法时,必须保证CPU每隔一定时间主动地去扫描按键一次,该扫描时间间隔应小于两次按键的时间间隔,否则会有按键不响应的情形。显然这种方式占用CPU时间比较多,不适宜在智能仪表中使用。15图3-3独立式键盘结构原理图5-4独立式键盘结构原理D0V5+D1D2S0S1S2图3-4独立式键盘查询法程序流程图2中断法接口电路2这种方法是本次设计中用到的键盘扫描方法,以8个按键为例,图3-5是一个智能控制系统的功能键分配图,S0、S1、S2、S3、S4、S5代表各参数显示,另外还有加键和减键实现加1和减1功能。8个按键开关S0、S1、S2、S3、S4、S5加键和减键与8255A的PC0PC7相连,每个开关按键还通过一个限流电阻与电源Vcc相连接。另外,168个按键开关还与8输入与非门7430相连,7430的输出接7404非门的输入,然后7404非门的输出与AT89C51的外部中断1的输入引脚相连接,这是一种典型的中_1INT断法键盘接口电路。图3-5智能控制系统基于中断的功能键分配图这里的按键开关采用常开开关,即在没有执行按键动作时,开关是断开。合理选择限流电阻的阻值,推荐为10千欧姆,在开关断开时,单片机的输入引脚和8输入与非门的8个输入引脚都为高电平。当某个按键开关被按下,与该键开关相接的AT89C51的外部中断1的输入引脚为低电平,它向AT89C51发出中断申请。如果这时外部_1INT中断1的中断被允许,则CPU将响应中断。在中断服务程序中,首先读入8255A的引脚PC0引脚PC7的状态;接着执行一段10ms的延时程序;再次读入引脚PC0引脚PC7的状态,通过比较两次读入的状态实现软件去抖动。然后依次查键号,并转入键功能处理程序,最后恢复现场、中断返回。显然,查询顺序代表了按键的排队优先级。确定有按键被按下,利用程序可以判断哪一个引脚的输入为低电平,从而确定哪一个按键被按下。采用中断法时,CPU对按键而言是被动方式,在无键按下时不占用CPU时间,因而CPU有更多的时间执行其他程序。XTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3./INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D034D13D232D331D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB42PB523PB624PB725PC014PC115PC216PC317PC413PC512PC61PC710U2825AS0S1S2S3S4S5加键减键123456112874LS301274LS04R?30R30R?30R30R?30R30R17上述分析说明:独立式键盘接口电路简单灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,需要占用较多的I/O口线。比如64个按键,需要有64根线,不仅连线复杂,查询按键的时间也较长。故这种键盘电路只适合于按键数量比较少的小型控制系统或智能控制仪表中。3.2显示及显示接口7单片机系统中,常用的显示器有:发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器等。如果需要显示的内容只是数码和某些字符,可使用的显示器有LED或LCD这两种显示器成本低廉,配置灵活,与单片机连接方便。3.2.1LED显示器的结构和工作原理1LED显示器的结构a)b)c)图3-6七段LED数码管a)管脚配置b)共阴极c)共阳极2字段码当LED显示器与单片机连接时,一般是将LED各发光二极管的引脚a、b、g、dp18顺序接到单片机的一个并行I/O口上。如表3-1所示:为共阴极LED和共阳极LED显示不同字符的字段码显示字符共阴极字段码共阳极字段码显示字共阴极字共阳极字03FHC0HA77H88H106HF9HB7CH83H25BHA4HC39HC6H34FHB0HD5EHA1H466H99HE79H86H56DH92HF71H8EH67DH82HP73H8CH707HF8H熄灭00HFFH87FH80H96FH90H表3-1LED显示器的字段码表(七段码)3N位LED显示器19图3-7N位LED显示器控制3.2.2LED显示器接口及显示方式图3-8八位LED动态显示接口图3-8中,8255A的PA口由7407同相驱动后接数码管的片选信号,8255A的PB口接上拉电阻后直接与数码管的码段信号相连。上面的电阻在实际工作中并不一定要加,如果发现数码管的亮度太暗,则要加上上拉电阻,起到拉高段选信号电压的作用。203.3同相驱动器74077407是同相驱动器,其管脚如图3-9所示引出端符号:输入端:1A6A输出端:1Y6Y极限值电源电压:7V输入电压:5.5V输出截止态电压:30V工作环境温度:070存储温度:-65150功能表Y=A表3-27407功能表输入输出AYLHLH3.4与非门743074LS30为8输入端与非门(正逻辑),管脚如图3-10所示端口符号输入端:AH输出端:Y极限值电源电压:7V图3-107430管脚封装图图3-97407管脚封装图21输入电压:7V功能表见表3-3_ABCDEFGHY表3-37430功能表输入输出ABCDEFGHY全HL有LH3.5反向器74047404其实就是非门,输出的信号与输入的信号相反。其管脚如图2-11所示引出端符号输入端:1A6A输出端:1Y6Y极限值电源电压:7V输入电压:7V功能表_AY3.6硬件电路设计基于上面的键盘与显示器的设计,可以将上面两方面的硬件电路结合成如图附录二所示。需要注意的是,按键必须接拉高电阻,这样可以防止干扰,在按键未按下时,可以提供一个+5V的电压。数码管选片信号需经过7407,因为这样可以提供一个标准选片信号给数码管。图3-117404管脚封装图22第4章软件设计调试及硬件调试4.1软件设计软件设计具体程序见附录一。软件要实现的功能是按下P、I、D、MV、PH、PL键后在数码管上显示键名和相应内容,按下加1键或减1键将当前显示的内容加1或减1,并送回相应显示单元保存起来。键名编码及显示内容单元分配见如表4-1表4-1键名编码及显示内容单元分配4.1.1键盘扫描程序设计1第3章中讲了键盘的基本原理,其中在3.1.2非编码独立式键盘当中的第2点讲了基于中断的键盘接口电路。因为本次设计的键盘不多,所以就采用了这种方法。见图3-5独立式键盘中断法接口电路,按键S0S5、加键和减键个具有一种功能。当它们全部打开时,均为高电平,经8输入与非门及反向器后仍为高电平,因而不会发生中断。当其中某一键按下时,端变为低电平,向CPU响应后,用查询的方法找到_1INT申请中断的功能键,其原理与中断扫描发产生的中断原理基本相同,不同的是CPU响应中断后,不是采用扫描法求得键值,而是通过软件查询的方法查找功能键的入口地址。软件设计框图如下图4-1:键名键名编码显示内容存放单元初值P73H61H60H999I20H63H62H1000D5EH65H64H0MV37H67H66H/PH73H76H69H68H106PL73H38H6BH6AH023开始中断1初始化显示主程序循环执行按键中断?转到各个功能键相应入口地址NY刷新显示程序图4-1键盘中断服务程序框图加/减功能键执行框图如图4-2执行加/减键服务子程序功能将结果送回相应键存储单元中断返回外部中断1服务程序按键判断保存键号图4-2加/减功能键执行框图244.1.2显示主程序设计9显示器显示一般有两种方式,一种是静态显示方式,另一种是动态显示方式。本次毕业设计的显示是采用动态显示方式。所谓动态显示,就是一位一位地轮流点亮各位显示器(扫描),对于每个显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现较高较稳定的显示。显示器的位数是8位时,控制显示器公共极电位只需一个8位口(扫描口),控制各位显示器所显示的字形也需要一个8位口(段数据口)。8位共阴极LED显示器和8255A的接口逻辑见第三章中的图3-8,图3-8为八位LED动态显示接口图。8255A的A口作为扫描口,经同相驱动器7407接显示器公共极,B口作为段数据口,与显示器的各个段相接。显示主程序设计流程图如图4-3所示开始初始化及显示赋初值调用二-十进制转换调压缩BCD-非压缩BCD转换调显示子程序送显示单元内容到显示缓冲区图4-3显示主程序流程图254.2软件编译与软件仿真调试4.2.1软件编制软件编制使用的程序编译软件是伟福的V系列仿真器集成调试软件,简介如下:其打开窗口如图4-4。进入软件界面,然后进行设置。图4-4打开窗口界面仿真器设置如图4-5到图4-8。先在工具栏选择仿真器设置,在下拉框中选择“择仿真器设置”如图4-5图4-5仿真器设置仿真器设置:选择V5/S、POD-H8X5X和AT89C51,如图4-626图4-6仿真器具体设置目标文件必须要在“生成.HEX文件”前的复选框上打上勾,如图4-7图4-7仿真器目标文件设置最后按“好”确定设置,这样仿真器的设置就算完成了,见图4-827图4-8仿真器设置完成上面设置结束后,按,新建一个空白文档,在里面输入程序后,按保存文件,需要注意的是,保存文件的时候必须在名称后面加.ASM,否则无法进行下面的编译与调试。保存见图4-9图4-9保存文件程序编制完成以后,按进行软件编译,如图4-1028图4-10编译文件看到没有,编译成功通过,并且生成了.HEX文件,这个ZHANGGANG.HEX文件是下面进行软件仿真的关键的必须的文件。到这里为止,软件编译就基本完成了,下面将讲解软件仿真的内容。4.2.3软件仿真ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具29有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2、V系列仿真器集成调试软件等软件。具有强大的原理图绘制功能。下面介绍ProteusISIS软件的工作环境和本次设计所涉及到的一些基本操作。1、进入ProteusISIS双击桌面上的ISIS6Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus6Professional”“ISIS6Professional”,出现如图4-11所示屏幕,表明进入ProteusISIS集成环境。图4-11启动时的屏幕2、工作界面ProteusISIS的工作界面是一种标准的Windows界面,如图4-12所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。30图4-12ProteusISIS的工作界面3、基本操作下面以本次设计的实例来完整的展示一个V系列仿真器集成调试软件与Proteus相结合的仿真过程。单片机电路设计:如图附录二所示。电路的核心是单片机AT89C51和8255A。8255A的PB口八个引脚接LED显示器的段选码(a、b、c、d、e、f、g、dp)的引脚上,8255A的PA口八个引脚经过同向放大器7407接LED显示器的位选码(1、2、3、4、5、6、7、7)的引脚上,8255A的PC口八个引脚接上拉电阻和接键盘后接入7430与非门和7404非门后接AT89C51的外部中断1。程序设计目的:实现LED显示器的选通并按键显示和改变字符。31电路图的绘制:将所需元器件加入到对象选择器窗口。单击对象选择器按钮,如图4-13所示图4-13添加元气件弹出“PickDevices”页面,在“Keywords”输入AT89C51,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如图4-14所示。图4-14寻找元气件在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C51”添加至对象选择器窗口。接着在“Keywords”栏中重新输入7SEG。双击“7SEG-MPX8-CC-BLUE”,则可将“7SEG-MPX8-CC-BLUE”(8位共阴7段LED显示器)添加至对象选择器窗口。再在“Keywords”栏中重新输入RES,选中“MatchWholeWords”。在“Results”栏中获得与RES完全匹配的搜索结果。双击“RES”,则可将“RES”(电阻)添加至对象选择器窗口。单击“OK”按钮,结束对象选择。依此类推分别将8255A、7407、7404、7430添加到对象选择器窗口中,在对象选择器窗口中已有了若单击AT89C51,在预览窗口中,见到AT89C51的实物图,如图4-15所示。此时,注意到在绘图工具栏中的元器件按钮处于选中状态。32图4-15元器件预览放置元器件至图形编辑窗口在对象选择器窗口中,选中要放置的元气件,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置。同理,将AT89C51、8255A、7407、7430、7404和RES放置到图形编辑窗口中。若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。由于电阻R1R8的型号和电阻值均相同,因此可利用复制功能作图。将鼠标移到R1,单击鼠标右键,选中R1,在标准工具栏中,单击复制按钮,拖动鼠标,按下鼠标左键,将对象复制到新位置,如此反复,直到按下鼠标右键,结束复制。此时注意到,电阻名的标识,系统自动加以区分。元器件之间的连线Proteus的智能化可以在你想要画线的时候进行自动检测。下面,操作将电阻R1的右端连接到LED显示器的A端。当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不33用拖动鼠标),将鼠标的指针靠近LED显示器的A端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了LED显示器的连接点,同时屏幕上出现了粉红色的连接,单击鼠标左键,粉红色的连接线变成了深绿色,同时,线形由直线自动变成了90的折线,这是因为选中了线路自动路径功能。Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。同理,可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。原理图部分截图如图4-16:图4-16原理图部分截图通过上面的连接,电路原理图见附录二。至此,便完成了整个电路图的绘制。4、V系列仿真器集成调试软件与Proteus连接仿真调试V系列仿真器集成调试软件与Proteus连接调试,在原理图的AT89C51上右击鼠标,AT89C51变成红色时然后在AT89C51上左击鼠标左键,弹出图4-1834图4-18AT89C51加载程序在图4-18中的ProgramFile右边的,弹出图4-19,打开在软件编制中生成的ZHANGGANG.HEX文件,单击左下角的仿真运行开始按钮,按下P键,能清楚地在数码管上显示字符所要显示的字符,如图4-20。35图4-19打开加载文件图4-20软件防真显示结果364.3硬件调试硬件调试主要任务是针对AT89C51、8255A、键盘和显示电路的调试。通电前,必须确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。所以首先用万用表仔细的检查了每个元气件的管脚是否有虚焊或者短路情况,测量无误后方可通电。通电仿真调试的主要目的是检验电路是否接错,同时还要检验软件在硬件电路中是否正常工作,这次毕业设计中,通电调试主要是单片机、8255A、键盘和显示电路之间的硬件调试。用LCA51软件按将编制的程序编译加载到仿真头上,编译无误后按“运行”后用示波器检测74138的的片选信号是否有效,然后按下键盘看显示器是否正确显_3Y示指定的数值。按下P键,在显示器上显示了如图4-21,按下加键,显示的数值也相应的加1,如图4-22;按减键后,相应的数值减1,如图4-23。其他按键也都可以正常工作,这说明硬件仿真通过了。图4-21P键显示内容图4-22P键显示内容加1图4-23P键显示内容减137参考文献1胡乾斌,李光斌,李玲,甘锡英.单片微型计算机原理与应用M.武汉:华中科技大学出版社,2003.2赫建国,郑燕,薛延侠.单片机在电子电路设计中的应用M.北京:清华大学出版社,2006.3蒋力培.单片微机系统M.北京:机械工业出版社,2004.4徐爱钧.智能化测量控制仪表原理与设计M.北京:北京航空航天大学出版社,2005.5徐煜明,韩雁.单片机原理与接口技术M.北京:电子工业出版社,2005.6龚运新,胡长胜.单片机实用技术教程M.北京:北京师范大学出版社,2005.7张友德等.单片微型机原理、应用与实验M.上海:复旦大学出版社,2005.8戴梅萼等.微型计算机技术及应用M.北京:清华大学出版社,1996.9张景元,王江红,巩秀刚.一种单片机控制系统键盘/显示电路的设计与实现J.电子工程师,2000,18(07):4-6.10殷希梅,柴竹薪,乐群.利用外部中断实现键盘与显示共享单片机并行口J.微计算机信息,2001,21(03):58-59.11杜永泰.一种8位I/O口的单片机显示器和键盘接口J.单片机与嵌入式系统应用,2002,15(12):68-69.12GUOGai-zhi.DesignandImplementationofDigitalCymometerBasedonCPLDJ.JournalofInnerMongoliaNormalUniversity(NaturalScienceEdition):2005,34(4):434-437.13ZHAOYing-qian,CHENMin,HOUYong-hong.ApplicationofSerialPortinIndustrialComputeSystemJ.TransactionsofTianjinUniversity:2002,8(2):125-128.38附录一软件程序ORG0000HAJMPMAINORG0013H;中断1入口地址AJMPKEYJMP;调用中断服务程序ORG0100H;*各单元赋值及初始化*MAIN:MOV20H,#00H;显示初值000000MOV21H,#00HMOV60H,#231;61-H,60-L;21-H,20-LMOV61H,#3MOV62H,#232MOV63H,#3MOV64H,#00MOV65H,#00MOV66H,#1MOV67H,#1MOV68H,#106MOV69H,#00MOV6AH,#00MOV6BH,#00MOVDPTR,#7FFFH;8255A初始化MOVA,#89HMOVXDPTR,A;*中断1初始化*SETBIT1;外部中断源1触发方式控制位SETBEX1;外部中断1中断允许位SETBEACLRC;*显示主程序*START:ACALLBBCD;二-十进制转换为压缩BCD码ACALLTER;拆为非压缩BCD码ACALLDISPLY;6位数字显示程序MOVDPTR,#7FFCH;封闭数码管各位选位口MOVA,#0FFHMOVXDPTR,AMOVA,50H;显示最高位键名字符MOVDPTR,#7FFDHMOVXDPTR,AMOVDPTR,#7FFCH;选片数码管最高位MOVA,#07FHMOVXDPTR,A39LCALLDELAYMOVDPTR,#7FFCH;封闭数码管各位选位口MOVA,#0FFHMOVXDPTR,AMOVA,51H;显示次高位键名字符MOVDPTR,#7FFDHMOVXDPTR,AMOVDPTR,#7FFCH;选片数码管次高位MOVA,#0BFHMOVXDPTR,ALCALLDELAYLJMPSTART;*中断服务程序*KEYJMP:MOVR3,#08H;循环8次MOVDPTR,#7FFEH;C口地址MOVXA,DPTRMOV70H,A;保存键盘口地址LCALLDELAY10MSMOVDPTR,#7FFEH;C口地址MOVXA,DPTR;2次读入状态字CJNEA,70H,FANHUI;比较键盘口地址MOVR4,#00H;计数寄存器清0KEYAD1:RRCA;将状态寄存器右移一位JNCKEYAD2;CY=0,转KEYAD2INCR4;计数寄存器加1DJNZR3,KEYAD1FANHUI:RETIKEYAD2:MOVDPTR,#JMPTBL;查键表MOVA,R4RLAJMPA+DPTR;转到相应功能键处理JMPTBL:AJMPSB0AJMPSB1AJMPSB2AJMPSB3AJMPSB4AJMPSB5AJMPSB6AJMPSB7;SB0:MOV20H,60H;*键盘P*MOV21H,61HMOV50H,#73H;显示键名字符MOV51H,#00HMOV52H,#00H;键序号保存40RETISB1:MOV20H,62H;*键盘I*MOV21H,63HMOV50H,#20H;显示键名字符MOV51H,#00HMOV52H,#01H;键序号保存RETISB2:MOV20H,64H;*键盘D*MOV21H,65HMOV50H,#5EH;显示键名字符MOV51H,#00HMOV52H,#02H;键序号保存RETISB3:MOV20H,66H;*键盘MV*MOV21H,67HMOV50H,#37H;显示键名字符MOV51H,#00HMOV52H,#03H;键序号保存RETISB4:MOV20H,68H;*键盘PH*MOV21H,69HMOV50H,#73H;显示键名字符MOV51H,#76HMOV52H,#04H;键序号保存RETISB5:MOV20H,6AH;*键盘PL*MOV21H,6BHMOV50H,#73H;显示键名字符MOV51H,#38HMOV52H,#05H;键序号保存RETISB6:CLRC;*键盘加*MOVA,20HADDA,#01HMOV20H,AMOVA,21HADDCA,#00HMOV21H,AMOVA,52H;取出键号MOVDPTR,#TAB1MOVCA,A+DPTRMOVR0,AMOVR0,20HINCR041MOVR0,21HRETISB7:CLRC;*键盘减*MOVA,20HSUBBA,#01HMOV20H,AMOVA,21HSUBBA,#00HMOV21H,AMOVA,52H;取出键号MOVDPTR,#TAB1MOVCA,A+DPTRMOVR0,AMOVR0,20HINCR0MOVR0,21HRETIBBCD:CLRA;*二-十进制转换子程序*MOVR2,20HMOVR1,21HMOVR4,AMOVR5,AMOVR6,AMOVR7,#10HLOOP1:CLRCMOVA,R2RLCAMOVR2,AMOVA,R1RLCAMOVR1,AMOVA,R6ADDCA,R6DAAMOVR6,AMOVA,R5ADDCA,R5DAAMOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,ADJNZR7,LOOP142MOV40H,R4MOV41H,R5MOV42H,R6RETTER:MOVA,42H;*拆为非压缩BCD码*ANLA,#0FHMOV30H,AMOVA,42HSWAPAANLA,#0FHMOV31H,AMOVA,41HANLA,#0FHMOV32H,AMOVA,41HSWAPAANLA,#0FHMOV33H,AMOVA,40HANLA,#0FHMOV34H,AMOVA,40HSWAPAANLA,#0FHMOV35H,ARETDISPLY:MOVDPTR,#7FFCH;*6位数字显示*MOVA,#0FFHMOVXDPTR,AMOVA,30HMOVDPTR,#TABMOVCA,A+DPTRMOVDPTR,#7FFDHMOVXDPTR,AMOVDPTR,#7FFCHMOVA,#0FEHMOVXDPTR,ALCALLDELAYMOVDPTR,#7FFCH;封闭数码管各位选位口MOVA,#0FFHMOVXDPTR,AMOVA,31HMOVDPTR,#TABMOVCA,A+DPTR43MOVDPTR,#7FFDHMOVXDPTR,AMOVDPTR,#7FFCHMOVA,#0FDHMOVXDPTR,ALCALLDELAYMOVDPTR,#7FFCH;封闭数码管各位选位口MOVA,#0FFHMOVXDPTR,AMOVA,32HMOVDPTR,#TABMOVCA,A+DPTRMOVDPTR,#7FFDHMOVXDPTR,AMOVDPTR,#7FFCHMOVA,#0FBHMOVXDPTR,ALCALLDELAYMOVDPTR,#7FFCH;封闭数码管各位选位口MOVA,#0FFHMOVXD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论