【C51單片機期末復(fù)習整理系列】[四]八段數(shù)碼管的選擇與顯示

分兩個版本,實現(xiàn)的功能類似

注意:要想八個八段數(shù)碼管都顯示內(nèi)容則必須將延時降低并且方式是來回快速刷新

#include <reg52.h>
sbit ce = P1^3;
sbit le1 = P1^4;
sbit le2 = P1^5;
char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
char code select[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay( unsigned int xms){

unsigned char i,j;

for(i=xms;i>0;i--)

for(j=300;j>0;j--);
}

void main(){
    unsigned char display_number = 0;
    unsigned char select_number = 0;
  ce = 0;
    le1 = 0;
    le2 = 0;
    while(1){

        le1 = 1; 
        P0 = ~table[display_number];
        le1 = 0;
            
        le2 = 1;
        P0 =  select[select_number];
        le2 = 0;
            
        delay(6);
        
        ++display_number;
        display_number %= 8;
        ++select_number;
        select_number %= 8;
        
    }
        
}
#include <reg52.h>
sbit ce = P1^3;
sbit le1 = P1^4;
sbit le2 = P1^5;
char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
char code select[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay( unsigned int xms){

unsigned char i,j;

for(i=xms;i>0;i--)

for(j=300;j>0;j--);
    
}

void main(){
    unsigned char display_number = 0;
    unsigned char select_number = 0;
  ce = 0;
    le1 = 0;
    le2 = 0;
    while(1){

        
        le2 = 1;
        P0 =  select[select_number];
        le2 = 0;
        
        delay(2000);
        
        le1 = 1; 
        P0 = ~table[display_number];
        le1 = 0;
        
        
            
        
            delay(2000);
        
        
        ++display_number;
        display_number %= 10;
        
        
    }
        
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容