毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc

上传人:文库蛋蛋多 文档编号:4136907 上传时间:2023-04-07 格式:DOC 页数:32 大小:1.14MB
返回 下载 相关 举报
毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc_第1页
第1页 / 共32页
毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc_第2页
第2页 / 共32页
毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc_第3页
第3页 / 共32页
毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc_第4页
第4页 / 共32页
毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89C51单片机的简易多种传感器信号测试仪设计AD590温度测试仪.doc(32页珍藏版)》请在三一办公上搜索。

1、简易多种传感器信号测试仪设计 AD590温度测试仪摘 要本课题主要介绍了温度测量的硬件电路的设计和相关软件设计。硬件电路主要包括主控制器,测温电路和显示电路等,控制器采用单片机AT89C51,温度传感器采用美国DALLAS半导体公司生产的AD590,显示电路采用3位共阳极LED数码管以动态扫描法直读显示。系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据子程序等。此外,还介绍了系统的调试和性能分析。 关键词:AD590、ADC0804、AT89C51Abstract: This topic mainly introduces the temperature s

2、ensor of hardware circuit design and software design of the system. Hardware circuit include Lord controller, temperature measurement circuit and display circuit by single chip microcomputer AT89C51, controller, the temperature sensor using the American DALLAS semiconductor company produces the AD59

3、0, show circuit with 3 a total of anode LED digital dynamic scanning tube method to read display. Straight The system includes main program, the program read temperature procedure, the temperature conversion command subroutine, the calculation of temperature subroutine, display data refresh procedur

4、e, etc. In addition, it introduces the system of debugging and performance analysis. Keywords: AD590, ADC0804, AT89C51目 录第一章 绪论.11.1课题背景及意义.11.2课题应用前景.1第二章 总体设计方案.22.1 总体设计框图.22.2 总体设计方案分析.2第三章 硬件设计原理.33.1 总原理图及工作原理分析.33.2 AD590传感器检测电路单元.33.3 放大电路.53.4 A/D转换电路单元.63.5 CPU主控电路单元.103.6 显示电路单元.143.7 供电电

5、源单元.15第四章 软件设计分析.164.1 系统总流程图.164.2 A/D转换的启动及转换结果获取.194.3 程序流程分析.19第五章 结语.21参考文献.21致谢词.22附录.23第一章 绪 论1.1课题背景及意义一些传感器市场比如压力传感器、温度传感器、流量传感器、水平传感器.称重传感器已表现出成熟市场的特征。流量传感器、压力传感器、温度传感器.称重传感器的市场规模最大,分别占到整个传感器市场的21%、19%和14%。传感器市场的主要增长来自于无线传感器、MEMS传感器、生物传感器等新兴传感器。其中,无线传感器在2007-2010年复合年增长率预计会超过25%。 与传统的温度计相比,

6、由于采用了改进型智能温度传感器AD590作为检测元件,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。AD590温度计还可以在过限报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。AD590是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠在该论文中,我们通过对单片机和温度传感器的设计,从中学到了许多有用的东西,其中我们明白了如何去设计一个产品,首先要有性价比、良好的适应性,其次要知道设计的关键,最后也懂得了设计与实际的联系1.2课题的应用前景 温度传感器的应用范围很广,它不仅广泛应

7、用于日常生活中,而且也大量应用于自动化和过程检测控制系统。目前,全球的传感器市场在不断变化的创新之中呈现出快速增长的趋势。有关专家指出,传感器领域的主要技术将在现有基础上予以延伸和提高,各国将竞相加速新一代传感器的开发和产业化,竞争也将日益激烈。新技术的发展将重新定义未来的传感器市场,比如无线传感器、光纤传感器、智能传感器和金属氧化传感器等新型称重传感器的出现与市场份额的扩大。 第二章 总体设计方案2.1总体设计框图温度传感器采集到的微弱电压信号经过滤波器放大器放大十倍后送入AD转换器(ADC0804)的输入端。ADC0804将模拟信号转换为数字信号后传给AT89C51选用3个共阳极8段数码显

8、示管用于动态显示当前测量温度。用单片机P1.0至P1.7驱动控制段码,P2.0,P2.1至P2.2驱动三极管实现位选。驱动器74LS244使LED八段数码管动态显示。CPU 89C51模数转换器ADC0804放大电路 传感器3位数码管显示图2.1 总体设计框图2.2 总体设计方案分析按功能要求简易传感器信号测试仪可以测量温度,并在3位LED数码管上显示数值。测量最小分别率为0.019V,测量误差约为0.02V。 按系统功能实际要求,控制系统采用89C51单片机,A/D转换采用ADC0804。系统除能确保实现要求的功能外,还可以方便地进行压力测量和A/D的转换量的测量、数码显示的功能。第三章 硬

