//文件名:avr—digtal-n //功能:驱动多个数码管 //作者:dong //时间:2007.4.11 //目标:atmega8 //频率:8M
#include<avr/io.h> #include<avr/delay.h>
void delay_1ms(void) { unsigned int i; // for(i=1;i<(unsigned int)(1144-2);i++); for(i=1;i<(unsigned int)(500);i++);
} void delay_nms(unsigned int n) { unsigned int i=1; while(i<n) { delay_1ms(); i++; } }
void main() { unsigned char i,j; static unsigned char lednum[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char countnum[4]={0,0,0,0};
DDRB=0XFF; PORTB=0XFF; DDRC=0X0F; PORTC=0XFF;
while(1) { i=0; for(j=0;j<100;j++) { i=++i%4; PORTC&=~(1<<i); if(i==2) PORTB=lednum[0]+0x80; else PORTB=lednum[0]; delay_nms(5);//调用函数后怎么不会返回来 而是直接又跳到main(),重新执行? PORTC|=0XFF; } }
}
|