课程设计数字万年历显示温度星期.docx
《课程设计数字万年历显示温度星期.docx》由会员分享,可在线阅读,更多相关《课程设计数字万年历显示温度星期.docx(17页珍藏版)》请在冰豆网上搜索。
![课程设计数字万年历显示温度星期.docx](https://file1.bdocx.com/fileroot1/2022-11/26/7c71d878-7074-44b6-be05-8c32e6edabfc/7c71d878-7074-44b6-be05-8c32e6edabfc1.gif)
课程设计数字万年历显示温度星期
信息与电子工程学院
课程设计报告
课程:
设计题目:
专业:
班级:
成员:
姓名
学号
成绩
指导老师:
答辩日期:
目录
一、课程设计概述3
1、课程设计背景3
2、课程设计内容3
二、方案的选择及确定3
2.1设计思路3
2.2设计方案3
2.3方案比较论证4
三、系统硬件设计4
3.1总体硬件设计4
3.2单片机主控制模块的设计5
3.3时钟电路模块的设计5
3.4温度采集模块设计6
3.5功能按钮设计6
3.616*2LCD1602液晶显示电路设计7
3.7总体电路图7
四、系统软件设计8
4.1系统模块的功能分划分8
4.2总体程序流程框图9
4.3时钟调整时间的流程图9
4.4修改键“UP”的功能流程图10
4.5温度转换流程图11
五、系统调试过程13
六、遇到的问题及解决方法/总结13
七、参考文献13
八、附录13
1、仪器与设备13
2、元器件清单14
3、原理图14
4、PCB图15
5、实物图15
6、操作说明书16
一、课程设计概述
1、课程设计背景
随着计算机技术的和控制系统的广泛应用,以及设备向小型化、智能化发展,单片机作为高新技术之一,以其体积小、功能强、价格低、使用灵活等优势,显示出了很强的生命力。
进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。
因其功耗低、超高型、低成本、功能完整,在国内越来越受到用户的重视和广泛使用。
2、课程设计内容
要求设计的单片机作息时间控制钟完成以下功能:
①实时显示当前温度;②实时显示当前时间;③实时显示当前日期;④能修改当前时钟
二、方案的选择及确定
2.1设计思路
用STC89C52RC处理产生内部时钟数据或者读取外部时钟数据和采集外部传感器的信息进行处理,并暂时寄存在其内部的储存器中,再通过单片机调用内部RAM的数据并送到LCD或者LED数码管上显示出来。
2.2设计方案
方案1:
单片机一般的工作频率在12MHz左右,而且内部还有定时、计数器,可以产生精确的1S定时,由次可以用定时中断的方式产生精确的1S时间,秒位不断的加1,再设计分、时、星期、日、月、年之间的进制,使产生进位。
本方案只需要单片机最小系统加上显示电路,再设计简单的程序算法就可以实现。
对于测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理。
在显示电路上,采用数码管就可以将年月日星期时分秒和室内温度显示出来
方案2:
万年历时钟采用单片机控制DS1302实时时钟芯片,能达到走时准确且掉电不丢失数据的。
DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES(复位)2I/O(数据线)3SCLK(串行时钟)。
温度计要灵敏反映室温的变化这样可采用单片机与数字式温度传感器DS18B20通讯,采集温度数字信号进行处理。
DS18B20通过一个单线接口发送或接受信息,因此在单片机与DS18B20之间仅需一条连接(加上地线)。
在显示电路上,采用16*2的LCD显示。
2.3方案比较论证
对于方案1,单片机虽然可以产生精确的秒信号,但是单片机在处理闰年上会比较麻烦,加之一旦单片机断电后,所有的时间都要重新调整。
对于测温电路,采用热敏电阻的输出电压-温度特性,要加上A/D转换,温度传感信息才能被单片机所接受,这种设计需要用到A/D转换电路,感温电路比较麻烦。
在显示电路上,采用LED数码的话要用到单片机的许多I/O口,甚至I/O不够用,还需要接上其它芯片大量扩展I/O口,这是一个弊处。
对于方案2:
单片机不用去产生时钟的数据,时钟的数据由DS1302独立产生,并寄存在其内部的寄存器上,单片机可以通过三总线与它通讯,不仅可以对它进行读取实时时钟数据,还可以对它进行编程,设置它的工作模式。
单片机只是处理从DS1302读出来的数据并送显示,大大减少了单片机的负担。
而且DS1302可以通过后备电池继续工作,内部的时钟还在走,下次启动后不用去调整时钟,方便使用。
基于同样的原理,DS18B20也是一个独立的传感器,只要单片机配置它的工作状态后它就可以独立工作,内部已经把模拟信号转换成数字信号,并把数字信号储存在其内部的寄存中。
同样,单片机通过单总线与它通讯,可以处理9~12位的温度数字数据。
在显示电路上,采用16*2LCD液晶显示器,能容纳年月日星期时分秒温度等信息的显示。
LCD显示器只需占用11个I/O口就可以工作了,不用其它扩展芯片,总体上使电路简单化。
三、系统硬件设计
3.1总体硬件设计
本方案由STC89C52单片机核心控制模块、液晶显示模块、温度检测模块、按键模块、时钟模块、晶振模块、响铃模块7个部分组成组成。
硬件总框图如图3-1所示。
图3-1.硬件总框图
3.2单片机主控制模块的设计
STC89C52RC单片机为40引脚双列直插芯片,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.如图3.2所示:
图3.2单片机最小系统
3.3时钟电路模块的设计
图3.3是DS1302与单片机的连接,其中Vcc1为后备电源,Vcc2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768KHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。
中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。
SCLK始终是输入端
图3.3时钟芯片与单片机的连接
3.4温度采集模块设计
如图3.4所示,采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P2.4与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,GND接地。
图3.4温度传感器与单片机的连接
3.5功能按钮设计
当按钮被按下时,该按钮对应的I/O口被拉为低电平,松开时按钮对应的I/O口由内部的上拉电阻将该I/O拉为高电平,如图3.5所示:
图3.5功能按键电路
3.616*2LCD1602液晶显示电路设计
根据其读写的时序模拟总线的方式与单片机进行数据的通讯,首先将数据从I/O口读入或送出,再选择R/W和RS的电平进行不同的操作,在使能端E下降沿时触发数据的读入或送出。
注意P0口要接上拉电阻,如图3.6所示:
图3.6LCD液晶显示屏与单片机的连接
3.7总体电路图
本设计的具在温度指示的数字万年历的总体电路图如图3.7所示:
图3.7总体电路图
四、系统软件设计
4.1系统模块的功能分划分
万年历程序设计总体上分为四个大模块,分别是DS1302时钟程序模块、DS18B20测温模块、LCD显示模块、键盘功能模块。
a.DS1302时钟程序模块
包括设置DS1302初始时间、从DS1302读时间子程序、写1302一字节子程序、读1302一字节、关闭写保护、开启写保护、关闭时钟、延时子100MS程序。
b.DS18B20测温模块
包括DS18B20的初始化子程序、DS18B20数据处理子程序、读出温度值的子程序、DS18B20复位子程序、写DS18B20的1位字节子程序、读DS18B20的1个字节子程序。
c.LCD显示模块
包括LCD初始化子程序、写入控制命令的子程序、判断LCD显示器是否忙的子程序、向LCD中的DDRAM中写数据、查询LCD字符表、调整模式的显示子程序、正常模式LCD显示子程序。
d.键盘功能模块
包括模式选择按键SET子程序、调整模式选择子程序、OUT键扫描子程序、UP按键扫描子程序、DOWN按键扫描子程序。
4.2总体程序流程框图
本设计中,实现功能的总体程序流程框图如下图4.1所示:
图4.1总体程序流程框图
4.3时钟调整时间的流程图
时钟调整时间的流程图4.2所示:
图4.2时钟调整时间的流程
4.4修改键“UP”的功能流程图
修改键“UP”的功能流程图如图4.3所示:
4.5温度转换流程图
单片机实现对温度传感器DS18B20的温度转换读取温度数值流程图如下图4.4所示:
图4.4温度转换读取温度数值流程图
五、系统调试过程
首先把各个模块的程序编好,再到Protues7.1中画好并连接电路图进行程序仿真。
各个部分的功能后再把它们综合到一个主程序中去,再把它用KeiluVision3软件把程序生成hex格式最后到Protues7.1中仿真。
在综合到一起的时候,出现了RAM分配错误的问题,因为原先是一个模块子程序在运行,RAM的分配只要不要跟子程序中的分配不冲突就可以了,但是在综合各个模块子程序的时候就会出现RAM分配冲突的问题。
最好是在设计程序之前先把RAM的空间分配好。
六、遇到的问题及解决方法/总结
本次设计是我们遇到过的较大的设计,所以遇到的问题也比较的多,尤其是以前没有接触过如此复杂的硬件电路以及软件编程,在软、硬件设计和调试中遇到了不少的困难,在同学的帮助才逐一克服了难题,学习到了不少的专业知识。
在整个设计过程之前,我们已经在网上找了相关方面的资料,万事开始难,一开始不知道从哪里下手。
后来慢慢学会分析系统,将系统模块化,各个模块可以在软件或者硬件上实现。
在确保各个模块的硬件电路和与之相搭配的程序能够正常工作后在把它们组成一个系统。
由于我们的理论知识水平有限,实践能力和设计经验不足,在设计的过程中难免还存在一些问题甚至是错误。
在今后的日子里,我会进一步加强自己的动手能力,丰富自己的知识面,并在以后工作岗位中发挥我所长,为社会作出贡献。
七、参考文献
[1]唐亚平、李移伦.单片机原理实训与学习指导[M],长沙:
中南大学出版社,2006
[2]刘军.单片机原理与接口技术[M],华东理工大学出版社,2006
[3]谢自美.电子线路设计、实验、测试[M],武汉:
华中理工大学出版社,2000
八、附录
1、仪器与设备
仪器(设备)名称
规格型号
单位
数量
单片机开发板
STC89C52
块
1
USB转串口线
STC89C52
根
1
USBA-A线
USB2.0
根
1
笔记本电脑
Asus
台
1
2、元器件清单
器件
型号
数量
单片机
STC89C52RC
1片
1602液晶
QC1602A
1个
蜂鸣器
1个
12M晶振
TXC11.0YBF
2个
按钮
4个
开关
1个
温度检测器
DS18B20
1个
时钟芯片
DS1302
1个
电容
10uf/30pf/22pf
1个/2个/2个
电阻
10K/1K/20K
5个/2个/1个
滑动变阻器
10K/
2个/
二极管
2N5401
2个
LED灯
1个
排阻
9A103G
1排
杜邦导线
16根
直流电源
1个
PCB板
1块
数据传输线
1根
3、原理图
4、PCB图
5、实物图
6、操作说明书
6-1功能说明
1.具有时钟功能;
2.具有温度显示功能;
3.具有万年历功能;
4.具有实时调整时间功能。
6-2按键说明
本数字钟有三个按键(如下图)
S6号键为“时间设置/确定”键;
S10号键为“+”键;
S14号键为“-”键;
6-3时间设置说明
1.第一次按下“时间设置/确定”键,“秒”位开始闪烁,此时按“+”“-”键可调节秒;
2.第二次按下“时间设置/确定”键,“分”位开始闪烁,此时按“+”“-”键可调节分;
3.第三次按下“时间设置/确定”键,“时”位开始闪烁,此时按“+”“-”键可调节时;
4.第四次按下“时间设置/确定”键,“星期”位开始闪烁,此时按“+”“-”键可调节星期;
5.第五次按下“时间设置/确定”键,“天”位开始闪烁,此时按“+”“-”键可调节天;
6.第六次按下“时间设置/确定”键,“月”位开始闪烁,此时按“+”“-”键可调节月;
7.第七次按下“时间设置/确定”键,“年”位开始闪烁,此时按“+”“-”键可调节年;
8.第八次按下“时间设置/确定”键,设置完毕,时钟开始正常走动。