河南理工单片机课程设计之电子万年历

上传人:jiups****uk12 文档编号:40016916 上传时间:2018-05-22 格式:DOC 页数:26 大小:232.50KB
返回 下载 相关 举报
河南理工单片机课程设计之电子万年历_第1页
第1页 / 共26页
河南理工单片机课程设计之电子万年历_第2页
第2页 / 共26页
河南理工单片机课程设计之电子万年历_第3页
第3页 / 共26页
河南理工单片机课程设计之电子万年历_第4页
第4页 / 共26页
河南理工单片机课程设计之电子万年历_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《河南理工单片机课程设计之电子万年历》由会员分享,可在线阅读,更多相关《河南理工单片机课程设计之电子万年历(26页珍藏版)》请在金锄头文库上搜索。

1、河南理工大学本科课程设计报告- 1 -河南理工大学河南理工大学单片机应用与仿真训练单片机应用与仿真训练设计报告设计报告电子万年历电子万年历姓 名: 学 号: 专业班级: 指导老师: 所在学院:电气工程与自动化学院2015 年 1 月 20 日河南理工大学本科课程设计报告- 2 -摘要摘要本设计的主要内容是设计一个电子万年历。电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分和秒进行计时,还具有闰年补偿等多种功能,。基于对课本知识的学习与研究,该设计就是对课本知识的一个利用及实践,通过自己所学的知识,设计一个实用的、贴近生活的电子万年历。该电路采用 AT

2、89C52 单片机作为核心,功耗小,能在 3V 的低压工作,电压可选用 3 到 5V 电压供电。因为 DS1302 的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能,所以 DS1302 是不可或缺的。万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52 单片机,液晶显示电路,时钟电路,稳压电路电路以及串口下载电路等组成。在单片机的选择上使用了 AT89C52 单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用液晶 LCD1602。软件方面主要包括日历程序、液晶驱动程序,显示程序等。程序

3、采用 C 语言编写。所有程序编写完成后,在Keil C51 软件中进行调试,确定没有问题后,在 Proteus 软件中嵌入单片机内进行仿真。河南理工大学本科课程设计报告- 3 -目录目录1 1 概述概述41.1 实验目的41.2 实验原理42 2 系统总体方案及硬件设计系统总体方案及硬件设计62.1 总体方案6 2.2 硬件设计73 3 软件设计软件设计83.1 程序设计84 4 ProteusProteus 软件仿真软件仿真94.1 proteus 模拟95 课程设计体会课程设计体会10 参考文献参考文献11附附 1 1:源程序代码:源程序代码12河南理工大学本科课程设计报告- 4 -1 1

4、 概述概述1.1 实验目的本实验是对课本所学知识的应用,通过 51 单片机开发板对硬件及软件的设计,做出一个电子万年历。1.2 实验原理液晶(Liquid Crystal)是一种高分子材料,因为其特殊的物理、化学、光学特性,20 世纪中叶开始广泛应用在轻薄型显示器上。液晶显示器(Liquid Crystal Display, LCD)的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。为叙述简便,通常把各种液晶显示器都直接叫做液晶。各种型号的液晶通常是按照显示字符的行数或液晶点阵的行、列数来命名的。比如:1602 的意思是每行显示 16 个字符,一共可以显示两行;类似的命名还有

5、 0801, 0802, 1601 等,这类液晶通常都是字符型液晶,即只能显示 ASCII码字符,如数字、大小写字母、各种符号等。LCD1602 引脚功能简述:3 脚:VL,液晶显示偏压信号,用于调整LCD1602 的显示对比度,一般会外接电位器用以调整偏压信号,注意此脚电压为0 时可以得到最强的对比度。4 脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602 进行数据字节的传输操作,而为电平时,则是进行命令字节的传输操作。命令字节,即是用来对LCD1602 的一些工作方式作设置的字节;数据字节,即使用以在1602 上显示的字节。值得一提的是,LCD1602的数据是8 位的。脚:R/W

6、,读写选择端。当此脚为高电平可对LCD1602 进行读数据操作,反河南理工大学本科课程设计报告- 5 -之进行写数据操作。笔者认为,此脚其实用处不大,直接接地永久置为低电平也不会影响其正常工作。但是尚未经过复杂系统验证,保留此意见。6 脚:E,使能信号,其实是LCD1602 的数据控制时钟信号,利用该信号的上升沿实现对LCD1602 的数据传输。714 脚:8 位并行数据口,使得对LCD1602 的数据读写大为方便。LCD1602 的操作时序: 当我们要写指令字,设置LCD1602 的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入

