请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 4824|回复: 12

LCD1602高刷滚动显示汉字(89C52RC)

[复制链接]

该用户从未签到

4

主题

4

回帖

91

积分

注册会员

积分
91
发表于 2023-1-31 16:44:59 | 显示全部楼层 |阅读模式
本帖最后由 STC8G1K08A 于 2023-2-1 01:56 编辑

上个月捡到一块开发版
上贴地址:https://www.stcaimcu.com/forum.p ... p;tid=89&extra=
101713bpubape7ap7jm11x.jpg
图1 开发版

利用上面的外设做了个实时时钟
101712lhdllzrl5500vbs5.jpg
图2 还是开发版

后来又给它设计了块板(嘉立创工程链接在后面)
IMG_20230131_141505.jpg
图3 自己设计的板子

第一次设计那么紧凑的板子,出了各种各样的问题,例如:
DS1302芯片有问题,内部RAM无法使用;
LCD1602乱码;
伪劣晶振达不到40MHz;
74HC245封装不对等等。
修修补补用了一个月(其实大部分时间在摸鱼)
送给朋友两块,反馈还不错(开不了机)
但是自己的这块稳定运行了半个月,
所以是时候把程序放出来了(在最后)

///////////////////////////////////////////////////////*分割线*///////////////////////////////////////////////////////

运行图片:
001.JPG
图4 时钟样式1 大字体
上下键可切换菜单

002.JPG
图5 时钟样式1 小字体
数字滑动刷新

003.JPG
图6 温湿度 汉字滚动显示
左键可切换副屏显示内容(温湿度→日期→时间)

006.JPG
图7 确认键进入时间设置
确认键进入设置

007.JPG
图8 按右键进入闹钟设置(最多8个)
左键开启/关闭闹钟,确认键设置时间

008.JPG
图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 数码管时钟(公开版).rar

134.34 KB, 下载次数: 835

回复 送花

使用道具 举报

  • TA的每日心情
    开心
    2024-2-24 15:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    7

    主题

    30

    回帖

    255

    积分

    中级会员

    积分
    255
    发表于 2023-2-2 12:09:53 | 显示全部楼层
    很牛的创作!!!!!
  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 104 天

    [LV.6]常住居民II

    13

    主题

    52

    回帖

    1233

    积分

    金牌会员

    积分
    1233
    发表于 2023-2-3 18:27:04 来自手机 | 显示全部楼层
    LCD1602是怎么显示汉字的?
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    11

    主题

    181

    回帖

    1786

    积分

    版主

    积分
    1786
    QQ
    发表于 2023-2-4 10:42:06 | 显示全部楼层
    本帖最后由 红心A 于 2023-2-4 10:44 编辑
    飞哥 发表于 2023-2-3 18:27
    LCD1602是怎么显示汉字的?

    1.png
    1.png
    https://www.stcai.com/syx
    QQ:1638975601
    手机:19952583876
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    11

    主题

    181

    回帖

    1786

    积分

    版主

    积分
    1786
    QQ
    发表于 2023-2-4 10:45:17 | 显示全部楼层
    在我们的STC8H8K64U实验箱和STC32G12K128实验箱上均匀范例程序,可以试下。
    QQ:1638975601
    手机:19952583876

    该用户从未签到

    4

    主题

    4

    回帖

    91

    积分

    注册会员

    积分
    91
     楼主| 发表于 2023-2-4 11:06:31 | 显示全部楼层
    本帖最后由 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中的内容变化,则这几个地方也会同时变化。
    至于滚动效果,算法有亿点复杂,这里不展开了,具体请看程序。

    该用户从未签到

    4

    主题

    4

    回帖

    91

    积分

    注册会员

    积分
    91
     楼主| 发表于 2023-2-5 17:16:41 | 显示全部楼层
    红心A 发表于 2023-2-4 10:42
    https://www.stcai.com/syx

    大哥,你们那是高端的12864,我这是低端的1602,不通用的

    该用户从未签到

    538

    主题

    8734

    回帖

    1万

    积分

    管理员

    积分
    14193
    发表于 2023-2-5 17:21:49 | 显示全部楼层


    STC8H实验箱有个简单的LCD1602的参考程序
    1.png
    2.png

  • TA的每日心情
    奋斗
    2024-2-1 21:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    3

    主题

    32

    回帖

    284

    积分

    中级会员

    积分
    284
    发表于 2023-3-17 16:48:19 | 显示全部楼层
    支持,收藏了

    该用户从未签到

    4

    主题

    18

    回帖

    170

    积分

    注册会员

    积分
    170
    发表于 2023-3-22 16:20:06 | 显示全部楼层
    收藏了:victory:
    回复 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-3-29 20:04 , Processed in 0.073250 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表