數碼管有很多驅動形式,如7219、138、595、164等等,對于我們初學者來說,由淺入深,由簡入繁是最有效的學習方法,今天我給大家介紹一個用元件最少,程序最簡單的顯示數碼管0-F。與大家分享。
#include< reg52.h >
#define INT8 unsigned char
#define INT16 unsigned int
INT8 code table[] = //共陰碼表。(陰陽碼靈活選用)。
{
0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F,
0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71
};
/*
INT8 code table[] = //共陽碼表。(陰陽碼靈活選用)。
{
0xC0, 0xF9, 0xA4, 0xB0, 0x99,
0x92, 0x82, 0xF8, 0x80, 0x90,
0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
*/
void Delay( INT16 xms ) //延時函數,有參函數
{
INT16 x,y;
for( x = xms;x > 0;x -- )
for( y = 110;y > 0;y -- );
}
void main()
{
INT8 Number = 0;
while( 1 )
{
P2 = table[ Number ];
Delay( 500 );
Number++;
if( Number == 16 )
{
Number = 0;
}
}
}
下次發電路。
|