基于单片机温度控制系统的设计_第1页
基于单片机温度控制系统的设计_第2页
基于单片机温度控制系统的设计_第3页
基于单片机温度控制系统的设计_第4页
基于单片机温度控制系统的设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计论述了一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。系统设计了相关的硬件电路和相关应用程序。硬件电路主要包括STC89C52单片机最小系统,测温电路、实时时钟电路、LCD液晶显示电路以及通讯模块电路等。系统程序主要包括主程序,读出温度子程序,计算温度子程序、按键处理程序、LCD显示程序以及数据存储程序等。关键词:STC89C52单片机;DS18B20;显示

2、电路AbstractAlong with the computer measurement and control technology of the rapid development and wide application, based on singlechip temperature gathering and control system development and application greatly improve the production of temperature in life level of control. This design STC89C52 de

3、scribes a kind of mainly by MCU control unit, for temperature sensor DS18B20 temperature control system. The control system can real-time storage temperature data and record related to the current time. System design related hardware circuit and related applications. STC89C52 microcontroller hardwar

4、e circuit include temperature detection circuit smallest system, and real-time clock circuit, LCD display circuit, communication module circuit, etc. System programming mainly include main program, read temperature subroutine, the calculation of temperature subroutines, key processing procedures, LC

5、D display procedures and data storage procedures, etc. Key words: STC89C52 microcontroller; DS18B20; display circuit目 录第1章 前言11.1 研究背景11.2 研究目的和意义11.3 未来发展1第2章 系统的总体设计32.1 系统设计框架32.2 STC89C52单片机简介32.2.1 STC89C52单片机时序32.2.2 STC89C52单片机引脚介绍4第3章 硬件系统设计73.1 单片机最小电路系统73.2 温度传感器电路73.2.1 系统的特性73.2.2 系统的成本8

6、3.2.3 系统的复杂度83.2.4 信号输入电路83.3 系统电源电路设计83.4 LCD显示电路93.5 串口通讯电路103.6 按键接口电路113.7 DS1302时钟电路113.8 存储器接口电路12第4章 系统的软件设计134.1 系统程序流程图134.2 计算温度子程序134.3 按键处理子程序144.4 软件设计的特点154.5 显示数据刷新子程序16第5章 总结17参考文献18致谢19附录20第1章 前言1.1 研究背景工业控制是计算机的一个重要应用领域,计算机控制系统正是为了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机技术、通过信息技术和自动控制理论应用

7、于工业生产过程,并设计出所需要的计算机控制系统。随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计就是基于单片机STC89C52温度控制系统的设计,通过本次设计,我更加的明确了单片机的广泛用途和使用方法,以及其工作的原理。STC89C52单片机是单时钟/机器周期(1T)的兼容8051内核单片机,STC89C52单片机常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,是高速/低功耗的新一代8051 单片机,用其作为温度控制系统的实例也很多。使用STC89C52单片机能够

8、实现温度全程的自动控制,而且易于学习,掌握,性价比高。使用STC89C52型单片机设计温度控制系统,可以及时、精确的反映室内的温度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式。1.2 研究目的和意义随着社会的发展,温度的测量及控制变得越来越重要。本设计采用单片机STC89C52设计了温度实时测量及控制系统。单片机STC89C52能够根据温度传感器DS18B20所采集的温度在液晶屏上实时显示,通过控制从而把温度控制在设定的范围之内。所有温度数据均通过液晶显示器LDC显示出来。系统可以根据时钟存储相关的数据。通过该设计的学习使我对计算机控制系统有一个全面

9、的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼微型计算机应用方面的实际工作能力。1.3 未来发展90年代后期至今单片机的发展可以说是进入了一个新的阶段,单片机正朝着高性能和多品种方向发展,发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。其发展趋势主要有以下几个方面:1CMOS化:近年,由于CHMOS技术的进步,大大地促进了单片机的CMOS化。CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态,这也是今后以80C51取代8051为标准MCU芯片的原因。因为单片机芯

10、片多数是采用CMOS(金属栅氧化物)半导体工艺生产。CMOS电路的特点是低功耗、高密度、低速度、低价格。采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MOS)和CHMOS工艺,CMOS和HMOS工艺的结合。目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路。因而,在单片机领域CMOS正在逐渐取代TTL电路。2低功耗:单片机的功耗已到mA级,甚至到1uA以下,使用电压在36V之间,完全适应电池工作。低功耗化的效应不仅是功耗低,而且带来了产品的高可靠性、高抗干扰能力以及产品的

