8路DS18B20测温系统的设计最终版.doc

上传人:文库蛋蛋多 文档编号:4143904 上传时间:2023-04-07 格式:DOC 页数:47 大小:3.06MB
返回 下载 相关 举报
8路DS18B20测温系统的设计最终版.doc_第1页
第1页 / 共47页
8路DS18B20测温系统的设计最终版.doc_第2页
第2页 / 共47页
8路DS18B20测温系统的设计最终版.doc_第3页
第3页 / 共47页
8路DS18B20测温系统的设计最终版.doc_第4页
第4页 / 共47页
8路DS18B20测温系统的设计最终版.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《8路DS18B20测温系统的设计最终版.doc》由会员分享,可在线阅读,更多相关《8路DS18B20测温系统的设计最终版.doc(47页珍藏版)》请在三一办公上搜索。

1、教学单位 学生学号 编 号 WL2013CK031 本 本科毕业论文(设计)题目 8路DS18B20测温系统的设计 学生姓名 专业名称 测控技术与仪器 指导教师 8路DS18B20测温系统的设计摘要:本课题以AT89S52单片机为核心,能对多点温度进行实时测量和显示,并且可以实现报警、数据传输。本系统由控制模块、显示模块、报警模块、数据传输四大模块组成。其中,控制模块主要以AT89S52为核心的最小系统,来控制四路DS18B20温度传感器以实现多点温度的测量,显示模块由LCD1602液晶显示屏为硬件来显示,报警模块主要由单片机直接控制蜂鸣器来实现,其报警依据为按键设定的温度上下限值,如果温度超

2、出上下限值,则会使蜂鸣器发声。串口模块主要采用MAX232芯片进行电平转换得以实现串口发送来进行实时数据的传送。关键词:DS18B20;多点测温;单片机;LCD1602;MAX232Design of 8 DS18B20 temperature measurement systemAbstract:This subject takes AT89S52 microcontroller as the core, can carry out real-time measurement and display of multiple point temperature, and can realize

3、 the alarm, data transmission.The system consists of control module, display module, alarm module, data transmission module four big. Among them, the minimum system control module with AT89S52 as the core, the measurement to control four DS18B20 temperature sensor to realize multi-point temperature,

4、 display module consists of a LCD1602 liquid crystal display hardware to display, alarm module consists of single-chip microcomputer control buzzer to achieve lower limit alarm, the basis for the button to set the temperature, if the temperature go beyond the limit, will make the buzzer sound. Seria

5、l port module mainly uses the MAX232 chip level conversion can be realized the serial port to send to transmit real-time data.Keywords: DS18B20; multi-point temperature measurement; MCU; LCD1602; MAX232目 录一 论文正文1 绪论1 1.1课题背景1 1.2设计的目的和意义1 1.3 本课题的任务及目标12 8路DS18B20测温系统设计方案2 2.1硬件总体方案设计2 2.2软件总体方案设计33

6、 硬件设计43.1单片机、DS18B20、液晶显示屏的功能介绍43.1.1单片机功能介绍43.1.2 DS18B20功能介绍73.1.3 1602LCD液晶显示屏功能介绍83.2 电路设计103.2.1 DS18B20与单片机接口电路设计103.2.2 LCD液晶显示屏与单片机接口电路设计113.2.3 报警电路设计123.2.4 串口电路设计124 软件设计13 4.1 温度处理子程序设计13 4.2按键处理子程序设计13 4.3 系统温度阈值设定子程序设计13 4.4 温度显示子程序设计13 4.5显示数据刷新程序子程序设计135 实验结果的分析18 结果显示:18 误差分析:20总结21

7、参考文献22谢辞22总程序24二 附录1 开题报告382 结题报告393 答辩报告401 绪 论1.1课题背景在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。尤其是处在现在工业发达的当代,在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。 既然温度如此重要,目前市场主要存在单点和多点两种温度测量仪表。单点温度测量仪表,主要采用传统的模拟集成温度传感器,其传感器的测量精度高,测量范围大,而得到了普遍的应用。并且测温范围大,分辨率高,最小分辨温度在 0001001 之间。该类仪表可很好的满足单

