静态数码管显示数字
1、数字编码(段码)的获取
要显示的数字 数码管的LED 段码二进制 十六进制
0 abcdef 11000000 0xc0
1 bc 11111001 0xf9
2 abedg 10100100 0xa4
3 abcdgh 10110000 0xb0
4 bcfg 10011001 0x99
5 acdfg 10010010 0x92
6 acdefg 10000010 0x82
7 abc 11111000 0xf8
8 abcdefg 10000000 0x80
9 abcdfg 10010000 0x90
A abcefg 10001000 0x88
b cdefg 10000011 0x83
C adef 11000110 0xc6
d bcdeg 10100001 0xa1
E adefg 10000110 0x86
F aefg 10001110 0x8c
结论:(1)、不同数码管数字编码表完全可能不同
(2)、同一个数码管接线方式不同编码表可能完全不同
(3)、硬件确定后可通过调试的方法来实验确定编码表
2、让数码管依次显示0到f
#include <reg51.h>
void delay(void)
{
unsigned char i,j,k;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
for(k=0;k<20;k++);
}
void main(void)
{
unsigned char va1[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8c};
unsigned char i=0;
while(1)
{
for(i=0;i<16;i++)
{
P0=va1[i];
delay();
}
}
}