资讯动态

共阴极动态数码管实验

发布时间:2026/10/23 1:41:24 来源:尧图企业网站定制
1.原理图74HC245是用来增大高电平的驱动能力74HC138是一个38译码器。2.如何显示数字写代码前定要先判断数码管是共阴极还是共阳极用万用表蜂鸣档测万用表的正负极连接正确后数码管的一段会亮我的是共阴极片选段连在一起由38译码器输出的八个低电平引脚拉低来进行片选因此数码管显示数字 0 1 2 3 4 5 6 7 8 9 a b c d e f 对应0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f 0x77 0x7c 0x39 0x5e 0x79 0x713.代码#include REGX52.H #include INTRINS.H unsigned char NixieTable[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //数码管显示数字0~9对应的段选 就是p0的八个管脚 void Delayms(int ms){ //11.0592MHz while(ms--){ unsigned char i, j; _nop_(); i 2; j 199; do { while (--j); } while (--i); } } //……段选清零 片选 段选…… void Nixie(unsigned char Chip,Number) { P00x00; //段码清0消影 switch(Chip) //位码输出 { case 1:P2_41;P2_31;P2_21;break; case 2:P2_41;P2_31;P2_20;break; case 3:P2_41;P2_30;P2_21;break; case 4:P2_41;P2_30;P2_20;break; case 5:P2_40;P2_31;P2_21;break; case 6:P2_40;P2_31;P2_20;break; case 7:P2_40;P2_30;P2_21;break; case 8:P2_40;P2_30;P2_20;break; } P0NixieTable[Number]; //段码输出 Delayms(1);//稳定显示 } void main() { while(1) { Nixie(1,1); //在数码管的第1位置显示1 Nixie(2,2); //在数码管的第2位置显示2 Nixie(3,3); //在数码管的第3位置显示3 } }注意1.第21行不可以去掉虽然去掉显示效果没任何区别。…… 片选段选 片选段选……如果不清除的话前一次段选的数字会出现在第二次片选上片选没来的及选中段就改变了直接到下一段残影会随着延时时间加长而会不明显。但延时时间过长的话就是动态显示了。可以通过修改34行Delayms(1);为若干个_nop_();指令从而延时不同时间进行试验。2.第34行去掉值显示正常但是显示亮度会偏低。原理应该类似pwm波四个数码管快速切换着亮肯定没有只亮一个数码管亮因为四个切换亮通电时常占总时长的1/4。因此要延迟一段时间保持一段时间亮度再切换。3.编程时变量用之前注意提前清理

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