版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 目 录摘要8关键词8Abstract8Key words81 单片机在相关领域的应用与其发展91.1 单片机的相关介绍91.2 单片机的发展趋势9121 低功耗CMOS化9122 微型单片化9123 主流与多种品种共存101.3 单片机在相关领域的应用102 设计方案102.1 设计方案论证102.1.1 方案一102.1.2 方案二112.1.3 方案三112.2 方案的比较与选择113 系统设计113.1 系统功能简介113.2 相关芯片介绍123.2.1 AT89S52单片机的介绍123.2.2 DS18B20的介绍163.2.3 LED数码管213.3 硬件设计243.3.1 单片机
2、最小系统电路243.3.2 DS18B20测温电路253.3.3 报警电路263.3.4 四位数码管显示电路273.3.5报警温度设定按键电路273.3.6 ISP程序下载接口电路283.4 软件设计283.4.1 程序流程图283.4.2 开机数码管显示设置293.4.3 DS18B20采集温度程序293.4.4 读取温度程序313.4.5显示温度程序324 调试过程334.1数码管显示乱码334.2 按键处理问题334.3 DS18B20时序问题335 结论33参考文献34附录:35附录1:系统硬件原理图35附录二:系统源程序3532 / 32基于单片机的温度报警系统的设计摘要:温度是与人
3、类的生活和工作关系最密切的物理量之一,也是各门学科与工程研究设计中经常遇到和必须测定的物理量,随着单片机技术的应用和发展,对于温度的检测已经开始向智能化方向发展。本文以AT89S52单片机为主控元件,通过DS18S20温度传感器测温,以4位共阳极LED数码管为显示电路,实现了一个小型温度智能化报警系统,具有低成本、易使用和制作简单等优点,具有广阔的市场前景。关键词:AT89S52;单片机;温度传感器;数字温度计;The design of Temperature alarm System which is based on Single Chip MicrocontrollerAbstract
4、:The temperature is one of the physical quantities which are the most closely related with the life and work of human, and its the physical quantities that each subject and engineering research and design frequently encountered in and must determine. With the development of single-chip microcontroll
5、er technology, for the temperature testing has started to intelligent direction. The MSC-51 single chip microcontroller is the core, though the temperature sensor DS18S20 and 4 bit common cathode LED ,we implements a small temperature intelligent alarming system. With low cost ,easy to use and easy
6、fabrication etc, so it has a broad market prospect.Keywords: AT89S52;Single-chip microcontroller;Temperature sensor;Digital thermometer;1 单片机在相关领域的应用与其发展1.1 单片机的相关介绍单片机全片微型计算机,是把中央处理器、存储器、定时计数器、输入输出接口都集成在一块电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点就是体积小,可放在仪表部,但存储量小,输入输出接口简单,功能较低。随着
7、电子技术的发展,旧的单片机的定义已经不能全面概况目前单片机的状况,所以如今在很多场合被称为围更广的微控制器,英文名为single chip microcontroller。1.2 单片机的发展趋势121 低功耗CMOS化随着当今人们对单片机功耗要求越来越高,现在的各个单片机制造商基本都采用COMS(互补金属氧化物半导体)工艺。COMS虽然功耗较低,但由于其物理特征决定了其工作速度不够高,而CHOMS则具备了高速和低功耗的特点,这些特点更能适应现代社会的要求,所以这种工艺将是今后一段时间单片机技术发展的主要途径。122 微型单片化现在的电子产品普遍向着小体积、轻重量方向发展,这就要求单片机除了功
8、能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)技术越来越受欢迎,使得单片机向着微型化方向发展。123 主流与多种品种共存现在市面上,单片机品种繁多,各具特色,其中以89C51为核心的单片机是主流,而Microchip公司的PIC精简指令集(RISC)单片机,中国HOLTEK公司近年来的单片机产量与日俱增,与其低价质优的优势,占据了一定的市场份额。在一定的时期,这种情形将得以延续和发展,将不存在某个品牌的单片机一统天下的垄断局面,现在和未来的趋势必然是依存互补,相辅相成,共同发展。1.3 单片机在相关领域的应用在信息高速发展的21世纪,科学技术的发展
9、日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。我们进入了高速发展的信息时代,测量技术也成为当今科技的一个主流,广泛地深入研究和应用工程的各个领域。随着科学技术日益迅速的发展,数字监控系统已经深入到生活的各个方面。数字温度计作为数字监控系统的重要组成部分发挥着极其重要的作用。它克服了接触式温度计对传感器的耐热性能要求比较苛刻的缺点,使温度计无论在使用围还是测量精度上都有了长足的进步。2 设计方案2.1 设计方案论证2.1.1 方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就
10、可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。如下图:图2-1 热敏电阻2.1.2 方案二选定了温度传感器之后,再来考虑它的控制核,因为数字温度计的设计并不复杂,单片机完全可以处理的了,DSP是比较高端的控制核应用成本相对较高,所以选用单片机是即经济又实惠的选择。2.1.3 方案三进而考虑到用温度传感器,在设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2.2 方案的比较与选择从以上三种方案,很容易看出,采用
11、方案三,电路比较简单,软件设计也比较简单,故采用了方案三。3 系统设计3.1 系统功能简介本系统利用单片机采集温度,温度值精确到小数点一位,用4位数码管显示温度值,设置三个按键调整报警温度值,当温度超出所设定的上下限围时,蜂鸣器开始报警。系统框图如图3-1所示。单片机复位电路报警电路时钟振荡温度传感器LED显示蜂鸣器报警图3-1 总体设计方框图3.2 相关芯片介绍3.2.1 AT89S52单片机的介绍AT89S52单片机有40个引脚,如图3-2所示,4k bytes flash片程序存储器,128 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2
12、层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片时钟振荡器。AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,置8KB可在线编程闪存。该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。片程序存储器允许重复在线编程,允许程序存储器在系统通过SPI串行口改写或用同用的非易失性存储器改写。通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。它的应用围广,可用于解决复杂的控制问题,且成本较低。其结构框图如图3-2所示。图3-2 AT89S52引脚图3-
13、3 AT89S52结构框图 此外,AT89S52设计和配置了震荡频率可为12MHZ并可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不同产品的需求。(1) AT89S52主要功能特性a、兼容mcs-51指令系统b、4k可反复擦写(1000次)isp flash romc、32个双向i/o口 d、4.5-5.5v工作电压e、2个16位可编程定时/计数器 f、时钟频率0-33mhzg、全双工uart串
14、行中断口线 h、128x8bit部rami、2个外部中断源 j、低功耗空闲和省电模式k、中断唤醒省电模式 l、3级加密位m、看门狗(wdt)电路 n、软件设置空闲和省电功能o、灵活的isp字节和分页编程 p、双数据寄存器指针(2)AT89S52各引脚介绍按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O口、控制和复位等。a、多功能I/O口AT89S52共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0 P3.7,共32根I/O线。每根线可以单独用作输入或输出。P0端口,该口是一
15、个8位漏极开路的双向I/O口。在作为输出口时,每根引脚可以带动8个TTL输入负载。当把“1”写入P0时,则它的引脚可用作高阻抗输入。当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有部上拉电阻。在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。P1端口,该口是带有部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过部的上拉电阻把端口拉到高电位,此时可用作输入口。P1口作输入口使用时,因为有部的上拉电阻,那些被外部信号拉低的引脚会输出
16、一个电流。在对Flash编程和程序校验时,P1口接收低8位地址。另外,P1.0与P1.1可以配置成定时/计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端(P1.0/T2EX),如表3-1所示。端口引脚复用功能P1.0T2(定时器/计算器2的外部输入端)P1.1T2EX(定时器/计算器2的外部触发端和双向控制)P1.5MOSI(用于在线编程)P1.6MISO(用于在线编程)P1.7SCK(用于在线编程)表3-1 P1口管脚复用功能 P2端口,该口是带有部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过部的上拉
17、电阻把端口拉到高电位,此时可用作输入口。P2口作输入口使用时,因为有部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器或16位的外部数据存储器时,P2口送出高8位地址,在访问8位地址的外部数据存储器时,P2口引脚上的容(就是专用寄存器(SFR)区中P2寄存器的容),在整个访问期间不会改变。在对Flash编程和程序校验期间,P2口也接收高位地址或一些控制信号。 P3端口,该口是带有部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过部的上拉电阻把端口拉到高电位,此时可用作输入口。P3口作输入口使用时,因为有部
18、的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在AT89S52中,同样P3口还用于一些复用功能,如表3-2所列。在对Flash编程和程序校验期间,P3口还接收一些控制信号。端口引脚复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)表3-2 P3端口引脚与复用功能表b、RST复位输入端在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。看门狗定时器(Watchdog
19、)溢出后,该引脚会保持98个振荡周期的高电平。在SFR AUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽这种功能。DISRTO位的默认状态,是复位高电平输出功能使能。c、ALE/PROG地址锁存允许信号在存取外部存储器时,这个输出信号用于锁存低字节地址。在对Flash存储器编程时,这条引脚用于输入编程脉冲PROG。一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或时钟。但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。在需要时,可以把地址8EH中的SFR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MOVX或MOVC指令执行时ALE才被激活。在单片机处于外部
20、执行方式时,对ALE屏蔽位置“1”并不起作用。d、PSEN程序存储器允许信号它用于读外部程序存储器。当AT89S52在执行来自外部存储器的指令时,每一个机器周期PSEN被激活2次。在对外部数据存储器的每次存取中,PSEN的2次激活会被跳过。e、EA/Vpp外部存取允许信号为了确保单片机从地址为0000HFFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。但是,如果锁定位1被编程,则EA在复位时被锁存。当执行部程序时,EA应接到Vcc。在对Flash存储器编程时,这条引脚接收12V编程电压Vpp。f、XTAL1振荡器的反相放大器输入,部时钟工作电路的输入。g、XTAL2振荡器的
21、反相放大器输出。3.2.2DS18B20的介绍(1)DS18B20主要功能特性DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。TO92封装的DS18B20的引脚排列见图3-4,其引脚功能描述见表3-3。 图3-4 DS18B20 (底视图)序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。表3-3 DS18B2
22、0详细引脚功能描述DS18B20的性能特点如下:a、独特的单线接口仅需要一个端口引脚进行通信;b、多个DS18B20可以并联在惟一的三线上,实现多点组网功能;c、无须外部器件;d、可通过数据线供电,电压围为3.05.5;e、零待机功耗;f、温度以或位数字;g、用户可定义报警设置;h、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;i、负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20采用脚PR35封装或脚SOIC封装,其部结构框图如图3-5所示。C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位
23、CRC发生器VddI/O图3-5 DS18B20部结构64位ROM的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图3-5所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相
24、应精度的温度数值。该字节各位的定义如图3-6所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC图3-6 DS18B20字节定义由表3-2可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS
25、18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表3-4是一部分温度值对应的二进制温度数据。R1R0分辨率/位温度最大转换时间/ms00993.750110187.510113751112750表3-4 DS18B20温度转换时间表DS18B20的测温原理是这这样的,器件中
26、低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度
27、系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0
28、.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H表3-5一部分温度对应值表(2) DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图4 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于
29、写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(3) DS
30、18B20的控制方法DS18B20有六条控制命令,指令约定代码操作说明 。CCH:跳过扫描温度传感芯片序列号44H: 启动DS18B20进行温度转换 BEH :读度温度值a、DS18B20的复位时序 图3-7 DS18B20复位时序图先将数据线置高电平“1”;延时(该时间要求的不是很严格,但是尽可能的短一点);数据线拉到低电平“0”;延时750微秒(该时间的时间围可以从480到960微秒);数据线拉到高电平“1”;延时等待(如果初始化成功则在15到60毫秒时间之产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要
31、进行超时控制);若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒;将数据线再次拉高到高电平“1”后结束。b、DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。图3-8 DS18B20读时序过程将数据线拉高“1”;延时2微秒;将数据线拉低“0”;延时15微秒;将数据线拉高“1”;延时15微秒;读数据线的状态得到1个状
32、态位,并进行数据处理;延时30微秒。c、DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之就得释放单总线。图3-9 DS18B20写时序过程数据线先置低电平“0”;延时确定的时间为15微秒;按从低位到高位的顺序发送字节(一次只发送一位);延时时间为45微秒;将数据线拉到高电平;重复上到的操作直到所有的字节全部发送完为止;最后将数据线拉高。(4
33、)DS18B20注意事项DS18B20虽然有测温简单的特点,单在实际应用中应注意一下几点:a、较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20 操作部分最好采用C语言实现。b、在DS18B20的有关资料中均未提与单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20 超过8个时钟,就需要解决微处理器的总线驱动问题,这一点在进行多
34、点测温系统设计时要加以注意。c、连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。d、在DS18B20 测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20 的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20
35、 时,将没有返回信号,程序进入死循环。这一点在进行DS18B20 硬件连接和软件设计时也要给予一定的重视。3.2.3 LED数码管(1)LED数码管主要技术参数图3-10 数码管数码管使用条件:a、段与小数点上加限流电阻;b、使用电压:段:根据发光颜色决定;c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA; 峰值电流 100mA。上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数(2)LED数码管的引脚说明这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、
36、e、f、g与dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g与dp(小数点),如图3-11、3-12所示。图中的8个LED分别与上面那个图中的ADP各段相对应,通过控制各个LED的亮灭来显示数字。图3-11 共阳数码管部结构图3-12 共阴数码管部结构对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为110脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。注意,3脚和8脚是连通的,这两个都是公共脚。还有一种比较常用的是四位数码管,部的4个数码管共用adp这8根数据线,为人们的
37、使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上adp,共有12个引脚,下面便是一个共阴的四位数码管的部结构图(共阳的与之相反)。引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为112脚,图3-13中的数字与之一一对应。图3-13 4位共阳数码管部结构(3)数码管编码说明 4位数码管编码说明,如表3-6所示:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0eddpcgbfa00010100028H111101011EBH20011001032H310100010A2H411100001E1H510100100A4H60010010024H711101
38、010EAH80010000020H910100000A0HH0110000161HL001100013DH-11110111F7HC001111003CH表3-6 控制命令表(4)码管引脚图数码管使用注意事项a、数码管表面不要用手触摸,不要用手去弄引角;b、焊接温度:度;焊接时间:;c、表面有保护膜的产品,可以在使用前撕下来。3.3 硬件设计3.3.1 单片机最小系统电路图3-14 单片机最小系统(1)单片机9脚接复位电路,可按复位按钮S1给单片机复位。(2)晶振采用12MHZ。(3)由于单片机只访问片Flash ROM并执行部程序存储器中的指令,因此单片机的31脚接高电平VCC。3.3.2
39、 DS18B20测温电路图3-15 DS18B20电路DS18B20的1脚接地,2脚数据端接单片机的P3.4,3脚接VCC,为了确保DS18B20工作可靠,2脚要接10K的上拉电阻。3.3.3 报警电路图3-16 蜂鸣器电路本系统中采用蜂鸣器报警,由于单片机输出电流较小,所以用三极管9013驱动蜂鸣器发出声音。3.3.4 四位数码管显示电路图3-17 数码管显示电路4位数码管为共阳管,由于单片机输出电流比较小,故用4个PNP型的三极管9015来驱动数码管。单片机输出低电平时三极管导通,使数码管的4各公共端1、4、5和12脚为高电平,此时数码管的数据端输入低电平后数码管被点亮,120欧电阻R12
40、到R19为三极管的限流电阻。3.3.5报警温度设定按键电路图3-18 按键电路 报警温度用按键S2,S3,S4来设置,S2为调整键,按一次可调整报警上限温度值,按两次可调整报警下限温度值,按三次数码管恢复到正常温度显示。3.3.6 ISP程序下载接口电路图3-19 下载电路 本系统才用AT89S52单片机,故可以采用ISP方式下载程序。3.4 软件设计3.4.1 程序流程图开始初始化示化获取温度值与温度上下限比较报警转换并显示YESY发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY图3-20 主程序流程图 图3-21
41、 读温度流程图3.4.2 开机数码管显示设置/*显示开机初始化等待画面*/Disp_init() P2 = 0xfe; /显示-P0 = 0xbf;Delay(200);P0 = 0xef;Delay(200); P0 = 0xfb;Delay(200);P0 = 0xfe;Delay(200);P0 = 0xff; /关闭显示给单片机上电后,18B20读取温度值需要一定的时间,故上数码管显示一定时间的“-”。3.4.3 DS18B20采集温度程序#define DQ P3_4 /定义DS18B20总线I/O/*延时子程序*/void Delay_DS18B20(int num)while(n
42、um-) ;/*初始化DS18B20*/void Init_DS18B20(void)unsigned char x=0;DQ = 1; /DQ复位Delay_DS18B20(8); /稍做延时DQ = 0; /单片机将DQ拉低Delay_DS18B20(80); /精确延时,大于480usDQ = 1; /拉高总线Delay_DS18B20(14);x = DQ; /稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);/*读一个字节*/unsigned char ReadOneChar(void)unsigned char i=0;unsigned ch
43、ar dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4);return(dat);/*写一个字节*/void WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat=1;/*读取温度*/unsigned int ReadTemperature(void)unsigned
44、char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0x44); /启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器a=ReadOneChar(); /读低8位b=ReadOneChar(); /读高8位t=b;t=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; /放大10倍输出并四舍五入r
45、eturn(t);/*END*/读取18B20的程序,需要单片机发送读命令和写命令。读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图3-22所示。发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束 图3-22 温度转换流程图3.4.4 读取温度程序/*读取温度*/void check_wendu(void)uint a,b,c;c=ReadTemperature()-5; /获取温度值并减去DS18B20的温漂误差a=c/100; /计算得到十位数字b=c/10-a*10; /计算得到个位数字m=c/10;
46、 /计算得到整数位n=c-a*100-b*10; /计算得到小数位if(m99)m=99;n=9; /设置温度显示上限 读取的18B20程序需要转换出要显示的温度值。3.4.5显示温度程序/*显示温度子程序*/Disp_Temperature() /显示温度P2 =0x27; /显示CP0 = 0xfe;Delay(300);P2 =LEDDatan; /显示个位P0 = 0xfb;Delay(300);P2 =LEDDatam%10; /显示十位DIAN =0; /显示小数点P0 = 0xef;Delay(300);P2 =LEDDatam/10; /显示百位P0 = 0xbf;Delay(
47、300);P0 = 0xff; /关闭显示/*显示报警温度子程序*/Disp_alarm(uchar baojing)P2 =0x27; /显示CP0 = 0xfe;Delay(200);P2 =LEDDatabaojing%10; /显示十位P0 = 0xfb;Delay(200);P2 =LEDDatabaojing/10; /显示百位P0 = 0xef;Delay(200);if(set_st=1)P2 =0x8c;else if(set_st=2)P2 =0xa7; /上限H、下限L标示P0 = 0xbf;Delay(200);P0 = 0xff; /关闭显示根据数码管和单片机管脚的连
48、接顺序,算出P2口发送的数据为LEDData=0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0;分别对应0 1 2 3 4 5 6 7 8 9.4 调试过程4.1数码管显示乱码由于P2口的P2.0到P2.7并没有按照顺序和数码管的a,b,c,d,e,f,g相连,所以需要重新编码,因为用的是共阳数码管,所以数据端低电平亮,故LEDData=0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0;。4.2 按键处理问题 由于按键采用的是机械按键,会发生抖动,所以程序中要加延时,去抖动。4.3 DS18B2
49、0时序问题DS18B20对于时序要求很严格,所以读写数据时要严格按照时序图上的时间来编写程序。5 结论本文详细讲述了系统设计方案,并给出了相关程序流程。本设计应用性比较强,可以应用在仓库温度、大棚温度、机房温度等的监控。另外,如果把本设计方案扩展为多点温度控制,加上上位机,则可以实现远程温度监控系统,将具有更大的应用价值。本文的创新点在于详细设计了基于单片机AT89C51的温度监控系统,并且已经在硬件平台上成功运行此系统可广泛用于温度在DSl8820测温围之的场合,有良好的应用前景。经过四年的学习,终于完成了我的温度报警系统的设计,虽然没有完全达到设计要求,但从心底里说,还是比较高兴的。过程当
50、中用到的单片机作为控制核,四段数码管作为显示部分,与其他电路,共同组成了我的成果。首先设计的是它的硬件电路,最重要的部分是89S52控制核,所有的数据处理都是采用的单片机,其次是DS18B20温度采集电路,其他还有晶振电路,复位电路,报警点与上下限温度调整电路。其次我们设计了它的灵魂软件电路,通过用C语言编程实现对器件的控制。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,不仅使我真正的学会了数字温度计的设计,而且我相信通过这次的学习我能够达到举一反三的效果,同时这次的不足之处是在有些细节方面刚开始做的很不详细,我想原因在于自己平时对自
51、己的学习要求的不够严格,才造成遇到一些问题显得惊慌失措,在日后我会克服这些缺点的。参考文献1 朝青.单片机原理与接口技术(简明修订版).:航空航天大学,19982 广弟.单片机基础.:航空航天大学,19943 阎石.数字电子技术基础(第三版). :高等教育,19894石东海等.单片机数据通信技术从入门到精通.:电子科技大学, 2002.148150. 5 王忠飞,胥芳MCS一51单片机原理与嵌入式系统应用M.:电子科技大学,2007P268-2736蔡朝洋,单片机控制实习与专题制作M.:航空航天大学,20067毅刚,喜源,谭晓昀等.MSC-51单片机应用设计M.:工业大学,19998周坚.单片机C语言轻松
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桥面系施工安全技术交底(新)
- (班组级)驾驶员三级安全教育试卷及答案
- 2025-2026学年小学教学设计资料
- 2025-2026学年力与形变教案
- 隧道结构施工技术方案
- 工程变更管理与桩基施工方案
- 保险法题库及答案
- 手术室无菌技术试题及答案
- 院感知识竞赛题库含答案
- 肿瘤科科室培训简答试题及答案
- 男朋友卖身合同协议
- 2023-2024学年高二入学考试物理试题及答案
- 中国参与国际通信海缆建设和保护相关情况报告(2025年)
- 妇女儿童权益保护法律讲座
- 2、CDR量表培训-2013.1课件
- 第十一单元跨学科实践活动10调查我国航天科技领域中新型材料、新型能源的应用课件-2024-2025学年九年级化学人教版下册
- 腰椎间盘突出症课件(共100张课件)
- 2024年上半年教师资格证《初中道德与法治》真题及答案
- 2019新外研版新教材高中英语必修三全册单词知识点详解
- 全民肾脏健康 世界肾脏日
- 智慧养老服务平台建设投标方案(技术方案)
评论
0/150
提交评论