-
我将首先帮助您分析此程序:
1)至(4)的作用是通过P0端口给出数码管的段码。我猜P0端口和数码管的段线之间有一个锁存器,可以保证当P0端口的数据发生变化时,数码管的编号不会改变。 此时,数码管无法显示相应的数字,因为没有选择位码行。
5)至(8)是P0口给出数码管位码的功能。此时选择位码行,在段码和位码的同时作用下,激活数码管,显示shi对应的数字。
然后延迟 (5);
在执行(10)时,由于P0给出了GE的段码,并且位码没有改变,当然,第二数码管的内容应该显示在第一数码管上。
执行到(14),位码改变,选择第二数码管,时间码和位码协同工作,第二数码管显示GE对应的编号。
然后是时间延迟。 由于第一个数码管显示GE的时间很短,不到十个机器周期,而且正常显示时间很长,所以这个时间是延迟(5),所以不清楚GE曾经通过过第一个数码管,所以看起来显示效果是正确的。
这就是添加延迟程序(8)和(16)的原因。 如果不加,第一个数码管会在ge和shi之间快速“切换”,最终结果是数码管一显示8,数码管二正常显示,可以试试。
因此,它如下: 问题1:延迟程序的目的是掩盖数码管上的“切换”,给你的眼睛带来“错觉”。
问题2:是由锁存器的锁存特性引起的,延时程序很好地解决了这个问题。
楼上很不准确,我不同意。 就算改了总和,如果不加延时程序,问题也存在,不过就是通过数码管二就变成了一个数字的shi。
郭天翔说话的时候,程序不是现成的,是当时现场写的,出现错误是正常的。
-
1.数码管编码没有错误! 数码管分为普通阴极和普通阳极。
2.您的程序 count1 是秒,count2 是一分钟。
display(count1/10,count1%10,count2/10,count2%10);用于显示(10 位秒、个位秒、10 位秒、10 位分钟、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、 10 位秒、10 位秒、10
char code bit_tab=;影片中选的0xfd选不选,数码管不亮是正常现象。
4.乱码是什么意思? 数字是错误的还是他们没有显示数字?
-
这是我之前写的,你可以看看。
#include
#define uint unsigned int#define uchar unsigned charuchar code tab=;
uint t1,bai,shi,ge;
uint shu;
void display(uchar bai,uchar shi,uchar ge);
void init()
void delay(uint z)
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--)
void main()
init();
while(1)
display(bai,shi,ge);
void init() 初始化函数。
t0=0;t1=0;
shu=999;
tmod=0x01;
th0=(65536-50000)/256;
tl0=(65536-50000)%256;
ea=1;打开完全中断;
et0=1;打开定时器 0 中断。
tr0=1;
void timer0() interrupt 1th1=(65536-50000)/256;
tl1=(65536-50000)%256;
t1++;if(t1==20)
t1=0;shu--;
bai=shu/100;
shi=shu%100/10;
ge=shu%10;
if(shu==0)
tr0=0;
tr1=0;
void display(uchar bai,uchar shi,uchar ge)
p2=0xfb;
p0=tab[bai];
delay(10);
p2=0xfd;
p0=tab[shi];
delay(10);
p2=0xfe;
p0=tab[ge];
delay(10);
p2=0xff;
-
如果要在数码管上动态显示数字13452312,可以按照以下步骤操作:
首先,设计一个程序来控制数码管的显示。
在程序中,设置一个变量来存储要显示的值。
使用循环语句,定期将变量中 Iwaki Takeshi 的值更新到数字管。
运行程序,查看数码管是否能够动态显示13452312值。
这只是一种粗略的能源桥接方法,实施它的确切方法可能因人而异。
-
a.动态显示模式更经济,适用于显示位数较多的场合。
b.硬件电路比静态显示和穿透模式更简单,使用更少的元器件,硬件开销低。
c.每个数码管轮流显示,树桩的亮度和稳定脊不如静态显示模式。
正确答案:ABC
-
品牌型号:华为MateBook D15
系统: Windows 11
多个数码管的段码连接在一起,位码单独控制,因为段码连接在一起; 如果数码管完全亮起,显示的数据是一样的,所以为了显示不同的数字,任何时候只能显示一个数码管,其余的不显示。 使用软件使这些数码管轮流显示所需的数字。 只要更新频率足够快(>100Hz),肉眼来看,这些数码管就会同时显示所需的数字。
数码管,也称为发光管,是一种可以显示数字和其他信息的电子设备。 玻璃管由金属丝网和阴极制成的阳极组成。 大多数数码管阴极都是数字形状的。
管子里充满了低压气体,通常主要是氖气加上一些汞和/或氩气。 给阴极充电时,数码管会发出彩色光,通常是橙色或绿色,具体取决于管中的气体。
-
单片机的IO口驱动能力很弱,因为里面有一个大的上拉电阻。
与公共阳极一起使用的数字管应由 9012 晶体管驱动。
其实可以用一个普通的阴极数码管,用595作为阳极,就可以驱动了,单片机的IO口就是阴极,单片机的IO口驱动能力有限,但吸收电流的能力还是有可能的。
-
看来驱动能力还不够。