AVR数码管测试程序

注:本人博文整理至CSDN以方便查阅,源博文位于EDN


#define uchar unsigned char


void display(uchar number,uchar position);


void delay(uchar time)
{
    uchar b;
    for(;time>0;time--)
         for(b=200;b>0;b--);
}



void main(void)
{
 DDRA=0xff;
 PORTA=0xff;
 while(1)
 {
   display(5,1);
   delay(5);
   }

}


void display(unsigned char number,unsigned char position)//êy??1ü?y?ˉ3ìDò
{   
    PORTA="0xff";
    switch(position)
 {
  case 1:{PORTA=PINA&0xf8;break;}
  case 2:{PORTA=PINA&0xf9;break;}
  case 3:{PORTA=PINA&0Xfa;break;}
  case 4:{PORTA=PINA&0Xfb;break;}
  case 5:{PORTA=PINA&0Xfc;break;}
  case 6:{PORTA=PINA&0Xfd;break;}
  case 7:{PORTA=PINA&0Xfe;break;}
  case 8:{PORTA=PINA&0Xff;break;}
  } 
    switch(number)
 {
  case 0:{PORTA=PINA&0x87;break;}    //0
  case 1:{PORTA=PINA&0x8f;break;}    //1
  case 2:{PORTA=PINA&0x97;break;}    //2
  case 3:{PORTA=PINA&0x9f;break;}    //3
  case 4:{PORTA=PINA&0xa7;break;}    //4
  case 5:{PORTA=PINA&0xaf;break;}     //5
  case 6:{PORTA=PINA&0xb7;break;}    //6
  case 7:{PORTA=PINA&0xbf;break;}    //7
  case 8:{PORTA=PINA&0xc7;break;}    //8
  case 9:{PORTA=PINA&0xcf;break;}    //9
  default:{PORTA=PINA&0xff;break;}    //null
 }
 DDRA=0xff;      
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值