单片机模块学习之数码管
生活随笔
收集整理的這篇文章主要介紹了
单片机模块学习之数码管
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數碼管是led的升級版,用到段選位選,其實都差不多
位選就是選某個數碼管com,段選就是數碼管送入數據
還有轉碼表
共陰
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
共陽
0xc0,xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
驅動思路就是打開位選,然后送段選
藍橋杯數碼管驅動代碼
void LedScan() {static u8 index=0;P2=(P2&0x1f)|0xe0;P0=0xff;P2=P2&0x1f;P2=(P2&0x1f)|0xc0;P0=0x80>>index;P2=P2&0x1f;P2=(P2&0x1f)|0xe0;P0=LedBuff[index];P2=P2&0x1f;index++;index&=7; }另外兩個數組數碼管轉碼LedChar[]和數碼管緩沖LedBuff[]
u8 code LedChar[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
u8 LedBuff[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
數碼管緩沖顯示
void ShowNumber(u16 dat) {char i;u8 buff[8];for(i=0;i<8;i++){buff[i]=dat%10;dat/=10;}for(i=7;i>0;i--){if(buff[i]==0)LedBuff[i]=0xff;elsebreak;}for(;i>=0;i--){LedBuff[i]=LedChar[buff[i]];} }總結
以上是生活随笔為你收集整理的单片机模块学习之数码管的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机模块学习之LED
- 下一篇: 单片机模块学习之键盘