历史上的今天
今天是:2025年12月14日(星期日)
2022年12月14日 | 51单片机—数码管显示
2022-12-14 来源:zhihu
1.静态数码管显示
对数码管所在管口输入,然后根据二进制计算出6的二进制对应输入101,数码管中输入引脚是7D,这里需要有数码管的显示位置的管口参照,不同单片机可能不同
#include void main() { P2_4=1; P2_3=0; P2_2=1; P0=0x7D;//显示数字6 while(1) { } } 由于引脚冲突,led也会亮 然后设置函数。用Switch来定义所有的输入 #include void Num(unsigned char Location,Number) { switch(Location) { case 1:P2_4=1;P2_3=1;P2_2=1;break; case 2:P2_4=1;P2_3=1;P2_2=0;break; case 3:P2_4=1;P2_3=0;P2_2=1;break; case 4:P2_4=1;P2_3=0;P2_2=0;break; case 5:P2_4=0;P2_3=1;P2_2=1;break; case 6:P2_4=0;P2_3=1;P2_2=0;break; case 7:P2_4=0;P2_3=0;P2_2=1;break; case 8:P2_4=0;P2_3=0;P2_2=0;break; } P0=0x7D; } void main() { Num(6); while(1) { } } 也可以对数字进行设置,在上面的代码中,number没有定义,所以还是显示6 可以用数组的形式,对每个数字的显示形式放在数组中,在函数中调用 #include char NumTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x07,0x7F}; void Num(unsigned char Location,Number) { switch(Location) { case 1:P2_4=1;P2_3=1;P2_2=1;break; case 2:P2_4=1;P2_3=1;P2_2=0;break; case 3:P2_4=1;P2_3=0;P2_2=1;break; case 4:P2_4=1;P2_3=0;P2_2=0;break; case 5:P2_4=0;P2_3=1;P2_2=1;break; case 6:P2_4=0;P2_3=1;P2_2=0;break; case 7:P2_4=0;P2_3=0;P2_2=1;break; case 8:P2_4=0;P2_3=0;P2_2=0;break; } P0=NumTable[Number]; } void main() { while(1) {Num(4,2); } } 2.动态数码管显示 加入延迟函数,不然的话在显示上会有重影,对应位置的显示,也可以用循环语句 #include void Delay(unsigned int xms) { unsigned char i, j; while(xms--) {i = 12; j = 169; do { while (--j); } while (--i);} } char NumTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x07,0x7F}; void Num(unsigned char Location,Number) { switch(Location) { case 1:P2_4=1;P2_3=1;P2_2=1;break; case 2:P2_4=1;P2_3=1;P2_2=0;break; case 3:P2_4=1;P2_3=0;P2_2=1;break; case 4:P2_4=1;P2_3=0;P2_2=0;break; case 5:P2_4=0;P2_3=1;P2_2=1;break; case 6:P2_4=0;P2_3=1;P2_2=0;break; case 7:P2_4=0;P2_3=0;P2_2=1;break; case 8:P2_4=0;P2_3=0;P2_2=0;break; } P0=NumTable[Number]; } void main() { while(1) { Num(1,1); Delay(200); Num(2,2); Delay(200); Num(3,3); Delay(200); } }


上一篇:51单片机——按键操作
下一篇:51单片机学习-按键控制LED
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 04:20 编辑 2007年全国大学生电子设计竞赛 小车类题目 讨论专用帖 附上2道题目 … 查看全部问答> |
|
我来这里学习是为了实现我参军的梦想,我要去的地方和单片机息息相关。我要穿上那白色的制服,实现自己的价值,为理想去战斗!所以单片机就是我现在的武器,为了我梦中的战斗生活开路!… 查看全部问答> |
|
EEWORLD合作qq群:49900581群主:wangkj 情况是这样的,我接上负载,他就会复位,不接负载,他就不复位,你们看,这是哪里复位呢? 我开始是怀疑电源引起的复位… 查看全部问答> |
|
我有块芯片是ARM9EJS的SOC,现在想问下,ARM9EJS是否有片内RAM,我怎么确认其是否可用?从NOR FLASH启动后在片内RAM中建立C环境,然后运行C代码方案是否可行,如果可行是否有什么需要注意的,比如同片外RAM运行C代码有什么不同?… 查看全部问答> |
|
wince4.2與wince5.0與wince6.0的差異? 使用wince4.2的bsp如果要移植到wince5.0或6.0 是不是要大幅改寫driver或什麼的,之間的使用方式 是否通用 thx… 查看全部问答> |




