本科毕业设计多路温采集系统设计_第1页
本科毕业设计多路温采集系统设计_第2页
本科毕业设计多路温采集系统设计_第3页
本科毕业设计多路温采集系统设计_第4页
本科毕业设计多路温采集系统设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、目录1综述12数字式多路温度采集系统硬件电路设计22.1温度采集电路设计22.1.1 DS18B20简介2温度采集电路结构52.2单片机控制电路设计6单片机芯片选择62.2.2 AT89C51单片机工作基本电路设计62.3输入控制电路设计72.4显示电路设计82.4.1 LED数码显示管静态显示工作原理8显示电路结构9显示电路工作过程92.5报警控制电路设计9报警控制电路结构10报警控制电路工作过程102.6电源电路设计102.7数字式多路温度采集系统元件清单112.8数字式多路温度采集系统电路图113数字式多路温度采集系统程序设计123.1主程序设计123.2子程序设计123.2.1 DS1

2、8B20的通信协议12子程序133.3数字式多路温度采集系统控制源程序164系统调试及性能分析174.1系统调试174.2系统性能分析175结束语18参考文献19致谢20附录21附录(1)数字式多路温度采集系统元件清单21附录(2)数字式多路温度采集系统原理图22附录(3)数字式多路温度采集系统印刷电路板图23附录(4)数字式多路温度采集系统控制源程序24摘 要数字式多路温度采集系统由主控制器、温度采集电路、温度显示电路、报警控制电路及键盘输入控制电路组成。它利用单片机AT89C51做控制及数据处理器、智能温度传感器DS18B20做温度检测器、LED数码显示管做温度显示输出设备。硬件电路比较简

3、单,成本较低,测温范围大,测量精度高,读数显示直观,使用方便。关键词:数字;温度;传感器;单片机;控制Abstractthe digital multi-channel temperature gathering system by the master control regulator, the temperature gathering electric circuit, the temperature display circuit, reports to the police the control circuit and the keyboard entry control cir

4、cuit is composed .It makes the control and the data processor, intelligent temperature sensor DS18B20 using monolithic integrated circuit AT89C51 makes the temperature detector, the LED numerical code display tube makes the temperature demonstration output unit. The hardware electric circuit quite i

5、s simple, the cost is low, the temperature measurement scope is big, and the measuring accuracy is high, reading demonstration is direct-viewing, easy to operate.Key words: numeral; temperature; sensor; monolithic integrated circuit; control 1综述温度是一种最基本的环境参数,人们的生活与环境温度息息相关,因此研究温度的测量方法和装置具有重要的意义。温度测量

6、装置的关键是温度传感器,温度传感器的发展经历了三个发展阶段:(1)传统的分立式温度传感器,(2)模拟集成温度传感器,(3)智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。本人选择数字式多路温度采集系统设计。系统主要技术指标:(1)2路温度采集电路及以上;(2)采集测温范围为-50+110 ;(3)温度精度,误差在0.1 以内;(4)显示模块,采用LED数码管显示。2数字式多路温度采集系统硬件电路设计按照系统设计功能的要求,系统由5个模块组成:主控制器、温度采集电路1、温度显示电路、报警控制电路及键盘输入控制电路。数字式多路温度采集系统总

7、体电路结构框图如图1所示。主控制器(AT89C51)多路温度采集(DS18B20)温度显示器(LED)输入控制电路(按键)报警控制电路(蜂鸣器)图1 数字式多路温度采集系统结构框图采用智能温度传感器(DS18B20)采集环境温度并进行简单的模数转换;单片机(AT89C51)执行程序对温度传感器传输的数据进行进一步的分析处理,转换成环境对应的温度值,通过I/O口输出到数码显示管(LED)显示;由键盘输入控制选择某采集电路检测温度及显示;报警电路对设定的最高最低报警温度进行监控报警。2.1温度采集电路设计温度采样处理电路由温度传感器、放大电路、A/D转换电路等组成。采用分块结构的温度采样处理电路,

