LCD1602高刷滚动显示汉字(89C52RC)
本帖最后由 STC8G1K08A 于 2023-2-1 01:56 编辑上个月捡到一块开发版
上贴地址:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=89&extra=
图1 开发版
利用上面的外设做了个实时时钟
图2 还是开发版
后来又给它设计了块板(嘉立创工程链接在后面)
图3 自己设计的板子
第一次设计那么紧凑的板子,出了各种各样的问题,例如:
DS1302芯片有问题,内部RAM无法使用;
LCD1602乱码;
伪劣晶振达不到40MHz;
74HC245封装不对等等。
修修补补用了一个月(其实大部分时间在摸鱼)
送给朋友两块,反馈还不错(开不了机)
但是自己的这块稳定运行了半个月,
所以是时候把程序放出来了(在最后)
///////////////////////////////////////////////////////*分割线*///////////////////////////////////////////////////////
运行图片:
图4 时钟样式1 大字体
上下键可切换菜单
图5 时钟样式1 小字体
数字滑动刷新
图6 温湿度 汉字滚动显示
左键可切换副屏显示内容(温湿度→日期→时间)
图7 确认键进入时间设置
确认键进入设置
图8 按右键进入闹钟设置(最多8个)
左键开启/关闭闹钟,确认键设置时间
图9 闹钟响 数码管闪烁
可按任意键关闭闹钟
IO口使用情况:
P0 数码管段选(必须加上拉电阻)
P1 LCD1602数据端
P2.0~P2.2 接74HC138作数码管位选
P2.3~P2.5 DS1302实时时钟
P2.6 接S8550驱动有源蜂鸣器
P2.7 DHT11温湿度传感器
P3.0~P3.4 五向按键
P3.5~P3.7 LCD1602控制端
演示视频地址:https://www.bilibili.com/video/BV1Bs4y1s7QJ/
工程文件地址:https://oshwhub.com/cv90_105/LCD1602shu-ma-guan-shi-zhong
程序代码(请用keil5 c51版打开)
祝您使用愉快
很牛的创作!!!!! LCD1602是怎么显示汉字的? 本帖最后由 红心A 于 2023-2-4 10:44 编辑
飞哥 发表于 2023-2-3 18:27
LCD1602是怎么显示汉字的?
https://www.stcai.com/syx 在我们的STC8H8K64U实验箱和STC32G12K128实验箱上均匀范例程序,可以试下。 本帖最后由 STC8G1K08A 于 2023-2-4 11:09 编辑
飞哥 发表于 2023-2-3 18:27
LCD1602是怎么显示汉字的?
需要用到1602的CGRAM。
众所周知,将光标定位到屏幕左上角需发送命令0x80,左下角则是0xC0,那么除了显示地址,其它地址是干什么用的呢?
0x40~0x7F这64个字节就是CGRAM部分。64个字节分为8份,每份可储存一个自定义字模。
由于1602每个分块有5x8个像素,所以8个字节就能表示一个自定义字模。
总共8个字模,第一个0x40~0x47,第二个0x48~0x4F……第八个0x78~0x7F。
如果要存入第一个字模,先发命令0x40,再连续发8个数据,就能写入第一个CGRAM。
存入字模后,发送命令定位光标(如0x80)到屏幕上,再发送数据0x00即可显示第一个字模。
第二个就是0x01,第三个0x02,以此类推,第八个是0x07。
值得一提的是,CGRAM可以在屏幕上多处同时显示,如果CGRAM中的内容变化,则这几个地方也会同时变化。
至于滚动效果,算法有亿点复杂,这里不展开了,具体请看程序。 红心A 发表于 2023-2-4 10:42
https://www.stcai.com/syx
大哥,你们那是高端的12864,我这是低端的1602,不通用的
STC8H实验箱有个简单的LCD1602的参考程序
支持,收藏了 收藏了:victory:
页:
[1]
2