challis 发表于 2024-1-25 11:40:18

添加EA=1后,烧录,数码管能正确显示2了,测量了下数码管阴极和阳极之间的电压,发现是1.86v,之前1.61v显示非常暗淡,只提高了0.2v,亮度差距居然这么大!

challis 发表于 2024-1-25 11:42:17

接着开始使用定时器循环显示4个数码管,利用高刷新率来欺骗人眼达到看起来是同时点亮的样子

challis 发表于 2024-1-25 11:44:13

定时器是1ms中断一次,每次中断切换显示下一个数码管,利用之前写好的ShowSeg函数,定时器中实现起来非常简单:uchar seg_pos = 0x01;
void Timer4_Isr(void) interrupt 20
{
    if(seg_pos > 0x08)
      seg_pos = 0x01;
    ShowSeg(seg_led_data,seg_pos);
    seg_pos<<=1;
}
这里简单显示1,2,4,8这4个数字用来测试

challis 发表于 2024-1-25 11:47:41

烧录程序,数码管能正常显示4位数字了,这里发现一个小问题,显示的1特别亮,而8会暗淡一些,是不是数码管中的发光二极管点亮的越多,显示就越暗淡?数码管中的发光二极管应该是并联的,不会分走电压,为什么亮度会变化呢?

challis 发表于 2024-1-25 11:50:11

不太明白为什么显示亮度会有明显差异,有知道的大佬麻烦告诉我一下,多谢了!
准备先跳过这个问题,晚上再接着做时间流逝控制,以及实现分/秒中间的 : 闪烁

peterwangjp 发表于 2024-1-25 12:10:27

端口直接驱动LED 没有串联电阻么?

wangxiangtan 发表于 2024-1-25 14:01:04

弄好了来汇报战果

小涵子爸爸 发表于 2024-1-25 14:10:58

A、B、C、D、E、F、G、DP都需要加限流电阻,可以试试1K,IO模式设置为推挽输出

challis 发表于 2024-1-26 10:59:51

共阳极的数码管电阻是加在阳极还是阴极的A、B、C、D、E、F、G、DP脚上?

challis 发表于 2024-1-26 11:01:06

peterwangjp 发表于 2024-1-25 12:10
端口直接驱动LED 没有串联电阻么?

嗯,我用3.7v电压,试了试感觉数码管不会烧掉,就没加电阻,这种情况也需要加电阻么?
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: 从零开始做一个数码管时钟-开天斧,程序开源 | 已完结