发布网友
共1个回答
热心网友
void display(int k)
{
int i,l,m,x; //
x=k/100; //把数码管百位的值求出并赋给x
l=(k%100)/10; //把数码管十位的值求出并赋给l
i=k%10; //把数码管个位的值求出并赋给i
if(j==0) {m=10;} //判断数码管显示的时间所对应的是红灯、绿灯、还是黄灯
else if(j==1|j==3) {m=11;} //
else if(j==2) { m=12;} //
IO0CLR=0xffffffff; //io口清零
IO0SET=(1<<m|1<<9); //显示灯的颜色,并对数码管位选百位
IO0SET+=led[x]; //数码管段选
delay(100);
IO0CLR=0xffffffff; //io口清零
IO0SET=(1<<m|1<<8); //显示灯的颜色,并对数码管位选十位
IO0SET+=led[l]; //数码管段选
delay(100);
IO0CLR=0xffffffff; //io清零
IO0SET=(1<<m|1<<7); //显示灯的颜色,并对数码管位选个位
IO0SET+=led[i]; //数码管段选
delay(100);
}
有了2位,3位还会远吗?记得确认硬件的第3位 数码管片选是否接上,已经对应的管脚IO0SET=(1<<m|1<<9);