8、其硬件电路结构复杂,也不便于数据的处理。采用智能温度传感器采样处理电路,能够方便的进行温度的采集及简单的数据处理。并且可以达到设计的技术指标要求。本系统选择智能温度传感器DS18B20作为温度采集电路的核心器件。由DS18B20及辅助电路构成温度采集电路。 DS18B20简介(1)DS18B20的性能特点DS18B20是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等温度传感器相比,它能够直接读出被测温度,并可根据实际要求通过简单的编程实现912位的数字值读数方式,可以在93.75ms至750ms内完成相应9位至12位的数字量转换。它的测温精度可达到0.0625/L

9、SB。它的测温范围是-55+125。从DS18B20读出或写入信息仅需要一根口线,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,无需额外电源。因而选用DS18B20是恰当的。(2)DS18B20的外形和内部结构DS18B20采用3脚PR-35封装,其外形和内部结构框图分别如图2、图3所示。图2 DS18B20外形结构 图3 DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。64位光刻ROM的位结构图如图4所示。64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码

10、。开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。图4 64位ROM结构DS18B20温度传感器的内部存储器包括一个非易失性的可电擦除E2PRAM和一个高速暂存RAM。E2PRAM包括存放高温度和低温度的触发器TH、TL和结构寄存器。非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限。高速暂存RAM的结构为9字节的存储器,结构图如图5所示。头2个字节包含测得的温度信息。第3、4字节是TH和TL的拷贝,每次上电复位时被刷新。第5字节为配置寄存器,用于确定温度值的数字转换分辨率。第6、7、8字节保留未用,表现为全逻辑1

11、。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。第5字节配置寄存器各位的定义如图6所示;低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式;R1和R0决定温度转换的精度位数(即设置分辨率),定义方法见表1。图5 高速缓存RAM结构图6 配置寄存器表1 DS18B20分辨率的定义规定R1R0分辨率/位温度最大转换时间/ns00110101910111293.75187.53757509位分辨率时,精度为0.5/LSB;10位分辨率时,精度为0.25/LSB;11位分辨率时,精度为0.125/LSB;12位分辨率时,精度为0.0625

12、/LSB。转换精度越高所需转换时间越长。为了达到本系统的技术指标,选择12位分辨率。 (3)DS18B20供电方式外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证测量精度。所以本系统采用外部电源供电方式。在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上可以挂接任意多个DS18B20传感器,组成多点测温系统。外

13、部电源供电方式如图7所示。在外部供电方式下,DS18B20的GND引脚必须接地,不能悬空,否则不能转换温度,读取的温度总是85。图7 DS18B20外部电源供电温度采集电路结构温度采集电路结构如图8所示。图中给出了2路温度采集电路,2只智能温度传感器DS18B20的信号输出端都连接到单片机的P1.7端,电阻R6作为上拉电阻。如果需要增加,可以在P1.7端再连接更多的智能温度传感器DS18B20。工作时,由程序控制读取某智能温度传感器DS18B20采集的温度数据,送单片机处理。图8 多点温度采集电路2.2单片机控制电路设计单片机控制电路核心是单片机芯片,其加上工作基本电路,就可以展开控制工作。单

14、片机芯片选择MCS8031和AT89C512都具有4个8位I/O接口,但MCS8031没有内部程序存储器,需要外接,增加了电路的复杂性;AT89C2051和AT89C51都具有Flash ROM,可以省去外接程序存储器;但AT89C2051接口少,不利于功能扩展;故选用AT89C51。AT89C51单片机内部结构及主要性能特点:40个引脚,双列直插式封装;有4个8位I/O接口;有全双工增强型UART,可编程串行通信;2个16位定时/计数器;5个中断源,2个中断优先级;有片内时钟振荡器(全静态工作方式,024 MHz);有128字节内部RAM,4KB Flash ROM(可以擦除1000次以上,

15、数据保存10年);电源控制模式灵活(时钟可停止和恢复,空闲模式,掉电模式)。2.2.2 AT89C51单片机工作基本电路设计AT89C51单片机正常工作,必须连接基本电路。基本电路包括晶振电路3和复位电路4。(1)晶振电路单片机的时钟信号通常有两种产生方式:一是内部时钟方式,二是外部时钟方式。内部时钟方式是利用单片机内部的振荡电路产生时钟信号。外部时钟方式是把外部已有的时钟信号引入到单片机内。本设计采用内部时钟方式,电路如图9中所示。在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),作为单片机内部振荡电路的负载,构成自激振荡器,可在单片机内部产生时钟脉冲信号。C1和C2可以稳定振荡