11、便携化、低电压化。几乎所有的单片机都有WAIT、STOP等省电运行方式。允许使用的电压范围越来越宽,一般在36V范围内工作。低电压供电的单片机电源下限已可达12V。目前0.8V供电的单片机已经问世。低噪声与高可靠性为提高单片机的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片机厂家在单片机内部电路中都采用了新的技术措施。3大容量化:传统的单片机片内程序存储器一般为1K8K,片内数据存储器为256字节以下。在某些复杂的应用上,片内不论是程序存储器还是数据存储器都是容量不够,必须采用外接方式进行扩充。而新型单片机(例如PHILIPSP89C66x)片内程序存储器

12、可达64K,片内数据存储器可达8K。今后,随着工艺技术的不断发展,单片机片内存储器容量将进一步扩大。4单片机的高性能化:主要是指进一步提高CPU的性能,加快指令运算速度,并加强了位处理功能、中断、定时功能。其主频从4MHz12MHz向0MHz(全静态)40MHz以上发展。同时采用流水线结构,让指令以队列形式出现在CPU中,从而进一步提高运算速度。有的单片机基本采用了多流水线结构,这类单片机的运算速度要比标准的单片机高出10倍以上。5外围电路内装化:这也是单片机发展的一个主流方面。随着集成度的不断提高,使将各种功能器件集成在片内成为可能。除了一般必须具有的CPU、ROM、RAM、定时器计数器等外

13、,片内还可以根据需要集成如串行口,AD、DA、EEPROM、PWM、看门狗(WatchDog)、液晶显示(LCD)驱动器等多种功能部件。6增强IO口功能:为了减少外部驱动芯片,进一步增加单片机并行口的驱动能力,现在有的单片机可直接输出较大电流(20mA)和高电压,以便直接驱动显示器。为进一步加快IO的传输速度,有的单片机设置了高速IO口,能以最快的速度捕捉外部数据的变化,同时以最快的速度向片外输出数据。以适合数据高速改变的场合。 随着集成工艺的不断发展,单片机一方面向集成度更高、体积更小、功能更强、功耗更低方向发展,另一方面向32位以上及双CPU方向发展。 第2章 系统的总体设计2.1 系统设

14、计框架本课题设计的是一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度采集模块、按键处理模块、实时时钟模块、数据存储模块、LCD显示模块、通讯模块以及单片机最小系统。LCD显示模块数据存储模块通讯模块电源模块温度采集模块实时时钟模块按键处理模块STC89C52单片机图2-1 系统设计框架2.2 STC89C52单片机简介目前,51系列单片机在工业检测领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,以增强人

15、机对话的功能。STC89C52单片机是深圳宏晶科技有限公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成部分。每一个单片机包括:一个8位的微型处理器CPU;一个512K的片内数据存储器RAM;4K片内程序存储器;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个部分通过内部总线相连接【1】。2.2.1 STC89C52单片机时序STC89C52单片机的一个执器周期由6个状态(s1-s6)组

16、成,每个状态又持续2个震荡周期,分为P1和P2两个节拍。这样,一个机器周期由12个振荡周期组成。若采用12MHz的晶体振荡器,则每个机器周期为1us,每个状态周期为16us;在一数情况下,算术和逻辑操作发生在N期间,而内部寄存器到寄存器的传输发生在P2期间。对于单周期指令,当指令操作码读人指令寄存器时,使从S1P2开始执行指令。如果是双字节指令,则在同一机器周期的s4读人第二字节。若为单字节指令,则在51期间仍进行读,但所读入的字节操作码被忽略,且程序计数据也不加1。在加结束时完成指令操作。多数STC89C52指令周期为1-2个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需4个

17、机器周期。对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读人两个字节,但Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令,在执行Movx指令期间,外部数据存储器被访问且被选通时跳过两次取指操作【2】。2.2.2 STC89C52单片机引脚介绍STC89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述个引脚的功能。电源引脚Vcc和VssVcc(40脚):接+5V电源正端;Vss(20脚):接+5V电源正端。外接晶振引脚XTAL1和XTAL2:XTA

18、L1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机

