|
程序
#include <REGX52.H>
#include<INTRINS.H>
unsigned char SXD[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //數字0-9
void Delay(unsigned int Delaytime); //延時
void X(unsigned char WX,unsigned char DX); //位選 段選
void main()
{
while(1)
{
X(1,1);
Delay(200);
X(2,2);
Delay(200);
X(3,3);
Delay(200);
}
}
void X(unsigned char WX,unsigned char DX)
{
switch(WX)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;
}
P0=SXD[DX];
}
void Delay(unsigned int Delaytime) //@12.000MHz
{
unsigned char i, j;
while(Delaytime)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
問題
燒錄成功后本應在位置1、2、3上間隔200毫秒,分別顯示1、2、3,但燒錄成功后只有位置1上靜止顯示數字1.
萬分感謝
|
|