基于51单片机温度检测LCD显示课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连民族学院
单片机系统课程设计
题目:温度计的设计班级:电子105
姓名:赵萌同组人:张瑛笛指导教
师:李绍民设计日期:
一设计内容及要求设计内容:基于单片机的室内温度检测LCD 显示要求:测量温度55℃—125℃
温度上下限TH:32℃ TL:16℃ 温度报警:超出温度上下限BEEP 报警二设计方案
测温部分:采用18B20 作为温度传感器,有一个由高低电平触发的且不因掉电而丢失的报警功能。
控制部分:89S52 最小系统
图形,先是方便,同时好可以进行时间的显示
硬件系统设
计
AT89S52 是一个低功耗,高性能 CMOS 8
位单片机,片内含 8k Bytes ISP(In-
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 个全双工串行通信口,看
门狗( WDT )电路,片内时钟振荡器。
电
源时钟
晶振原理
图
I/O 接
口
外围电路工作原理及硬
件图
四软件系统设计
软件流程框图
系统设计原理:本次课程设计是基于单片机的数字温度计设计,在开始课程设计的时
候我们要理解并掌握对单片机的开发,学会使用KEIL
及Proteus等仿真软件。根据设计任务要求选择好器
件,编写好程序运行成功之后进行软件联
调,验证系统是否正确。通过筛选,我们
组选用单片机AT89S52 作为主控制系统;
用1602 液晶显示模块芯片作为温度数据显
示装置;智能温度传感器采用DS18B20 器
件作为测温电路主要组成部分。
五仿真调试
(1)Keil C51 单片机软件开发系统的整体结构
C51 工具包的整体结构,uVision 与Ishell 分别是C51 for Windows 和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51 编译器编译生成目标文件(.OBJ)。目标文件可由LIB51 创建生成库文件,也可以与库文件一起经L51 连接定位生成绝对目标文件(.ABS)。ABS 文件由OH51 转换成标准的Hex 文件,以供调试器dScope51 或tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM 中。
(2)使用独立的Keil 仿真器时,注意事项
仿真器标配11.0592MHz 的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
仿真器上的复位按钮只复位仿真芯片,不复位目标系统。仿真芯片的31 脚(/EA )已接至高电平,所以仿真时只能使用片内ROM ,不能使用片外ROM;但仿真器外引插针中的31 脚并不与仿真芯片的31 脚相连,故该仿真器仍可插入到扩展有外部ROM (其CPU的/EA 引脚接至低电平)的目标系统中使用。
调试结果
3)结果分析
在运行仿真结果时通过改变温度传感器DS18B20 的温度,然后调用各种子函数,可以改变液晶显示1602 的第二行显示数据,说明程序编写正确。
4)系统设计电路的特点和方案的优缺点我们组设计的数字温度计系统知识运用简单的AT89S52 芯片的I/O 口传输功能,通过几个小的读数据、传递数据、延时子函数实现温度的读取传输功能,是比较简单,容易实现的,所以我们的系统只
是实现了一些简单的功能,系统整体来说比较简易,但好像这个温度计没有多大的应用价值,所以我们后续分析觉得这个系统可以加一个温度复位系统提高AT89S52芯片的功能价值,也提高数字温度计的智能价值,还可以增加一个报警子函数,实现智能数字温度计更高的应用价值。
六结论
虽然基本功能已经做好了,但还可以有很多的扩展功能,如串口设计和时钟显示,
由于时间有限,但对于单片机的设计还在继续⋯
参考文献
附录一
程序代码:
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit DQ = P2^2; // 定义DS18B20端口DQ
sbit BEEP=P2^3 ; // 蜂鸣器驱动线
bit presence,flag;
bit compare_th,compare_tl,alarm_on_off=0,temp_th,temp_tl;
sbit LCD_RS = P3^5;
sbit LCD_RW = P3^6;
sbit LCD_EN = P3^4;