8、个用户单点测量的需要。而目前市场上多点温度测量仪表的测量精度还不够精确,虽然实现了多路温度的测量与检测,但价格较为昂贵,不能满足市场的需求。 针对以上现状,本课题提出了一种可满足市场需求、可进行多点测量并且可以实时的进行数据显示、数据传输,且精度高、测量范围大、性价比高的单片机多路测温系统。1.2设计的目的和意义目的:为了克服目前市场上传统的测温系统造成的模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端,避免引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题。意义:本系统的设计满足了市场上对微型化、集成化、数字化、高精度、多点温度测量系统的实际需要。随着现代科学技术的飞

9、速发展,特别是大规模集成电路设计技术的发展,其正是今后的发展趋势和方向。1.3 本课题的任务及目标 本课题主要是实现对温度进行多点同时测量并准确显示。整个系统由单片机控制,要能够接收 DS18B20 温度传感器的数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的传感器,并由 LCD1602 进行温度实时显示。设计一种合理、可行的单片机监控软件,完成多点测量和显示的任务,并编写硬件底层驱动程序。利用 STC89S52 单片机设计一个能够对不同环境多点温度同时进行测量的系统。该系统能够同时对多个点的温度进行测量采集,通过 LCD1602 进行实时显示。 并且,通过串口模块显示在在PC界面

10、上。2 8路DS18B20测温系统设计方案本设计系统的硬件设计是以单片机AT89S52为核心器件的一套检测系统,以制作出的电路板为实物,以C语言进行软件程序设计,利用PROTUES作为仿真软件设计而成的。系统主要由温度传感器、液晶显示电路、键盘、报警电路,及串口模块组成,电路图如下所示。2.1硬件总体方案设计该方案使用了AT89S52单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,采用多个温度传感器对多点温度进行检测,通过键盘模块对温度上限设置,超过其温度值就报警。显示电路采用LED数码管模块,使用单片机直接驱动蜂鸣器构成报警电路。如图2.1所示:PC界面温度传感器温度传感器

11、温度传感器温度传感器复位电路单 片机LED显示模块串口模块图2.1温度测量系统方案框图2.2软件总体方案设计系统软件设计首先LCD1602初始,写入报警温度的上下值。如果DS18B20运行良好,能正常工作,那么在LCD1602上就能显示出四路传感器所在位置的实时温度,读取温度数据,在液晶屏上显示温度值,如果温度值超过上限值,那么就会自动报警,通过按键设置报警温度值的上限和下限。软件总体流程图如下图所示: 3 硬件设计3.1单片机、DS18B20、液晶显示屏的功能介绍3.1.1单片机功能介绍1) 基本知识AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In

12、-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看

13、门狗(WDT)电路,片内时钟振荡器。2) AT89S52引脚功能与封装按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O口、控制和复位等。1.多功能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端口,该口是一个8位漏极开路的双向I/O口。在作为输出口时,每根引脚可以带动8个TTL输入负载。当把“1”写入P0时,则它的引脚可用作高阻抗输入。当对外部程序或数据存储器进行存取时,P0可用作多路复

14、用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P1口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对Flash编程和程序校验时,P1口接收低8位地址。另外,P1.0与P1.1可以配置成定时/计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端(

15、P1.0/T2EX),如表3.1所示。表3.1 P1口管脚复用功能端口引脚复用功能P1.0T2(定时器/计算器2的外部输入端)P1.1T2EX(定时器/计算器2的外部触发端和双向控制)P1.5MOSI(用于在线编程)P1.6MISO(用于在线编程)P1.7SCK(用于在线编程) P2端口,该口是带有内部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P2口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器或16位的外部数据存储器时,

16、P2口送出高8位地址,在访问8位地址的外部数据存储器时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Flash编程和程序校验期间,P2口也接收高位地址或一些控制信号。 P3端口,该口是带有内部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P3口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在AT89S52中,同样P3口还用于一些复用功能,如表3.2所列。在对Flash编程和程序校验期间,P3口还

17、接收一些控制信号。表3.2 P3端口引脚与复用功能表端口引脚复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)2.RST 复位输入端。在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。看门狗定时器(Watchdog)溢出后,该引脚会保持98个振荡周期的高电平。在SFR AUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽这种功能。DISRTO位的默认状态,是复位

18、高电平输出功能使能。3.ALE/PROG 地址锁存允许信号。在存取外部存储器时,这个输出信号用于锁存低字节地址。在对Flash存储器编程时,这条引脚用于输入编程脉冲PROG。一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或时钟。但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。在需要时,可以把地址8EH中的SFR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MOVX或MOVC指令执行时ALE才被激活。在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。4.PSEN 程序存储器允许信号。它用于读外部程序存储器。当AT89S52在执行来自外部存储器的指令时,每

