標(biāo)題: 單片機LED數(shù)碼管動態(tài)掃描顯示-計數(shù)Proteus仿真+代碼 [打印本頁]

作者: gdfsg    時間: 2019-6-9 11:41
標(biāo)題: 單片機LED數(shù)碼管動態(tài)掃描顯示-計數(shù)Proteus仿真+代碼


單片機源程序如下:
/************************************************************************* ***
程序開始運行后,屏幕顯示00秒,每按一次按鍵,單片機計數(shù)一次,并實時將按鍵次數(shù)在兩位數(shù)碼管上顯示出來。
*************************************************************************/   

//---庫函數(shù)聲明及相關(guān)定義---//
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define LED P0//段選線
sbit  num0=P2^0;//位選線
sbit  num1=P2^1;//位選線
uint num;
uchar f0;
sbit key=P1^0;//開關(guān)
uchar code dis_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,//段碼表0,1,2,3,4,5,6,7
                                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};//段碼表8,9,a,b,c,d,e,f,滅(16),-(17)
unsigned char SegBuf[2]={0};
//---延時函數(shù)---//
void delayled(uchar N)
{
   uchar i,j;
   for(i=0;i<N;i++)
   for(j=0;j<125;j++);
}
//---填充顯示緩沖區(qū)函數(shù)---//
void convert(uint n)         
{
        SegBuf[0] =n%10;
        SegBuf[1] =n/10%10;
}
//---顯示函數(shù)---//
void display(void)
{
        LED=dis_code[SegBuf[0]];                 
        num0=0;
        delayled(3);
        num0=1;
        
        LED=dis_code[SegBuf[1]];                  
        num1=0;
        delayled(3);
        num1=1;
}
//---顯示數(shù)據(jù)---//
void Disp(uint n)
{
        convert(n);
        display() ;
}
//---主函數(shù)---//
void main()
{
        num=0;//開始顯示的數(shù)字為0
        f0=1;//f0為按鍵標(biāo)志位,如果按下鍵,f0=0,否則f0=1
        while(1)
        {
        
                while (key==0)//鍵按下,顯示,標(biāo)志f0=0
                {
                        Disp(num);
                        f0=0;
                }
                while (key==1)//鍵未按下,顯示
                {  
                         Disp(num);
                        if (f0==0)
                        {
                        num=num+1;
                        f0=1;
                        }
                }

        }
}

全部資料51hei下載地址:
LED動態(tài)掃描顯示-計數(shù).zip (30.9 KB, 下載次數(shù): 23)

作者: 羅伊菲雷    時間: 2019-9-22 10:15
謝謝大神




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1