16、频率,并使快速起振。本电路选用晶振12MHz,C1=C2=30pF。(2)复位电路复位是使单片机处于某种确定的初始状态。单片机工作从复位开始。在单片机RST引脚引入高电平并保持2个机器周期,单片机就执行复位操作。复位操作有两种基本方式:一种是上电复位,另一种是上电与按键均有效的复位。本设计采用后一种复位电路。电路如图9中所示。当RST获得高电平,随着电容C3的充电,RST引脚的高电平将逐渐下降。若该高电平能保持足够2个机器周期,就可以实现复位操作。选择C3=10µF,R1=10K。综上所述,单片机控制电路如图9所示。图9 单片机控制电路2.3输入控制电路设计输入控制电路由按键及其接口

17、构成,键盘是单片机最简单的输入设备。常用键盘分为独立式键盘和矩阵式键盘。本系统的输入控制简单,采用独立式键盘及接口电路5。输入电路由2个按钮开关、2个10欧的限流电阻组成;键扫描识别采用软件查询的方法。电路如图10所示,各键功能如表2所示。图10 按键输入控制电路表2 各键功能按键键名功能S1第一路温度按键按下,LED数码显示管显示第一路温度。S2第二路温度按键按下,LED数码显示管显示第二路温度。2.4显示电路设计显示电路采用LED数码管显示。LED数码显示管有静态显示方式和动态显示方式,本系统采用串行输出6的静态显示方式。利用4片串转并芯片74LS164将控制器输出的串行数据转换成并行数据

18、输出,用来驱动4位LED数码显示管显示数据。2.4.1 LED数码显示管静态显示工作原理LED显示器工作于静态显示方式时,各位的阴极(或阳极)选择线连接在一起并接地(或+5V);每位的段码线分别与1个8位的锁存器输出连接。各LED显示某一字符时,相应段的发光二极管恒定地导通或截止,直到送入另一个字符的段码为止。静态显示可以得到较高的显示亮度。静态显示有并行输出和串行输出两种方式。并行输出显示的十进制位数多时,需要并行I/O接口芯片的数量较多。串行输出可以大大节省单片机的内部资源。2.4.2显示电路结构显示电路由单片机AT89C51的P3.0端作数据输出,连接到低位74LS164的数据输入引脚端

19、,其余3片74LS164的数据输入端分别接到它前面一位74LS164的数据输出端的最高位引脚端。单片机AT89C51的P3.1、P1.4端分别接到一个与门电路的输入端,与门电路的输出端分别与每片74LS164的输出允许控制端相连接。每片74LS164的输出端分别连接到一个数码显示管。显示电路结构图如图11所示。图11 显示电路图2.4.3显示电路工作过程AT89C51单片机工作在串行口方式0下(移位寄存器方式),P3.0(RXD)为数据输出端,P3.1(TXD)为移位脉冲输出端,P1.4为74LS164允许输出控制端。串行口发送缓冲区的数据在移位脉冲的作用下,一位一位地从P3.0口移入到74L

20、S164中,并在控制信号的控制作用下,通过LED数码显示管显示。2.5报警控制电路设计报警控制电路采用压电式蜂鸣器作发声体,用三极管对蜂鸣器发声进行控制。报警控制电路结构报警控制电路由单片机AT89C51的P3.7端作输出,通过一个限流电阻与三极管C945的基极相连接。三极管C945集电极连接压电蜂鸣器(BUZZER)的一端。压电蜂鸣器的另一端连接电源。报警控制电路如图12所示。图12 报警工作电路2.5.2报警控制电路工作过程(1)压电蜂鸣器工作原理压电蜂鸣器以压电陶瓷制作而成。压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就

