找回密码
 立即注册
楼主: cha***

从零开始做一个数码管时钟-开天斧,程序开源 | 已完结

[复制链接]
  • TA的每日心情
    开心
    昨天 07:27
  • 签到天数: 85 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    527

    积分

    高级会员

    积分
    527
     楼主| 发表于 2024-1-25 11:40:18 | 显示全部楼层
    添加EA=1后,烧录,数码管能正确显示2了,测量了下数码管阴极和阳极之间的电压,发现是1.86v,之前1.61v显示非常暗淡,只提高了0.2v,亮度差距居然这么大!
    IMG_20240125_085704R.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:27
  • 签到天数: 85 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    527

    积分

    高级会员

    积分
    527
     楼主| 发表于 2024-1-25 11:42:17 | 显示全部楼层
    接着开始使用定时器循环显示4个数码管,利用高刷新率来欺骗人眼达到看起来是同时点亮的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:27
  • 签到天数: 85 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    527

    积分

    高级会员

    积分
    527
     楼主| 发表于 2024-1-25 11:44:13 | 显示全部楼层
    定时器是1ms中断一次,每次中断切换显示下一个数码管,利用之前写好的ShowSeg函数,定时器中实现起来非常简单:
    1. uchar seg_pos = 0x01;
    2. void Timer4_Isr(void) interrupt 20
    3. {
    4.     if(seg_pos > 0x08)
    5.         seg_pos = 0x01;
    6.     ShowSeg(seg_led_data[seg_pos],seg_pos);
    7.     seg_pos<<=1;
    8. }
    复制代码

    这里简单显示1,2,4,8这4个数字用来测试
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:27
  • 签到天数: 85 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    527

    积分

    高级会员

    积分
    527
     楼主| 发表于 2024-1-25 11:47:41 | 显示全部楼层
    烧录程序,数码管能正常显示4位数字了,这里发现一个小问题,显示的1特别亮,而8会暗淡一些,是不是数码管中的发光二极管点亮的越多,显示就越暗淡?数码管中的发光二极管应该是并联的,不会分走电压,为什么亮度会变化呢?
    IMG_20240125_085941R.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:27
  • 签到天数: 85 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    527

    积分

    高级会员

    积分
    527
     楼主| 发表于 2024-1-25 11:50:11 | 显示全部楼层
    不太明白为什么显示亮度会有明显差异,有知道的大佬麻烦告诉我一下,多谢了!
    准备先跳过这个问题,晚上再接着做时间流逝控制,以及实现分/秒中间的 : 闪烁
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-5-8 21:05
  • 签到天数: 47 天

    [LV.5]常住居民I

    0

    主题

    24

    回帖

    278

    积分

    中级会员

    积分
    278
    发表于 2024-1-25 12:10:27 | 显示全部楼层
    端口直接驱动LED 没有串联电阻么?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 08:08
  • 签到天数: 176 天

    [LV.7]常住居民III

    12

    主题

    352

    回帖

    1168

    积分

    金牌会员

    积分
    1168
    发表于 2024-1-25 14:01:04 | 显示全部楼层
    弄好了来汇报战果
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    0

    主题

    407

    回帖

    494

    积分

    中级会员

    积分
    494
    发表于 2024-1-25 14:10:58 | 显示全部楼层
    A、B、C、D、E、F、G、DP都需要加限流电阻,可以试试1K,IO模式设置为推挽输出
    靡不有初,鲜克有终
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:27
  • 签到天数: 85 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    527

    积分

    高级会员

    积分
    527
     楼主| 发表于 2024-1-26 10:59:51 | 显示全部楼层
    共阳极的数码管电阻是加在阳极还是阴极的A、B、C、D、E、F、G、DP脚上?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:27
  • 签到天数: 85 天

    [LV.6]常住居民II

    13

    主题

    199

    回帖

    527

    积分

    高级会员

    积分
    527
     楼主| 发表于 2024-1-26 11:01:06 | 显示全部楼层
    peterwangjp 发表于 2024-1-25 12:10
    端口直接驱动LED 没有串联电阻么?

    嗯,我用3.7v电压,试了试感觉数码管不会烧掉,就没加电阻,这种情况也需要加电阻么?
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 01:59 , Processed in 0.070027 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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