单片机笔记――数码管显示
用到单片机就不可避免要涉及人机交互,而最简单的显示就是使用数码管了。它可以显示0-9的数字和部分因为字母。
我一般使用的是七段数码管,它的脚位从顶横顺着数分别为,a,b,c,d,e,f中间一横为g而小数点为h,由这几个就可以构成显示不同符号的码表:abcdefgh
下面是数码管显示的小程序
//该程序是通过按键控制数码管开始或停止在0-9加1显示
void Delay(unsigned char count) //该延时子程序是12Mhz下的X*1ms延时
{
unsigned char j;
while(count-- != 0)
{
for(j=0;j72;j++);
}
}
char Keyhit(void)
{
P3=0xff; //P3口置高,在C51里这些默认定义的关键字都要大写
if((P3^0xff)!=0) //通过P3的值与上全1判断有无按键
Delay(10); //有按键则延时再判断,去抖动
if((P3^0xff)!=0)
return(1);
else
return(0);
}
void LedPrint(void)
{
unsigned char i;
P2 =0x0f;
while(i10)
{
P0=LedCode[i];
P2=0xfe;
Delay(800);
if(Keyhit())
{
P2 =0x0f;
break;
}
i++;
if(i==10) i=0;
}
}
void main(void)
{
unsigned int num=0;
while(1)
{
if(Keyhit())
{
num++;
num=num%2;
while(Keyhit());
}
if(num==1)
LedPrint();
}
}
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码