19、振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。ALE/ P(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低。PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。EA/Vpp(31脚):EA为访问外部程序储器

20、控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS-52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。输入/输出(I/O)引脚P0口、P1口、P2口及P3口:P0口(39脚22脚):P0.0P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内

21、含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS-52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。P2口(21脚28脚):P2.0P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EP

22、ROM编程和进行程序校验时,P2口接收输入的8位地址。P3口(10脚17脚):P3.0P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见下表:表2-1 单片机P3.0管脚含义引脚第2功能P3.0RXD(串行口输入端0)P3.1TXD(串行口输出端)P3.2INT0(部中断0请求输入端,低电平有效)P3.3INT1(中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲端)P3.5T1(时器/计数器1数脉冲端)P3.6WR(部数据存储器写选通信号输出端,低

23、电平有效)P3.7RD(部数据存储器读选通信号输出端,低电平有效)综上所述,MCS-51系列单片机的引脚作用可归纳为以下两点:单片机功能多,引脚数少,因而许多引脚具有第2功能。单片机对外呈3总线形式,由P2、P0口组成16位地址总线,由P0口分时复用作为数据总线【3】。第3章 硬件系统设计3.1 单片机最小电路系统在本设计的温度控制系统设计中,控制核心是STC89C52单片机,该单片机为51系列增强型8位单片机,它有32个I/O口,片内含4K FLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1S。使用该单片机完全可以完成设计任务,其

24、最小系统主要包括:复位电路、震荡电路以及存储器选择模式【4】(EA脚的高低电平选择),电路如下图3-1所示:图3-1 单片机最小系统图3.2 温度传感器电路采用一线制数字温度传感器DS18B20来作为本课题的温度传感器。DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因:3.2.1 系统的特性测温范围为-55+125 ,测温精度为士0.5;温度转换精度912位

25、可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。3.2.2 系统的成本由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。一支DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。3.2.3 系统的复杂度由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件。因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。3.2.4 信号输入电

26、路由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强。因此,减少了系统的日常维护工作。DS18B20温度传感器只有三根外引线:单线数据传输总线端口DQ,外供电源线VDD,共用地线GND。DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。在本设计中采用外部供电方式实现DS18B20传感器

27、与单片机的连接,传感器输出信号进4.7K的上拉电阻直接接到单片机的P1.0引脚上。其接口电路如图3-2所示:图3-2 温度传感器接口3.3 系统电源电路设计本系统采用电源稳压芯片是LM2596,该开关电压调节器是降压型电源管理单片集成电路,能够输出3A的驱动电流,输入电压是+5v,输入电压是+24v,同时具有很好的线性和负载调节特性。该器件内部集成频率补偿和固定频率发生器,开关频率为150KHz,与低频开关调节器相比较,可以使用更小规格的滤波元件。该器件还有其他一些特点:在特定的输入电压和输出负载的条件下,输出电压的误差可以保证在4%的范围内,振荡频率误差在15%的范围内;可以用仅80A的待机

28、电流,实现外部断电;具有自我保护电路(一个两级降频限流保护和一个在异常情况下断电的过温完全保护电路)。在该温度控制系统中,其电源电路设计如下图3-3所示:图3-3 系统电源模块3.4 LCD显示电路液晶显示屏(LCD)用于数字型钟表和许多便携式计算机的一种显示器类型。LCD显示使用了两片极化材料,在它们之间是液体水晶溶液。电流通过该液体时会使水晶重新排列,以使光线无法透过它们。因此,每个水晶就像百叶窗,既能允许光线穿过又能挡住光线。本设计的温度控制系统是采用液晶屏128*64作为显示模块,其接口原理图如下图3-4所示:图3-4 液晶显示接口电路3.5 串口通讯电路由于CPU与接口之间按并行方式

29、传输,接口与外设之间按串行方式传输。因此,在串行接口中,必须要有“接收移位寄存器”(串并)和“发送移位寄存器”(并串)。在数据输入过程中,数据1位1位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。CPU从“数据输入寄存器”中读取接收到的字符。(并行读取,即D7D0同时被读至累加器中)。“接收移位寄存器”的移位速度由“接收时钟”确定。在数据输出过程中,CPU把要输出的字符(并行地)送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据1位1位地送到外设

30、。“发送移位寄存器”的移位速度由“发送时钟”确定。接口中的“控制寄存器”用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式。“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。例如,用状态寄存器的D5位为“1”表示“数据输出寄存器”空,用D0位表示“数据输入寄存器满”,用D2位表示“奇偶检验错”等。本设计的通讯采用的是常见的串口通讯,协议转换芯片是采用MAX232A,其接口原理图如下图3-5所示:图3-5 串口通讯接口电路3.6 按键接口电路本设计采用的键盘模块,其接口原理图如下图3-6所示:图3-6 键盘模块电路3.7 DS130

31、2时钟电路本设计的时钟是采用时钟芯片DS1302,DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。其接口原理图如下图3-7所示:图3-7 时钟接口电路3.8 存储器接口电路本设计的存储器采用的是AT24C256,起始停止信号的主器件控制的CAT24WC256是作为从器件被操作的。主器件和从

32、器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模式,管脚描述SCL串行时钟CAT24WC256串行时钟输入管脚,用于产生器件所有数据发送或接收的时钟。这是一个输入管脚SDA串行数据地址双向串行数据,地址管脚用于器件所有数据的发送或接收SDA,是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或wire-ORWP写保护。当WP脚连接到VCC所有内存变成写保护只能读,当WP引脚连接到VSS或悬空允许器件进行读。写操作A0-A1器件地址输入,这些管脚为硬连线或者不连接对于单总线系统最多可寻址4个。CAT24WC256器件参阅器件寻址当这些引脚没有连接时其默认值0【5】,其接

33、口原理图如下图3-8所示:图3-8 存储器电路第4章 系统的软件设计4.1 系统程序流程图系统的软件主要是采用汇编语言,对单片机进行变成实现各项功能。主程序对模块进行初始化,而后调用读温度、处理温度、显示、键盘等模块。用的是循环查询方式,来显示和控制温度,主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值并负责调用各子程序,其程序流程如图4-1系统程序流程图:启动DB18B20LCD显示开始初始化计算温度读温度图4-1 系统程序流程图4.2 计算温度子程序读出温度子程序的主要功能包括初始化,判断DS18B20是否存在,若存在则进行一系列的读操,作若不存在则返回。其

34、程序流程图如图4-2所示:初始化开始DSB2180存在读取温度值存储操作命令ROM操作命令返回否是图4-2 读温度流程图4.3 按键处理子程序按键处理子程序主要是负责参数的设置,主程序每循环一次都要对按键进行扫描,判断是否有输入键按下则进行一系列的按键输入操作。其程序流程框图如图4-3所示:否是是开始ENTER键是否按下DISPLAY显示退出子程序(RET)返回主程序ENTERFLAG为1由ENTER键按下有UP按下有DOWN按下ENTER子程序flag=1UP子程序DOWN子程序否否否是是否是图4-3 温度转换流程图4.4 软件设计的特点计算温度子程序将RAM中读取值进行BCD码的转换运算,

35、并进行温度值正负的判定,其程序流程图如图4-4所示:开始温度零下?温度值取补码置“”标志计算小数位温度BCD值计算整数位温度BCD值结束置“+”标志否是图4-4 计算温度子程序4.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位【6】。程序流程图如图4-5:温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号)结束否否是是图4-5 数据刷新子程序第5章 总结通过此次毕业论文的设计,我熟悉了单片机在控制系统中的运用,并且在所学知识的基础上,将我原来所学的知识系统化、理论化、实用化

