灯光提醒万年历正版+参考论文 - 图文(5)

2019-08-17 13:28

福建信息职业技术学院毕业实习(论文)

表4 显示模式设置

指令码

0

0

1

1

1

0

0

0

功能

设置16*2显示,5*7点阵,8位数据接口

2)显示开/关及光标设置如表6:

表7 显示开/关及光标设置 指令码 0 0

0

0

1

D

C

功能

B D=1开显示;D=0关显示

C=1显示光标;C=0不显示光标 B=1光标闪烁;B=0光标不显示

S N=1当读或写一个字符后地址指针加一,

且光标加一

N=0当读或写一个字符后地址指针减一,且光标减一

S=1当写一个字符,整屏显示左移(N=1)

0 0 0 0 0 1 N

3.4.2 LCD1602与MCU的接口电路

LCD的D0~D7分别接单片机的的P0口,作为数据线,因为P0口内部没有上

拉电阻,所以外部另外加上4.7K的上拉电阻;P2.5—P2.7分别接LCD的RS、RW、 E三个控制管脚;RV1用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯。如图18

图18 显示电路

15

福建信息职业技术学院毕业实习(论文)

其中1602的第3脚接10K与1.5K的串联电阻起到分压作用,能够调节第一行与第二行亮度对比。第16接个三极管的作用放大,是为了能够让液晶显示器的背光灯亮起,从而在夜间也能观看万年历。 3.5按键模块设计

本系统用到了4个按键,其中一个用作系统手动复位,另外4个采用独立按键,该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图19所示,4个独立按键分别与STC89C52的P3.0、P3.1、P3.2、P3.3接口相连。 S2P32S3P33S4P34

图19 按键电路

对以上4个按键作简要说明:K1——SET 键,K2——UP键,K3——DOWN键,K4——OUT/STOP键。

SET 键:按下SET键进入时间校准状态,按一下进入秒调整,两下分调整,依此类推可进行各年月日,时分秒以及星期的校准;

UP键:当SET键按下时,UP进行SET选定项(如:小时)的加操作;

DOWN键:当SET键按下时,DOWN进行SET选定项(如:小时)的减操作; OUT键:当OUT键按下时,此键功能为退出校准功能,进入下一模式,显示温度值和上下限的温度值。 4 系统软件的设计

电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。

本系统的软件部分主要要进行公历计算程序设计,温度测量程序设计,按键的扫描输入等。程序开始运行后首先要进行初始化,把单片机的各引脚的状态按程序里面的初始化命令进行初始化,初始化完成后运行温度测量程序,读取出温度传感器测量出来的温度,然后运行公历计算程序,得到公历的时间、日期信息,再运行按键扫描程序,检测有无按键按下,如果没有按键按下则直接调用节日计算程序,根据得到的公历日期信息计算出节日,如果有按键按下则更新按键修改后的变量后送给节日计算程序,由节日计算程序根据修改后的变量计算出对应的节假日,计算完成后运行显示程序,显示程序将得到的温度数据、公历信息、节假日信息送给对应的数码管让其显示。

17

福建信息职业技术学院毕业实习(论文)

4.1主程序流程图的设计 主程序流程图如图20

开始 DS1302初始化 设置DS1302 读年月日星期时分秒 将读取的数据处理后送液晶屏显示 返回

图20 主程序流程图

17

福建信息职业技术学院毕业实习(论文)

4.2 程序设计

4.2.1 DS1302读写程序设计

本系统的时间读取主要来源于单片机对DS1302的操作,在硬件上时钟芯片DS1302与单片机的连接需要三条线,即SCLK(7)、I/O(6)、RST(5),具体连接图见系统硬件设计原理图。读取写程序设计如下: 函 数 名:RTInputByte()

功 能:实时时钟写入一字节

说 明:往DS1302写入1Byte数据 (内部函数) 入口参数:d 写入的数据 返 回 值:无

void RTInputByte(uchar d) {

uchar i; ACC = d;

for(i=8; i>0; i--) {

T_IO = ACC0; /*相当于汇编中的 RRC */ T_CLK = 1; T_CLK = 0;

ACC = ACC >> 1; }

18

系统软件的设计

函 数 名:RTOutputByte()

功 能:实时时钟读取一字节

说 明:从DS1302读取1Byte数据 (内部函数) 入口参数:无 返 回 值:ACC

uchar RTOutputByte(void) {

uchar i;

for(i=8; i>0; i--) {

ACC = ACC >>1; /*相当于汇编中的 RRC */ ACC7 = T_IO; T_CLK = 1; T_CLK = 0; }

return(ACC); }

函 数 名:W1302()

功 能:往DS1302写入数据

说 明:先写地址,后写命令/数据 (内部函数) 调 用:RTInputByte() , RTOutputByte()

入口参数:ucAddr: DS1302地址, ucData: 要写的数据 返 回 值:无

void W1302(uchar ucAddr, uchar ucDa) {

T_RST = 0; T_CLK = 0; T_RST = 1;

RTInputByte(ucAddr); /* 地址,命令 */ RTInputByte(ucDa); /* 写1Byte数据*/ T_CLK = 1; T_RST = 0; }

函 数 名:R1302()

功 能:读取DS1302某地址的数据

说 明:先写地址,后读命令/数据 (内部函数) 调 用:RTInputByte() , RTOutputByte() 入口参数:ucAddr: DS1302地址

19


灯光提醒万年历正版+参考论文 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考倒计时台历模板 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: