1、1. 课程设计题目.21.1实验题目.21.2小组成员贡献.22. 设计方案.22.1设计目的.22.2性能指标.23. 数字温度计系统的硬件设计.33.1数字温度计硬件框图.33.2AT89C52单片机.33.3外围电路.43.4总设计图.44. 数字温度计系统的软件分析及系统整体流程.44.1总体流程图.54.2子程序流程图.65. 仿真结果.86. 总结.97. 附录.1021 课程设计题目1.1实验题目基于单片机的数字温度计设计。1.2小组成员所做贡献 姓名 学号 主要贡献 张朔萌140210103主程序的编写以及程序的编译、调试 郭星星140210119设计电路并在Proteus中进
2、行仿真模拟 石凤丹140210115 子程序的编写 李丹丹140210132整体实验的设计以及实验报告的设计和编辑2 设计方案2.1设计目的单片机是单片微型计算机的简称,其具有体积小、可靠性高、功能强、灵活方便等优点,故可以广泛应用于各种领域。其中数字温度计就是一个典型的例子。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确等特点,其输出温度采用数字显示,主要用于对测温要求较高的场所,该设计主要使用的元件有单片机AT89C52,测温传感器使用DS18B20和LCD1602液晶显示器。2.2 性能指标(1) 基本范围-50-110;(2) 精度为0.5;(3) 液晶
3、LCD显示;(4) 可以设定温度的上下限以及报警功能。3 数字温度计系统的硬件设计3.1 数字温度计硬件框图数字温度计系统硬件框图如图1所示。图1 系统的硬件框图3.2 AT89C52单片机AT89C52单片机引脚配置图,如图2所示。图2 AT89C52单片机引脚配置图3.3 外围电路AT89C52的时序就是CPU在执行指令时所需控制信号的时间顺序。选择了内部时钟方式,即利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路。外接晶振时,C1和C2值通常选择为30PF左右。C1和C2对频率有微调作用。晶体的频率
4、范围可在1.212MHZ之间选择。AT89C52的复位电路是按键电平复位电路,相当于按复位键后复位端通过电阻与Vcc电源接通。复位是单片机的初始化操作。单片机在启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。显示电路采用LCD1602液晶显示器显示。故障状态指示电路采用发光二级管以及蜂鸣器对运行方式进行指示,可清楚看到系统的故障状态。测温传感器DS18B20可以直接读出被测温度值,采用三线制和单片机相连,少了外部的硬件电路,具有低成本和易使用的特点。3.4 总设计图数字温度计系统的硬件总设计图如图3所示。图3 总设计图4 数字温度计系统
5、的软件设计及系统整体流程整个系统的功能是由硬件电路配合软件来实现的,从软件的功能不同,可以分为两类:主程序和子程序。主程序是整个软件的核心,专门用来协调各个执行模块和操作者的联系。子程序是用来完成各种实质性的工作的,如读温度子程序、转换温度子程序、计算温度子程序等。各执行模块规划好以后,就可以规划监控软件了。首先要根据系统的总体功能选择一种最合适的主程序结构,然后根据实时性的条件,合理安排监控软件和执行软件之间的调度关系。4.1 总体流程图 数字温度计系统总体流程图如图4所示。图4 主流序流程图4.2 子程序流程图数字温度计系统子程序主要包含:读温度子程序、转换温度子程序、计算温度子程序。(1
6、)读温度子程序流程图读温度子程序流程图如图5所示。图5 读温度子程序流程图(2)转换温度子程序流程图转换温度子程序流程图如图6所示。图6 转换温度子程序流程图(3)计算温度子程序流程图计算温度子程序流程图如图7所示。图7 计算温度子程序流程图5 仿真结果(1) 正常温度显示温度计正常温度显示如图8所示。图8 正常温度显示(2) 报警温度显示温度计报警温度显示如图9所示。图9 报警温度显示6 总结通过这次单片机课程设计,不仅让我加深了解了单片机课本上所学的知识,更通过自己的动手设计,将课本知识与动手操作能力相结合,让我对单片机及其系统设计的认识更进一步。在此次的课程设计中我学会了很多的东西。经过
7、自己努力,基本上完成了设计要求的内容,在系统可行性分析、原理图设计等方面都作了许多实际工作,取得了一些结果,同时也发现了许多不足。对于本次的课程设计还有很大提升空间,目前仅完成的是基本功能实现,还有很多的扩展功能可以提升。附录1.参考文献:1. 王思明. 单片机原理及应用系统设计M. 北京:科学出版社, 2012.2. 李广弟. 单片机基础M. 北京:北京航空航天大学出版社, 1994.3. 艾德才. pentium/80486实用汇编语言程序设计M. 北京:清华大学出版社。2.源程序/使用1602LCD显示DS18B20转换的温度值 #include intrins.Hmath.H #def
8、ine uchar unsigned char #define uint unsigned int sbit RS = P30; /RS-数据/命令选择端(H/L) sbit LCDEN = P32; /使能端 sbit deng=P16; /超过温度限制指示灯 sbit beep=P17; /超过温度限制报警器 uchar high=30; /最高温度 uchar low=10; /最低温度 unsigned char r; void delayUs() /短延时 _nop_(); void delayMs(uint a) /长延时 uint i, j; for(i = a; i 0; i-
9、) for(j = 100; j j-); /第一行开始地址为0x80, 第二行开始地址为0xc0; void writeComm(uchar comm) /写命令:RS=0, RW=0; RS = 0; P2 = comm; LCDEN = 1; delayUs(); LCDEN = 0; delayMs(1); void writeData(uchar dat) /写数据:RS=1, RW=00 RS = 1; P2 = dat; LCDEN = 1; /init()为初始化函数 /显示模式, 固定指令为00111000=0x38, 16*2显示, 5*7点阵,8位数据接口 /显示开/关及光标设置00001100=0x0c /指令1: 00001DCB : D:开显示/关显示(H/L); C:显示光标/不显示(H/L), B
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1