1、动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
1 #include
2 #define uint unsigned int
3 #define uchar unsigned char
4 uchar code shu[]={0x3f,0x06,0x5b,0x4f,0x66,
5 0x6d,0x7d,0x07,0x7f,0x6f};//段码值0123456789
6 uint code wei[]={0,1,2,3,4,5,6,7};//位选值01234567
7 void delay(unsigned int i) //延时函数
8 {
9 while(--i);
10 }
11 void main()
12 {
13 unsigned int j,i;
14 j=0;i=0;
15 //P2=2;
16 while(1)
17 {
18 P0=shu[j];//取段
19 for(i=0;i<8;i+=2)
20 P2=wei[i];//取位
21 delay(30000);
22 j++;
23 if(8==j) j=0;
24 }
25 }