基于51单片机的万年历设计

上传人:博****1 文档编号:506463891 上传时间:2023-09-17 格式:DOC 页数:69 大小:761.50KB
返回 下载 相关 举报
基于51单片机的万年历设计_第1页
第1页 / 共69页
基于51单片机的万年历设计_第2页
第2页 / 共69页
基于51单片机的万年历设计_第3页
第3页 / 共69页
基于51单片机的万年历设计_第4页
第4页 / 共69页
基于51单片机的万年历设计_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《基于51单片机的万年历设计》由会员分享,可在线阅读,更多相关《基于51单片机的万年历设计(69页珍藏版)》请在金锄头文库上搜索。

1、山 东 工 商 学 院SHANDONG INSTITUTE OF BUSINESS AND TECHNOLOGY单片机课程实训SCM PRACTICAL TRAINING实训设计题目Title Of Training 万年历设计_ 分院(系别)Department 信息与电子工程学院_ 专业Speciality 电子信息工程 班 级Class2013级1班设计作者Author XXX完成日期Date2015年 12月18日组 别Team 09_ 指导教师Advisor XXX_山东工商学院2015单片机实训报告目 录第一部分 课程设计任务书1一、课程设计题目1二、课程设计时间1三、课程设计提交

2、方式1四、设计要求1第二部分 课程设计报告2一、单片机发展简史2二、MCS-51单片机系统简介2三、设计思路2四、硬件设计电路3五、软件设计流程6六、程序源代码10七、结束语66八、参考文献67第一部分 课程设计任务书一、课程设计题目万年历的设计二、课程设计时间一周三、实训提交方式提交实训设计报告四、设计要求设计一台液晶显示屏显示的万年历,要求如下。(1) 显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2) 可通过键盘自动调整时间。(3) 具有闹钟功能。(4) 能够显示环境温度,误差小于1。(5) 计时精度:月误差小于20秒。第二部分 课程设计报告一、单片机发展概况 单片机诞生于20

3、世纪70年代末,它的发展史大致可分为三个阶段: 第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。 第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。 第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、

4、并行多机处理系统和局域网络系统。二、MCS-51单片机系统简介 MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU 、RAM 、ROM 、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,为以后的单片机的发展奠定了基础。三、设计思想 以AT89C52单片机为核心,外接单片机复位电路,单片机晶振电路,蜂鸣器电路,温度传感器DS18B20,时钟芯片DS1302,按键电路,12864液晶显示电路,通过控制AT89C52单片机的接

5、口来控制蜂鸣器电路,温度传感器DS18B20模块,时钟芯片DS1302模块,按键电路,12864液晶显示模块,使12864液晶能显示阳历年、月、日、时、分、秒和温度及相应的农历时间。DS18B20温度电路复位电路晶振电路蜂鸣器电路按键电路AT89C52单片机液晶显示电路DS1302时钟电路图为硬件系统设计框架四、 硬件电路设计4.1电路原理图4.2单片机控制模块 AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS

6、-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。(1) 复位电路 按键手动复位是通过使复位端经电阻与VCC接通而实现的。(2) 时钟振荡电路 基于系统运行速度,采用12MHZ的石英晶振,并使用两个小电容作为微调电容。 4.3温度模块 DS18B20温度传感器具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。测温范围 55125,固有测温分辨率0.5,工作电源为 35V。 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行

7、计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。4.4时钟模块 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。4.5液晶显示模块 本系统选择的LCD是AMP

8、IRE12864的汉字图形型液晶显示模块,可显示汉字及图形。单片机P1口作为数据输出口,RS,RW,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也是忙信号

9、检测位。BLA、BLK分别为显示器背光灯的正、负极。4.6按键模块 本系统使用5个button元件分别设置为增加键、减小键、退出键、设置/OK键。4个按键与一个4个驱动电阻相连,作为整个按键控制功能系统,以触发AT89C52中断为方式使用设置功能。4.7蜂鸣器模块 本系统采用BUZZER元件和PNP型三极管及电阻组成了蜂鸣器电路。五、 软件设计框图5.1主程序流程图 万年历的程序主要包括:按键识别程序、时间设定程序、温度数据采集程序、时间数据采集程序、液晶屏数据显示程序、定时中断程序、阳历转阴历程序、闹钟设定程序、延时子程序等。5.2温度数据模块设计5.3时间数据模块设计开始DS1302初始化

10、从DS1302中读出数据,放入RAM调用显示子程序LCD显示时间扫描按键时间设置数据写回DS1302保存返回主显单5.4闹钟设定模块设计5.5阳历转阴历模块设计5.6按键设置时间模块设计六、程序源代/*文件包含*/#include #include #include #include #include #include #include /*预定义*/#define uchar unsigned char#define uint unsigned int/*/sbit bell = P2 0; /定义蜂鸣器端口/* 名称: Timer0_Service() inturrupt 1* 功能: 中

11、断服务程序 * 入口参数:* 出口参数:*/void Timer0_Service() interrupt 1 static uchar count = 0; static uchar flag = 0; /记录鸣叫的次数 count = 0; TR0 = 0; /关闭Timer0 TH0 = 0x3c; TL0 = 0XB0; /延时 50 ms TR0 = 1 ; /启动Timer0 count +; if( count = 20 ) /鸣叫 1 秒 bell = bell; count = 0; flag +; if( flag = 6 ) flag = 0; TR0 = 0; /关闭Timer0 /* 名称: Timer2_Servie() interrupt 5* 功能: 中断服务程序 * 入口参数: * 出口参数:*/uchar HexNum_Convert(uchar HexNum)/*时间存储个位和十位的方式*/uchar Numtemp;Numtemp=(HexNum4)*10+(HexNum&0X0F);return Numtemp;/* 函数名称:main()* 功 能:* 入口参数:* 出口参数:*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号