#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit seg=P1^4;
sbit bi=P1^5;
u8 code seg_table[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90
};//定義數字編碼;
u8 code bi_table[]={0x80,0x40,0x20,0x10,
0x08,0x04,0x02,0x01
};//定義位置編碼;
void delay(u16 num)
{
u16 x,y;
for(x=num;x>0;x--)
for(y=110;y>0;y--);
}
void dis(u16 which_bi,u16 which_num)//模塊化函數;
{ bi=1;//解除鎖存,開始輸入位數;
P0=bi_table[which_bi];
bi=0;//解除鎖存,開始輸入位數;
seg=1;//解除鎖存,開始輸入數字;
P0=seg_table[which_num];
seg=0;//解除鎖存,開始輸入數字;
delay(300);
}
void main(void)
{ u16 num;
P0 = 0xff;//初始化;
P1 = 0xff;//初始化;
seg=0;
bi=0;//禁止鎖存;
while(1)
{
for(num=7;num>=0;num--)
dis(num,num);//輸入位數與數字;
}
}
求問為何用protues 里數碼管無法循環呢
|