21、会在内部产生一个电流,电流的变化与压力的变化密切相关。反之,当在压电陶瓷上加上一定频率的电压,就会在内部产生一定频率的电流,从而就会引起压电陶瓷微小形变,这一形变带动空气发生振动。如果频率适当,就产生蜂鸣声,可以被人耳所听见。(2)报警控制电路工作过程报警控制信号由单片机AT89C51的P3.7端输出,通过一个限流电阻加到三极管C945的基极。当P3.7端的输出信号发生变化时,则三极管C945将交替的工作于截止、饱和状态,形成高低电平的波,从而使压电蜂鸣器发出声音。2.6电源电路设计电源电路7由变压器、单相桥式整流电路、滤波电路和三端稳压电路构成。其电路图如图13所示,图中“output”端输

22、出为+5V。图13 电源电路电子设备中常使用输出电压固定的集成稳压器。三端式稳压器只有输入、输出和公共引出端,由启动电路、基准电压电路、取样比较放大电路、调整电路和保护电路等部分组成。在本系统中,要求电源电压为+5V,由于三端式稳压器输出电压固定,故在设计中选择三端式稳压器L7805。三端式稳压器的输入与输出之间电压差为23V,整流桥的输出电压是输入电压(有效值)的1.2倍,根据有效值与峰-峰值的关系选择220V/6V的变压器。由于L7805的最大输出电流为1A,电压为稳定的+5V,输出功率为5W,加上三端式稳压器L7805的消耗,故本系统选择降压比为220V/6V、功率为10W的变压器。图1

23、3中C4、C5为低频滤波电容,根据经验选择电解电容,其容值分别为C4=220F、C5=47F;C6、C7为高频滤波电容,均选0.1F的无极性电容。发光二极管用于指示电源是否接通,选择FG1112004 发光二极管,根据FG1112004正向电流为5mA及管压降为+2V,选择限流电阻R5= 680。2.7数字式多路温度采集系统元件清单数字式多路温度采集系统元件清单,见附录(1)。2.8数字式多路温度采集系统电路图数字式多路温度采集系统原理图,见附录(2)(图14)数字式多路温度采集系统印刷电路板图,见附录(3)(图15)3数字式多路温度采集系统程序设计3.1主程序设计主程序8主要功能是控制调用子

24、程序,实现温度的实时显示、读出并处理DS18B20的测量温度值(温度测量每1s进行一次)。其程序流程图如图16所示。调用显示子程序1s到?初次上电?读出温度值温度计算处理显示数据刷新发出温度转换开始命令NYYN初始化发出报警YN温度超过报警值?调用键盘扫描子程序图16 数字式多路温度采集系统主程序流程图3.2子程序设计 DS18B20的通信协议根据DS18B20的通讯协议7,主机(单片机AT98C51)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行初始化操作,初始化成功后发送一条存储器操作命令(ROM指令),最后处理数据(发送RAM指令),这样才能对DS

25、18B20进行预定的操作。所用各ROM、RAM操作指令分别如表3、表4所示。表3 ROM指令表指令约定代码功能读ROM33H读DS18B20温度传感器ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写做准备.搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后温度超过设定值上限或下限的片子才能做出响

26、应。表4 RAM指令表指令约定代码功能温度转换44H启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0BEH读内部RAM中9字节的内容。写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。3.2.2子程序(1)键盘扫描子程序键盘扫描子程序对按下的键进行判断,并转到按下的相应键对应的程序段,执行相应的功能。其程序流程图如图17所示。(2)温度转换命令子程序温度转换命令子程序主要是发送温度转换开始命令。在发送匹配ROM命令后,紧跟着发送要进行测温的DS18B20的64位ROM

27、序列(这个序列号一般由厂方提供或通过实验的方式获得)。采用12位分辨率,转换时间约为750ms。其程序流程图如图18所示。确定键号有键按下?开始Y转至相应的程序,执行相应的功能N其它子程序 发DS18B20复位命令命令匹配ROM、64位地址发温度转换开始命令结束图17 键盘扫描子程序流程图 图18 温度转换命令子程序流程图(3)读出温度子程序读出温度子程序主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图19所示。(4)计算温度子程序从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。在系统采用12位转换精度,温度

