大神们真心请教,搞不明白,为什么按健数码管显显正常,为什么全局变量b,,进不了 switch(b),,俺的C语言也是个入门级,请教了/
#include <reg51.h>
#define led P2
#define shumaguan P0
#define anjian P1
sbit ls138A= P2^2;
sbit ls138B= P2^3;
sbit ls138C= P2^4;
unsigned char b ;
unsigned char code shuzu[]={ 0x3f ,0x06 , 0x5b , 0x4f , 0x66,
0x6d ,0x7d , 0x07 , 0x7f , 0x6f } ;// 0--8数字
void ls138shuju()
{
ls138A= 0;
ls138B= 0;
ls138C= 0;
}
void yanshi (unsigned int u)
{
while(u--) ;
}
void shuzihanshu()
{
unsigned char v ;
shumaguan=shuzu[0];
while(1)
{
ls138shuju();
/************* 扫描最右侧一例*************/
anjian=0XFE; //把1111 1110赋于按键,高4位与低4位组成纵横矩阵
v=anjian; // anjian赋于V
v=v&0XF0; //v于1111 0000相&取出高4位,如高4位有0说明有按健按下,
if(v!=0XF0) //有按键按下高4位不等于1111会进入if
{
yanshi (100);
v=anjian;
v=v&0XF0;
if(v!=0XF0)
{
switch(v)
{
case 0X70 : b=4; shumaguan=shuzu[b]; break ;
case 0XB0 : b=8; shumaguan=shuzu[b]; break ;
}
}
while(v!=0XF0)
{
v=anjian;
v=v&0XF0;
}
yanshi (100);
}
}
}
void main()
{
while(1)
{
shuzihanshu();
switch(b) //,为什么全局变量b,,进不了 switch(b),
{
case (4) : led=0X00; break ; //LED灯不亮呀,请教了
case (8) : led=0X62; break ;
}
}
}
|