基于at89c51单片机、lcd显示、3点ds18b20温度控制器设计学士学位论文内容摘要:
样,搭建电路图才会事半功倍。 元器件的选择要适合电路的需要,因而参数指标也要事先计算好。 Keil 是一款单片 机程序编辑软件,能将 C 语言和汇编语言进行编译、连接,生成单片机运行文件。 而在 proteus和 keil 结合仿真中, proteus 软件主要是运行 keil 中生成的 .hex 文件。 特别要注意的是在 keil软件中生成 .hex 文件必须在设置中选择 晶振和执行生成 .hex 文件这两个选项。 生成好的 .hex文件可通过双击 proteus中单片机后把 .hex文件根目录加载到单片机中即可运行。 在本次设计中,可调节任意一个 DS18B20 的读数和观察 LCD1602 显示的读数来验证程序的正确与否。 按键功能是通过中断方式来设置的 ,其优点是随时可以设置报警温度的上、下限值,退出中断后又立即可以进行温度的测、显和报警功能。 11 图 温控模块仿真图 A 点 B 点 C 点 12 第五章 硬件制作和结论 实物结果图片 图 实物图是指针式万用表测量稳压直流电源,万用表档位调到直流 10V 档,测出读数为 9V。 指示灯点亮。 说明直流稳压电源工作正常,并达到设计要求的标准。 图 稳压电源 图 所示为温控系 统的实物图片,温控系统的所有子电路模块都焊接在同一块电路板上。 图 温控系统实物图 图 所示为电路板的焊接实物图,布线要尽量使实物外观完美,也要减少跳线的使用量。 在本次设计中,由于事先画好布线草图,所以在跳线的使用上只用了 2 根。 读数为: 9V 继电器 蜂鸣器 AT89C51 LCD1602 插槽 DS18B20 13 图 电路板焊接及走线图 图 是在通电后,液晶显示器正确显示 A、 B、 C 三点的温度值。 此时,测得常温 A点的值为 ℃ , B 点值为 ℃ , C 点的值为 ℃。 图 正确显示温度值 14 硬件的测试与检修 硬件调试: 第一步:对单片机烧录可执行文件,这一步要先学会烧录软件和烧录器的使用。 第二步:检查焊接是否有虚焊、短路、断路,无误后上电测工作电压是否正常。 电压正常则可断电插入单片机和显示屏。 第三步:上电,检测各个功能是否达到设计要求。 硬件检修: 硬件检修是针对调试中出现的问题进行查找、修理、改进。 下面是几种常见的故障和修理的办法: ( 1)稳压电源没有电压输出,指示灯不 亮。 一般是稳压芯片 7809 的引脚接错了,分清引脚功能,正确接入即可。 ( 2) LCD1602 显示器不亮,可查看插槽和排针的顺序是否一致,且查看是否有接触不良,也可以调节控制背光电源的变阻器。 ( 3)单片机不能读取 DS18B20,或者不能不能正确读取 DS18B20 的读数,可先查看DS18B20 的引脚是否接错,引脚焊接无误的话可查看程序和仿真是否正确。 总结描述 基于单片机 AT89C51 设计的数字式多点温度控制系统具有温度采集、显示、简单的设置及控 制报警功能。 给它提供稳定的工作电压是保证其工作正常的重要前 提,因此,设计中包含了稳压直流电源的设计要求。 稳压直流电源制作是通过降压、整流、滤波、稳压实现的。 在实际作品中稳压电源工作稳定,完全符合设计要求。 设计的温度控制器测温范围宽为 55~ +125℃ ,作品中使用到的 DS18B20 测量精度可通过编程调节,精度范围为 ~ ℃。 在本设计中采用的是默认分辨率,即 12 位二进制表示一个数值,精度是 ℃。 温度显示器使用 LCD1602,它能显示 16*2 个字符,所以它可以实时的显示单片机从 DS18B20 中采集的温度数值,把三点的温度同时显示在同一块液晶显 示器中。 本设计中还添加了按键设置功能,通过按键的设置功能可以对报警温度进行设置,如果 A、 B、 C 三点的温度有任意一个温度低于或者高于设置好的范围就会触发报警功能和继电器控制功能,在程序中,报警功能和控制功能是通过将读取的温度值与设定好的 p、 q 两个参数的值进行比较后经过单片机的判断而做出的响应。 总结整个设计过程,从选题到硬件的完成,我的收获颇丰。 首先,我在确定题目后查找和阅读了很多相关的理论知识,尤其是对 DS18B20 这个器件做了很多的了解,也重新温习了一遍单片机应用知识和 C 语言的应用知识。 其次,刚开始我对于 proteus 的使用不了解,然后我通过观看、模仿网络上的 proteus 的教学视频,初步掌握了这个软件的基本使用方法和技巧。 在结合 keil 编程软件的仿真中,进一步加强了对硬件的了解。 最后,完成硬件作品也是很关键的步骤,再多的理论知识也只有通过其产生的实物应用才能体现它的价值。 因而制作出完美的实物作品是必不可少的。 经过自己的努力和细心,通过焊接、调试、检修我制作出了硬件作品,验证了自己在本次设计中学习到的知识和设计的正确性。 15 参考文献( References) [ 1] 郭天祥 .新概念 51 单片机 C 语言教程 .北京:电子工业出版社 ,2020. [ 2] 李建忠 .单片机原理与应用 .西安:西安电子科技大学出版社 ,2020. [ 3] 房小翠,王金凤 . 单片微型计算机与机电接口技术 .北京 :国防工业出版社 ,2020 [ 4] 李珍 . 单片机原理与控制技术 . 北京:清华大学出版社 ,2020 [ 5] 阎实 . 数字电子技术基础 .北京:高等教育出版社 ,1983. [ 6] 谭浩强 . C 语言程序设计 (第三版 ).北京 :清华大学出版社 ,2020. [ 7] 陈杰 ,黄鸿 .传感器监测与技术 .北京 :高等教育出版社 ,2020. [ 8] 张红润 ,张亚凡 ,邓洪 .传感器原理与应用 .北京 :清华大学出版社 ,2020. [ 9] 童师白 ,华成英 .模拟电子技术基础 .北京 :高等教育出版社 ,1980. [ 10] 朱清慧 ,张凤蕊 .proteus 教程 .北京 :清华大学出版社 ,2020. 16 致 谢 经过将近六个月,终于将毕业设计完成了,在设计过程中遇到了无数的困惑,都在同学和老师的帮助下找到了解决办法,尤其要强烈感谢我的毕业设计指导老师张福阳老师,他对我进行了无私的指导和帮助,不厌其烦的对我的设计提出建议和帮助我进行论文的修改。 另外在校工程训练实验室仿真和制作硬件的时候,实验室管理老师也给我提供很多器件资料和硬件制作方面的帮助,在此向这位实验室管理老师表示最衷心的感谢,同时也感谢这次毕业设计所涉及到的参考文献的各位学者和作者,本设计参考了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本次设计和论文的写作。 更要感谢我的几个室友,在我程序设计中给予我很多建议和帮助,在生活坏境上给我营造了一个良好的学习、设计的氛围。 由于我的学术水平和设计水平有限,因而在作品和论文上有很多不足之处,恳请各位老师和同学批评和指正 ,四年的大学生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始,四年来的求学生涯,在师长、亲友的大力支持下,走得辛苦却也收获颇丰,在毕业设计和论文即将付梓之际,思绪万千,心情久久不能平静,可是我更急切地要把我的敬意和赞美献给每一位教过我的老师,尤其是指导老师,虽然我不是您最出色的学生,但我保证我今后肯定是您最为之骄傲的学生。 在跟您相处的日子中,您严谨的治学,渊博的学识,深邃的思想,雄阔的视野,为我营造了一种良好的精神氛围,授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化, 使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有山重水复疑无路,柳暗花明又一村。 在此,再次真诚地向每位教过我的老师致谢,感谢你们。 祝愿敬爱的老师们在今后工作和生活中一帆风顺,心想事成。 2020 年 5 月 24 日 17 附录 : 基于单片机 AT89C51 温度控制器程序如下: include include typedef unsigned char uint8。 typedef unsigned int uint16。 typedef char int8。 typedef int int16。 sbit RS=P2^0。 sbit RW=P2^1。 sbit EN=P2^2。 sbit BUSY=P0^7。 sbit DQ=P2^7。 //温度输入口 sbit EQ=P2^6。 sbit FQ=P2^5。 sbit SET=P3^2。 //设置 sbit ADD=P1^1。 //加减 sbit SUB=P1^2。 //减键 sbit OK=P1^3。 //确定键 sbit LED=P1^7。 sbit BEEP=P1^6。 uint8 flag。 int p=30,q=0,k=0。 int data set[4]。 uint8 num_temp[]={0123456789}。 define nops()。 {_nop_()。 _nop_()。 _nop_()。 _nop_()。 } //定义空指令 4us void delay(uint16 n) { while (n)。 } void delay_ms(uint16 m) { uint8 n=120。 while(m) while(n)。 } /* * DQ:18B20 复位函数 */ void DS1802_reset() { uint8 flag=1。 18 while(flag) { while(flag) { DQ=1。 delay(1)。 DQ=0。 delay(50)。 //550us DQ=1。 delay(6)。 //66us flag=DQ。 } delay(45)。 //延时 500us flag=~DQ。 //500us 后总线释放, DQ=1。 } DQ=1。 } /* * EQ:18B20 复位函数 */ void EQDS1802_reset() { uint8 flag=1。 while(flag) { while(flag) { EQ=1。 delay(1)。 EQ=0。 delay(50)。 //550us EQ=1。 delay(6)。 //66us flag=EQ。 } delay(45)。 //延时 500us flag=~EQ。 //500us 后总线释放, DQ=1。 } EQ=1。 } /* * FQ:18B20 复位函数 */ void FQDS1802_reset() 19 { uint8 flag=1。 while(flag) { while(flag) { FQ=1。 delay(1)。 FQ=0。 delay(50)。 //550us FQ=1。 delay(6)。 //66us flag=FQ。 } delay(45)。 //延时 500us flag=~FQ。 //500us 后总线释放, DQ=1。 } FQ=1。 } /* * 18B20 写 1 个字节函数 * 向 1WIRE 总线上写一个字节 */ void write_byte(uint8 dat) { uint8 i。 for(i=0。 i8。 i++) { DQ=1。 _nop_()。 DQ=0。 nops()。 DQ=datamp。 0x01。 //最低位移出 delay(6)。 //66us dat=1。 //右移一位 } DQ=1。基于at89c51单片机、lcd显示、3点ds18b20温度控制器设计学士学位论文
相关推荐
PNP 的集电极 接了一个 10 千欧的电阻。 图 显示 器 与显示驱动电路 邵阳学院课程设计(论文) 6 蜂鸣器 音频输出 电路 蜂鸣器是一种电子电路中常用的发声器件,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。 提供蜂鸣器发声所需 要 较高 的 电流,单片机的 I/O 口驱动能力有限,而我们知道三极管有电流放大的作用,在这里就是利用三极管放大电流来使蜂鸣器获得足够的驱动电流。
AN 控制器的初始化、 CAN 的收发控制等任务。 CAN 总线收发器选用 PCA82C250 作为总线收发器。 PCA82C250 是 CAN 协议控制器和物理总线之间的接口。 82C250 可以为总线提供不同的发送性能,为 CAN 控制器提供不同的接收性能。 而且它与 “ISO 118 98” 标准完全兼容。 PCA82C250 的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线
0 到 20MHz — 12 时钟模式时为 0 到 33MHz 双数据指针 3 个加密位 4 个中断优先级 6 个中断源 4 个 8 位 I/O 口 全双工增强型 UART ― 帧数据错误检测 ― 自动地址识别 3 个 16 位定时 /计数器 T0, T1(标准 80C51)和增加的 T2(捕获和比较) 可编程时钟输出 异步端口复位 低 EMI (禁止 ALE 以及 6 时钟模式 )
8B20 可以程序设定 9~12位的分辨率,及把用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。 DS18B20 的性能是新一代产品中最好的。 性价比也非常出色。 DS18B20 开辟了温度传感器技术的新概念, DS18B20 的电压、特性及封装有更多的选择。 DS18B20 内部结构主要由四部分组成: 64 位光刻 ROM、温度传感器、温度报警触发器 TH和 TL、配置寄存器。
Hz 的交流电源,而有些国家采用的是 60Hz 的交流电源, 对于出口到这些国家的电器设备,其 产品的 性能测试必 须在 60Hz 的交流电源下 浙江科技学院信息与电子工程学院 2020 届毕业设计(论文) 班级: 电子信息工程 A1 姓名: 连炎鉴 学号: 103023027 第 3 页 共 36 页 进行,为了监视 60Hz 交流电源 的频率,就必须要用频率计。 针对 这个问题 , 本课题
“ R”键的电子电话机的摘机状态直流电阻应≤ 350Ω。 在挂机状态下,其漏电流≤ 5μ A。 当用户摘机时,电话机通过叉簧接上约 300Ω的 负载,使整个电话线回路流过约 30mA 的电流。 交换机检测到该电流后便停止铃流发送,并将线路电压变为十几伏的直流,完成接续。 摘机电路主要由一个三极管控制继电器的开关,继电器控制接入。 摘机信令由单片机使 口变为电平实现发光二极管 D1 指示摘机