




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机 课程设计 说 明 书 专业名称 电气工程及其自动化 班 级 093 学 号 20090202101 姓 名 张淑冠 指导教师 姚广芹 日期 2011 年 7 月 8 日 单片机 课程设计评阅书 题目数字温度计 学生姓名张淑冠学号20090202101 指导教师评语及成绩 指导教师签名 年 月 日 答辩评语及成绩 答辩教师签名 年 月 日 教研室意见 总成绩 室主任签名 年 月 日 摘摘 要要 随着人们生活水平的不断提高 单片机控制无疑是人们追求的目标之一 它 所给人带来的方便也是不可否定的 其中数字温度计就是一个典型的例子 但 人们对它的要求越来越高 要为现代人工作 科研 生活 提供更好的更方便 的设施就需要从数单片机技术入手 一切向着数字化控制 智能化控制方向发 展 本设计是基于 AT89S52 单片机的温度测量系统 通过对单片机技术基础及 温度传感器使用方法的学习 本组利用 Protel 设计工作电路 并用 PROTUES 进 行仿真后 焊接电路 这次课程设计综合利用所学单片机知识完成了一个单片 机应用系统设计并仿真 焊接电路实现功能 从而加深对单片机软硬知识的深 层次理解 获得初步的应用经验 为走出校门从事单片机应用的相关工作打下 了一定的基础 关键词关键词 单片机 AT89S52 温度计 数字控制 目目 录录 1 1 课题描述课题描述 1 2 2 设计过程设计过程 2 2 1 数字温度计系统设计方框图 2 2 2 单片机所实现功能说明 2 2 3 电路板各部分电路图及其原理 2 3 3 测试测试 5 总结总结 6 参考文献参考文献 7 附录附录 1 1 8 附录附录 2 2 9 1 1 1 课题描述课题描述 本设计所介绍的数字温度计与传统的温度计相比 具有读数方便 测温范 围广 测温准确 其输出温度采用数字显示 主要用于对测温比较准确的场所 或科研实验室使用 该设计控制器使用单片机 AT89S52 测温传感器使用 DS18B20 用 4 位共阳极 LED 数码管以串口传送数据 实现温度显示 能准确达到 以上要求 开发工具 protel 2 2 2 设计过程设计过程 由于本设计是测温电路 进而考虑到用温度传感器 在单片机电路设计中 大多都是使用传感器 所以这是非常容易想到的 所以可以采用一只温度传感 器 DS18B20 此传感器 可以很容易直接读取被测温度值 进行转换 就可以 满足设计要求 2 1 数字温度计系统设计方框图 报警提示电路 上下限设置 时钟电路 复位电路 温度测量 温度显示 单 片 机 电 源 图 2 1 系统设计方框图 2 2 单片机所实现功能说明 本次实训所设计的为数字温度计 能实现对温度的测试 所测温度由数码 管以整数的形式显示 同时可调所测温度的上下限 如果超出所测温度的限制 能够发出报警 报警信号由 LED 灯和蜂鸣器同时发出 性能指标基本要求 1 能够显示当前室内温度 分辨率为 1 摄氏度 2 具有超限声光报警功能 能够通过按键设定报警温度的上限和下限 控制器采用单片机 AT89S52 温度传感器采用 DS18B20 用数码管显示器实 现温度显示 2 3 电路板各部分电路图及其原理 3 一 单片机 AT89S52 图 2 3 1 单片机 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造 与工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程 亦适于常规编程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使 AT89S52 为众多嵌入式控制应用系统提供高灵活 超有效的解决方案 二 晶振和复位装置 图 2 3 2a 晶振 图 2 3 2b 复位电路 1 晶体振荡器 能产生振荡 其特点是固有频率十分稳定 而且震动具 4 有多谐性 除了奇频震动外还有奇次谐波泛音震动 性能上 晶振的品质因素 Q 和特性阻抗都非常高 而且接入系数很小 因此具有很高的频率稳定度 2 复位电路 与单片机第 9 引脚 也就是 RST 引脚相连 起复位作用 高电平有效 三 温度传感器 DS18B20 图 2 3 3 温度传感器 DS18B20 在使用中不需要任何外围元件 全部传感元件及转换电路集成在 形如一只三极管的集成电路内 温范围 55 125 有三个引脚 其中 1 引脚接高电平 第 3 引脚接地 第 2 引脚接单片机的 16 引脚 即 P3 6 口以送 入温度信号 四 报警电路 LED 灯和蜂鸣器 图 2 3 4aLED 灯 图 2 3 4b 蜂鸣器 此次所设计的数字温度计可以设置上下限 当超出上下限后能够报警 报 警信号又 LED 灯和蜂鸣器同时发出 其中 LED 灯要有一个上拉电阻和高电平相 连 LED 报警信号由单片机的 P1 0 口送出 蜂鸣器采用无源连接 报警信号由 单片机的 P3 7 引脚送出 五 按键 按键实现对温度计所测温度的上下限进行节 5 图 2 3 5 按键 3 3 测试测试 将制作好的数字温度计用 USB 线与电脑连接 把编的程序写入单片机中 测试温度计显示数据是否正确 调节环境温度 利用温度计 事先准备一个 确定环境温度 观察数码管所显示的数据 并与温度计示数对比 调节温度使 温度达到声光报警温度 测试声光报警是否正常 6 总总 结结 课程设计的过程是艰辛的 但是收获却是很大的 这次课程设计我主要是 应用以前学习的编程以及单片机的一些知识 综合起来才完成了这个温度计的 设计 虽然所设计器件很小 但是付出却是艰辛的 首先 综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认 识 对已有知识有了更进一步的理解和认识 再次 我在课程设计中碰到了很 多的问题 我通过查阅相关书籍 资料 通过自己钻研 特别是得到了姚老师 的谆谆教导 姚老师给予了我很大的帮助 不仅给了我思路上的开阔 还让我 认识到了自己对以前所学知识的不足方面 随着社会发展 单片机技术的迅速普及 以及飞速发展 人们对实时数字 的要求越来越迫切 需求日益增加 单片机的应用无处不在 从小小的电子表 到大型的计算机都离不开单片机 因此我们更需要学习单片机工作原理的及其 编程 通过这次课程设计 我也发现了自身的很多不足之处 在以后的学习中 我会不断的完善自我 不断进取 能使自己在单片机运用这方面有一个大的发 展 7 参考文献参考文献 1 张毅刚 彭喜元 彭宇 单片机原理及其应用 高等教育出版社 2 王守忠 赵明明 索世文 51 单片机应用开发速查手册 人民邮电出版 社 3 谢自美 电子线路综合设计 华中科技大学出版 社 4 夏继强 单片机应用设计培训教程 实践篇 北京航空航天大学出版 社 5 李广弟 朱月秀 王秀山 单片机基础 北京航空航天大学出版 社 6 王毅 单片机器件应用手册 人民邮电出版 社 8 附录附录 1 1 总电路图 9 附录附录 2 2 程序程序 程序功能 基于四眼兔子单片机学习板程序功能 基于四眼兔子单片机学习板 的温度计的温度计 数码管显示温度 十位与个位数码管显示温度 十位与个位 时间 时间 2010 3 142010 3 14 include include include include define define ucharuchar unsignedunsigned charchar define define uintuint unsignedunsigned intint bitbit presence presence bitbit flow0 flow0 sbitsbit led P1 0 led P1 0 sbitsbit DQ P3 6 DQ P3 6 定义温度传感器定义温度传感器 sbitsbit led1 P2 0 led1 P2 0 sbitsbit led2 P2 1 led2 P2 1 sbitsbit led3 P2 2 led3 P2 2 sbitsbit led4 P2 3 led4 P2 3 sbitsbit key1 P3 2 key1 P3 2 sbitsbit key2 P3 3 key2 P3 3 sbitsbit key3 P3 4 key3 P3 4 sbitsbit key4 P3 5 key4 P3 5 floatfloat i 0 i 0 intint datt 0 datt 0 intint aa 0 aa 0 intint bb 0 bb 0 intint cc 0 cc 0 10 intint dd 0 dd 0 intint wendu 30 wendu 30 intint wenduxia 25 wenduxia 25 ucharuchar ge shi bai xiao xiao1 ge shi bai xiao xiao1 sbitsbit BEEP P3 7 BEEP P3 7 unsignedunsigned charchar codecode tab tab 0 xC0 0 xC0 0 xF9 0 xF9 0 xA4 0 xA4 0 xB0 0 xB0 0 x99 0 x99 0 x92 0 x92 0 x82 0 x82 0 xF8 0 xF8 0 x80 0 x80 0 x900 x90 unsignedunsigned charchar init init 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x000 x00 unsignedunsigned charchar init1 init1 0 x12 0 x12 0 x12 0 x12 0 x12 0 x12 0 x12 0 x12 0 x12 0 x12 0 x12 0 x330 x12 0 x33 voidvoid delayms uchardelayms uchar xms xms while xms while xms ucharuchar time time for time 114 time 0 time for time 114 time 0 time voidvoid display void display void P0 tab shi P0 tab shi led4 0 led4 0 delayms 1 delayms 1 P2 0 xff P2 0 xff 11 P0 tab ge P0 tab ge led3 0 led3 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 0 xc6 P0 0 xc6 led1 0 led1 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 0 x9c P0 0 x9c led2 0 led2 0 delayms 1 delayms 1 P2 0 xff P2 0 xff 延时微妙函数延时微妙函数 voidvoid delayus unsigneddelayus unsigned charchar x x unsignedunsigned charchar i i whilewhile x x forfor i i 0 0 i i 0 0 j j delayms 1 delayms 1 BEEPBEEP BEEP BEEP 12 BEEPBEEP 1 1 usus 延时函数延时函数 8 1 085 num 8 1 085 num voidvoid Delay unsignedDelay unsigned intint num num 延时函数延时函数 whilewhile num num voidvoid xianshi xianshi int int q q charchar z z for z 5 z 0 z for z 5 z 0 z for q 20 q 0 q for q 20 q 0 q P0 tab aa P0 tab aa led4 0 led4 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 tab bb P0 tab bb led3 0 led3 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 tab cc P0 tab cc led2 0 led2 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 tab dd P0 tab dd led1 0 led1 0 13 delayms 1 delayms 1 P2 0 xff P2 0 xff voidvoid xianshi1 xianshi1 aa 0 aa 0 bb 0 bb 0 cc wenduxia 10 cc wenduxia 10 dd wenduxia 10 dd wenduxia 10 P0 tab aa P0 tab aa led4 0 led4 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 tab bb P0 tab bb led3 0 led3 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 tab cc P0 tab cc led2 0 led2 0 delayms 1 delayms 1 P2 0 xff P2 0 xff P0 tab dd P0 tab dd led1 0 led1 0 delayms 1 delayms 1 P2 0 xff P2 0 xff voidvoid shengwen shengwen if key1 0 if key1 0 14 delayms 100 delayms 100 if key1 0 if key1 0 wendu wendu aa wendu 10 aa wendu 10 bb wendu 10 bb wendu 10 cc 0 cc 0 dd 0 dd 0 xianshi xianshi delayms 150 delayms 150 voidvoid jiangwen jiangwen if key2 0 if key2 0 delayms 100 delayms 100 if key2 0 if key2 0 wendu wendu aa wendu 10 aa wendu 10 bb wendu 10 bb wendu 10 cc 0 cc 0 dd 0 dd 0 xianshi xianshi delayms 150 delayms 150 voidvoid xianshixianzhi xianshixianzhi if key3 0 if key3 0 delayms 100 delayms 100 15 if key3 0 if key3 0 aa wendu 10 aa wendu 10 bb wendu 10 bb wendu 10 cc wenduxia 10 cc wenduxia 10 dd wenduxia 10 dd wenduxia 10 xianshi xianshi delayms 150 delayms 150 初始化初始化 18b2018b20 ucharuchar ds18b20 init void ds18b20 init void DQDQ 0 0 单片机发出低电平复位信号单片机发出低电平复位信号 Delay 60 Delay 60 延时延时 480us 480us DQDQ 1 1 释放数据线释放数据线 Delay 8 Delay 8 延时延时 64us 64us 等待应答等待应答 presencepresence DQ DQ 接收应答信号接收应答信号 Delay 50 Delay 50 延时延时 400us 400us 等待数据线出现高电平等待数据线出现高电平 DQDQ 1 1 释放数据线释放数据线 returnreturn presence presence 返回返回 presencepresence 信号信号 读一个字节数据读一个字节数据 unsignedunsigned charchar ReadOneChar void ReadOneChar void 16 unsignedunsigned charchar i i 0 0 unsignedunsigned charchar datdat 0 0 DQDQ 1 1 forfor i i 0 0 i i 1 1 DQDQ 1 1 释放总线释放总线 nop nop nop nop ifif DQ DQ 读总线电平状态读总线电平状态 datdat 0 x80 0 x80 最高位置最高位置 1 1 Delay 6 Delay 6 延时延时 45us 45us DQDQ 1 1 释放总线释放总线 表示此次读操作完成表示此次读操作完成 return dat return dat 写一个字节数据写一个字节数据 voidvoid WriteOneChar unsignedWriteOneChar unsigned charchar dat dat unsignedunsigned charchar i i 0 0 forfor i i 0 0 i i 8 8 i i 一个字节一个字节 8 8 个个 bitbit DQDQ 0 0 给低脉冲信号给低脉冲信号 Delay 1 Delay 1 延时延时 15us 1 1 数据右移一位数据右移一位 最低位移入最低位移入 CYCY DQDQ CY CY 写写 1bit1bit 数据数据 Delay 6 Delay 6 延时延时 45us 45us DQDQ 1 1 释放总线释放总线 表示此次写操作完成表示此次写操作完成 读温度函数读温度函数 voidvoid read temp void read temp void uintuint d 1 d 1 ucharuchar temp1 0 temp1 0 ucharuchar temp2 0 temp2 0 uintuint t 0 t 0 floatfloat tt tt uintuint zong 0 zong 0 ds18b20 init ds18b20 init WriteOneChar 0 xcc WriteOneChar 0 xcc 跳过跳过 ROMROM 匹配匹配 WriteOneChar 0 x44 WriteOneChar 0 x44 启动温度转换启动温度转换 ds18b20 init ds18b20 init WriteOneChar 0 xcc WriteOneChar 0 xcc 跳过跳过 ROMROM 匹配匹配 WriteOneChar 0 xbe WriteOneChar 0 xbe 读温度寄存器读温度寄存器 temp1 ReadOneChar temp1 ReadOneChar 温度低温度低 8 8 位位 temp2 ReadOneChar temp2 ReadOneChar 温度高温度高 8 8 位位 if temp2 112 if temp2 112 判断温度正负 负温度时执行大括号内程序判断温度正负 负温度时执行大括号内程序 temp1 temp1 1 temp1 temp1 1 if temp1 1 0 xff if temp1 1 0 xff 18 temp2 temp2 1 temp2 temp2 1 elseelse temp2 temp2 temp2 temp2 flow0 1 flow0 1 温度是零下温度是零下 elseelse 温度值为零上温度值为零上 flow0 0 flow0 0 t temp2 t temp2 t 8 t 5 if xiao1 5 四舍五入计算小数点后一位四舍五入计算小数点后一位 xiao xiao zong bai 100 shi 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 细化学习西医临床考试试题及答案
- 动脉血管系统试题及答案
- 确定范围2025年健康管理师考试试题及答案
- 考查花艺师的市场应变能力试题及答案
- 医学基础知识复习内容题及答案
- 激光行业未来发展趋势考题试题及答案
- 信息系统项目管理师考试强化训练计划试题及答案
- 激光技术在生物医学中的应用试题及答案
- 激光技能考核方法试题及答案
- 激光技术工程师资格标准试题及答案
- 搅拌站场地租赁合同
- 2022-2023学年浙江省杭州市余杭区小学三年级下册语文期中试题及答案
- 医用耗材服务方案
- 电动汽车高压系统基本原理与维修单选题100道及答案解析
- GB/T 9755-2024合成树脂乳液墙面涂料
- 语音厅合同范例
- 《成分输血指南》课件
- 【MOOC】新科学家英语:演讲与写作-哈尔滨工业大学 中国大学慕课MOOC答案
- 第一届山东省职业能力大赛济南市选拔赛制造团队挑战赛项目技术工作文件(含样题)
- 高中历史选择性必修第3册试卷
- 老干工作业务培训
评论
0/150
提交评论