四位数码管的使用方法
首先P2^7=1(选中位),P2^6=0(关闭段),然后给P0发位码,选中一个数码管,接着P2^6=1(选中段),P2^7=0(关闭位),然后给P0发段吗,就可以显示了,可以将上述操作重复二遍,中间间隔几ms就可以实现动态显示。
程序
- #include<reg52.h>
- #include<intrins.h>
- unsigned char code gDuanMa[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //段码
- #define uint unsigned int
- #define uchar unsigned char
- sbit duan=P2^6; //段
- sbit wei=P2^7; //位
- void delay1ms(void);//延时
- void main()
- {
- uint i;
- while(1)
- for(i=0;i<8;i++)
- {
- wei=1; //选中位,关闭段
- duan=0;
- P0=_crol_(0xfe,i);//位首先为第一位,接着左移
- duan=1; //选中段,关闭位
- wei=0;
- P0=gDuanMa[i+1]; //发送段码
- delay1ms();
- }
- }
- void delay1ms(void) //误差 0us
- {
- unsigned char a,b,c;
- for(c=1;c>0;c--)
- for(b=142;b>0;b--)
- for(a=2;a>0;a--);
- }