#include<reg51.h>
unsigned char code LedChar[] = { //數碼管顯示數
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char LedBuff[7] = { //數碼管顯示緩沖區
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,0xFF
};
unsigned char code Table[] = {
0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF
};
void DisPlay(unsigned long num);
void delay1ms(unsigned char n);
void LedScan();
void main()
{
DisPlay(53467); //數碼管顯示0 高位為0不顯示
LedScan();
}
void DisPlay(unsigned long num)
{
signed char i;
unsigned char buf[6];
for (i=0; i<6; i++) //把長整型數轉換為6位十進制的數組
{
buf = num % 10;
num = num / 10;
}
for (i=5; i>=1; i--) //從最高位起,遇到0轉換為空格,遇到非0則退出循環
{
if (buf == 0)
LedBuff = 0xFF;
else
break;
}
for ( ; i>=0; i--) //剩余低位都如實轉換為數碼管顯示字符
{
LedBuff = LedChar[buf];
}
}
void LedScan()
{
unsigned char i;
P0 = 0xFF;
for (i=0; i<6; i++)
{
P2 = Table;
P0 = LedBuff;
delay1ms(1);
}
}
void delay1ms(unsigned char n)
{
static unsigned char i;
while(n--)
for(i=0;i<125;i++);
?
100820iwlaqjfml2lzjhva.png.thumb.jpg (78.73 KB, 下載次數: 85)
下載附件
2014-7-31 14:58 上傳
資料:http://bbs.dzsc.com/showtopic-371170.html |
|