微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR128的程序——独立按键控制数码管0~99递增

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

时间:11-22 来源:互联网 点击:
#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

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top