傻大方


首页 > 学习 >

基于|基于单片机C51的简单万年历设计毕业设计( 二 )



按关键词阅读: 设计 单片机 基于 简单 毕业设计 C51 万年历


4.2.2LCD1602指令1602液晶模块内部的控制器共有11条控制指令 , 如表4.2.3编号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符 。

8、移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容表4.2.3 LCD1602的指令说明1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的 。
(说明:1为高电平、0为低电平)指令1:清显示 , 指令码01H,光标复位到地址00H位置 。
指令2:光标复位 , 光标返回到地址00H 。
指令3:光标和显示模式设置 I/D:光标移动方向 , 高电平右移 , 低电平左移 S:屏 。

9、幕上所有文字是否左移或者右移 。
高电平表示有效 , 低电平则无效 。
指令4:显示开关控制 。
D:控制整体显示的开与关 , 高电平表示开显示 , 低电平表示关显示 C:控制光标的开与关 , 高电平表示有光标 , 低电平表示无光标 B:控制光标是否闪烁 , 高电平闪烁 , 低电平不闪烁 。
指令5:光标或显示移位 S/C:高电平时移动显示的文字 , 低电平时移动光标 。
指令6:功能设置命令 DL:高电平时为4位总线 , 低电平时为8位总线 N:低电平时为单行显示 , 高电平时双行显示 F: 低电平时显示5x7的点阵字符 , 高电平时显示5x10的点阵字符 。
指令7:字符发生器RAM地址设置 。
指令8:DDRAM地址设置 。
指令9:读忙信号和光标地址 BF:为 。

10、忙标志位 , 高电平表示忙 , 此时模块不能接收命令或者数据 , 如果为低电平表示不忙 。
指令10:写数据 。
指令11:读数据 。
4.2.3 LCD1602读/写操作LCD1602基本操作时序说明 , 如表4.2.4读状态输入RS=L , R/W=H , E=H输出D0D7=状态字写指令输入RS=L , R/W=L , D0D7=指令码 , E=高脉冲输出无读数据输入RS=H , R/W=H , E=H输出D0D7=数据写数据输入RS=H , R/W=L , D0D7=数据 , E=高脉冲输出无表4.2.4 LCD1602基本操作时序说明4.2.4 LCD1602显示模块流程图按下按键?开始LCD 1602初始界面显示欢迎界面显示初始时间结束NY4.3. 。

11、 键盘模块本设计采用4乘4键盘的反转法控制万年历的计时和时间设定 , 4乘4键盘电路图如图图4.3.1图4.3.2012348+59-674.3.1键盘功能图开始对键盘进行扫描 , 返回键值键值为+或-?键值为?键值为?键值为09?键值为13?4.4.2流程图N YYNN YY NNYY NNYNY5、 实现结果6、 系统的实用性及创新性基本功能:能显示当前时间和计时 , 实现基本时钟功能 。
创新性:界面友好 , 能实现计时和键盘数字的时间设定和自增、自减的时间设定 。
7、 调节中遇到的问题及心得体会问题一LCD1602的初始化不规范 , 导致无法正确在LCD1602上显示相应的字符 , 时间等 。
解决在网上及课本上查找有 。

12、关LCD1602初始化的程序 , 找出错误的地方并及时改正 , 最终解决了LCD1602的初始化问题 。
问题二在对秒、分、时、日、月、年等的大小判断时 , 采用逐位判断 , 导致程序冗长 , 不利于程序的优化 。
解决通过老师的指导及其他相关程序的借鉴 , 对时间大小的判断进行优化 , 将秒的十位和各位合为一个整体进行判断 , 分、时、日、月、年类似 。
问题三在计时模块中 , 因为细节问题 , 找不到导致不能正常计时的原因 。
解决通过老师的精心指导 , 找到不能正常计时的原因 , 将中断次数的判断if(count100)改为if(count=100)即可 。
问题四在键盘设计模块中 , 对空数组的定义无效 。
解决通过查找相关资料 , 了解到空数组的定义要放在dat 。

13、a中 , 不能放在code中 。
将空数组定义为uchar a14使其默认放在data中就解决了该问题 。
8、 程序设计5.6.7.8.8.1. 流程图开始显示“SHOWTIME”界面WELCOME设置键按下?显示当前时间键盘数字进行时间设置键盘自增、自减进行时间设置开始计时按键开始按下?NYYY8.2. 源代码#include#define uchar unsigned char#define uint unsigned int uchar code Buffer4=0xfe,0xfd,0xfb,0xf7;
uchar code table=0,1,2,3,4,5,6,7,8,9,+,-,!,;
uch 。

14、ar code w14=0x83,0x84,0x85,0x86,0x88,0x89,0x8b,0x8c,0xc4,0xc5,0xc7,0xc8,0xca,0xcb;
uchar a14;
sbit E=P27;
/1602使能引脚sbit RW=P26;
/1602读写引脚sbit RS=P25;
/1602数据/命令选择引脚void Delay(uint xms);
/延时void Time0_Init();


稿源:(未知)

【傻大方】网址:/a/2021/0711/0022846012.html

标题:基于|基于单片机C51的简单万年历设计毕业设计( 二 )


上一篇:天津|天津主干路跨河桥箱梁施工平台施工方案(附图,验算)

下一篇:社会转型|社会转型背景下高管团队与公司创业关系探讨