文档介绍:单片机课程设计报告
万年历的设计
姓名: 施韧
学号: 0915321028
班级: 09自动化
指导教师:晏来成
基于51单片机的万年历
摘要:
电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LCD显示电路,以及调时按键电路等组成。在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用了1602液晶显示,并且使用蜂鸣器实现了整点报警的功能,温度测试的功能实现使用了DS18B20,并实现了温度过高或过低时的温度报警。
软件方面主要包括日历程序、时间调整程序,显示程序等。程序采用C语言编写。所有程序编写完成后,在KeilC51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真,并最终实现基本要求。
综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
一、设计要求
基本要求:
1,8 个数码管上显示,显示时间的格式为(假如当前时间是19:32:20)“19-32-20”;
2,具有日历功能;
③时间可以通过按键调整。
发挥部分:
④具有闹钟功能(可以设定多个)。
二:总体设计
电路设计框图
LCD液晶显示模块
键盘模块
AT89S52
主控制模块
时钟模块
温度采集模块
铃声报点模块
系统硬件概述
本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由单片机定时功能提供;温度的采集由DS18B20构成,它具有独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,使用时不需要额外的外围电路。并且,其测温范围-55℃~+125℃,℃;显示部份使用1602液晶显示,可完美地显示年、月、日、周日、时、分、秒,且在整点时刻通过蜂鸣器实现响铃。还可以实现温度显示,且当判断得温度过高或过低时,通过液晶显示及LED发光二极管完成报警。
单片机主控制模块的设计
AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.
液晶显示模块的设计
LCD1602有16个引脚,、VSS分别为电源正负极;VO为液晶偏压信号输入端,图中W1可调节液晶明亮度; DB0—DB7 8位数据段;BLA、BLK背光源正负极;
RS数据/命令选择端;R/W读写选择端;E使能端
温度采集模块设计
采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,,Vcc接电源,Vss接地。
PCB图
三电子时钟的软件设计
系统软件按键检测流程图
Y
+是否按下
M是否按下
Y
开始检测
N
N
相应项加一
—是否按下
相应项减一
Y
N
系统软件定时器程序流程图
开始
一秒到时
秒加1
时
60秒到时
分加1秒清零
时
固定日到时
月加1日清零零
时
12月到时
年加1月清零
时
24时到时
日加1时清零,蜂鸣器响,星期加一
时
60分到
时加1分清零
时
液晶显示
子程序的设计
DS18B20温度子程序
void write_temp(uchar add,uchar dat)//向LCD写温度数据,并指定显示位置
{
uchar gw,sw,bw;