9、件设计原理3.1 总原理图及工作原理分析简易传感器信号测试仪信号采集是通过温度传感器AD590将温度的变化转换为变化电压,通过有源滤波器进行滤波放大,得到一个稳定的电压信号,信号进过A/D转换、数据处理,最后通过三位数码管显示出来。电路原理图如图3.1.1所示。 图3.1.1 总电路原理图3.2 AD590传感器检测电路单元 1、 AD590基本知识AD590的主要特性:AD590是美国模拟器件公司生产的单片集成两端感温电流传感器,是一种已经IC化的温度感测器,它会将温度转换为电流。其规格如下:a、 每增加1,它会增加1A输出电流b、 可测量范围-55至150c、 供电电压范围+4V至+30V

10、AD590温度与电流的关系如下表所示摄氏温度AD590电流经10K电压0273.2 uA2.732V10283.2 uA2.832 V20293.2 uA2.932 V30303.2 uA3.032 V40313.2 uA3.132 V50323.2 uA3.232 V60333.2 uA3.332 V100373.2 uA3.732 V表3.2.1AD590的管脚图及元件符号如下图所示:AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。根据特性分挡,AD590的后缀以I,J,K,L,M表示。AD590L,AD590M一般用于精密温度测量电路,其电路外形如图1所示,它采用金属

11、壳3脚封装,其中1脚为电源正端V;2脚为电流输出端I0;3脚为管壳,一般不用。集成温度传感器的电路符号如图2所示。AD590相当于一个温度控制的恒流源,输出电流大小只与温度有关,且与温度成正比。只需一个精密电阻,就可以将电流(温度)信号转化为电压信号,总的灵敏度系数通过该电阻设定。AD590的温度系数是1A/K,即温度每增加1K,它会增加1A输出电流。其输出电流是以绝对温度零度-273为基准,每增加1,它会增加1A输出电流,因此 -10到100时AD590输出电流为263A到373A。ADC0809的输入电压为0-5V,所以需要电流-电压转换电路。2.AD590的工作原理在被测温度一定时,AD

12、590相当于一个恒流源,把它和530V的直流电源相连,并在输出端串接一个1k的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mVK的电压信号。 数字显示温度计的设计AD590具有线性优良、性能稳定、灵敏度高、无需补偿、热容量小、抗干扰能力强、可远距离测温且使用方便等优点。可广泛应用于各种冰箱、空调器、粮仓、冰库、工业仪器配套和各种温度的测量和控制等领域。下面给出用AD590构成数字显示温度计的设计过程。在设计测温电路时,首先应将电流转换成电压。由于AD590为电流输出元件,它的温度每升高1K,电流就增加1A。当AD590的电流通过一个10k的电阻时,这个电阻上的压降

13、为10mV,即转换成10mVK,为了使此电阻精确(01),可用一个96k的电阻与一个1k电位器串联,然后通过调节电位器来获得精确的10k。图3.1.2所示是一个电流电压和绝对摄氏温标的转换电路,其中运算放大器A1被接成电压跟随器形式,以增加信号的输入阻抗。而运放A2的作用是把绝对温标转换成摄氏温标,给A2的同相输入端输入一个恒定的电压(如1235V),然后将此电压放大到273V。这样,A1与A2输出端之间的电压即为转换成的摄氏温标,运放A3反相并放大倍输送给A/D转换器。 图 3.1.2将AD590放入0的冰水混合溶液中,A1同相输入端的电压应为273V,同样使A2的输出电压也为273V,因此

14、A1与A2两输出端之间的电压:2.732.730V即对应于0。 3.3、放大电路741放大器为运算放大器中最常被使用的一种,拥有反相向与非反相两输入端,由输入端输入欲被放大的电流或电压信号,经放大后由输出端输出。放大器作动时的最大特点为需要一对同样大小的正负电源,其值由12Vdc至18Vdc不等,这里使用12Vdc的电压。741运算放大器的接脚配置如图3.1.3图 3.1.3741运算放大器使用时需于7、4脚位供应一对同等大小的正负电源电压Vcc与Vcc,一旦于2、3脚位即两输入端间有电压差存在,压差即会被放大于输出端,唯Op放大器具有一特色,其输出电压值决不会大于正电源电压Vcc或小于负电源

