avr-9_3_8.c

来自「<<AVR C语言的应用>>第九章中的例子 用ATme」· C语言 代码 · 共 78 行

C
78
字号
#include <ioavr.h>
#define uchar unsigned char
#define uint unsigned int
__flash uchar DATA_7SEG[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
			0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar led[6];
uint count;
void delay(uint t)
{
uint i;
  for (i=0;i<t;i++);
}
void init_disp(void)
{
	DDRB=0xff;
	DDRD=0xff;
	PORTD=0x80;
}
void disp(void)
{
uchar i;
for (i=0;i<6;i++)
        {
		PORTD=~(0x01<<i);
		PORTB=DATA_7SEG[led[i]];
		delay(1000);
	}
	PORTB=0x00;
	PORTD=0xff;
}

void be_pc0(void)
{
uint i;
	DDRC|=0x01;
		for (i=0;i<350;i++)
		{
			PORTC^=0x01;
			delay(350);
		}
}
void conv(void)
{
	led[5]=0;
	led[4]=count/10000;
	led[3]=count/1000%10;
	led[2]=count/100%10;
	led[1]=count/10%10;
	led[0]=count%10;
}
void main(void)
{
	init_disp();
	count=0;
	conv();
	for(;;)
	{
		while((PIND&0x80)==0x80)
		disp();
		be_pc0();
		count++;
		conv();
		while((PIND&0x80)==0)
		disp();		
	}
}











⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?