7、。 当我们要写入数据字,在 1602 上实现显示时:需要把 RS 置为高电平,RW置为低电平,然后将数据送到数据口 D0D7,最后 E 引脚一个高脉冲将数据写入。发现了么,写指令和写数据,差别仅仅在于 RS 的电平不一样而已。DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线

8、:(1)RES 复位(2)I/O 数据线(3)SCLK 串行时钟。时钟/RAM 的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。1) VCC2:主用电源引脚2) X1、X2:DS1302外部晶振引脚3) GND:地4) RST:复位引脚河南理工大学本科课程设计报告- 6 -5) I/O:串行数据引脚,数据输出或者输入都从这个引脚6) SCLK:串行时钟引脚7) VCC1:备用电源2 2 系统总体方案及硬件设计系统总体方案及硬件设计2.1总体方案能显示年,月,日,时,分,秒能设置年,月,日,时,分,秒电路框图2.2 硬件设计

9、 1. LCD1602 显示部分ATM89C52 主控制模 块LC1602 显示电路DS1302 显示模块按键电路晶振电路复位电路河南理工大学本科课程设计报告- 7 -LCD1602 可以显示 2 行 32 个字符的液晶显示屏2.复位电路通过复位电路可以对万年历进行重置。 3.时钟电路该电路可以产生万年历的年,月,日,时,分,秒。 4.晶振电路5.按键电路通过该电路可以设置万年历的各个参数。河南理工大学本科课程设计报告- 8 -3 3 软件设计软件设计3.1 程序设计分离日期时间显示值读日期、时间初始化开始显示子程序返回河南理工大学本科课程设计报告- 9 -4.4.ProteusProteus

10、 软件仿真软件仿真4.1 Proteus 模拟仿真河南理工大学本科课程设计报告- 10 -5.5.课程设计体会课程设计体会这次课程设计总的来说还是很成功的,通过这次课程设计,我对单片机的设计,我对电子万年历的原理有了本质上的理解。本来我对单片机的编程很是烦恼与不解。经过这次更深层次的学习与尝试,我对单片机的学习有了更近一步的提高。不得不说的是,这次设计确实给了我难度,光是编程就编了很长的时间,编不出来,我就借助参考资料以及周围同学的帮助。经过多少个日日夜夜的学习与编程,我终于完成了课程设计。这次设计我也深入学习了 KEIL4 以及 Proteus 这两个基本的软件,这对以后的课程设计也有了很大

11、的帮助。总的来说,这次的设计给了我很多意想不到的帮助,收获颇丰。河南理工大学本科课程设计报告- 11 -参考文献参考文献1 刘勇 编 数字电路 电子工业出版社 20042 陈正振 编 电子电路设计与制作 广西交通职业技术学院信息工程系 20073 杨子文 编 单片机原理及应用 西安电子科技大学出版社 20064 王法能 编 单片机原理及应用 科学出版社 2004河南理工大学本科课程设计报告- 12 -附 1 源程序代码/* 实验名 : 万年历实验* 使用的 IO : * 实验效果 :1602 显示时钟,按 K3 进入时钟设置,按 K1 选择设置的时分秒日月,按 K2 选择*选择设置加 1。 *

12、注意 :*/#include#include“lcd.h“#include“ds1302.h“sbit K1=P30;sbit K2=P31;sbit K3=P32;void Int0Configuration();void LcdDisplay();unsigned char SetState,SetPlace;void Delay10ms(void); /误差 0us/* 函数名 : main* 函数功能 : 主函数* 输入 : 无* 输出 : 无*/void main()河南理工大学本科课程设计报告- 13 -unsigned char i;/H2=0;Int0Configuration

13、();LcdInit();Ds1302Init();while(1)if(SetState=0)Ds1302ReadTime();elseif(K1=0)/检测按键 L1 是否按下Delay10ms(); /消除抖动if(K1=0)SetPlace+;if(SetPlace=7)SetPlace=0;while(i9) /换成 BCD 码。河南理工大学本科课程设计报告- 14 -TIMESetPlace=TIMESetPlace+6;if(TIMESetPlace=0x60)if(TIMESetPlace=0x32)if(TIMESetPlace=0x13)if(TIMESetPlace=0x7)/if(SetPlace=5)/月只能到 12/TIMESetPlace=;/while(i0;c-)for(b=38;b0;b-)for(a=130;a0;a-);#include“lcd.h“/* 函 数 名 : Lcd1602_Delay1ms* 函数功能 : 延时函数,延时 1ms* 输 入 : c*

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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