电子万年历课程设计报告Word文档下载推荐.docx
《电子万年历课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子万年历课程设计报告Word文档下载推荐.docx(47页珍藏版)》请在冰豆网上搜索。
更加也体会到以后在工作中团队合作的重要性和必要性!
通过本次课程设计,可以使同学们更熟练的使用单片机的软件仿真,如使用protues,keilC,wave等软件,同时也使同学们学会电子器件的基本焊接技术,对单片机的使用有更深的理解。
1.2课程设计的要求
1、能够显示时分秒、星期;
2、能够显示年月日;
3、能够自动清除屏幕以前的废弃信息;
4、能够修改时间;
5、能够定时;
6、要求划分功能模块,各个功能分别使用函数来完成;
7、源代码程序要有必要的注释;
8、能够半点报时和整点报时。
2系统设计
2.1基本工作原理
该系统主要是通过时钟芯片DS1302产生稳定的日期和时间,然后通过单片机控制时钟芯片和显示器LCD,从而输出稳定的时间,改系统的仿真图如图:
图1
从图1可知,该系统主要由到单片机控制系统,时钟产生系统和显示系统构成。
2.2系统设计
2.2.1系统组成方案
该系统主要由单片机控制系统,显示系统及时间信号产生系统构成。
控制系统有单片机机保证单片机工作的外围元件构成;
显示系统主要由16*2双排显示LCD构成;
时间产生系统主要由DS1302产生。
此外系统还有正常工作时的调时按键,定时时的调时按键以及复位按键,还有报时所需的蜂鸣器等。
2.2.2正常工作时按键、显示功能的定义
正常工作时,共用到四个键,一个为接到RST端的复位键,一个为接到P1.0端的功能键另外;
两个未分别接至P1.1、P1.2端的调时增减键。
正常工作时能调节时分秒,年月日及星期的时间,可加可减。
调时时光标闪烁。
2.2.3定时系统的功能及按键的定义
启动定时模式时,第一排首先显示“Dingshi!
”第二排显示日期和时间,此时共用到三个键,一个为功能键,选择调节对象,另外两个为加减键,对调节对象进行加减。
2.3系统总体设计
2.3.1主程序框图及清单
清单:
STC89C52,DS1302,LCD1602,排阻,5V电源,3V锂电池,蜂鸣器,6M晶振,32.768M晶振各一个;
33pF电容两个;
10pF电容一个;
100k电阻一个;
10k电阻一个。
3硬件设计
3.1主控制器
3.1.1STC89C52引脚封装与功能表
STC89C52与我们学过的AT89C51相似,但硬件配置更高,且更容易导入程序,所以使用比AT系列更广泛。
功能特性描述
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程Flash
3.1.2振荡电路及复位电路
振荡电路及复位电路原理图
3.2DS1302原理及引脚介绍
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.5~5.5V。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。
DS1302的外部引脚分配如图1所示及内部结构如图2所示。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。
图1DS1302的外部引脚分配
图2DS1302的内部结构
各引脚的功能为:
Vcc1:
主电源;
Vcc2:
备份电源。
当Vcc2>
Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<
Vcc1时,由Vcc1向DS1302供电。
SCLK:
串行时钟,输入,控制数据的输入与输出;
I/O:
三线接口时的双向数据线;
CE:
输入信号,在读、写数据期间,必须为高。
该引脚有两个功能:
第一,CE开始控制字访问移位寄存器的控制逻辑;
其次,CE提供结束单字节或多字节数据传输的方法。
DS1302有下列几组寄存器:
①DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如图3所示。
图3DS1302有关日历、时间的寄存器
小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。
当为高时,选择12小时模式。
在12小时模式时,位5是,当为1时,表示PM。
在24小时模式时,位5是第二个10小时位。
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。
当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;
当该位置为0时,时钟开始运行。
控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。
在任何的对时钟和RAM的写操作之前,WP位必须为0。
当WP位为1时,写保护位防止对任一寄存器的写操作。
②DS1302有关RAM的地址
DS1302中附加31字节静态RAM的地址如图4所示。
图4
③DS1302的工作模式寄存器
所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。
突发模式寄存器如图5所示。
图5
④此外,DS1302还有充电寄存器等。
2读写时序说明
DS1302是SPI总线驱动方式。
它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。
要想与DS1302通信,首先要先了解DS1302的控制字。
DS1302的控制字如图6。
图6控制字(即地址及命令字节)
控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
位6:
如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至位1(A4~A0):
指示操作单元的地址;
位0(最低有效位):
如为0,表示要进行写操作,为1表示进行读操作。
控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。
同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。
数据读写时序如图7。
图7数据读写时序
具体操作见驱动程序。
3.3LCD显示驱动电路
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。
一般1602字符型液晶显示器实物如图10-53:
图10-531602字符型液晶显示器实物图
10.8.2.11602LCD的基本参数及引脚功能
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图10-54所示:
图10-541602LCD尺寸图
1602LCD主要技术参数:
显示容量:
16×
2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×
4.35(W×
H)mm
引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
表10-13:
引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
10.8.2.31602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:
序号
指令
清显示
光标返回
*
置输入模式
I/D
S
显示开/关控制
D
C
B
光标或字符移位
S/C
R/L
置功能
DL
N
F
置字符发生存贮器地址
字符发生存贮器地址
置数据存贮器地址
显示数据存贮器地址
读忙标志或地址
BF
计数器地址
写数到CGRAM或DDRAM)
要写的数据内容
从CGRAM或DDRAM读数
读出的数据内容
4软件设计
4.1DS1302时间产生软件设计
/************************************
DS1302模块
************************************/
//地址数据发送子程序
voidw1302sj(unsignedcharaddr,unsignedchardat)
{
unsignedchari,temp;
rst1302=0;
sclk1302=0;
rst1302=1;
for(i=8;
i>
0;
i--)
{
temp=addr;
io1302=(bit)(temp&
0x01);
addr>
>
=1;
sclk1302=1;
}
temp=dat;
dat>
}
//数据读取子程序
unsignedcharr1302sj(unsignedcharaddr)
unsignedchari,temp,dat1;
{
sclk1302=0;
temp=addr;
io1302=(bit)(temp&
sclk1302=1;
//上升沿写入
}
{sclk1302=0;
ACC>
//一定要加在前边才行,最后一次io输出直接输到ACC.7上
ACC7=io1302;
//仍然是上升沿输出
dat1=ACC;
return(dat1);
//初始化1302
voidc1302cs(void)
w1302sj(xie_baohu,0x00);
//允许写
w1302sj(xie_miao,0x00);
//开始计时
4.2数据处理显示程序设计
LCD1602模块
//@写命令子程序
voidw1602zl(ucharzl)
rs1602=0;
//写命令时rs1602=0;
P0=zl;
delay
(1);
e1602=1;
//拉高使能端
e1602=0;
//降低使能端,下降沿写入数据
//@写数据子程序
voidw1602sj(ucharsj)
rs1602=1;
//写数据时rs1602=1;
P0=sj;
//年月日显示程序
voidwnyr(uchardz,ucharsj)
ucharge,shi;
ge=sj%10;
shi=sj/10;
w1602zl(one+dz);
//第一行首地址+要写入的地址
w1602sj(0x30+shi);
w1602sj(0x30+ge);
//0的显示码为0x30
//时分秒显示程序
voidwsfm(uchardz,ucharsj)
w1602zl(tw0+dz);
//第二行首地址+要写入的地址
//星期天写入函数
voidwxq(ucharxq)
w1602zl(one+0x0f);
w1602sj(0x30+xq);
//LCD初始化函数
voidlcdcs()
uchark;
w1602zl(0x38);
//16*2,5*7点阵,8位数据
w1602zl(0x0c);
//开显示,不显示光标,不闪烁
w1602zl(0x06);
//显示光标,光标右移
w1602zl(0x01);
//清屏
w1602zl(one);
//写入第一行不改变的部分
for(k=0;
k<
16;
k++)
w1602sj(xian1[k]);
w1602zl(tw0+4);
//写入第二行不改变的部分
8;
w1602sj(xian2[k]);
//LCD1初始化函数
voidlcdcs1()
9;
w1602sj(xian3[k]);
5系统操作说明
最后成型的万年历操作比较怕简单,总共7个按键,分三个模块,正常调时有功能键,加减键;
定时模式有三个键,分别是所调对象,以及对所条对象的加减键;
复位模式有一个复位键。
此外还有一个调节液晶显示亮度的可调电阻。
界面比较简单易懂。
6结束语
课程设计的目的并不只是为了让我们做出一个简单的硬件出来,我们首先要完善我们的软件系统,这样做出来的硬件才会更见完美。
当然,完善的软件首先建立在我们对硬件的了解。
软硬件结合,加上过硬的焊工,我相信,我们做出来的课程设计一定最完美。
课程设计让我们更加贴近生活,了解我们所学的知识在生活中的应用,增加学习的兴趣,同时吧我们这一学期所学的知识做一个总结,也为我们下学期所要学的嵌入式打下基础。
7参考文献
1.郑峰等编著.51单片机应用系统典型开发大全(第二版).[M]中国铁道出版社,2011.3
2.张毅刚,彭喜元编著.单片机原理与应用设计.[M]北京:
电子工业出版社,2008.4
3.张义和等编著.例说51单片机(C语言版)(第3版).[M]北京:
人民邮电出版社,2010.6
8系统原理图
附录1
程序清单
//声明变量
#include<
reg51.h>
#defineuintunsignedint
#defineucharunsignedchar
#defineone0x80
#definetw00xc0
#definedu_miao0