数码管有很多驱动形式,如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;
}
}
}
下次发电路。
|