您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于51单片机的万年历设计
山东工商学院SHANDONGINSTITUTEOFBUSINESSANDTECHNOLOGY单片机课程实训SCMPRACTICALTRAINING实训设计题目TitleOfTraining万年历设计_________________分院(系别)Department信息与电子工程学院_____________专业Speciality电子信息工程班级Class2013级1班设计作者AuthorXXX完成日期Date2015年12月18日组别Team09______指导教师AdvisorXXX____山东工商学院2015单片机实训报告目录第一部分课程设计任务书............................................................................................1一、课程设计题目...................................................................................................1二、课程设计时间...................................................................................................1三、课程设计提交方式...........................................................................................1四、设计要求...........................................................................................................1第二部分课程设计报告................................................................................................2一、单片机发展简史...............................................................................................2二、MCS-51单片机系统简介................................................................................2三、设计思路...........................................................................................................2四、硬件设计电路...................................................................................................3五、软件设计流程...................................................................................................6六、程序源代码.....................................................................................................10七、结束语.............................................................................................................66八、参考文献.........................................................................................................67山东工商学院2015单片机实训报告-1-第一部分课程设计任务书一、课程设计题目万年历的设计二、课程设计时间一周三、实训提交方式提交实训设计报告四、设计要求设计一台液晶显示屏显示的万年历,要求如下。(1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2)可通过键盘自动调整时间。(3)具有闹钟功能。(4)能够显示环境温度,误差小于±1℃。(5)计时精度:月误差小于20秒。山东工商学院2015单片机实训报告-2-第二部分课程设计报告一、单片机发展概况单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段:第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有8位CPU,并行I/O端口、8位时序同步计数器,寻址范围4KB,但是没有串行口。第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O串行端口,有多级中断处理系统,15位时序同步技术器,RAM、ROM容量加大,寻址范围可达64KB。第三阶段(1982-至今)位单片机微处理改良型及16位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。二、MCS-51单片机系统简介MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU、RAM、ROM、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,为以后的单片机的发展奠定了基础。三、设计思想以AT89C52单片机为核心,外接单片机复位电路,单片机晶振电路,蜂鸣器电路,温度传感器DS18B20,时钟芯片DS1302,按键电路,12864液晶显示电路,通过控制AT89C52单片机的接口来控制蜂鸣器电路,温度传感器DS18B20模块,时钟芯片DS1302模块,按键电路,12864液晶显示模块,使12864液晶能显示阳历年、月、日、时、分、秒和温度及相应的农历时间。图为硬件系统设计框架DS18B20温度电路复位电路晶振电路蜂鸣器电路按键电路AT89C52单片机液晶显示电路DS1302时钟电路山东工商学院2015单片机实训报告-3-四、硬件电路设计4.1电路原理图4.2单片机控制模块AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。山东工商学院2015单片机实训报告-4-(1)复位电路按键手动复位是通过使复位端经电阻与VCC接通而实现的。(2)时钟振荡电路基于系统运行速度,采用12MHZ的石英晶振,并使用两个小电容作为微调电容。4.3温度模块DS18B20温度传感器具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。测温范围-55℃~+125℃,固有测温分辨率0.5℃,工作电源为3~5V。DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。4.4时钟模块DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。山东工商学院2015单片机实训报告-5-4.5液晶显示模块本系统选择的LCD是AMPIRE128×64的汉字图形型液晶显示模块,可显示汉字及图形。单片机P1口作为数据输出口,RS,R\W,E分别通过10K的上拉电阻连接到单片机的P0.0,P0.1,P0.2。VDD接5V电源,VSS接地。VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E(或EN)端为使能(enable)端,下降沿使能。DB0-DB7为双向数据总线,同时最高位DB7也是忙信号检测位。BLA、BLK分别为显示器背光灯的正、负极。4.6按键模块本系统使用5个button元件分别设置为增加键、减小键、退出键、设置/OK键。4个按键与一个4个驱动电阻相连,作为整个按键控制功能系统,以触发AT89C52中断为方式使用设置功能。4.7蜂鸣器模块本系统采用BUZZER元件和PNP型三极管及电阻组成了蜂鸣器电路。山东工商学院2015单片机实训报告-6-五、软件设计框图5.1主程序流程图万年历的程序主要包括:按键识别程序、时间设定程序、温度数据采集程序、时间数据采集程序、液晶屏数据显示程序、定时中断程序、阳历转阴历程序、闹钟设定程序、延时子程序等。程序开始初始化标志位DS1302初始化DS18B20初始化闹钟模块初始化模式标志位done=?调整模式=1=0闹钟模块LCD显示模块按键扫描模块LCD1602初始化5.2温度数据模块设计启动温度转换读取温度寄存器结束初始化DS18B20发跳过读系列号命令读取温度值发跳过读系列号命令初始化DS18B20山东工商学院2015单片机实训报告-7-5.3时间数据模块设计5.4闹钟设定模块设计当前时间与所定时间是否相等N将所定时间写入存储器YY是否停止闹铃N继续响铃闹铃是否闹够10sN响铃停止响铃YY开始DS1302初始化从DS1302中读出数据,放入RAM调用显示子程序LCD显示时间扫描按键时间设置数据写回DS1302保存返回主显单山东工商学院2015单片机实训报告-8-5.5阳历转阴历模块设计程序入口根据公历年定位表的位置从表中取得春节公历日期计算出春节离元旦的天数记为N计算公历日离元旦的天数记为M公历日离春节的天数X=M-N公历日在春节后吗?农历年=公历年,取农历月信息农历年=公历年减1,定位到前一年,取农历月信息农历月=1,闰月标志F0=0农历月=12,闰月标志F0=0取农历月天数Y取农历月天数YF0取反农历月=闰月?农历月+1F0=1?农历月-1F0=1?X=X-YF0取反X=Y?X=X-Y农历月=闰月?农历日=X+1X=Y?农历日=Y-X+1农历年月日标准化子程序出口YNNYNYYNYYNNY山东工商学院2015单片机实训报告-9-5.6按键设置时间模块设计山东工商学院2015单片机实训报告-10-六、程序源代/****************************文件包含*************************************/#includereg52.h#includecharacter.h#includelcd.h#includeclock.h#includesensor.h#includecalendar.h#includekey.h
本文标题:基于51单片机的万年历设计
链接地址:https://www.777doc.com/doc-5895079 .html