15、电压Vcc,输入电压差经放大后若大于外接电源电压Vcc至Vcc之范围,其值会等于Vcc或Vcc,故一般运算放大器输出电压均具有如图3.1.4之特性曲线,输出电压于到达Vcc和Vcc后会呈现饱和现象。图3.1.43.4 A/D转换电路单元ADC0804芯片介绍图3.1.5:ADC0804规格及引脚分配图本设计采用的A/D芯片为ADC0804,它是CMOS 8位单通道逐次渐近型的模/数转换器,其规格及引脚图如图3所示,根据手册我们可以得到各个引脚的大致功能如下:/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的

16、地址信号使能不同的ADC0804芯片,从而可以实现多个ADC通道的分时复用。/WR:启动ADC0804进行ADC采样,该信号低电平有效,即/WR信号由高电平变成低电平时,触发一次ADC转换。/RD:低电平有效,即/RD=0时,可以通过数据端口DB0DB7读出本次的采样结果。UIN(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。双边输入时UIN(+)、UIN(-)分别接模拟电压信号的正端和负端。当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动从UIN(+)中减去这一电压。VREF/2:参考电压接入引脚,该引脚

17、可外接电压也可悬空,若外界电压,则ADC的参考电压为该外界电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。CLKR和CLKIN:外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK = 1/1.1RC,一般要求频率范围100KHz1.28MHz。AGND和DGND:分别接模拟地和数字地。 /INT:中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起/INT=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果

18、,若ADC0804单独使用,则可以将/INT引脚悬空。DB0DB7:输出A/D转换后的8位二进制结果。ADC0804模拟转数字对照表十六进制二进制高四位低四位相对电压值(2.56V)分别与满刻度的比率高四位低四位F111115/1615/2564.8000.300E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910019/169/2562.8800.180810008/168/256

19、2.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/25600表3.4.1根据以上对照表,可以得出以下结论如果:输入模拟量VIN=4V,由上表可知3.840+0.160=4V 数字为11001000=C8H模数转换器ADC0804的工作分为三个过程:,复位中断触发信号信号

20、表明ADC0804转换已经结束,它提示单片机随时可以读取转换结果,是ADC0804的一个输出信号。一般情况下,启动A/D转换前应该复位这个 信号,以等待新的转换完成后ADC0804发出新的 信号,这样才可以读到新的转换结果。复位 信号的时序如图2中的A,在实现片选 ( 0)的前提下,使用一个读信号 的下降沿就可以复位 信号。,启动ADC0804的A/D转换ADC0804中的A/D转换器在满足一定条件时开始一个转换过程,这个条件就是:在实现片选 ( 0)的前提下, 引脚上出现的一个上升沿。启动A/D转换的时序如图2中的B,实现片选以后( 0),使用一个写信号就可以启动一个转换过程。图中 是时间延

21、迟,时间 是转换时间。,读取转换结果在A/D转换结束以后,ADC0804的 引脚将给出一个低脉冲,如果把这个引脚直接连接到单片机的外部中断引脚P3.或P3.,这个低脉冲将引起单片机中断,单片机可以在中断处理程序中读取ADC0804的转换结果。实验中我们由CH0输入模拟量,DO输出数字量。我们把AD0832的CS、CLK、D0、DI端分别连接在P3.3、P3.2,P3.1,P3.0端,所以ADC0804的片选、时钟信号、启动位和配置位均通过置位端口实现。由于是CH0输入模拟信号,所以配置位为10。ADC0804为单端输出模式。由于AD是串行输入输出,故前3个脉冲上升沿完成设置,第411个脉冲下降

22、沿后取1位AD转换的结果,在第1118个脉冲下降沿后第二次取AD转换结果,将两次结果进行比对,如果一致,则完成转换,关ADC0804;如果不一致,则重新开始转换。经AD转换后,数字量D与温度值的转换如下所示:本设计中的A/D转换由集成电路0804完成。0804具有一个模拟电压输入端口。5脚为中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起/INT1=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果。CLKR和CLKIN引脚是外接RC电路产生模数转换器所需的

23、时钟信号。/CS引脚为芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作。单片机的P1、P2.0P2.2端口作为3位LED数码管显示控制。P0端口用作A/D转换数据读入,P2.6、P3.6、P3.7用作0804的A/D转换控制。为了提高精度,扩大测量范围,在A/D转换前还要将信号加以放大并进行零点迁移,因而一个高稳定性的、高精度的放大电路是必须的。当温度变化时,AD590会产生电流变化,当AD590的电流通过一个10k的电阻时,这个电阻上的压降为10mV,即转换成10mVK,为了使此10k电阻精确,可用一个9k的电阻与一个2k的电位器串联,然后通过调节电位器来获得精确的10k。运算放大

24、器A1被接成电压跟随器形式,以增加信号的输入阻抗,由运放A2减去2.732做零位调整(即把绝对温度转成摄氏温度),最后由运放A3反相并放大倍输送给A/D转换器。具体硬件连接图如图3.4所示。 图3.4 AD590温度采集及模数转换电路3.5 CPU主控电路单元1 、89C51简介AT89C51是美国ATMEL公司生产的低电压 ,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM ),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flas

