《单片机粮仓多点温度巡回检测系统课程设计.doc》由会员分享,可在线阅读,更多相关《单片机粮仓多点温度巡回检测系统课程设计.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 温度监测仪目 录1 引言11.1 本设计的意义11.2 国内外现状分析11.3 论文的主要内容22 系统总体方案设计23 硬件部分设计33.1 AT89C51介绍33.1.1 主要性能33.1.2 引脚功能说明43.2 传感器模块部分设计43.2.1 AD590主要特性53.2.2 与ADC0809接口63.3 数模转换部分硬件设计63.3.1 ADC0809介绍73.3.2 ADC0809各管脚功能73.3.3 硬件连接电路83.4 LED显示电路的设计93.4.1 LED数码管93.4.2 LED数码管编码方式103.4.3 LED数码管显示方式和典型应用电路113.5 报警电路的设计1
2、23.6 整体电路图134 软件部分设计144.1 A/D转换程序流程图144.2 显示程序流程图144.3 报警程序流程图154.4 主程序流程图15结束语18参考文献19附录20致谢231 引言1.1 本设计的意义随着电子技术、计算机技术、通信技术的迅速发展,工业测控领域采用先进的技术对现场的工业生产参数进行检测,监测是实现工业自动化的重要标志。据不完全统计,在工业生产中被监测最多的参数应该是压力、流量、温度三大参数。无论在石油、化工、煤炭、水利等行业,还是电力、机械、航空、国防等部门,都离不开对这些参数的监测。当然除此之外,还有诸如液位、扭矩、密度、浓度、速度、位移、距离、电参数等众多物
3、理参数的监测,但用的最多的恐怕还是温度的监测,可以说温度的测量是一个“永恒”的话题。温度测量的领域十分广泛,其实,不仅在工业领域,而且在民用领域、军用领域,温度的测量随处可见。在工业领域,电力系统的安全运行关系到整个工业的发展和人民生活的稳定,其中一个重要的方面是电气设备自身的安全运行,由于绝大多数的电气设备采用封闭式结构,散热效果差,热积累大,并长期处于高电压、大电流和满负荷运行,其结果造成热量集结加剧,温升直接危害电器设备的绝缘,这就要求对电气设备的温度状况进行测量控制。如发电厂的发电机组随着电压增高和容量增大,解决定子铁心和绕组温升的问题就日益突出。对全封闭的高压开关电器,也存在对其开关
4、触头温度的监测问题,电机的轴温,胶带滚筒的表面温度,工业冷却循环水温,加热设备的炉温,啤酒的麦芽发酵温度,各种化工原料在化学反应时控制的温度等等。在民用领域,超市的食品架内温度,人们生活空间环境的温度,空调的控制温度,人体繁荣体温检测,冰箱、冰柜的温度测量等等。随着计算机的发展,程序控制也逐渐成为了工业生产中的主要角色,各种各样的检测系统应运而生。基于单片机的温度检测系统具有以前温度检测所无法具有的优点,因为系统为程序控制,所以实现形式非常灵活,而且可以实现很多新功能,而且对于日益复杂化的工业生产,对于多点温度检测的需求也很大程度上提高了。单片机系统具有体积小,功耗小的特点,而且可以对采集的数
5、据进行软件处理,所以用单片机进行多路温度检测,具有非常实际的意义。1.2 国内外现状分析随着世界进入信息化时代,自动化、信息化成为世界各国发展重要方向之一。传感器作为自动化和信息系统的前端器件,是制造业自动化和信息化的基础;现代传感器技术集约了多种学科的尖端成果、是国际上发展最迅速的高新技术之一;是传统产业技术改造和升级的“功效倍增器”,成为衡量一个国家科技发展的重要指标。单片机是完全按嵌入式系统要求设计的单芯片形态的嵌入式系统,它广泛应用在中、小型工控领域,是电子系统智能化的最重要的工具。温度传感器也从传统类型向集成化、微型化、多功能发展,且随着材料行业对传感器敏感材料进一步的开发,传感器新
6、敏感材料不断推出,高新材料已广泛用于新型传感器制造研发中,如光纤传感器,光纤传感器等等,我国与国外先进国家相比,还处于落后状态。本设计主要涉及到微控制器和温度传感器的应用。二者的发展直接影响着温度检测方面的设计和应用。 1.3 单片机的概念和特点 现代社会中,尽管PC机的应用已经相当普遍,但是,在工控领域,在日益追求小而精、轻而薄的自动化控制器、自动化仪器仪表、家电产品等方面,PC机仍有所不相适宜的地方。而工业控制、仪器仪表、家电产品等市场广阔,要求PC机技术与之相适应。在这种情况下,单片机应运而生了(也称作微型计算机)。微型计算机的基本机构是由中央处理器、储存器、和I/O设备构成的。所谓的单
7、片机是指将微型计算机3个单元的多个分体中的主要功能用1个集成电路芯片来实现,该芯片具有一个微型计算机的基本功能。这种超大规模集成电路芯片即称为单片微型计算机,通常简称单片机。单片机具有以下特点:(1) 受集成度限制,片内存储容量较小,一般8位单片机的ROM小于8/16K字节,RAM小于256字节,但可在外部扩展,通常ROM、RAM可分别扩展至64K字节。(2) 可靠性好。芯片本身是按工业测控环境要求设计的,其抗工业噪声干扰优于一般通用CPU;程序指令及常数、表格固化在ROM中不易破坏;许多信号通道均在一个芯片内,故可靠性高。(3) 易扩展。片内具有计算机正常运行所必需的部件。芯片外部有许多供扩
8、展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。(4) 控制功能强。为了满足工业控制要求,一般单片机的指令系统中具有极丰富的条件分支转移指令、I/O口的逻辑操作以及位处理功能。一般说来,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。(5) 一般单片机内无监控程序或系统通用管理软件,只放置有用户调试好的应用程序。但近年来也开始出现了在片内固化有BASIC解释程序的单片机。 1.4 单片机的发展与趋势由于单片机具有以上特点,因此在工业控制、数据采集、智能仪器仪表、智能化设备和各种家用电器等领域得到广泛的应用。随着微电子工艺水平的提高,近十年来单片微型计算机有了
9、飞速的发展。归纳起来,它是沿着两条路发展的:1.改进集成电路制造工艺,提高芯片的工作速度,降低工作电压和降低功耗:2.在保留共同的CPU体系结构,最基本的外设装置(如异步串行口,定时器等)和一套公用的指令系统的基础上,根据不同的应用领域,把不同的外设装置集成到芯片内,在同一个家族内繁衍滋生出各种型号的单片机。另外在单片机的应用中,可靠性是首要因素,为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术,主要表现在一下几点:(1) EFT(Electrical Fast Transient)技术(2) 低噪音布线技
10、术及驱动技术(3) 采用低频时钟总之,单片机在目前的发展形势下,表现出几大趋势:l 可靠性及应用水平越来越高,和internet连接已是一种明显的走向;l 所集成的部件越来越多;l 功耗越来越低;l 和模拟电路结合越来越多。 1.5.单片机选择 本系统采用单片机为控制核心。单片机/MCU主要有51基本型和52增强型,而相比之下52型比51型功能更为强大,ROM和RAM存储空间更大,52还兼容51指令系统。基于本系统设计内容的需要,综合考虑后,我们选择单片机ATME公司的AT89C52为控制核心;主要基于考虑AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦
11、写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM)、6个中断源;时钟频率0-24MHz;器件采用高密度、非易失性存储技术生产,并兼容标准MCS-51指令系统,功能强大。(2)AT89C52介绍AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8K bytes的可反复擦写的只读程序存储器(PEROM)和256K bytes的随机存取数据存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器和FLASH存储单元,功能强大,AT89C52单片机适合于许多较为复
12、杂控制应用场合。主要性能参数:l 与MCS-51产品指令和引脚完全兼容l 8K字节可重擦写FLASH闪存存储器l 1000次写/擦循环l 时钟频率:0Hz24MHzl 三级加密存储器l 256字节内部RAMl 32个可编程I/O口线 l 3个16位定时/计数器 图3.1 引脚图l 6个中断源l 可编程串行UART通道l 低功耗的空闲和掉电模式l 片内振荡器和时钟电路AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内振荡器及时钟电路,AT89C52可以按照常规方法进行编程,也可以在线编程。
13、同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本.AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。AT89C52引脚功能:Vcc:电源电压 GND:地 P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收
14、电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问器件激活内部上拉电阻。 在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 与AT89C51不同之处是,P1.0
15、和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表2-1。Flash编程和程序校验期间,P1接收低8位地址。表2-1为 P1.0和P1.1的第二功能表3-1 P1.0和P1.1的第二功能P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,同时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVDPTR指令)时,
16、P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVRI指令)时,P2口输出P2锁存器的内容。 Flash编程或校验时,P2亦接收高位地址和一些控制信号。 P3口:P3口时一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口作为一般的I/O口线外,更重要的用途是它的第二功能,如表2-2所示:此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引
17、脚出现两个机器周期以上高电平将使单片机复位。ALE/:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。表3-2 P3口第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6(外部数据存储器写选通)P3.7 (外部数据存储器读选通) 对Flash存储器编程器件,改引脚
18、还用于输入编程脉冲()。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位复位,可禁止ALE操作。该位置复位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 :程序储存允许()输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。在次期间,当访问外部数据存储器,将跳过两次信号。 /VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFH),端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时
19、内部会锁存端状态。 如端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。 Flash存储器编程时,该引脚加上12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。1.5 论文的主要内容本文首先介绍了本设计的现实意义,然后分析了在国内外的现状。从整体方案上给出介绍,即先介绍系统整体方案,给出系统方框图,按模块化划分,逐个模块介绍,然后总体说明。第三部分是硬件部分设计,系统详细的介绍设计中的主控单元-单片机及各个模块,包括传感器模块的设计,数模转换部分硬件设计,显示部分电路
20、设计,报警电路的设计等等,最后给出整个系统的电路原理图。第四部分是软件部分的设计,其中涵盖了,主程序流程图、A/D转换程序流程图、显示程序流程图、报警程序流程图等及相关流程图的文字说明。2 系统总体方案设计图1 设计框图如图1所示,本设计共有五部分组成:温度采集,A/D转换,单片机,显示电路,告警电路等,其中温度采集主要由AD590组成,把热力学温度信号转换成电流信号,然后放大,经电阻分压获得电压信号,送入A/D转换电路即ADC0809后得到8位的数字温度信号,送入单片机,由单片机的TXD,RXD串行(高位在前,地位在后)送入显示电路显示,并且判断是否超出设定范围,若超出设定范围,由单片机启动
21、告警电路,告警。本设计是模拟温度的显示,温度经过AD590转换为电流信号,经放大器放大后通过电阻转换成电压信号,进入ADC0809进行A/D转换成数字量,送入单片机后输出到静态显示部分,显示其温度值。在该设计中,显示部分采用74LS164串联组成驱动LED部分,这样既达到显示的目的又节省了I/O口,使设计简单明了。 由于本设计的对单片机可靠性要求不高,本着简单实用出发,复位电路设计为上电复位 。ADC0809进行A/D转换后,输出的是并行8位数据,直接送入单片机节省硬件设施且使编程简单,为实现多路巡回检测,通过P0.0P0.2控制74LS373来达到设计目的。其中温度范围的计算原理:首先把A/
22、D转换中电位器顺时针旋到底,即模拟信号的输入不衰减,选取两个温度状态T1T2,分别测量出其模拟输出电压V1V2;根据ADC0809的输入范围在0到5伏,即可计算出温度极限。0伏时对应的温度TL:T1-(V1-0)(T2-T1)/(V2-V1)5伏时对应的温度TH:T1-(V1-5)(T2-T1)/(V2-V1)本设计中近似计算TH为150,TL为-50。程序中温度的计算原理:首先用温度范围除以0到256(即每个十六进制数的温度增长率),然后乘以模拟转换的数字量,即得到升高的温度,再和最低温度相加,就可以得到实际的温度值。其公式为:TL+AX(TH-TL)/256TL:显示的最低温度TH:显示的
23、最高温度AX:模拟电压所转换的数字量在A/D转换实验模块中模拟信号输入端的电位器可调节电压输入,用以模拟低温状态下的温度显示,当电位器顺时针旋到底时,输入信号不衰减,显示温度与室温相对应,用做数字显示温度表。3 硬件部分设计3.1 AT89C51介绍AT89C51是一种低功耗/低电压、高性能的8位单片机。片内带有一个4KB的Flash可编程、可擦除只读存储器(EPROM)。它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MSC-51兼容。片内的Flash存储器允许在系统内改编程序或用常规的非易失性存储器编程器来编程。因此AT89C51/
24、LV51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。3.1.1 主要性能l 4KB可改编程序Flash存储器(可经受1000次的写入擦除)l 全静态工作:0Hz24MHzl 3级程序存储器保密l 1288字节内部RAMl 32条可编程I/O线l 2个16位定时器/计数器l 6个中断源l 可编程串行通道l 片内时钟振荡器3.1.2 引脚功能说明图2是AT89C51的引脚结构图,下面分别简单的介绍这些引脚的功能。(1) 主电源引脚VCC:电源端。GND:接地端。(2) 外接晶体引脚XTAL1和XTAL2(3) 控制或与其他电源复用引脚RST,ALE/PROG,/EA /
25、Vpp图2 AT89C51的引脚结构ALE/PROG:当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。/PSEN:程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。/EA/Vpp:外部访问允许端。当/EA端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序。在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。(4) 输入/输出引脚P0.0P0.7,P1.0P1.7,P2.0P2.7和P3.0P3.7。其中P3端口还用于一些复用功能。3.2
26、 传感器模块部分设计AD590是美国模拟器件公司的电流输出型温度传感器,供电电压范围为330V,输出电流223A(-50C)423A(+150C),灵敏度为1A/C。当在电路中串接采样电阻R时,R两端的电压可作为输出电压。注意R的阻值不能取得太大,以保证AD590两端电压不低于3V。AD590输出电流信号传输距离可达到1km以上。作为一种高阻电流源,最高可达20M,所以它不必考虑选择开关或CMOS多路转换器所引入的附加电阻造成的误差。适用于多点温度测量和远距离温度测量的控制。3.2.1 AD590主要特性(1) 流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即: Ir/T=
27、 mA/K式中: Ir-流过器件(AD590)的电流,单位为mA;T-热力学温度,单位为K。(2) AD590的测温范围为-55C+150C。(3) AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。(4) 输出电阻为710MW。(5) 精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55C+150C范围内,非线性误差为0.3C。AD590的封装形式和基本应用电路如图3: a)封装形式 b)基本应用电路图3 AD590的封装及基本应用电路在本设
28、计中,使用AD590对温度进行采集,即通道AD590把摄氏温度信号转换成电流信号,经电阻分压,最总转换成电压信号,送到ADC0809。其电路如图4所示。图4 温度采集电路图其中,R1用来调节运放的输入电压,经运放发大后达到ADC0809的转换电压。3.2.2 与ADC0809接口AD590作为温度采集器件,把热力学温度转换成电流信号,送入运算放大器放大,然后经电阻转换成电压信号,送入ADC0809.图5中给出一路温度采集电路与ADC0809的方式。要实现多路温度的采集,只需在ADC0809的输入端连接多路温度采集电路即可。图5 ADC0809与AD590的接口电路3.3 数模转换部分硬件设计将
29、模拟信号转换成数字信号的电路,称为模数转换器(简称A/D转换器或ADC,Analog to Digital Converter);将数字信号转换为模拟信号的电路称为数模转换器(简称D/A转换器或DAC,Digital to Analog Converter);A/D转换器和D/A转换器已成为计算机系统中不可缺少的接口电路。为确保系统处理结果的精确度,A/D转换器和D/A转换器必须具有足够的转换精度;如果要实现快速变化信号的实时控制与检测,A/D与D/A转换器还要求具有较高的转换速度。转换精度与转换速度是衡量A/D与D/A转换器的重要技术指标。 随着集成技术的发展,现已研制和生产出许多单片的和混
30、合集成型的A/D和D/A转换器,它们具有愈来愈先进的技术指标。这里采用ADC0809芯片来进行模数转换。3.3.1 ADC0809介绍ADC0809是8位CMOS逐次逼近式A/D转换器。内部有8 路模拟量输入和8 位数字量输出的A/D转换器,它是美国国家半导体公司的产品,是目前国内最广泛的8 位通用的A/D转换的芯片。其结构图如图6所示。外部时钟输入端,时钟频率高,A/D转换速度快。允许范围为101280KHZ,典型值为640KHZ,此时,A/D转换时间为10us。通常由MCS-51型单片机ALE端直接或分频后与其相连。当MCS-51型单片机无读写外,RAM操作时,ALE信号固定为CPU时钟频
31、率的1/6,若单片机外接的晶振为6MHZ,则1/6为1MHZ,A/D转换时间为64us。3.3.2 ADC0809各管脚功能ADC0809采用双列直插式封装,共有28条引脚,如图7 所示。 图6 ADC0809结构图(1) IN0-IN7:IN0IN7为8 路模拟电压输入线,用于输入被转换的模拟电压(2) ADDA,ADDB,ADDC: 三位地址输入端。八路模拟信号转换选择同由A,B,C决定。A为低位,C为高位。(3) CLOCK:时钟信号。最高允许值为640kHz。(4) D0-D7:数字量输出端,A/D转换的结果由这几个端口输出。图7 ADC0809引脚图(5) OE:A/D转换结果输出允
32、许控制端,当OE端为高电平时,允许将A/D转换结果从D0D7端输出。(6) ALE: 地址锁存允许信号。八路模拟通道地址由A,B,C输入在ADC0809的ALE信号有效时,将该八路地址锁存。(7) START: 启动A/D转换信号。当START端输入一个正脉冲时,立即启动ADC0809进行A/D转换。(8) EOC: A/D转换结束信号,是芯片的输出信号。转换开始后,EOC信号变低;转换结束时,EOC返回高电平。这个信号可以作为A/D转换器的状态信号来查询,也可以直接用作中断请求信号。(9) VREF+,VREF-:正负基准电压输入端。(10) VCC,GND :正电源电压端和地端。3.3.3
33、 硬件连接电路ADC0809与89C51连接可采用查询方式,也可以采用中断方式。图8所示 为中断方式连接电路图。由于ADC0809片内有三态输出锁存器,因此,可直接与89C51接口。这里将ADC0809作为一个外部扩展并行I/O口,采用线选法寻址。由P2.0和/WR联合控制启动转换信号端(START)和ALE端,低三位地址线加到ADC0809的ADDA、ADDB和ADDC端,所以,选中ADC0809的IN0通道的地址为0FEFBH。启动ADC0809的工作过程是:先送通道号地址到ADDA、ADDB和ADDC;由ALE信号锁存通道号地址后,让START有效;启动A/D转换,即执行“MOVX DP
34、TR,A”。指令产生/WR信号,使ALE和START有效;锁存通道号并启动A/D转换。A/D转换完毕,EOC端发出一正脉冲,申请中断。在中端服务程序中,“MOV A,DPTR”指令产生/RD信号,使OE端有效,打开输出锁存器三态门,8位数据便读入到CPU中。ADC0809的时钟取自89C51的ALE经二分频后的信号。当A/D转换完毕,89C51读取转换后的数字量时,须使用“MOVX A,DPTR”指令。这样就完成了ADC0809与89C51的连接及工作过程。 图8 ADC0809与单片机的连接图3.4 LED显示电路的设计在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED数码
35、管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。3.4.1 LED数码管LED数码管是由发光二极管作为显示字段的数码型显示器件。图9中a为0.5inLED数码管的外形和引脚图,其中七只发光二极管分别对应ag笔段构成“”字形另一只发光二极管Dp作为小数点。因此这种LED显示器称为七段数码管或八段数数码。LED数码管按电路中的连接方式可以分为共阴型和共型两大类,如图9中b、c所示。共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,ag、Dp各笔段通过限流电阻接控制端。某笔段控制端低电平时,该笔段发光,高电平时不发光。控制某几段笔段发
36、光,就能显示出某个数码或字符。共阴型是将各数码发光二极管的负极连在一起,作为公共端COM接地,某笔段通过限流电阻接高电平时发光。LED数码管按其外形尺寸有多种形式,使用较多的是0.5in和0.8in;按显示颜色也有多种形式,主要有红色和绿色;按亮度强弱可分为高亮和普亮,指通过同样的电流显示亮度不一样,这是因发光二极管的材料不一样而引起的。LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.52V额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示可加大,可脉冲电流,但一般不超过40mA。a)外形和引脚 b)共阴极结构 c)共阳极结构 图9 数码管及其结
37、构 3.4.2 LED数码管编码方式当LED数码管与单片机相联时,一般将LED数码管的各笔段引脚a、b、g、Dp按某一顺序接到MCS51型单片机某一个并行I/O口D0、D1、D7,当该I/O口输出某一特定数据时,就能使LED数码管显示出某个字符。例如要使共阳极LED数码管显示“0”,则a、b、c、d、e、f各笔段引脚为低电平,g和Dp为高电平。LED数码管编码方式有多种,按小数点计否可分为七段码和八段码;按共阴共阳可分为共阴字段码和共阳字段码,不计小数点的共阴字段码与共阳字段码互为反码;按a、b、g、Dp编码顺序是高位在前,还是低位在前,又可分为顺序字段码和逆序字段码。甚至在某些特殊情况下将a
38、、b、g、Dp顺序打乱编码。表1为共阴和共阳LED数码管几种八段编码表。这里采用共阴极数码管的编码方式。表1 共阴和共阳LED数码管几种八段编码共阴顺序小数点暗共阴逆序小数点暗共阳顺序小数点亮共阳顺序小数点暗Dp g f e d c b a16进制a b c d e f g dp16进制00 0 1 1 1 1 1 13FH1 1 1 1 1 1 0 0FCH40HC0 H10 0 0 0 0 1 1 006H0 1 1 0 0 0 0 0 60H79HF9 H20 1 0 1 1 0 1 15BH1 1 0 1 1 0 1 0DAH24HA4 H30 1 0 0 1 1 1 14FH1 1
39、1 1 0 0 1 0F2H30HB0 H40 1 1 0 0 1 1 066H0 1 1 0 0 1 1 066H19 H99 H50 1 1 0 1 1 0 16DH1 0 1 1 0 1 1 0B6H12 H92 H60 1 1 1 1 1 0 17DH1 0 1 1 1 1 1 0BEH02 H82 H70 0 0 0 0 1 1 107H1 1 1 0 0 0 0 0E0H78 HF8 H80 1 1 1 1 1 1 17FH1 1 1 1 1 1 1 0FEH00 H80 H90 1 1 0 1 1 1 16FH1 1 1 1 0 1 1 0F6H10 H90 H3.4.3 LED
40、数码管显示方式和典型应用电路LED数码管显示电路在单片机应用系统中可分为静态显示方式和动态显示方式。在本设计中,使用的是静态显示方式,这里主要介绍静态显示方式及其电路连接。静态显示在本设计中如图10所示。一般情况,在静态显示方式下,每一位显示器的字段需要一个8位I/O口控制,而且该I/O口须有锁存功能,N位显示器就需要N个8位I/O口,公共端可直接接+5V(共阳)或接地(共阴)。显示时,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新显示为止。也就是各字段的亮灭状态不变。此种情况下,静态显示方式编程较简单,但占用I/O口线多,即软件简单、硬件成本高,一般适用显示位数较少的场合。但是,
41、利用74LS164串入并处的特点设计的静态显示,可以轻而易举的解决静态显示占用I/O口多的问题,同时,编程也没动态显示那么复杂!图10 显示电路图图10 是该应用的典型电路图,也是在本设计中要用到的显示电路,图中CLOCK 为74LS164提供其工作的脉冲信号,SERIAL NUM是从单片机输出的要显示的串行数据。3.5 报警电路的设计告警在设计电路中,被广泛的应用,简单实用。当温度、压力、转速等等超出了设置的限度,有可能对设备、人或其他造成危害;所以,当检测到温度、压力、转速等大于期望的范围时,由相关电路触发三极管的基极,使三极管导通,继电器吸合,指示灯亮,同时蜂鸣器响,发出告警信号。其电路
42、如图11所示。图11 告警电路 在本设计中,告警电路与单片机的连接如图12所示 ,单片机把接收来的数字温度信号与所设置的温度信号比较,一旦发现超出了设定的范围,由单片机的P3.4引脚置高电平,驱动三极管(9013),使继电器吸合,二极管亮,同时,蜂鸣器响,发出告警信号。该报警电路设计简单,成本低。 图12报警电路与单片机接口3.6 整体电路图图13系统电路图系统电路图由前面介绍的各个模块硬件的综合。配以软件,即可实现本设计的功能。图13所示为该设计的系统电路图。4 软件部分设计4.1 A/D转换程序流程图图14 数模转换部分流程数模转换由ADC0809来完成,启动系统后,首先对其进行初始化,然
43、后由单片机的P0口送出通道地址,74LS373锁存同时送给ADC0809的ADDA、ADDB、ADDC来选通采集温度的通道号;接着单片机发出启动A/D转换信号,开始转换。转换完毕,ADC0809的EOC发出转换完成信号,告诉单片机,单片机进入中断系统。循环往复。其流程图如图14所示。4.2 显示程序流程图当数字信号送到单片机后,计算偏移量,查表,然后执行串行传送指令,把数字温度信号一位一位的发送到串入并出的74LS164,驱动LED显示采样的温度。其流程图如图15所示。图15 显示子程序流程图4.3 报警程序流程图 ADC0809把模拟温度信号转换成数字信号送到单片机的存储后,程序中报警子程序
44、把数字温度信号(即当前温度信号)与设定的温度信号进行比较,当当前温度超出了设定的范围,启动报警电路,即由单片机的P3.4输出高电平,使晶体管工作,从而使继电器吸合,报警指示灯亮,蜂鸣器响。其流程图如图16所示。N图16 报警子程序流程图4.4 主程序流程图在本设计中,单片机处于主导地位,由它控制着整个系统的有序的工作。系统正常运行之前,单片机要先把程序初始化,使各个模块处于待工作状态,准备相关工作。然后,单片机的P0口送出通道地址,对ADC0809初始化,74LS373锁存通道号,单片机发出启动A/D转换信号,开始模数转换,转换结束后得到8位数字温度信号,此时,ADC0809向单片机发出转换结
45、束信号。由单片机把数字温度信号接收到设置的存储处。图17 主程序流程图接着,由报警程序实现当前温度值与预先设置的温度值进行比较,当超出了设定范围,启动报警电路,告警;否者,根据当前温度值计算出其偏移量,查表,获得与之相对应的译码值;最后,由P3.3口在P3.4提供移位脉冲下把译码值一位一位的送到74LS164中,驱动相应的LED显示。单片循环发出通道号,巡回得到相关通道的温度信号,然后显示出来。这样就完成了整个流程。其流程图如图17 所示。结束语在本设计中,主要是对多点温度进行检测,而且在单片机作为主控单元下,进行一些智能操作,如温度显示、巡回检测、超量程告警等等。研究内容主要分为数据采集、模数转换、单片机系统设计、软件编程几个方面。针对这几个方面,将研究模块化,在逻辑上按先后顺序对每个模块进行分别的研究,并对每一个模块进行独立的测试,在测试达到要求之后,再将所有模块有机的整合为一个整体,然后进行整体调整测试。最总完成整个设计方案。该设计与传统的PID调节相比,用软件取代了部分硬件,节约了硬件资源,减小了连线的复杂程度,提高了系统的性能;显示部分采用数据的串行传输连接且为静态显示,这样既减少了硬件间的连线,节约了I/O口,又减少了软件的编程难度;数码管的静态显示方式
限制150内