您的位置 首页 ADAS

AVR128的程序——独立按键操控数码管0~99递加

includeiom128vh>defineucharunsignedchardefineuintunsignedintvoidDelayus(uintUS);voidDelayms(uintM

#include

#define uchar unsigned char
#define uint unsigned int
void Delayus(uint US);
void Delayms(uint MS);
void display(uchar FirstBit,uchar Num);
uchar TempData[8];
uchar WeiMa[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar led_discode[11]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff};
void main(void)
{
uint temp=0;
DDRA=0XFF;
PORTA=0XFF;
DDRC=0XFF;
PORTC=0XFF;
DDRF|=0X0E;
PORTF|=0X0E;
PORTF&=0xF7;
DDRB |=0X10;
PORTB|=0X10;
DDRD = 0x00;
PORTD = 0XFF;
TempData[0] = led_discode[0];
TempData[1] = led_discode[0];
while(1)
{
if((PIND&0x01)!=0X01);
Delayms(5);
if((PIND&0x01)!=0X01)
{
temp++;
TempData[1] = led_discode[temp];
TempData[0] = led_discode[temp/10];
while((PIND&0X01)!=0X01);
}
display(0,2);
}
}
void display(uchar FirstBit,uchar Num)
{
unsigned char i;
for(i=0;i
{
PORTC=led_discode[10];
PORTA=WeiMa[i+FirstBit];
PORTC=TempData[i];
Delayms(5);
}
}
void Delayms(uint MS)
{
uint i,j;
for( i=0;i
for(j=0;j<1141;j++);
}
void Delayus(uint US)
{
uint i;
US=US*5/4;
for( i=0;i
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/262320.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部