25、h存储单元,功能强大的AT89C51单片机能应用许多高性价比的场合,可灵活应用于各种控制领域。图3.5.1 89C51封装图89C51的主要参数 (1)主要特性: 4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年全静态工作:0Hz-24Hz,三级程序存储器锁定,128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路(2)管脚说明: VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0

26、能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P

27、2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示。P3口管

28、脚 (备选功能)P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此

29、频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的 /PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意

30、加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(3)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(4)芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正

31、确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 2、单片机电路设计l 89C51的复位电路:同时在第9脚引出一个22uF的电容和一个2K的电阻接+5V的电源组成一个复位电路,如图3.4.2所示。图3.5.2 AT89C51复位

32、电路原理图l 89C51的时钟电路:AT89C51的+5V电源由39脚引入,第19脚接地,第17脚和第18脚间由12MHz的晶振及两个20pF的无极性电路组成一个时钟振荡电路,如图3.4.3所示。图3.5.3 AT89C51时钟电路原理图3.6 显示电路单元 数码管结构数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 9、字符A F、H、L、P、R、U、Y、符号“-”及小数点“.”。数码管的外型结构如图图3.6.1外型结构数码管工作原理 共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段

33、驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。图3.6.2 数码LED显示电路3.7 供电电源电路本设计中采用了

34、5V电源供电。图3.7 供电电源电路第四章 软件设计分析4.1 系统总流程图在主程序中,系统上电自动复位以后首先设置堆栈,然后启动ADC0804,开始转换AD590测温电路输入的电信号,待数据转换结束后读入到累加器A,然后进行十进制数据转换调整,输出给显示电路。主程序流程图如图4所示。 图4.1.1 主程序流程图 由于ADC0804转换后的数据是二进制数据,而七段码LED显示器所要显示的数据是十进制数据,因此需要进行二、十进制数据转换。ADC0804输出的最大转换值为FFH(255),由于运放放大倍,因此本数字温度计的最大测量温度为5.V/51.0,即100。由255*=100,得知0.4,即

35、先乘再除10。要将其变成BCD码形式,所以可以先将AD转换结果除以250得到百位数BCD码;余数除以10得到十位数BCD码,余数为小数,如果其为奇数,则小数部分为5,如果是偶数,小数部分为0。所以,十进制转换调整流程为A/D(二进制)十进制乘显示。程序流程图如图4.1.2所示。 图4.1.2十进制数据转换调整子程序流程图十进制转换调整后的数据送到寄存器R5、R4中,然后通过P1口把数据输出给D4、D3、D2、D1四个数码显示器中,从而最终把测得的温度显示出来。显示子程序流程图如图4.1.3所示。图4.1.3 数据显示程序4.2 A/D转换的启动及转换结果获取 开始启动转换(P2.7=1,P3.

36、6=1)A/D转换结束?(P3.3=0)取数据(P3.7=1)读取结束? 结束 图4.2 A/D转换流程图4.3 程序实现分析由于数据采集部分由硬件AD590通过运算放大把信号输入到ADC0804,ADC0804将输入信号转化成对应的二进制数,因此程序只需通过控制ADC0804的/rd和/wd端来读取二进制即可。程序每隔50ms将当前温度值与设定值比较一次,当小于设定温度值时发出控制信号,即p2.1是0,该思路可用定时器T0来完成,比较判断是否控制信号为判断子程序中的内容。设定温度下限部分,由于硬件通过74c922来输出对应的按键值,因此该程序只需读取该值,然后转换成对应的十进制数即可。显示部

