數碼管顯示是每一個單片機初學者都必須學的,而單片機驅動數碼管的數字循環顯示實驗,又是單片機基礎中的基礎,同時也是學好C語言編程的關鍵,現在供上代碼供大家學習研究,此程序經過一些改進,可以實現按鍵識別 數碼管動態掃描。同時也可以做各種有關顯示調試程序的二次開發等等。
程序算法先自己研究,因為程序比較簡單,所以這裡我就先不放注釋了,這組代碼簡潔,易懂,佔用內存小,如果有哪裡不明白請關注我並給我留言,我看到後會第一時間回復,謝謝!
最後說明一下:大家不要著急,先從最最基礎的程序開始學習,和我一起從零開始,打好基礎理解透每一個程序
單只數碼管循環顯示0~F
Proteus 仿真原理圖如圖所示

51單片機參考原始碼如下 :
/* 單只數碼管循環顯示0~F */
#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
code uint8 LED_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E};
void delay(uint16 x)
{
uint16 i,j;
for(i = x; i > 0; i --)
for(j = 114; j > 0; j --);
}
void main()
{
uint8 i = 0;
while(1)
{
for(i = 0; i < 16; i ++) //i = (i + 1) % 16
{
P0 = LED_CODE[i];
delay(500);
}
}
}