36、。对如何使用已有的知识及获取相关资料方面的能力也有了提高。并学会了如何去思考整个控制系统的软硬件设计。实践过程中我们遇到了一些困难,但在解决问题的过程中,我学会了团队合作精神和怎样发现问题、分析问题,进而解决问题。此次设计不仅增强了我对学习专业课的兴趣,而且给了我们勇气和信心,更重要的是它为我们以后的学习指明了方向。参考文献1 李广弟, 朱月秀, 王秀山. 单片机基础M. 北京: 航空航天大学出版社, 2001: 10-14 .2 蔡美琴, 张为民. MCS-51系列单片机系统及其应用M. 北京: 高等教育出版社. 2004: 20-22.3 张毅刚, 等. MCS-51单片机应用设计M.哈尔

37、滨: 哈尔滨工业大学出版社. 1997: 59-65.4 刘瑞星, 胡健, 等. Protel DXP 实用教程M.北京: 机械工业出版社. 2003: 47-70.5 于海生. 计算机控制技术M.北京: 机械工业出版社. 2007: 90-102.6 康华光. 电子技术基础 模拟部分M.北京: 高等教育出版社. 1998: 70-83. 7 韩志军, 王振波, 等. 单片机应用系统设计M.北京: 机械工业出版社. 2005: 35-38. 8 何小艇. 电子系统设计M.浙江: 浙江大学出版社. 2004: 20-27.9 William Stallings. Data and Compute