19、一个机器周期PSEN被激活2次。在对外部数据存储器的每次存取中,PSEN的2次激活会被跳过。5.EA/Vpp 外部存取允许信号。为了确保单片机从地址为0000HFFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。但是,如果锁定位1被编程,则EA在复位时被锁存。当执行内部程序时,EA应接到Vcc。在对Flash存储器编程时,这条引脚接收12V编程电压Vpp。6.XTAL1 振荡器的反相放大器输入,内部时钟工作电路的输入。7.XTAL2 振荡器的反相放大器输出。3.1.2 DS18B20功能介绍 1)DS18B20简介DS18B20是智能温度传感器,它的输入、输出采用数字量,通过

20、单总线,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度数值以串口形式发给主机,主机按照通讯协议用一个I/O口模拟DS18B20时序,发送命令(初始化命令、ROM命令、功能命令)给DS18B20,并读取温度值,在内部进行相应的数据处理,用字符型液晶显示模块显示各点的温度值。在系统启动之时,可以通过按键设置各点温度的上限值和下限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度实时监控。每个DS18B20有自己的序列号,因此本系统可以在一根总线上接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响

21、应,接收足迹命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单。DS18B20虽然有测温简单的特点,单在实际应用中应注意以下几点:(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20 操作部分最好采用C语言实现。(2) 在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂

22、DS18B20 超过8个时钟,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(3) 连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。(4) 在DS18B20 测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS1

23、8B20 的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环。这一点在进行DS18B20 硬件连接和软件设计时也要给予一定的重视。 2)DS18B20 的性能特点(1) 独特的单线接口仅需要一个端口引脚进行通讯;(2) 在DS18B20中的每个器件上偶有独一无二的序列号,因此多个DS18B20可以并联在唯一的三线上,实现多点组网功能;(3) 实际应用中不需要任何外部器件即可实现;(4) 可通过数据线供电,电压范围为3.05.5V;(5) 零待机功耗;(6) 用户可定义的非易失性温度报警设置;(7) 报警搜索命令识别并标志超过程序限定

24、温度(温度报警条件)的器件;3.1.3 1602LCD液晶显示屏功能介绍 1)LCD1602主要技术参数显示容量为162个字符;芯片工作电压为4.55.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.954.35(WH)mm。 2)LCD1602的引脚说明LCD1602采用标准的14脚接口,其中:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令

25、或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。 第1516脚:空脚 3)控制指令说明 1602液晶模块内部的控制器共有11条控制指令,如4.3表所示:表4.3 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地

26、址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表

27、示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 指令7:字符发生器RAM地址设置 指令8:DDRAM地址设置 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据 指令11:读数据 3

28、.2 电路设计3.2.1 DS18B20与单片机接口电路设计DS18B20可以采用电源供电方式,此时DS18B20的1管脚接地,2脚作为信号线接单片机的I/O口,电源与数字输入管脚间需接一个4.7K的电阻,3管脚接电源,如图3.2.1所示。当DS18B20处于些存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10s。单片机AT89S52VC DS18B20DQGNDVcc10K 图3.2.1 DS18B20采用电源供电方式的电路图3.2.2 LCD液晶显示屏与单片机接口电路设计本系统的显示部分采用LCD1602字符显示模块,与采用数码管相比,硬件连接和软件调试上都由优

29、势。只要把要显示的内容放进液晶模块的显示存储器里面就可以直观的显示出指定的内容,操作方便。LCD1602与单片机的连接图,如图4.3所示:图4.3 LCD液晶显示屏与单片机接口硬件连接图其中,单片机的P0.0P0.2引脚与LCD1602的46引脚相连,因为AT89S52单片机的P0口没有上拉电阻,所以在它们中间接一个5.1千欧姆的电阻,它们数据的读写功能。单片机的P2.0P2.8引脚与LCD1602的714引脚相连,进行数据的通讯传输。3.2.3 报警电路设计本系统采用单片机与蜂鸣器相连来显示当前系统所处的状态来报警。如图图4.5所示,其中P3.5口与蜂鸣器相连,在P3.5与蜂鸣器中间接一个5

