單片機編程代碼大全,51單片機四位數碼管的使用方法
單片機編程代碼大全,51單片機四位數碼管的使用方法
四位數碼管的使用方法
首先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--);??
- }??
?