#include "reg52.h"
unsigned wei_tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
unsigned duan_tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed, 0xfd,0x87,0xff,0xef}; //單片機顯示8位數,為什么要用這IME多代碼???
unsigned led_buffer[]={0,1,2,3,4,5,6,7,8,9}; //這里的buffer不是很了解,為什么要用緩存??
char count=0;
void delay(long dly)
{
while(dly--);
}
void disp(void)
{
P2=0xff;
P0=~duan_tab[led_buffer[count]];
P2=wei_tab[count];
delay(10);
count++;
if(count>9)
{
count=0;
}
}
void get_data(long dat) //下面簡直是看不懂,求解惑
{
long x;
x=dat;
led_buffer[0]=x/10000000;
x=x%10000000;
led_buffer[1]=x/1000000;
x=x%1000000;
led_buffer[2]=x/100000;
x=x%100000;
led_buffer[3]=x/10000;
x=x%10000;
led_buffer[4]=x/1000;
x=x%1000;
led_buffer[5]=x/100;
x=x%100;
led_buffer[6]=x/10;
x=x%10;
led_buffer[7]=x;
}
void main(void)
{
long m=12345678;
get_data(m);
while(1)
{
disp();
}
}
|