單片機(jī)點(diǎn)亮數(shù)碼管
數(shù)碼管的示意圖如上,通過點(diǎn)亮a-g七個(gè)led來拼成對(duì)應(yīng)的數(shù)字或字符,數(shù)碼管有共陽極(底電平亮)和共陰極(高電平亮),以上圖的數(shù)字2為例:
共陽極(0亮1滅): DP G F E D C B A
1 0 1 0 01 0 0 = 0xA4
共陰極(1亮0滅): DPGF E DC B A
0101 1 0 1 1 = 0x5B
全部定義:
附件的excel中有所有共陽共陰的代碼;
以共陽極為例,將0-9定義在數(shù)組(C語言中是叫“表”?有知道的同志可以賜教)中,通過循環(huán)來依次顯示0-9;
#include
unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,};
// 顯示數(shù)值表0-9
void Delay();
void main ()
{
unsigned char i;
while(1)
{
for (i = 0; i < 10; i++)
{
P1=dofly_table[i];
Delay();
}
}
}
void Delay() // 12M晶振1s延時(shí)
{
unsigned char h, i, j, k;
for (h = 5; h > 0; h--)
for (i = 4; i > 0; i--)
for (j = 116; j > 0; j--)
for (k = 214; k > 0; k--); // 最后個(gè)要有 ; 號(hào)
}