28、寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察可以发现一个十进制值和二进制值之间有很明显的关系。低字节的高半字节乘以0.0625恰好就是原整数。因此,把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就恰好是温度值的百、十、个位值;剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。小数部分因为是半个字节,所以二进制值范围是0F,转换成十进制小数值就是0.0625的倍数。这样需要4位的数码管来显示小数部分,实际应用不必有这么高的精度,采用1位数码管来显示小数,可以精确到0.

29、1。表5就是二进制和十进制小数的近似对应关系。其程序流程图如图20所示。表5 小数部分二进制和十进制的近似对应关系表小数部分二进制数0123456789ABCDEF十进制数0011233455667889发DS18B20复位命令命令发匹配ROM、64位地址移入温度暂存区发读取温度命令读取RAM中的9个字节9字节完?结束YNYNCRC校验正确? 置“+”标志计算小数位温度BCD值计算整数位温度BCD值温度值取补码置“”标志温度零下?结束YN开始图19 读出温度子程序流程图 图20 计算温度子程序流程图(5)显示数据刷新子程序显示数据刷新子程序9主要是对显示缓冲区中的显示数据进行刷新操作,当最高显

30、示位为0时将符号显示位移入下一位。其程序流程图如图21所示。十位数显示符号,百位数不显示十位数0?结束YN温度数据移入显示寄存器百位数0?百位数显示数据(不显示符号)YN 结束N设定最高温度报警值设定值小于显示缓冲区的值?Y发出报警图21 显示数据刷新子程序流程图 图22 报警控制子程序流程图(6)报警控制子程序当设定的最高报警温度值大于显示缓冲区中的数据时,发出报警,提示温度超过设定的最大值。其程序流程图如图22所示。3.3数字式多路温度采集系统控制源程序数字式多路温度采集系统控制源程序,见附录(4)。4系统调试及性能分析4.1系统调试系统调试分为硬件调试和软件调试两步。(1)硬件调试硬件调

31、试比较简单,首先检查电路的焊接是否正确及电路中有没有虚焊等问题,然后可用万用表测试或通电检测电路。(2)软件调试软件调试以程序为主。先编写一段显示程序对硬件的正常工作进行检验,然后进行主程序、匹配ROM子程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等的编程及调试。软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能够改变就基本完成软件调试。由于DS18B20与单片机采用单线串行数据传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。4.2系统性能分析用制作的测温系统和已有的成品温度计(如水银温度计)来同时测

32、量环境温度,并对测量的结果进行比较分析。由比较分析及DS18B20的特点可得,用本系统进行测温时,精度很高,误差指标可以限制在0.1以内;另外在-55+125的测温范围内使得该系统完全适合一般的应用场合。 5结束语数字式多路温度采集系统具有温度采集、显示、简单的人机对话及报警功能。它的测温范围宽(-55+125),测量精度可通过编程调节,最高精度可达到0.0625/LSB。本系统主要是适用于采集显示温度,不具备控制调节温度功能。但能够进行硬件和软件功能扩展。在硬件扩展后,通过软件编程实现控制功能扩展。例如当环境温度达到一定值时,通过软件编程进行判断,从主控制器的一个I/O端口输出一个控制指令,

33、去驱动外部的控制电路工作,从而调节环境温度,使环境温度达到人们所需的要求。因此在人们健康意识日益提高的今天有很好的市场推广前景。参考文献1 李光飞单片机课程设计实例指导M北京:北京航空航天大学出版社,2004:105-1062 余永权ATMEL系列单片机应用技术M北京:北京航空航天大学出版社,2002:25-263 张毅刚单片机原理及应用M北京:高等教育出版社,2004:31-334 李玉峰MCS-51系列单片机原理与接口技术M北京:人民邮电出版社,2004:26-275 陈明荧8051单片机课程设计实训教材M北京:清华大学出版社,2004:28-306 李全利单片计原理及接口技术M北京:高等

