×
嵌入式 > 技术百科 > 详情

单片机笔记——数码管显示

发布时间:2020-06-06 发布时间:
|

用到单片机就不可避免要涉及人机交互,而最简单的显示就是使用数码管了。它可以显示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;j<72;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(i<10)
 {
  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();
 }

}

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
激光跟踪仪市场2023年有望达5.216亿美元