数字电压表软件设计_第1页
数字电压表软件设计_第2页
数字电压表软件设计_第3页
数字电压表软件设计_第4页
数字电压表软件设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业设计(论文)数字电压表软件设计SoftwareDesignofDigitalVoltmeter总计:26页表格:2个插图:14幅学院(系):电子与电气工程专业:电子信息工程数字电压表软件设计[摘要]本设计采用了以单片机为开发平台,控制系统采用AT89C51单片机,A/D转换采用8位的ADC0809,测量电压值的范围为0~5V。软件设计完成后经过专业电子软件的仿真达到设计的目的。设计模块包括主控模块、模数转换模块、显示模块、通信模块等。本系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、与PC机进行串口通信,正文着重给出了电压表的软件设计,介绍了单片机(AT89C51)工作原理、模数转换原理,以及专业软件的仿真和程序的编程。该软件的设计结构紧密,功能完善,在完成对电压的测量之外可以进行通信,应用前景非常广阔。[关键词]单片机;A/D转换;ADC0809;数据处理SoftwareDesignofDigitalVoltmeterAbstract:ThedesignhasadoptedMCUcontrolsystemfordevelopmentplatform,AT89C51microcontroller,A/Dconversionusing8-bitADC0809,measuringvoltagevaluesoftherangeof0~5V.Afterthecompletionofthesoftwaredesign,theprofessionalelectronicsoftwaresimulationtothepurposeofdesign.Thedesignincludescontrolmodule,frequency-fieldmodule,displaymodule,communicationmodule,etc.Thissystemcanensurerealizationofrequirementsinfunction,stillcanconvenientlyforeightotherA/Dconversionmeasurements,andPCforserialcommunication,textfocusesonthedesignofthesoftwarevoltmeterpresents,introducesmicrocontroller(AT89C51)workingprinciple,principleandfrequency-fieldprofessionalsoftwaresimulationandprogramming.Thedesignofthesoftwarestructure,perfectfunctions,inthemeasurementofvoltage,besidescancommunicateverybroadapplicationprospect.Keywords:Singlechipmicrocontrolle;A/Dconverter;ADC0809;dataprocessing目录1引言 11.1选题的背景和意义 11.2发展过程 11.3研究内容 32系统设计方案 32.1设计思想 32.2整体设计框图 33系统软件设计 43.1主控模块软件设计 43.1.1AT89C51 43.1.2内部结构 53.1.3软件设计 53.2模数转换软件设计 63.2.1主要性能指标 63.2.2内部逻辑机构 63.2.3数据采集软件设计 83.3数码管软件设计 93.3.1数码管显示原理 93.3.2软件设计 103.4看门狗及数据复位、存储软件设计 103.4.1X5045芯片 103.4.2X5045工作原理 113.4.3看门狗软件设计 113.4.4EEPROM软件设计 123.5通讯模块软件设计 123.5.1RS232接口 123.5.2串口通讯原理 133.5.3软件设计 133.6键盘软件设计 133.6.1键盘 133.6.2键盘软件设计 134系统仿真与调试 144.1Proteus和Keil 144.2软件仿真 16结束语 17参考文献 17附录1 18附录2 19致谢 211引言1.1选题的背景和意义数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一,精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法,避免了读数视差和视觉疲劳。目前数字电压表的内部核心部件是A/D转换器,转换器的精度很大程度上影响着数字电压表的准确度,本文A/D转换器采用ADC0809对输人模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。数字式电压表是由高阻抗电压表头与分压电路组成的。数字式电压表头的等效输入电阻通常在200M欧以上,满量程时所流经的电流通常在1皮安左右。以上述表头制成的数字式电压表,满量程时所流经的电流与量程有关,通常在1皮安至100微安之间。数字电压表(数字面板表)是当前电子、电工、仪器、仪表和测量领域大量使用的一种基本测量工具有关数字电压表的书籍和应用已经非常普及了。数字电压表的设计和开发,已经有多种类型和款式。传统的数字电压表各有特点,它们适合在现场做手工测量,要完成远程测量并要对测量数据做进一步处理,传统数字电压表是无法完成的。然而基于PC通信的数字电压表,既可以完成测量数据的传递,又可借助PC,做测量数据的处理。所以这种类型的数字电压表无论在功能和实际上,都具有传统数字电压表无法比拟的特点,这使得它的开发和应用具有良好的前景[1]。本系统采用单片机AT89C51构成数字电压表控制系统,具有精度高、速度快、性能稳定和电路简单且工作可靠等特点,具有很好的使用价值。1.2发展过程数字化阶段:50-60年代中期,电压表的特点是运用各种原理实现模数(A/D)转换,即将模拟量转化成数字量,从而实现测量仪表的数字化。高准确度阶段:由于精密电测量的需要,电压表开始向高准确度、高位数方向发展,出现了所谓复合型原理的仪表。智能化阶段:60年代末期,电子技术和工艺结构有了飞跃的发展,而大规模集成电路(LSI)与计算机技术相结合的产物是微处理器(简写为μP)。1972年,美国Intel公司首创微处理器不久即研制出微处理器式数字电压表,实现了电压表数据处理自动化和可编程序,因为带有存贮器并使用软件,所以可进行信息处理,可通过标准接口组成自动测试系统(简写为ATS)。这些仪表除了完成原有电压表的各种功能外,还能够自校、自检,保证了自动测量的高准确度,实现了仪器、仪表的所谓“智能化”。当前,智能表发展十分迅速,而微处理式电压表在智能仪表中占的比重最大,智能化的电压表为实现各种物理量的动态测量提供了可能。智能化数字电压表有以下几个突出的本领:可以程序控制——利用事先编好的程序,可以让数字仪表自动按程序进行操作。例如在测量时可以按程序完成自动校准、自动调零、自选量程,然后进行自动测量。测量得到的数据又可以按程序进行自动计算、自动判断后进行自动调节和自动控制,并把数据按要求送往数据处理中心。在测量系统发生故障时或者利用测量的间隙,它又有自动诊断、自动排除故障的能力。所有这些工作又都是严格地按规定好的程序自动进行,不需要人的干预。人在做测量工作时还可能因为精神因素引入各种人为的误差甚至造成失误,而这种自动测量却可以二十四小时不停地工作[2]。有自校和自动修正误差的能力——数字电压表的突出优点是准确度高,但为了取得高准确度,数字电压表也付出了很高的代价,不得不使用一些高精度、高稳定度的元器件和使用各种复杂的电路。数字电压表智能化以后,由于它有记忆、判断、运算和贮存数据的功能,因此它可以在测量的间隙中,自动对工作条件(如温度、湿度、气压、频率等)的变化按给定的关系式进行计算,求出修正值,再根据误差理论按编好的程序对测得的一系列数据自动进行计算求出整个测量系统购误差,最后把它存进存贮器。在下一个测量周期内,智能电压表能从测得的结果中自动地扣除这个系统误差。这样,就可以不再使用那些复杂的电路和高精度、高稳定度的元器件而同样可以得到很高的测量准确度。再加上双积分电路可以集成化,于是使得智能化的数字电压表体积缩小、结构简化、成本降低,而质量仍很高,这对提高数字电压表的准确度和推动数字仪表的普及是极有利的。自动变换数据——由于智能化仪表有运算功能,因此它能用测量一些简单的数据,通过推算的办法,求出一些复杂或难以测量的数据来。例如我们可以从测量的电容量C或电感量L通过关系式求出Q值、频率、周期、波形等等。这对简化测量方法是很有用的。有自检、自修复能力——智能电压表可以按程序对仪表进行自检,如果发现了故障还可以立即转入自修复程序,自动找出故障并修复。有些不允许停止控制的仪表(炼钢护、化工反应炉、飞行器等),还可以把关键部分的备件放进仪表内,当自检时发现故障后,它会立即自动转换到备用电路上工作,保证控制不间断。由于智能仪表的这些优点,从上世纪七十年代末开始各国的数字仪表已转向智能化仪表生产,进入八十年代后除了普及型的数字电压表外,高档的数字电压表都已改为带微处理器的数字电压表[3]。1.3研究内容研究项目属于单片机技术实际应用,该数字电压表测量的范围为直流电压数据,工作原理是以51单片机为控制中心,A/D转化采用常见的ADC0809,通过RS232串口通讯传输所测电压数据,可与外部PC机进行通信。显示部分用的是七段数码管,将所采集到的数据通过单片机转换输出至数码管上进行显示。2系统设计方案2.1设计思想数字电压表是电压测量的常用仪器,本电压表采用AT89C51单片机为核心器件,测量电路由A/D转换,数据处理、及显示部分组成。A/D转换由集成电路ADC0809完成,显示部分由单片机I/O端口连接LED数码管进行显示。由于ADC0809精度高,转化速度快,故采用此设计方案。2.2整体设计框图按照本论文设计要求和功能,将系统分为主控模块(AT89C51)、A/D转换模块、LED数码管显示模块、看门狗,EEPROM,通信接口等。数字电压表设计整体框图如图1所示,主控模块采用常见的AT89C51,模数转换模块采用8位的ADC0809,显示模块采用的是4位的七段数码管,看门狗采用的是X5045,通信接口采用RS232,系统设计包括如下模块:单片机系统A/D单片机系统A/D看门狗EEPROM数码管显示模块通信接口键盘图1整体设计框图(1)主控模块主控模块主要作用是接收模数转换模块转换后的数字信号,在经过运算后,调用显示子程序选出相应段码输出到七段数码管进行显示,主控芯片采用常见的AT89C51单片机。(2)A/D模块模数转换功能是将输入连续的的模拟电压量转换成数字量,本设计中采用的是8位的转换芯片ADC0809,具有精度高,速度快等优点。(3)显示模块通过编写程序,调用显示子程序可以完成对测量到的电压数值进行实时显示,显示模块采用常见的4位七段数码管[4]。(4)看门狗模块微处理器在运行中会受到各种各样的干扰,如电源及空间电磁干扰,当其超过抗干扰极限时,就有可能引起微处理器死机或程序跑飞,有了看门狗这个监控者,就能够在MCU死机或程序跑飞后,重新使它复位运行,本设计中采用Xicor公司的X5045。(5)EEPROM模块EEPROM可以存储采集到的数据。(6)通信接口模块通过编程可以实现对测量的电压数值进行传输,远程通信,通信接口采用RS232。(7)键盘模块键盘的主要功能是数据通道的选择,采用编码式键盘设计。3系统软件设计主控模块完成初始化后开始调用A/D转换子程序,数模转换模块开始采集电压信号,完成采集后给出完成信号,主控模块采用中断方式,接收到信号后读取数字量输出至显示模块,当需要保存采集到的电压数据则可以存入EEPROM中,系统软件设计还可以对电压数据与PC机进行数据传输,可以调用串口传输模块,完成对电压数据的传输工作。3.1主控模块软件设计3.1.1AT本系统采用的AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytes的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元。AT89S51具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器[5]。3.1.2内部结构单片机有4个I/0端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器PO-P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为PO-P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/0端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,PO口分时作为低8位地址线和双向数据总线。在作为一般的通用I/O输入时,都必须先向锁存器写入“1”以免误读数据。3.1.3软件设计主控模块工作主要是接收模数转换模块输出的数字量,将接收到的数据进行一些列的运算,并处理运算的结果,将所得的数据送至显示缓存区,待延时时间到,送至数码管显示。主程序流程图如图2所示,程序见附录2。开始初始化开始初始化调用A/D转换延时后读A/D转换的结果对A/D转换的结果进行运算Dout*5/255对运算后的结果进行处理,分别得到个,十位的数字并将这数字分别存入显示缓冲区显示图2主控模块程序流程图3.2模数转换软件设计在单片机应用系统中,常常需要将检测到的连续变化的模拟量如温度、压力、流量、速度等转换成数字量,才能输入到单片机中进行处理。然后在将处理的数字量转换成模拟量输出,实现对被控对象的控制。将模拟量转换成数字量的过程称为A/D转换,将数字量转换成模拟量的过程称为D/A转换。ADC0809是8通道8位CMOS逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关型A/D转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。3.2.1主要性能指标(1)分辨率为8位。(2)最大不可调误差:±1LSB。(3)单电源+5V供电,基准电压由外部提供,典型值为+5V,此时允许输入模拟电压为0~5V。(4)具有锁存控制的8路模拟选通开关。(5)可锁存三态输出,输出电平与TTL电平兼容。(6)功耗15mW。(7)换度取决于芯片的时钟频率。时钟的频率范围:10~1280KHz,当CLK=500KHz时,转换时间为128us。3.2.2内部逻辑机构ADC0809内部逻辑结构如图3所示。8位A/D转换器三态输出8位A/D转换器三态输出锁存器8路模拟量开关地址锁存与译码IN0︰︰IN7ADDAADDBADDCALEEOCOEVref+Vref-STARTCLKD0︰︰D7VccGND图3ADC0809内部逻辑机构(1)IN0~IN7——8路模拟信号输入端。(2)ADDA、ADDB、ADDC——3位地址码输入端,8路模拟信号转换选择由A、B、C决定,A为低位,C为高位,与低8位地址中A0~A2连接,由A0~A2地址000~111选择IN0~IN78路A/D通道,真值表如表1所示。(3)CLK——外部时钟输入端。时钟的频率高,允许范围为10~1280KHz,典型值为640KHz,此时A/D转换时间为100us。通常单片机ALE端直接或分频后与ADC0809的CLK端相连接。当MCS—51型单片机无读写外RAM操作时,ALE信号固定为CPU始终频率的1/6,若晶振为6MHz,则1/6为1MHz,则A/D转换时间为64us。(4)D0~D7——数字量输出端。(5)OE——A/D转换结果输出允许控制端。当OE端为高电平时,允许将A/D转换结果从D0~D7端输出。通常MCS51型单片机RD端和ADC0809片选端(例如P2.0)通过或非门与ADC0809的OE端相连接。当DPTR为FEFFH,且执行指令后,RD和P2.0均有效,或非后产生高电平,使ADC0809的OE端有效,ADC0809将A/D转换结果送入数据总线P0口,CPU再读入A中。表1ADDA、ADDB、ADDC真值表ADDCADDBADDA输入通道000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN7(6)ALE——地址锁存允许信号。8路模拟通道地址由A、B、C输入,在ADC0809的ALE信号有效时将该8路地址锁存。(7)START—启动A/D转换信号。当START端输入一个正脉冲时,立即启动ADC0809进行A/D转换。START端与ALE端连在一起,有单片机WR和ADC0809片选端通过或非门相连,当DPTR为FEF8H时,执行读指令后,将启动ADC0809模拟通道中0通道的A/D转换。FEF8H~FEFFH分别为8路模拟输入通道的地址。执行写指令,并将A中的内容写进ADC0809,而是产生WR信号和P2.0有效,从而使ADC0809的START和ALE有效,且输出A/D通道0地址为A0~A2。(8)EOC——A/D转换结束信号。当启动A/D转换结束后,EOC输出低电平,转换结束后,EOC输出高电平,表示可以读取A/D转换结果。该信号取反后,若与51型单片机引脚INT0或INT1连接,可引发CPU中断,在中断服务程序中读A/D转换的数字信号,也可以采用查询方式。(9)VREF+、VREF——正负基准电压输入端。基准电压的典型值为+5V,可与电源电压(+5V)相连,但电源电压往往有一定波动,将影响A/D精度。因此精度要求较高时,可用高稳定度基准电压输入,当模拟信号电压较低时,基准电压也可取低于5V的数值。(10)VCC——正电源电压(+5V)。(11)GND——接地端[6]。3.2.3数据采集软件设计开始启动测试A/D转换结束读数据开始启动测试A/D转换结束读数据ADC0809地址加1地址数<8结束NYYN图4A/D转换测量子程序流程图首先输入3位地址,并使ALE为高电平,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器,START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,读取数据,ADC0809地址加1,并将结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上,转换过程结束。软件设计流程图如图4所示,程序见附录2。3.3数码管软件设计用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示。静态显示就是显示驱动电路具有输出锁存功能,单片机将所有要显示的数据送出后就不再控制LED,直到下一次显示时再传送一次新的显示数据。静态显示的数据稳定,占用的CPU时间少。静态显示中,每一个显示数码管都要占用单独的具有锁存功能的I/O接口,该接口用于笔划段字型代码。这样单片机只要把要显示的字形代码发送到接口电路,该字段就可以显示发送的字形。要显示新的数据时,单片机再发送新的字形码。另一种方法是动态扫描显示。动态扫描方法是用其接口电路把所有显示数码管的8个笔画段A-H同名端连在一起,而每一个显示数码管的公共极COM各自独立受I/O线控制。CPU向字段输出口送出字形码时,所有显示数码管接收到相同的字形码,但究竟是哪个亮则取决于COM段,而这一段是由I/O控制的,由单片机决定何时显示哪一位。3.3.1数码管显示原理动态扫描的方法是轮流控制各个显示器的COM端,使各个显示器轮流点亮,在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二开始显示段码开始显示段码延时显示等待位选信号4位数码管位选YN图5显示子程序极管的余辉效应,给人的印象就是一组稳定的显示数据。静态显示虽然数据显示稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多,动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间[7]。3.3.2软件设计按照电路设计,数码管显示采用软件译码的动态扫描方法实现显示。本设计中采用共阴数码管,显示过程为:开始显示前等待位选信号的到来,当选住数码管的最低位时,立即输出显示段码,延时过后,立刻选通下一位位选信号,依次下去,当位选信号未完成的时候则立刻返回等待位选信号,位选信号完成后,一个完整的电压信号就完成了输出显示。设计流程图如图5所示,显示子程序见附录2。3.4看门狗及数据复位、存储软件设计看门狗电路一般有软件看门狗和硬件看门狗两种。软件看门狗不需外接硬件电路,但系统需要出让一个定时器资源,这在许多系统中很难办到,而且若系统软件运行不正常,可能导致看门狗系统也瘫痪。硬件看门狗是真正意义上的“程序运行监视器”,如计数型的看门狗电路通常由555多谐振荡器、计数器以及一些电阻、电容等组成,分立元件组成的系统电路较为复杂,运行不够可靠。本设计采用硬件看门狗,选用X5045。3.4.1X5045芯片X5045是美国Xicor公司的生产的标准化8脚集成电路,它将EEPROM、看门狗定时器、电压监控三种功能组合在单个芯片之内,大大简化了硬件设计,提高了系统的可靠性,减少了对印制电路板的空间要求,降低了成本和系统功耗,是一种理想的单片机外围芯片。X5045芯片的引脚功能如下:SO:串行数据输出脚,在一个读操作的过程中,数据从SO脚移位输出。在时钟的下降沿时数据改变。SI:串行数据输入脚,所有的操作码、字节地址和数据从SI脚写人,在时钟的上升沿时数据被锁定。SCK:串行时钟,控制总线上数据输入和输出的时序。/CS:芯片使能信号,当其为高电平时,芯片不被选择,SO脚为高阻态,除非一个内部的写操作正在进行,否则芯片处于待机模式;当引脚为低电平时,芯片处于活动模式,在上电后,在任何操作之前需要CS的一个从高电平到低电平的跳变。/WP:当WP引脚为低时,芯片禁止写入,但是其他的功能正常。当WP引脚为高电平时,所有的功能都正常。当CS为低时,WP变为低可以中断对芯片的写操作。但是如果内部的写周期已经被初始化后,WP变为低不会对写操作造成影响。RESET:复位输出端。3.4.2X5045工作原理X5045是一种集上电复位、看门狗、电压监控和串行EEPROM四种功能于一身的可编程控制电路,它有助于简化应用系统的设计,减少电路板的占用面积,提高可靠性。(1)上电复位X5045加电时会激活其内部的上电复位电路,从而使RESET引脚有效。该信号可避免系统微处理器在电压不足或振荡器未稳定的情况下工作。当VCC超过器件的限值时,电路将在200ms(典型)延时后释放RESET以允许系统开始工作。(2)低电压检测工作时,X5045对VCC电平进行监测,若电源电压跌落至预置的最小以下时,系统即确认RESET,从而避免微处理器在电源失效或断开的情况下工作。当RESET被确认后,该信号将一直保持有效,直到电压跌到低于1V。而当VCC返回并超过限值达200ms时,系统重新开始工作。(3)看门狗定时器看门狗定时器的作用是通过监视WDI输入来监视微处理器是否激活。由于微处理器必须周期性的触发CS/WDI引脚以避免RESET信号激活而使电路复位,所以CS/WDI引脚必须在看门狗超时时间终止之前受到由高至低信号的触发。3.4.3看门狗软件设计X5045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。看门狗定时器的预置时间是通过X5045的状态寄存器的相应位来设定的。X5045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPR0M的工作设置有关。软件设计流程如图6,程序见附录2。WD1=0,WD0=0,预置时间为1.4s。WD1=0,WD0=1,预置时间为0.6s。WD1=1,WD0=0,预置时间为0.2s。WD1=1,WD0=1,禁止看门狗工作。等待接收命令数据采集等待接收命令数据采集喂狗图6看门狗喂狗程序流程图3.4.4EEPROM软件设计EEPROM采用的是X5045中的SPI串行存储器件存储器部分是带块锁保护的CMOS串行EEPROM阵列,阵列的内部组织是X8位。X5045可提供最少1000,000次擦写和100年的数据保存期,并具有串行外围接口(SPI)和软件协议的特点,允许工作在简单的四总线上。X5045主要是通过一个8位的指令寄存器来控制器件的工作,其指令代码通过SI输入端(MSB在前)写入寄存器。表2所列为X5045的指令格式及其操作[8]。表2X5045的指令格式及其操作指令名称指令格式操作WREN00000110设置写使能锁存器(使能写操作)WRDI00000100复位写使能锁存器(禁止写操作)RSDR00000101读状态寄存器WRSR00000001写状态寄存器(看门狗和块锁)READ0000A80从选定的地址开始读存储器列阵的数据WRITE0000A8010从选下的地址开始写入数据至存储器阵列(1至16字节)当存储信号到来时,单片机首先等待传输命令,存储信号到来通过传输指令将需要存储的数据传输存储到EEPROM中进行存储。软件设计流程图如图7所示,程序见附录2。等待传输命令传输电压数据等待传输命令传输电压数据存储图7数据存储流程图3.5通讯模块软件设计3.5.1RS232接口RS232是个人计算机上的通讯接口之一,由电子工业协会(ElectronicIndustriesAssociation,EIA)所制定的异步传输标准接口。通常RS232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出现,一般个人计算机上会有两组RS232接口,分别称为COM1和COM2。3.5.2串口通讯原理AT89C5单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS232接口。AT89C51的串行口有4种工作方式,1种同步方式,3种异步方式。本方式选方式1,一帧数据有10位,包括起始位0、8位数据位和1位停止位1。串行口电路在发送时能自动加入起始位和停止位。在接收时,停止位进入SCON中的RB8位。方式1的波特率是可变的,由定时器1的溢出率决定。由定时器1最好工作在方式2上(自动重装载模式),这样只需对TH1设置一次即可。数据通过TXD输出,在8个位输出完毕后,SCON寄存器的TI位被设为1,CPU只要判断TI是1,接着发送下一个字节。(1)波特率的设定:计算公式如公式(1)(1)为了减小误差,时钟振荡频率采用11.0592MHz,选用定时器T1工作在方式2,计算的初值为:160。3.5.3软件设计首先对传输模块进行初始化操作,然后等待传输信号的到来,当传输数据到来的时候,传输端口则将数据传输出去,当传输程序没有到来时,则返回到初始化操作继续等待传输程序,传输接口采用的是RS232。设计流程图如图8所示,程序见附录2。3.6键盘软件设计3.6.1键盘键盘是一组按键的集合,是最常用的单片机输入设备。操作人员可以通过键盘输入数据或命令,实现简单的人—机通信。键盘分编码键盘和非编码键盘,键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;靠软件识别的称为非编码键盘。3.6.2键盘软件设计键盘采用中断方式的编码键盘,仅当有惟一一个键按下时,向单片机发送中断信号并提供所按的键的编码(4个二进制位)。该电路由一片可编程逻辑芯片GAL22V10D控制。对按键的监控由可编程逻辑芯片GAL22V10D完成。当没有键按下或不只一个键按下时,该芯片的输出中断信号为高,不引起单片机中断;当有唯一一个键按下时,该芯片的输出中断信号为低,以引起单片机中断并通过4位数据线提供按键的编码信号,直到该键弹起或同时有其它键按下。键盘设计流程为初始化操作时,开始等待按键信号的到来,如有按键按下即通过软件判断哪个键按下,然后调用按键子程序执行相应的程序。软件设计流程图如图9所示,程序设计见附录2。开始初始化等待传输信号完成传输开始初始化等待传输信号完成传输YN初始化调用按键子程序结束等待按键信号开始YN选择通道图8数据传输流程图图9键盘流程图4系统仿真与调试4.1Proteus和Keil软件的编程和仿真用的软件包括有:Keil,Proteus等相关电子设计软件。Proteus嵌入式系统仿真与开发平台是由英国Labcenter公司开发的,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台。它是一种可视化支持多种型号单片机(如51、PIC、AVR、Motorola等),并且支持与当前流行的单片机开发环境(Keil、MPLAB、IAR)连接调试的软硬件仿真系统。Proteus具有和其他EDA工具一样的原理图、PCB自动或人工布线及电路仿真功能外,针对微控制系统与外设的混合电路的电路仿真、软件仿真、系统协同仿真也做到了一体化和互动效果,是目前电子设计爱好者广泛使用的电子线路设计与仿真软件Protel和Multisim功能的联合和进一步扩展。目前,Proteus在国内单片机开发者及单片机爱好者之中一开始普及,有很多开发者已经开始用此开发环境进行仿真。本课题的设计软件部分将在Proteus中进行,对电路的设计和连线,以及程序编写后的调试都将在Proteus中仿真实施,设计初期完成对数字电压表的电路设计。主程序的编写在Keil中进行,新建工程、编写程序、程序编写好之后保存并进行编译,检查没有错误后存档,如图10所示[9]。图10Keil软件程序编写界面程序编写完成后,经过检查无误后生成hex文件,并保存,如图11所示。图11hex文件的生成4.2软件仿真(1)打开数字电压表仿真原理图。(2)将软件程序(数显电压表.hex)烧入单片机中进行测试仿真,仿真如图12所示。图12仿真测试图1(3)仿真测得最大电压值为5V,调节电位器使输入的模拟电压发生变化,数码管上的显示数字发生变化,测试仿真结果如图13所示。图13仿真测试图2由于单片机为8位处理器,当输入电压为5V时,ADC0809输出数值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255),约为0.02V,上图仿真的结果误差符合本文设计的要求。结束语到此为止,基于单片机的数字电压表软件设计已经完成。本系统最大的特点是测量准确、结构简单、调试使用方便、性价比高、可以单独使用,也可以与外进行通讯。为了确保整个系统运行的稳定性,本系统还采用了看门狗复位电路。实验证明,该装置运行可靠,测量误差小,具有很好的应用效果,因此,可以广泛应用于对灵敏度要求较高的工业环境中。本文设计模数转换采用的是8位的ADC0809,如果要获得更高的精度要求,则应采用12位、13位的A/D转换器。参考文献[1]李朝青.单片机原理与接口技术.北京[M]北京航空航天大学出版社,1995[2]肖洪兵等编著.跟我学单片机.[M]北京机械工业出版社,1997[3]王福瑞.单片微机测控系统设计大全[M]北京航空航天大学出版社,1999[4]王忠诚.电子电路用元器件入门教程.[G]北京电子工业出版社,2006[5]刘义涛.ProtelDXP设计及应用教程.[G]北京清华大学出版社,2000[6]何立民.《单片机应用文集》[M]北京航空航天大学出版社,1994[7]周兴华编.手把手教你学单片机[G]北京航空航天大学出版社,1993[8]胡宴如,耿苏燕.模拟电子技术.[M]北京机械工业出版社,1999[9]齐秋群.MOTOROLA单片机实用技巧集萃.北京:电子工业出版社,1997[10]张明波编.数字电子技术.中国电力出版社,2003[11]何立明.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社,2000[12]王幸之等.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社,2000[13]刘大茂编著.单片机应用系统设计[M].机械工业出版社,1998[14]求是科技.单片机应用系统开发实例导航[M].北京:人民邮电出版社,2003[15]钱逸秋.单片机原理与应用[M].北京:电子工业出版社,2002[16]李军.51系列单片机高级实例开发指南[M].北京:北京航空航天大学出版社,2004[17]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2002[18]周向红.《51系列单片机应用与实践教程》.北京航空航天大学出版社,2008年5月[19]张毅刚.《新编MCS-51单片机应用设计》.哈尔滨工业大学出版社,2003[20]阎石.数字电子技术基础(第三版).北京:高等教育出版社,1989[21]李广弟.单片机基础.北京:北京航空航天大学出版社,1994[22]杨宝清.现代传感器技术基础[M].北京:中国铁道出版社,2001[23]赵负图.现代传感器集成电路[M].北京:人民邮电出版社,2000[24]周航慈.单片机程序设计基础[M].北京:北京航空航天大学出版社,2003[25]stefanSjoholm,lennartlindh著.边计年,译.北京:清华大学出版社.2000[26]Nunan,D.DesigningTasksfortheCommunicativeClassroom.Cambridge:CambridgeUniversityPress,1989附录1原理图附录2(1)看门狗程序Main(){

WDTRST=0x1E;

WDTRST=0xE1;

//初始化看门狗。

While(1)

{

WDTRST=0x1E;

WDTRST=0xE1;

//喂狗指令

}}(2)串口通讯子程序voidchuan(){SCON=0x50;URAT工作在方式1上TMOD=0x20;TIME1工作在方式2上TH1=0xA0;}(3)主控模块程序#include<stdio.h>#include<reg51.h>sbitA1=P3^4;//数码管的位选信号sbit

温馨提示

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

评论

0/150

提交评论