单片机点亮数码管
扫描二维码
随时随地手机看文章
数码管的示意图如上,通过点亮a-g七个led来拼成对应的数字或字符,数码管有共阳极(底电平亮)和共阴极(高电平亮),以上图的数字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定义在数组(C语言中是叫“表”?有知道的同志可以赐教)中,通过循环来依次显示0-9;
#include
unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,};
// 显示数值表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延时
{
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--); // 最后个要有 ; 号
}