基于89s52的饮水机加热控制系统课程设计(编辑修改稿)内容摘要:

灵活、超有效的解决方案。 具有以下标准功能: 8k字节 Flash, 512 字节 RAM, 32 位 I/O 口线, 看门狗定时器 ,内置 4KB EEPROM, MAX810加热模式 0 加热模式 1 加热模式 2 加热模式 3 模式选择 单 片 机 温度传感器 数码管 继电器 定时器(模式 1) 外部中断(模式 3) 单片机设计报告 7 复位电路, 2 个 16 位 定时器 /计数器,一个 6 向量 2 级中断结构,全双工 串行口。 另外 STC89X52 可降至 0Hz 静态逻辑操作,支持 2 种 软件 可选择节电模式。 空闲模式下,CPU 停止工作,允许 RAM、 定时器 /计数器、串口、中断继续工作。 掉电保护方式下,RAM 内容被保存,振荡器被冻结, 单片机 一切工作停止,直到下一个中断或硬件复位为止。 最高运作频率 35MHz, 6T/12T 可选。 外形及引脚排列如图 所示 图 STC89C52 系列单片机 两位共阳极数码管显示电路设计与原理 两位数码管相比两个数码管,可以节省他们之间的连线,更加方便,控制方式只需要控制 1 或 2 端为高电平,需要显示的段位为低电平即可,并通过动态显示的方法,使左边的数码管( 1)显示 10 位数,右边( 2)显示个 位数。 需要注意的是,这种数码管的引脚分布与一个数码管不同。 使数码管有引脚的一面面正对自己,上面的 5 个引脚由左到右分别为 d,e,c,b,1,下面由左到右为 2, f,a,. 图 两位共阳极数码管接线图 单片机设计报告 8 时钟振荡电路 STC89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。 外接石英晶体及电容 C C2 接在放大器的反馈回路中构成并联振荡电路。 对外接 电容 C1, C2 虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。 如果使用石英晶体,电容推荐使用 30PF 10PF,而如果使用陶瓷振荡器建议选择 40PF 10PF。 石英晶振器电路图如下: 图 单片机外部振荡电路 温度传感器监测电路 温度传感器的接线非常简单,只需接上 vcc 和地,并将 dq 端接到双向口上即可( p2的不行),另外,温度传感器在一开始工作时不稳定,如果需要读取一开始的环境温度的话,需要添加一定的延迟时间(约 1s)。 单片机设计报告 9 图 DS18B20 温度传感器接线图 继电器控制电路 继电器的工作原理为线圈导通时,线圈会将贴片吸附,使双线开关导通线 2,不导通时默认导通线 1。 为了使驱动继电器,需要用三极管将驱动电流放大,同时为了避免截止时线圈产生较大电流击穿三极管,加入整流二极管。 图中电路只需要让三极管B 极为 0 即可导通线圈,为正时截止。 图 继电器工作接线图 加热方式选择电路 加热方式选择电路由简单的按钮 1( )和按钮 2()以及 4 个 led 灯组成。 需要通过编程,在按钮 1 按下时进入工作模式选择模式,通过按钮 2 切换工 作模式,并由 4 个 led 灯对应 4 个不同的工作模式。 当选择好工作模式后,再按下按钮 1,单片机就会根据编好的程序和选择的工作模式,控制其他工作模块的工作。 单片机设计报告 10 图 工作模式选择模块接线图 硬件总电路图 总体硬件电路实现功能如下,如图 所示,实际接线时 led 和数码管都需要加上限流电阻,单片机芯片也要接上 vcc 和地、 图 总电路图 单片机设计报告 11 四.软件设计 本次课程设计的难点在于 DS18B20 温度传感器的驱动程序,因此软件设计方面主要讲这个,其余的程序说明会在程序附录里注释说明。 首先需要 简单说明下 DS18B20 的一些主要内部结构,传感器监测到的温度会放在图 所示的暂存寄存器的 0,1 字节里,因此读温度就是度这里的温度。 而对暂存器的操作指令都放在指定位置,如图 所示。 12 精度下,高字节和低字节存放的情况如图 所示,需要特别注意的是,每个字节里的温度数值是高位在后,低位在前,即如 7( 110110111)在里面是 11101011,在处理时务必小心,同时最高 5 位表示为 0 表示数值为正,为 1 表示数值为负。 图 DS18b20 暂存寄存器分布 图 图 RAM 指令表 单片机设计报告 12 图 12 精度温度格式表 该温度传感器的驱动程序一般需要包括初始化子程序,复位子程序,预读数据子程序,预写数据子程序,检测温度并转换成十进制子程序组成。 因为本课程设计主要用 18B20 的出厂设置,所以无需初始化程序,初始化程序主要用于控制精度,如果选择 12 位精度则不需要,可以简化许多。 (不需要) 复位子程序主要用于检测传感器的好坏 预读子程序用于读取暂存器里的温度 预写子程序用于写入预设的指令 监测温度子程序用于执行一次总的 `18B20 高低字节温度读取过程,并附加计 算过程转换成直观的十进制数。 五.心得总结 心得 :看书不如练习好,练习不如动手好,这次课程设计,因为上课学习得比较认真,课后也有练习,所以想着最好能做一个题目里没有的课程设计,注意到日常饮水机经常忘记关,所以弄个这样的加热控制系统。 因为只有自己一个人,所以效率很高,不用经过讨论和分工,一切想做就做,所以省了团队合作时的各种麻烦, 通过这次课程设计,主要学习到的还是温度传感器的使用,通过查阅 DS18B20的各种资料,觉得温度传感器不是很简单,但通过各种分析、测试和计算,发现很 多地方可以省略,所以就将觉得不用的信息和程序忽略。 单片机设计报告 13 其实通过这次课程设计,更深一层次的收获还是学会怎样学习器件的使用,比如温度传感器,需要用到什么就获取自己需要的信息就好,其它不相关的可以忽略,以后学习使用其它传感器或者器件,也应该采取这种方法,弄懂了不需要弄懂的东西只是浪费时间。 因此最重要的还是确定目标,想达到什么目标,需要使用什么,需要学习什么。 总结:本次课程设计的最终结果比较好,要实现的功能都实现了,只是焊接的时候不熟悉数码管的管脚,查阅了错误的资料,导致焊错,最后焊得很难看,而且双位数码管需要接的限流电阻应该比较小,用了 750 欧姆的限流电阻结果数码管显示很暗。 还有就是 5V 电源接口的焊接方式不够稳固。 六.参考文献 [1] 《单片机应用及 C51 程序设计》,机械工业出版社,陈涛 [2] 《 C 程序设计》,清华大学出版社,谭浩 [2] 《 DS18B20 全套中文资料》,传诚科技, 七、附录: 附录 1:源程序 include include include define uc unsigned char define ui unsigned int define ht 25 define lt 20 sbit led0=P3^4。 //工作模式指示灯 sbit led1=P3^5。 单片机设计报告 14 sbit led2=P3^6。 sbit led3=P3^7。 sbit dq=P1^0。 //温度传感器 sbit jd=P2^0。 //继电器控制 sbit k1=P3^0。 // 开关组 sbit k2=P3^1。 sbit k3=P3^2。 sbit k4=P3^3。 sbit dj。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。