课程设计--基于AT89C51的单片机可调温度报警器设计.doc
《课程设计--基于AT89C51的单片机可调温度报警器设计.doc》由会员分享,可在线阅读,更多相关《课程设计--基于AT89C51的单片机可调温度报警器设计.doc(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计-基于AT89C51的单片机可调温度报警器设计 摘 要 在现代化的工业生产中,需要对周围环境的温度进行检测和控制。本小组针对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过液晶显示的系统。该系统使用89C51单片机,同时运用单线数字温度传感器DS18B20,LCD1602显示模块等模块可实现温度的检测。课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。该作品使用液晶显示,可以清晰地显示当前的报警温度,使使用者使用时不会出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,使用性很高。关键字:温度报警器 温度上下限 AT89C51单片机 液晶LCD160
2、2 温度传感器DS18B20目 录一 课程设计任务21.1功能说明2二 整体设计方案22.1设计思路22.2整体框图22.3模块功能说明2三 硬件电路设计23.1各模块设计2的选择2的选择2选择23.2各模块分析289C51管脚图2 DS18B20引脚及管脚功能介绍2 LCD1602液晶显示介绍2四 控制软件设计及电路图24.1单片机模块电路图及分析24.2液晶显示模块电路图及分析24.3温度传感器模块电路图及分析2五 系统调试及遇到的问题2六 个人小结26.1组长 26.2 组员126.3组员22七 参考文献2八 附录28.1附录128.2附录228.3附录32一 课程设计任务1完成温度进行
3、测量,理论测量范围-55C+125C;2.将温度测量值通过LCD液晶显示模块显示;3.可以通过按键进行对上下限报警温度,自行设定并实现功能;二 整体设计方案根据功能要求,必须有单片机控制模块,LCD1602显示模块以及DS18B20的温度传感模块。各个模块都有其自己的功能。上电后,通过DS18B20可以检测到温度,并在显示器上显示。采用DS18B20的数字温度计结构框图 图1 温度报警器总电路图本系统共分为三块模块。单片机模块,这部分主要实现数据的处理,输出执行,报警设置功能显示模块可以分别显示实时温度值,温度上下限。温度传感模块的主要功能是通过DS18B20的强大功能实现对温度的采集及发送到
4、计算机。三 硬件电路设计 18B20简介DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。该装置信号线高的时候,内部电容器 储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。 DS18B20的电源也可以从外部3V-5 .5V的电压得到。 DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。这些指令操作作用在没有
5、一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。 若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有
6、数据的读,写都是从最低位开始。 89C51简介 89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。 LCD1602液晶简介采用LCD1602液晶显示模块,有体积小、功耗低、显示内容丰富、超薄轻巧等
7、优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。它可以显示两行,每行16个字符,采用单5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。89C51管脚图注:引脚说明:电源引脚Vcc(40脚):典型值5V。Vss(20脚):接低电平。外部晶振X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地。输入输出口引脚:P0口:I/O双向口。作输入口时,应先软件置“ 1”。P1口:I/O双向口。作输入口时,应先软件置“ 1”。P2口:I/O双向口。作输入口时,应先软件置“ 1”。P3口:I/O双向口。
8、作输入口时,应先软件置“ 1”。控制引脚:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST/Vpd(9脚):复位信号输入端(高电平有效)。第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。ALE/-PROG 30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp 31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。 DS18B20引脚及管脚功能介绍注DQ:数字信号输入输出端。GND:电源地端。VDD:外接供电电源输入端 在寄生电源接线时此脚应接地 。 L
9、CD1602液晶显示介绍管脚功能1602采用标准的16脚接口第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器 第5脚:RW为读写信号线,高电平 1 时进行读操作,低电平 0 时进行写操作第6脚:E 或EN 端为使能 enable 端 第714脚:D0D7为8位双向数据端 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极 图3 单片机接线图P1接液晶数据口,P0接3个二极管,P2接8个按钮,P3.3接蜂鸣器,P3.4接液晶的RS
10、,P3.5接液晶的R/W,P3.6接液晶的EN,P3.7接温度传感器,其他按单片机最小系统连接。4.2液晶显示模块电路图及分析 图3 液晶接线图液晶显示模块的子程序:/*lcd1602程序*/ void delay1ms unsigned int ms /延时1毫秒(不够精确的) unsigned int i,j; for i 0;i ms;i+ for j 0;j 100;j+ ; void wr_com unsigned char com /写指令/ delay1ms 1 ; RS 0; RW 0; EN 0; P1 com; delay1ms 1 ; EN 1; delay1ms 1 ;
11、 EN 0; void wr_dat unsigned char dat /写数据/ delay1ms 1 ; RS 1; RW 0; EN 0; P1 dat; delay1ms 1 ; EN 1; delay1ms 1 ; EN 0; void lcd_init /初始化设置/ delay1ms 15 ; wr_com 0x38 ;delay1ms 5 ; wr_com 0x08 ;delay1ms 5 ; wr_com 0x0e ;delay1ms 5 ; wr_com 0x06 ;delay1ms 5 ; wr_com 0x01 ;delay1ms 5 ; void display u
12、nsigned char *p /显示/ while *p! 0 wr_dat *p ;p+;delay1ms 1 ; 图4温度传感器接线图温度传感器读取温度以及显示温度的子程序:/*ds1820程序*/ void delay_18B20 unsigned int i /延时1微秒 while i- ; void ds1820rst /*ds1820复位*/ unsigned char x 0; DQ 1; /DQ复位 delay_18B20 4 ; /延时 DQ 0; /DQ拉低 delay_18B20 100 ; /精确延时大于480us DQ 1; /拉高 delay_18B20 40
13、; uchar ds1820rd /*读数据*/ unsigned char i 0; unsigned char dat 0; for i 8;i 0;i- DQ 0; /给脉冲信号 dat 1; DQ 1; /给脉冲信号 if DQ dat| 0x80; delay_18B20 10 ; return dat ; void ds1820wr uchar wdata /*写数据*/ unsigned char i 0; for i 8; i 0; i- DQ 0; DQ wdata&0x01; delay_18B20 10 ; DQ 1; wdata 1; read_temp /*读取温度值
14、并转换*/ uchar a,b; ds1820rst ; ds1820wr 0xcc ;/*跳过读序列号*/ ds1820wr 0x44 ;/*启动温度转换*/ ds1820rst ; ds1820wr 0xcc ;/*跳过读序列号*/ ds1820wr 0xbe ;/*读取温度*/ a ds1820rd ; b ds1820rd ; tvalue b; tvalue 8; tvalue tvalue|a; if tvalue 0x0fff tflag 0; else tvalue tvalue+1; tflag 1; tvalue tvalue* 0.625 ;/温度值扩大10倍,精确到1位
15、小数return tvalue ; /*/ void ds1820disp /温度值显示 uchar flagdat; disdata0 tvalue/1000+0x30;/百位数 disdata1 tvalue%1000/100+0x30;/十位数 disdata2 tvalue%100/10+0x30;/个位数 disdata3 tvalue%10+0x30;/小数位 if tflag 0 flagdat 0x20;/正温度不显示符号 else flagdat 0x2d;/负温度显示负号:- if disdata0 0x30 disdata0 0x20;/如果百位为0,不显示 if dis
16、data1 0x30 disdata1 0x20;/如果百位为0,十位为0也不显示 wr_com 0x89 ;wr_dat flagdat ;/显示符号位 wr_com 0x8a ; wr_dat disdata0 ;/显示百位 wr_com 0x8b ; wr_dat disdata1 ;/显示十位 wr_com 0x8c ; wr_dat disdata2 ;/显示个位 wr_com 0x8d ; wr_dat 0x2e ;/显示小数点 wr_com 0x8e ; wr_dat disdata3 ;/显示小数位 五 系统调试及遇到的问题开始我们只是做温度报警,因为温度传感器选择的是数字式温
17、度传感器,老师觉得过于简单,所以帮我们也想了很多其他功能。开机复位欢迎词的移动显示 unsigned char code str3 Welcome! ; unsigned char code str4 ; init_play /初始化显示 wr_com 0x80+0x10 ; /屏幕外等待 display str3 ; wr_com 0xc0+0x10 ; display str4 ; for num 0;num 16;num+ /屏幕左移 wr_com 0x18 ; delay1ms 200 ; 得到键盘值uchar GetKey /读取键值 uchar K; if P2 0xff retu
18、rn 0; /检查是否有键按下 delay1ms 10 ; switch P2 case 0xfe: K 1;break; case 0xfd: K 2;break; case 0xfb: K 3;break; case 0xf7: K 4;break; case 0xef: K 5;break; case 0xdf: K 6;break; case 0xbf: K 7;break; case 0x7f: K 8;break; default: K 0; while P2! 0xff ; Beep ; return K; 键盘值处理 void KeyProcess uchar Key /键盘处
19、理 uchar t 0; switch Key case 1:if h1 h2 & l h1 h1-; delay1ms 10 ;break;case 2:if h1 h2 & l h1 h1+;delay1ms 10 ;break; case 3:if h1 h2 & l h1 h2-;delay1ms 10 ;break; case 4:if h1 h2 & l h1 h2+;delay1ms 10 ;break;case 5:if h1 h2 & l h1 l-;delay1ms 10 ;break;case 6:if h1 h2 & l h1 l+;delay1ms 10 ;break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 基于 AT89C51 单片机 可调 温度 报警器 设计
限制150内