38、r Communications M.北京: 高等教育出版社. 2001: 127-144.10 吴京文, 杨世忠, 泰廷奎. 温度传感器控制系统J. 电信技术, 2008, 16(7): 21-26.11 胡义彪, 刘剑刚. Protel DXP 应用技术J. 通信电源, 2005, 27(10): 64-80.致谢通过这次毕业设计使我明白了自己原来知识比较欠缺,自己要学习的东西太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。最后,我要感谢赵国荣老师对我这次毕

39、业设计的悉心指导,使我不仅在知识方面有了更深一步的了解,并且在我设计东西的思路与逻辑方面有更深刻的影响,使我知道了设计思路与逻辑的重要性,让我获益匪浅。附录 系统程序TEMPERATURE_L DATA 31H ;DS18B20低8位BufferTEMPERATURE_H DATA 30H ;DS18B20高8位BufferTEMPERATURE_HC DATA 32H ;计算后的百位和十位的BCD码存放BufferTEMPERATURE_LC DATA 33H ;计算后的个位和小数位的BCD码存放BufferTEMPERATURE_ZH DATA 34H ;计算后十位和个位HEX码的存放Bu

40、fferDIS_BUF_X DATA 35H ;数码管小数位BufferDIS_BUF_G DATA 36H ;数码管个位BufferDIS_BUF_S DATA 37H ;数码管十位BufferDIS_BUF_B DATA 38H ;数码管百位BufferKEY_BUF_G DATA 39H ;键盘输入后,的个位值KEY_BUF_S DATA 49H ;键盘输入后,的十位值KEY_BUF_B DATA 41H ;键盘输入后,的百位值K_UP EQU P1.1 ;上调按钮K_DOWN EQU P1.2 ;下调按钮K_ENTER EQU P1.0 ;输入数据确认按钮P_DS18B20 EQU P

41、3.0 ;读取DS18B20的输入端口P_SWITCH EQU P3.1 ;可控硅控制 FLAG EQU 20H.0 ;标志位,确定是否存在DS18B20ENTER_FLAG EQU 20H.1 ;键盘输入的标志位,ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#60H ;初始化 MOV KEY_BUF_G,#00H ;由于KEY_BUF是由用户输入的,所以先赋值初始化 MOV KEY_BUF_S,#00H MOV KEY_BUF_B,#00HNEXT: LCALL READ_TEMP ;调用读温度子程序 JB FLAG,NORMAL ;判断是否有DS18B2

42、0的存在 CALL ERR ;不存在时显示错误信息 AJMP NEXTNORMAL: LCALL DATA_DEA ;处理从DS18B20得到的数据 LCALL SET_DIS_BUF ;赋值给DIS_BUF_X,G,S,B LCALL DISPLAY ;调用数码管显示子程序 LCALL SCAN_KEY ;扫描键盘 LCALL SWITCH ;处理可控硅 AJMP NEXT;程序名称:ERR;功能:程序出错处理,显示四个8,即8888;入口参数:无;出口参数:DIS_BUF_X,DIS_BUF_G, DIS_BUF_S, DIS_BUF_BERR: MOV DIS_BUF_X,#08H ;如

43、果没有找到DS18B20,那么就显示错误,错误;显示为888MOV DIS_BUF_G,#08H MOV DIS_BUF_S,#08HMOV DIS_BUF_B,#08HLCALL DISPLAYRET程序名称:DATA_DEAL;功能:处理采集后的的数据;入口参数:TEMPERATURE_L;出口参数:DIS_BUF_G, DIS_BUF_S, DIS_BUF_DATA_DEAL:MOV A,TEMPERATURE_H ;判温度是否零下ANL A,#80HJZ TEMPC1 ;A为0,说明是正数,如果是负数,则;对低8为进行补码处理CLR CMOV A,TEMPERATURE_L ;二进制数

44、求补(双字节)CPL A ;取反加1ADD A,#01HMOV TEMPERATURE_L,A MOV A,TEMPERATURE_HCPL AADDC A,#00H MOV TEMPERATURE_H,A ;写回TEMPERATURE_HMOV TEMPERATURE_HC,#0BHSJMP TEMPC11TEMPC1: MOV TEMPERATURE_HC,#0AH TEMPC11: MOV A,TEMPERATURE_HC SWAP A MOV TEMPERATURE_HC,A MOV A,TEMPERATURE_L ANL A,#0FH MOV DPTR,#TEMPDOTTAB MOV