34、教育出版社,2004:117-1497 康华光电子技术基础(模拟部分)M北京:高等教育出版社,1999:444、446、4558 周航慈单片机程序设计基础M北京:北京航空航天大学出版社,20039 胡健单片机原理及接口技术实践教程M北京:机械工业出版社,2004致谢经过几个月的努力,在指导教师刘道兴副教授及同学的帮助下,顺利完成了毕业设计。毕业设计是对大学四年所学知识的综合运用,也是理论走向实践的第一步。在此设计过程中,扩展了知识面,增强了独立思考和自学的能力,为以后走向工作岗位奠定了基础。在此首先感谢母校内江师范学院的辛勤培育之恩;其次,感谢物理学与电子信息工程系给我提供了很好的设计环境,使

35、我的设计得以顺利的进行。最后,感谢设计指导老师刘道兴副教授,在题目选定、总体方案确立、资料收集与提供等方面给予了悉心指导和大力帮助,并对本系统的论文多次进行认真审阅、批注,提供了许多宝贵的修改意见。另外我还得到了同班同学的支持和鼓励,对这些同学表示诚挚的谢意,也对参考书的作者表示感谢。附录附录(1)数字式多路温度采集系统元件清单编号元件名称型号及规格数量1单片机芯片AT89C5112感温元件DS18B2023七段数码显示器LED44串转并芯片74LS16445晶振12MH16按键-37三极管C94518压电蜂鸣器-19整流二极管1N4007410发光二极管FG1112004111电阻10212

36、电阻100113电阻680114电阻4.7115电阻10K116电容0.1F217电容30 pF218电容47F/50V119电容100F/50V120电容220F/50V121与门74LS081附录(2)数字式多路温度采集系统原理图图14 数字式多路温度采集系统原理图附录(3)数字式多路温度采集系统印刷电路板图图15 数字式多路温度采集系统印刷电路板图附录(4)数字式多路温度采集系统控制源程序;*;*;采用4位LED共阳显示器显示测温值。;显示精度为0.1度、测温范围-55125度。;用AT89C51单片机、12Mz晶振。;*;*;工作内存区定义。BITS EQU 20HTIMEOK BIT

37、 BITS.1 ;1秒定时到标志。TEMPON BIT BITS.2 ;第一次温度转换标志。TEMPL EQU 26H ;从DS18B20中读取温度低位的存放处。TEMPH EQU 27H ;从DS18B20中读取温度高位的存放处。TEMPCL EQU 28H ;转换后温度的小数位与个位存放处。TEMPCH EQU 29H ;转换后温度的十位与百位存放处,如果温度为负,则百位为符号位。TEMPHEAD EQU 36H ;从DS18B20高速缓存RAM中读出数据的存放处的第一位。;*;常数定义。K0 EQU P2.0 ;按键K0定义。K1 EQU P2.1 ;按键K1定义。DQ EQU P1.7

38、 ;数据传送脚定义。;*;多路温度采集系统源程序。;*ORG 0000HLJMP STARTORG 000BHLJMP DVTO ;T0中断入口地址。;*;系统初始化。 ORG 0030HSTART: MOV SP,#60H ;数据存储区20H80H清“0”。CLS: MOV R0,#20H MOV R1,#60HCLS1: MOV R0,#00H INC R0 DJNZ R1,CLS1 CLR P1.4 ;关移位脉冲。 CLR P3.6 ;关闭报警器。 MOV TMOD,#21H ;选择定时器0工作方式1; MOV TH0,#0E0H ;20ms定时初值。 MOV TL0,#0B1H MOV

39、 SCON,#00H ;选择串行口工作方式0; NOP NOP SETB ET0 ;开定时器T0。计时开始。 SETB TR0 SETB EA MOV PSW,#00H CLR TEMPONE LJMP MAIN;*;主程序。MAIN: LCALL KEYBORD ;调用键盘扫描子程序。LOOP1: LCALL DISP ;调用显示子程序。 JNB TIMEOK,LOOP1 ;测温每1秒一次。 CLR TIMEOK JNB TEMPONE,LOOP2 ;上电时先温度转换一次。 LCALL READTEMP ;读出温度值子程序。 LCALL TEMPBCD ;温度BCD码计算处理子程序。 LCA