30、.6K的上拉电阻起到防止电流过大,保护器件的作用。图4.5 报警硬件连接图报警电路说明:当实际温度值超出所设定的报警温度上下限范围后,蜂鸣器开始报警。 3.2.4 串口电路设计本系统中用串口将四点温度发送给上位机,用串口调试助手来接收温度值。4 软件设计整个软件包括温度采集和数据传输两个主要部分组成。其中温度采集又是由单总线协议和注册码组成的,因此,软件设计主要任务是实现1-Wire总线协议。4.1 温度处理子程序设计计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4.1所示4.2按键处理子程序设计按键处理子程序通过扫描按键情况,主要完成温度上下限

31、的查看和对其进行设置,程序流程图如图4.2所示4.3 系统温度阈值设定子程序设计此系统设有报警功能,程序中首先设定了报警的温度上限和下限,即温度低于下限或高于上限温度值,就自动启动报警系统,4.4 温度显示子程序设计读出温度子程序的主要功能是读出RAM中的9字节,在读出是需进行CRC校验,校验有错误时不进行温度数据的改写。其程序流程图如图4.3所示:4.5显示数据刷新程序子程序设计显示数据刷新程序子程序流程图如图4.4所示开始计算小数位温度BCD值计算整数位温度BCD值开始结束温度零下?温度值取补码置“-”标志置“+”标志NY 图4.1 温度处理子程序流程图开始开始K1键是否按下?显示报警上限

32、值K2键是否按下?K3键是否按下?返回设置报警上限图4.2 按键处理子程序流程图开始发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正确?移入温度暂存器结束NYNY图4.3 温度显示子程序流程图开始显示十位数显示个位数显示小数位百位数显示数据(不显示符号)结束NNYY初始化1602液晶写显示地址图4.4 显示数据刷新程序流程图5 实验结果的分析结果显示:1.控制模块及液晶显示模块:2.液晶显示模块上电之后:3.串口发送模块:4.PC界面显示:误差分析:实际温度1路2路3路4路数据122.422.622.821.922.9数据225.625.225.

33、425.926.0数据327.427.027.228.027.8数据来源方法:实际温度计测量。原因分析:DS18B20数据手册精度有限,会产生0.5度左右的误差,单片机运行时间过长发热会造成数据读取产生误差,也有可能来自于本身的制造误差。总 结本文所研究的温度控制系统系统由单片机、数字温度传感器、液晶显示模块、键盘设置模块和报警模块及串口模块组成。该测温系统应用测温传感器DS18B20,通过DS18B20把温度值转换成数字量,把数字量送给单片机,并在液晶显示器上显示出来。通过键盘设置温度报警上下限,可以对系统状态进行监控。通过多个DS18B20并联在一起,可以解决多点温度分布测量问题。该测温系

34、统应用智能温度传感器DS18B20,大大减弱了传统模拟信号在传输过程中衰减、干扰问题的影晌。使测试系统具有更好的可靠性和精度。实现了一 种在非极端条件下(-50125)的温度测量方法。而且在硬件电路的设计上面更加简洁,不需要太多的外围电路,也降低了电路设计的要求。本系统存在着一些不足:一般环境的测量仪器完全可以采用数字式的传感器,DS18B20是一款非常优秀的数字式温度传感器,在测量速度要求不高的情况下,将来可以实现更多点的温度测量。而且系统需要结合机械结构设计,方便多个DS18B20的安装和更换。数字式传感器使用中最大的缺点就是软件复杂,所以需要更加优化通用软件包的代码,提高代码效率和可移植

35、性,这也是我以后需要注意的地方。 参考文献1 沈德金, 陈粤初. MCS-51系列单片机接口电路与应用程序实例北京航空航天大学出版社,19902 胡汉才. 单片机原理及接口技术.清华大学出版社,19963 何立民. MCS-51系列单片机应用系统设计. 北京航空航天大学出版社, 19904 李建民. 单片机在温度控制系统中的应用.江汉大学学报,19965 张毅刚, 彭喜元, 姜守达, 乔立岩. 新编MCS-51系列单片机应用设计. 哈尔滨工业大学出版社, 20036 邵敏权,刘刚.单片机原理实验及应用.吉林科学技术出版社, 19957 陈汝全.实用微机与单片机控制技术.电子科技大学出版社, 1