45、C A,A+DPTR ;查表 MOV TEMPERATURE_LC,A ;TEMPERATURE_LC LOW=小数部分 BCD MOV DIS_BUF_X,A ;小数位的BCD码送入显示buffer中 MOV A,TEMPERATURE_L ;整数部分 ANL A,#0F0H ;得到个位单个数值 SWAP A ;SWAP后就得到个位真正的个位 MOV TEMPERATURE_L,A MOV A,TEMPERATURE_H ANL A,#0FH SWAP A ORL A,TEMPERATURE_L MOV TEMPERATURE_ZH,A ;组合后的值存入TEMPERATURE_ZH CALL

46、 HtoB ;转换HEx值成为BCD码 MOV TEMPERATURE_L,A ANL A,#0F0HSWAP AORL A,TEMPERATURE_HC ;TEMPERATURE_HC LOW位 = 十位数 MOV TEMPERATURE_HC,AMOV A,TEMPERATURE_LANL A,#0FHSWAP AMOV R7,AMOV A,TEMPERATURE_HC ;TEMPERATURE_HC HI = 百位数 BCDANL A,#0FHORL A,R7MOV TEMPERATURE_HC,ATEMPC12: RET ;小数部分码表TEMPDOTTAB: DB 00H,01H,01

47、H,02H,03H,03H,04H,04H,05H,06H,06H,07H,08H,08H,09H,09H;0.0625-00H;0.0625*2 = 0.125-01H;0.0625*3 = 0.1875-01H;0.0625*4 = 0.25-02H;0.0625*5 = 0.3125-03H;以此类推.;程序名称:HtoB;功能:十六进制转 BCD;入口参数:A;出口参数:R7HtoB: MOV B,#064H ;100 DIV AB ;a/100 MOV R7,A ; MOV A,#0AH XCH A,B DIV AB SWAP A ORL A,B RET;程序名称:INIT_TEMP

48、;功能:初始化DS18B20,确定DS18B20是否是存在的;入口参数:无;出口参数:FLAGINIT_TEMP: SETB P_DS18B20 NOP CLR P_DS18B20 ;主机发出延时537微秒的复位低脉冲 MOV R0,#6BH MOV R1,#04HTSR1: DJNZ R0,$ MOV 40,#6BH DJNZ R1,TSR1 SETB P_DS18B20 ;然后拉高数据线,释放总线进入接受状态 NOP NOP NOP MOV R0,#32HTSR2: JNB P_DS18B20,TSR3 ;等待DS18B20回应 DJNZ R0,TSR2 LJMP TSR4 ;延时TSR3

49、: SETB FLAG ;置标志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG ;清标志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#06BHTSR6: DJNZ R0,TSR6 ;时序要求延时一段时间TSR7: SETB P_DS18B20 RET;程序名称:READ_TEMP;功能:读取DS18B20的数据;入口参数:TEMPERATURE_L,TEMPERATURE_H;出口参数:无READ_TEMP: SETB P_DS18B20 LCALL INIT_TEMP ;先复位DS18B20 JB FLAG,TSS2 RET ;判断DS1

50、820是否存在?若DS18B20不存在则返回TSS2: MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_18B20 MOV A,#44H ;发出温度转换命令 LCALL WRITE_18B20 LCALL DISPLAY ;等待AD转换结束,12位的话750微秒 LCALL INIT_TEMP ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_18B20 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_18B20 LCALL READ_18B20 ;将读出的温度数据保存到35H/36H RET程序名称:WRITE_18B

51、20;功能:将A保存的数值写入DS1820中,;入口参数:A 寄存器;出口参数:无WRITE_18B20: MOV R2,#8 ;一共8位数据,串行通信CLR CWR1: CLR P_DS18B20MOV R3,#07DJNZ R3,$RRC A ;循环右移MOV P_DS18B20,CMOV R3,#3CHDJNZ R3,$ ;23*2 = 46微妙SETB P_DS18B20NOPDJNZ R2,WR1 ;A里面一共是8位,所以要送8次SETB P_DS18B20 ;释放总线RET;程序名称:READ_18B20;功能:读取18B20中的数据,由于是串行通信,每次读取一个,循环8次读取;入口参数:TEMPRATURE_L;出口参数:无READ_18B20: MOV R4,#4 ;将温度高位和低位从DS18B20中读出MOV R1,#TEMPERATURE_L RE00: MOV R2,#8 ;数据一共有8位RE01: CLR CSETB P_DS18B20NOPNOPCLR P_DS18B20NOPNO

温馨提示

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

评论

0/150

提交评论