40、LL DISPBCD ;显示区BCD码温度值刷新子程序。 LCALL ALARM ;最高温度报警子程序。LOOP2: LCALL TEMPCONV ;温度开始转换子程序。 SETB TEMPONE SJMP MAIN;*;定时器T0中断服子程序。DVT0: PUSH PSW MOV PSW,#10H MOV TH0,#0E0H MOV TL0,#0B1H INC R7 CJNZ R7,#32H,DVT01 MOV R7,#00H SETB TIMEOK ;1秒定时到标志。 DVT01: POP PSW RETI;*;键盘扫描子程序。KEYBORD: JB K0,L1 JNB K0,$ LCAL

41、L FUNCTION LJMP KEYBORD L1: JB K1,L2 JNB K1,$ LCALL FUNCTION1 LJMP KEYBORD L2: RETFUNCTION0: MOV 40H,#28H ;第一路DS18B20的64位序列号装入存储单元40H47H。 MOV 41H,#0D6H MOV 42H,#0B1H MOV 43H,#8AH MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#0E3H RETFUNCTION0: MOV 40H,#28H ;第二路DS18B20的64位序列号装入存储单元40H47H。 MOV 41H,#

42、0D6H MOV 42H,#0B1H MOV 43H,#8AH MOV 44H,#00H MOV 45H,#00H MOV 46H,#01H MOV 47H,#0E3H RET;*;DS18B20复位子程序。RETET: SETB DQ NOP NOP CLR DQ MOV R6,#0A0H ;延时480us DJNZ R6,$ MOV R6,#0A0H DJNZ R6,$ SETB DQ MOV R6,#32H ;延时70us DJNZ R6,$ MOV R6,#3CHRESET1: MOV C,DQ JC RESET2 DJNZ R6,RESET1 MOV R6,#64H ;延时200us

43、 DJNZ R6,$ SJMP RESET RETRESET2: SETB DQ RET;*;读DS18B20子程序,从DS18B20中读出一个字节的数据。READ: MOV R7,#08H SETB DQ NOP NOPREAD1: CLR DQ NOP NOP NOP SETB DQ MOV R6,#07H ;延时15us。 DJNZ R6,$ MOV C,DQ MOV R6,#3CH ;延时120us。 DJNZ R6,$ RRC A SETB DQ DJNZ R7,READ1 MOV R6,#3CH ;延时120us。 DJNZ R6,$ RET;*;写DS18B20子程序,给DS18

44、B20中写入一个字节的数据。WRITE: MOV R7,#08H SETB DQ NOP NOPWRITE1: CLR DQ MOV R6,#07H ;延时15us。 DJNZ R6,$ RRC A MOV DQ,C MOV R6,#34H ;延时104us。 DJNZ R6,$ SETB DQ DJNZ R7,WRITE1 RET;*;温度开始转换子程序。TEMPCONV: LCALL RESET MOV A,#55H ;发送匹配ROM命令。 LCALL WRITE MOV R6,#34H ;延时104us。 DJNZ R6,$ MOV R7,#08H ;发送64位ROM编码。 MOV R0

45、,#40HTEMPVONV1: MOV A,R0 LCALL WRITE INC R0 DJNZ R7,TEMPCONV1 ;64位ROM编码发送完没有? MOV R6,#34H ;延时104us。 DJNZ R6,$ MOV A,#44H ;发送启动温度转换命令。 LCALL WRITE MOV R6,#34H ;延时104us。 DJNZ R6,$ RET;*;读出温度值子程序。READTEMP: LCALL RESET MOV A,#55H ;发送匹配ROM命令。 LCALL WRITE MOV R6,#34H ;延时104us。 DJNZ R6,$ MOV R7,#08H ;发送64位ROM编码。 MOV

温馨提示

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

评论

0/150

提交评论