基于stc89c52单片机电子钟设计内容摘要:

2 627P 2 021P 2 526P 2 122P 2 425P 2 223P 2 324G N D208 0 5 2R12 0 0R21 0 K复位按键C11 0 u FC23 0 u FC33 0 u FC41 0 u FC50 .1 u FXTG N DG N DV C C+ 5 VV C C+ 5 VG N D 图 STC89C52 最小系统 LCD1602 液晶显示器介绍 LCD 1602 液晶概述 工业字符型液晶, LCD1602 是指显示的内容为 16*2,能同时显示两行,每行 16 个字符。 常见的 1602 字符液晶有两种,一种显示绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上绝大多数基于 HD44780 液晶芯片控制,原理是完 全相同的。 本课题所用 LCD1602 液晶模块,显示屏是蓝色背光白色字体。 如图 所示 7 1 2 310987654111213141516GNDVCCVOD1D0ER/WRSD2D3D4D5D6D7BLABLKL C D 1 6 0 2 图 LCD 1602 字符液晶 LCD1602 引脚介绍 (如表 ) 编号 符号 引脚说明 编号 符号 引脚说明 1 GND 电源地 2 VCC 电源正极 3 VO 液晶显示对比度调节端 4 RS 数据 /命令选择端 5 R/W 读写选择 6 E 使能信号 7 D0 数据口 8 D1 数据口 9 D2 数据口 10 D3 数据口 11 D4 数据口 12 D5 数据口 13 D6 数据口 14 D7 数据口 15 BLA 背光电源正 16 BLK 背光电源负 表 LCD1602 字符液晶引脚说明 各个引脚具体功能说明: 第 1 脚: GND 为地电源。 第 2 脚: VCC 接 5V 正电源。 第 3 脚: VO 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用一个 1K 的电位器调整对比度。 第 4 脚: RS 为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。 第 5 脚: R/W 为读写信号线,高电平时进行读 操作,低电平时进行写操作。 第 6 脚: E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 8 第 7~14 脚: DB0~DB7 为 8 位双向数据线。 第 15~16 脚:背光灯电源。 LCD1602 字符液晶使用方法 ( 1)基本操作时序 (如表 、图 、 5) 操作 输入 输出 读状态 RS= L, RW= H, E= H D0~D7=状态字 读数据 RS= H, RW= H, E= H D0~D7=数据 写数据 RS= H, RW= L, D0~D7=数据, E=高脉冲 无 表 LCD1602 字符液晶读写状态 表 图 LCD1602 液晶写时序图 图 LCD1602 液晶读时序图 ( 2) RAM 9 LCD1602 液晶控制器芯片内部带有 80 个 8 位的 RAM 缓冲区,其地址和屏幕的对应关系如图 示 图 RAM 缓冲区 电路设计框图 (如图 ) 图 系统框图 系统流程图 (如图 ) STC 89C52 LCD 显示模块 键盘模块 10 开始 显示年、月、日、星期,时、分、秒 是否有调 按 K13 键 1下 2下 3下 4下 5下 6下 7下 调秒 调分 调时 调年 调月 调日 调星期 按 K14 键、加 1 按 K15 键、减 1 是否调完 按 K16 键 N Y N Y 返回、显示主程序 图 系统流程图 11 硬件框图 LCD1602 框图 程序主要实现对信息的显示,包括年、月、日、星期、时、分、秒等信息,在这里要注意它的读写控制指令。 其流程图如图 所示。 开始 RW 和 E 都置零 设置点阵 8 位数据接口,两行显示 开显示,不 显示光标 地址指针加 1,画面不一定 刷新,全部清零 给地址,从第一行开始写 显示第一行数据 给第二行地址,显示第二行数据 结束 图 LCD1602 初始化流程图 12 STC89C52 框图 (如图 ) 图 STC89C52 框图 N 24 小时到。 分单元清零,时单元加 1 N N N Y Y 时单元清零 时间显示 中断返回 开始 一秒时间到。 60 秒时间到。 60 分钟到。 秒单元加 1 秒单元清零,分单元加 1 Y Y 13 编程思路 编 程思路是,在确定了时钟要实现的功能后按照上述各按键所实现的效果编写程序。 本程序包含液晶写指令函数( write_())、写数据函数(write_data())、初始化函数 (init())、写入时分秒函数( write_sfm())、写入月和日函数( write_nyr())【别指出,由于年包含四位数字其写法与月和日不同,故单独设置一个写入年函数】、写入星期函数( write_xq())和键盘扫描函数,这 些程序围绕主函数互相嵌套调用。 系统评价 此时钟设计是利用 STC89C52 单片机进行设计,基本上实现了课程设计要求实现的功能。 硬件部分设置了的 4 个按键。 当按键 K13 按下时,进入光标显示状态,计数器停止工作,时钟也停止,进入设置时间的状态。 在 K13 按下的情况,按键 K14 按下时,对应光标的数据随着 K14 按键的按下的次数而变化,具体是按键一次就是增加一个单位。 在 K13 按下的情况,按键 K15 按下时,对应光标的数据随着 K15 按键的按下的次数而变化,具体是按键一次就是少一个单位。 在增加和减少设置的选项中也加入了闰 年平年的判断,更利于设置。 K16 按下的时候,推出设置状态,计数器工作,开始计时。 调试阶段,出现一些问题。 比如,实际小时显示到 29 才归零,分钟显示到 60 才进一„„ ,以上问题均一一排除,结果达到预期目标。 但时间有限,1,按键问题。 我的设计中,很多功能选择是通过按键开关实现的。 在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间,日期很不方便。 但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提 高了不少,不怎么会出现跳变的情况了。 有些开关我采用了长按键的方式来防抖,效果不 错,但是每次都要长按键,调整效率太低,我没有普及。 本来想把所有的按键都加延时防抖电路,但仿真中感觉对键盘的控制力没提高多少,有时还是会出问题,这个方案放弃了。 索性将板子焊接出来了在调试软件吧,仿真毕竟不是那么“真”啊。 实际电路调试中,按键反应没有出现过于灵敏的问题,基本可控制。 出现以上问题,我认为是电路板上焊接点太多,接触不是很好,影响了信号 14 的传输时间,从而解决了按键问题。 也有可能是按键质量问题,接触不良。 心得体会 一分耕耘,一分收获。 只有亲自用实践来验证这句话,在能得其要领。 经过这次单片机课程设计 ,我从一个单片机实践的门外汉,已经越升为略知一二的新手。 虽然还有很多有关单片机的应用有待学习,但万变不离其宗,只要深入了解单片的原理,全部知识点,各个细节,一切设计皆有可能。 在实验的开始几天,基本上没有收获,不知何从下手,不知所措。 为了看得更远,不妨站在前人的肩膀上,我在整体思路模糊的情况下,在网上大量招资粮,各种与电子时钟相关的文章,我阅读了不少。 随着涉猎的点滴积累,我对电子时钟的设计方案已经慢慢酝酿而成。 有了方向和不少知识储备后,在接下来的几天,几乎每天都有突破,虽然有时只是一句程序的修改或诞生,但那 种收获的感觉很暖人心。 ( 1)、 瓮嘉民 单片机应用开发技术 中国电力出版社 ( 2)、 肖婧 单片机系统设计与仿真 北京航空航天大学出版社 ( 3)、 张晓乡 89C51 单片机实用教程 电子工业出版社 ( 4)、 于海生 微型计算机控制技术 清华大学出版社 ( 5)、 孙涵芳 MCS51 系列单片机原理及应用 北京航空航天大学社 ( 6)、 黄正谨 综合电子设计与实践 东南大学出版社 ( 6)、 杨欣等 电子设计从零开始 清华大学出版社 ( 7)、 谢嘉奎 电子线路 高等教育出版社 ( 8)、 王毓银 数字电路逻辑设计 高等教育出版社 ( 9)、。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。