37、分:通过动态扫描实现,具体实现为当通过p1口送入数据时需将相应的控制数码管的三极管导通,即将p1.4或p1.5轮流置1即可。3.2程序的具体实现程序具体实现分为以下几个步骤:(1)初始化将用到的RAM单元30H到35H清零,其中30H用来存放当前温度的个位数,31H用来存放当前温度的十位数,33H用来存放设定温度的个位数。34H用来存放设定温度的十位数,设置定时器工作在T0模式,并设定TH0、TL0的初值。(2)主程序循环部分启动ADC0804开始转换,即令/wr=0。本程序是利用movx r0, a 来实现的,当执行该语句时,单片机的/wr置0,然后向p0口输出数据。判断是否按了“”键,如按

38、则转到显示设定温度子程序。然后检测AD转换是否完成,由于启动ADC0804后,当数值转化完成时,在INTR端发出低脉冲,因此单片机只有在接收到该低电平后才开始读取ADC0804的数据。调用二进制转换子程序,将读取的二进制数转换成数存入30H,31H。调用显示子程序,然后延时扫描,再返回。(3)二进制转换成十进制子程序利用DA调整指令来完成二进制到十进制的转换。具体的实现方法请参见程序。(4)设定温度子程序该部分在33H,34H中,可通过三条指令 mov a , 20H ;xch A,33H ;xch a,34H (20H为按键数值的暂存地址)来简洁而方便的完成。(5)显示子程序利用R1要存放显

39、示数值的地址,这样可方便的通过MOV A,R1;ADD A,#20H,来完成的,即将P1.5口置1 ,且保持P1口低四位不变,同理加载输出个位数,为保证数码管显示亮度,每加载一次输出显示后要有一定的延时时间1.5ms左右即可。(6)T0中断子程序进入中断后重新转载初值,然后比较十位数,用MOV a,34H ;CJNZ A,T当A=31H时,c=0,否则c1.同理用相同方法判断个位数。当现在温度大于设定温度时将P2.1口置1,否则清零,最后中断返回。第五章 结语通过本次课程设计,我主要掌握了一下几个方面的知识: 首先是各个芯片的功能和结构,其次是protel 99 se的画图。作为一个学生,发现

40、我们掌握的知识是多么的疏浅,很多东西都是要重新拾起课本学习。另外自己钻研精神还不够,只想在一天之内得到满意的实验结果,不能沉下心一点点调试。现在想起来很惭愧,在设计的过程中发现了自己的不足之处,比如编程问题,硬件的连接,怎样去调试。参考文献【1】 曹天汉 单片机原理与接口技术 电子工业出版社【2】 柳春锋 Protel 99se实用教程 高等教育出版社【3】 梁 森 自动检测与转换技术 机械工业出版社【4】 任致程 经典智能电路300例 机械工业出版社【5】 何希才 传感器及其应用电路 电子工业出版社【6】 还有很多来自网络上无法说明具体出处的宝贵资料致谢词感谢各位评委老师在百忙之中抽出宝贵的

41、时间为我们审稿。你们的审阅是对我们论文成果的一种肯定与负责,让我在此向你们表示最诚挚的问候:老师,您辛苦了这次论文从选题、实验到最终完成,每一步都是在曾瑄老师的精心安排和悉心指导下完成的,倾注了老师大量的心血。她广博的学识,丰富的经验,严谨的治学态度,事业上积极进取的精神对我影响深远。在此,谨向曾萱老师表示崇高的敬意和衷心的感谢!谢谢曾萱老师在我撰写论文的过程中给予我极大地帮助。同时,论文的顺利完成,也离不开同组其他同学的关心和帮助,在此对他们表示衷心的感谢。在整个论文创作中,各位老师、同学和朋友给我提供了宝贵的建议和意见,使得论文顺利完成。 大学三年学习时光已经接近尾声,在此我想对我的母校,我的父母、亲人们,我的老师和同学们表达我由衷的谢意。感谢我的家人对我大学三年学习的默默支持;感谢我的母校南昌工程学院给了我在大学深造的机会,让我能继续学习与提高;感谢老师与同学在生活和学习上的帮助与鼓励,所有这些都让我三年中充满了感动,谢谢你们! 附录1:总原理图:附录:程序清单/=; 主程序

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号