36、9958 李华. MCS-51系列单片机应用接口技术.北京航空航天大学出版, 19939 周航慈. 单片机应用程序设计.北京航空航天大学出版社, 1991 10 王毅.单片机器件应用手册. 人民邮电出版社,199411 DS18B20 Programmable Resolution 1-Wire Digital Thermometer12 吴秀清, 周菏琴. 微型计算机原理与接口技术. 北京: 中国科学技术大学出版社. 2003: 244-42313 童诗白, 华成英. 模拟电子技术基础. 北京: 高等教育出版社. 2000.3: 71-55414 孙涵芳, 徐爱卿. MCS系列单片机的原理与

37、应用. 北京: 北京航空航天大学出版社, 199015 付家才. 单片机控制工程实践技术. 北京: 化学工业出版社, 2004于海生等. 微型计算机控制技术. 北京: 清华大学出版社, 2005 谢 辞时光飞逝、岁月入流。如果说在过去四年里,我的学习是一个知识的积累过程,那么现在的毕业设计就是对过去所学知识的综合运用,是对理论进行深化和重新认识的一次活动。在为期近一个多月的毕业设计中,我付出了很多,也收获了很多。我的各方面知识得到了巩固和提高,可能在这一个多月的学习当中我学到的知识可能都比四年以来学到的都还要多。通过这次毕业设计,我完成硬件电路的设计、单片机软件编写、焊接电路板等。在这些过程中

38、,遇到了许多困难,但通过查阅书籍、上网以及不断的向老师、同学们请教,我学到了很多以前没有学到的知识。通过此次毕业设计,我不仅对理论有了更深一步的认识,并且增强了自己的动手能力,还培养了自学能力和分析解决问题的能力,更重要的是,培养了克服困难的勇气和信心。在这里,我对这一个月以来一直指导、勉励和督促我的指导老师吕老师以及和帮助过我的同学们表示衷心的感谢,谢谢你们! 总程序#include #include #include #define uchar unsigned char#define uint unsigned intsbit DQ=P33;/ds18b20与单片机连接口sbit RS=

39、P25;sbit RW=P26;sbit EN=P27;sbit BEEP=P34; /定义蜂鸣器uchar code str1=0x28,0x96,0xED,0x4E,0x03,0x00,0x00,0x3A;/ROM 1uchar code str2=0x28,0xD2,0x14,0x4F,0x03,0x00,0x00,0x49;/ROM 2uchar code str3=0x28,0xF8,0xFC,0x4E,0x03,0x00,0x00,0x5B;/ROM 3 uchar code table8=0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00;/ 摄氏温度

40、符号uchar data disdata5;uint tvalue;/温度值uchar qq;bit beep_st; /蜂鸣器间隔标志uchar x=0; /计数器/*lcd1602程序*/void delay1ms(uint ms)/延时1毫秒(不够精确的) uint i,j; for(i=0;ims;i+) for(j=0;j100;j+);void InitTimer(void)TMOD=0x1;TH0=0x4c;TL0=0x00; /50ms(晶振11.0592M)EA=1; /全局中断开关TR0=1;ET0=1; /开启定时器0/*定时器0中断服务程序*/void timer0(v

41、oid) interrupt 1TH0=0x4c;TL0=0x00;x+;unsigned char rolmove(unsigned char m) unsigned char a,b,c,d,e,f,g,h; a=(m&0x01)7;b=(m&0x02)5;c=(m&0x04)3; d=(m&0x08)1;f=(m&0x20)3;g=(m&0x40)5;h=(m&0x80)7;m=a|b|c|d|e|f|g|h; return m; void wr_com(uchar com)/写指令/ /串口程序 delay1ms(1); RS=0; RW=0; EN=0; P0=rolmove(com

42、); delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_dat(uchar dat)/写数据/ delay1ms(1); RS=1; RW=0; EN=0; P0=rolmove(dat); delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_new() /写新字符uchar i;wr_com(0x40);for(i=0;i8;i+)wr_dat(tablei);void lcd_init()/初始化设置/delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);wr_new();wr_com(0x80); wr_dat(1);/Awr_com(0x81); wr_dat(:);/: wr_com(0x86); wr_dat(C); wr_com(0x89); wr_dat(2);wr_com(0x8a); wr_dat(:); wr_com(0x8f); wr_dat(C); wr_com(0xc0); wr_dat(3);

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号