應怎樣編寫LED數碼管顯示程序?
首先妳的仔細看看電路圖,看壹下數碼管是怎麽接的,接的是哪壹個管腳,從而確定出位選和段選。所謂段選指的是數碼管顯示的內容,位選指的是哪幾個數碼管顯示。總之妳壹定要學會看懂電路圖。下面我給妳壹個例子啊,是根據我的電路板寫的。
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2^6;//段選決定顯示什麽內容
sbit wela = P2^7;//位選決定顯示哪幾個數碼管
sbit d1 = P1^0;//流水燈
uchar num;
//段碼表
uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f,
0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c,
0x39, 0x5e, 0x79, 0x71};
void delay(uint z);
void main()
{
wela = 1;
P0 = 0xc0;
wela = 0;
while(1)
{
//顯示0~F
for(num=0; num<16; num++)
{
dula = 1;
P0 = table[num];
dula = 0;
delay(1000);
}
}
}
//延時函數
void delay(uint z)
{
uint x, y;
for(x=z; x>0; x--)
for(y=110; y>0; y--);
}