这是秒表的程序。采用静态数码管,应该是用两个数码管,可用共阳数码管分别接在P0口,P2口上。计时可用定时器T0定时50ms,并计中断20次为1秒,加法计60秒并送数码管显示出来即可。仿真图如下。
汇总: 00 单片机STC89C52学习
参考教程:普中科技
单片机系统中常用的显示器有:
LED显示器有两种显示结构:
共阴数码管码表(0~F):
0x3f , 0x06 , 0x5b , 0x4f ,
0x66 , 0x6d , 0x7d , 0x07 ,
0x7f , 0x6f , 0x77 , 0x7c ,
0x39 , 0x5e , 0x79 , 0x71 ,
0x00 无显示
静态显示原理:
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码(若要显示8个数字则需要88=64个IO口控制)。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
你理解错了,%是取余数, 1000%16 = 8, 而不是625,是取余数,余数,明白吗
LedNumVal%16,不管LedNumVal是多少,得到的结果永远只能是0--15,不可能大于15,最大是15
0%16 = 0
1%16 = 1
2%16 = 2
3%16 = 3
4%16 = 4
5%16 = 5
6%16 = 6
7%16 = 7
8%16 = 8
9%16 = 9
10%16 = 10
11%16 = 11
12%16 = 12
13%16 = 13
14%16 = 14
15%16 = 15
16%16 = 0
17%16 = 1
18%16 = 2
19%16 = 3
20%16 = 4
21%16 = 5
22%16 = 6
23%16 = 7
这样,可以保证数组不会溢出,避免出错
形参数uchar dis,是要在两位数码管上显示的两位十进制数,但每一个位数码管只能显示一位数,只能一个显示十位,另一个只能显示个位,而dis是十位和个位都合在一起的。
例如,dis=35,要分别显示出一个3,十位,再显示出一个5,个位,
因此,就需要把dis中的十位和个位分离出来,才能分别显示的。
i=dis/10;//含义是什么,这就是求出十位数,除十,你想想,35/10,商是3不,余数不要。
i=dis%10;//含义是什么,这就是求出个位,是除十,然后要余数,就是上面不要余数,这里却只要余数了。
以上就是关于51单片机静态数码管显示0到59代码全部的内容,包括:51单片机静态数码管显示0到59代码、10 静态数码管、关于单片机静态数码管C语言的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)