云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于DS1302与LCD1602的电子日历时钟的设计与实现 - 图文

基于DS1302与LCD1602的电子日历时钟的设计与实现 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 18:54:05

4 5 6 7 8 RS R/W E D0 D1 数据/命令选择 读/写选择 使能信号 数据 数据 12 13 14 15 16 D5 D6 D7 BLA BLK 数据 数据 数据 背光源正极 背光源负极 表1:引脚接口说明表

第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脚:背光源负极。

1602LCD的一般初始化(复位)过程

延时15mS

写指令38H(不检测忙信号)

延时5mS

写指令38H(不检测忙信号)

延时5mS

写指令38H(不检测忙信号)

以后每次写指令、读/写数据操作均需要检测忙信号

写指令38H:显示模式设置 写指令08H:显示关闭 写指令01H:显示清屏

写指令06H:显示光标移动设置 写指令0CH:显示开及光标设置

3.LCD1602液晶显示 如图8所示:

图8 LCD液晶显示

9

第三章 系统的软件设计

3.1 主程序流程图

图-A 主程序流程图

主程序:

void LcdDisplay();

/*******************************************************************************

* 函数名 : main

* 函数功能 : 主函数 * 输入 : 无 * 输出 : 无

*******************************************************************************/

void main()

10

{

LcdInit(); Ds1302Init(); while(1) {

Ds1302ReadTime(); LcdDisplay(); } }

/*******************************************************************************

* 函数名 : LcdDisplay() * 函数功能 : 显示函数 * 输入 : 无 * 输出 : 无

*******************************************************************************/

void LcdDisplay() {

LcdWriteCom(0x80+0X40);

LcdWriteData('0'+TIME[2]/16); //时 LcdWriteData('0'+(TIME[2]&0x0f)); LcdWriteData('-');

LcdWriteData('0'+TIME[1]/16); //分 LcdWriteData('0'+(TIME[1]&0x0f)); LcdWriteData('-');

LcdWriteData('0'+TIME[0]/16); //秒 LcdWriteData('0'+(TIME[0]&0x0f));

LcdWriteCom(0x80); LcdWriteData('2'); LcdWriteData('0');

LcdWriteData('0'+TIME[6]/16); //年 LcdWriteData('0'+(TIME[6]&0x0f)); LcdWriteData('-');

LcdWriteData('0'+TIME[4]/16); //月 LcdWriteData('0'+(TIME[4]&0x0f)); LcdWriteData('-');

LcdWriteData('0'+TIME[3]/16); //日 LcdWriteData('0'+(TIME[3]&0x0f)); LcdWriteCom(0x8D);

LcdWriteData('0'+(TIME[5]&0x07)); //星期

11

3.2 DS1302子程序

#include\

//---DS1302写入和读取时分秒的地址命令---// //---秒分时日月周年 最低位读写位;-------//

uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};

//---DS1302时钟初始化2013年1月1日星期二12点00分00秒。---// //---存储顺序是秒分时日月周年,存储格式是用BCD码---// uchar TIME[7] = {0x00, 0x24, 0x12, 0x01, 0x01, 0x02, 0x13};

/*******************************************************************************

* 函 数 名 : Ds1302Write * 函数功能 : 向DS1302命令(地址+数据) * 输 入 : addr,dat * 输 出 : 无

*******************************************************************************/

void Ds1302Write(uchar addr, uchar dat) {

uchar n; RST = 0; _nop_();

SCLK = 0;//先将SCLK置低电平。 _nop_();

RST = 1; //然后将RST(CE)置高电平。 _nop_();

for (n=0; n<8; n++)//开始传送八位地址命令 { DSIO = addr & 0x01;//数据从低位开始传送 addr >>= 1; SCLK = 1;//数据在上升沿时,DS1302读取数据 _nop_(); SCLK = 0; _nop_(); }

12

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

4 5 6 7 8 RS R/W E D0 D1 数据/命令选择 读/写选择 使能信号 数据 数据 12 13 14 15 16 D5 D6 D7 BLA BLK 数据 数据 数据 背光源正极 背光源负极 表1:引脚接口说明表 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com