个人总结的AVR的ATMEGA16L单片机程序.docVIP

  • 44
  • 0
  • 约1.18万字
  • 约 24页
  • 2017-08-11 发布于重庆
  • 举报
个人总结的AVR的ATMEGA16L单片机程序

ATMAGE 16 的C语言程序 ATMAGE 16 的C语言程序 1 一、PB0 口的 PB0.1 LED 发光管闪烁的程序: 3 二、PA0、PB0、PC0口的LED 发光管闪烁的程序: 5 三、I/O口的输入与输出 6 四、跑马灯 8 五、数码管计数显示设计 9 六、控制直流电机正反转 13 七、单片机的定时器(T/C0)应用 18 AVR原理图 22 一、PB0 口的 PB0.1 LED 发光管闪烁的程序: #include avr/io.h int main( void ) { unsigned char i, j, k,led=0; DDRB=0xFF; /* all outputs */ while (1) { if(led) PORTB|=0X01; /* |使最后一位为1 */ else PORTB=0XFE; /*最后一位为0 */ led=!led; //延时 for (i=0; i255; i++) for(j=0; j255;j++) k++; } } /////////////////////////////////////////////////////////////// #include avr/io.h int main( void ) { unsigned char i, j, k,led=0; DDRB=0xFF; /* all outputs */ while (1) { if(led) PORTB=0Xfe; else PORTB=0Xff; led=!led; for (i=0; i255; i++) //延时 for(j=0; j255;j++) k++; } } 二、PA0、PB0、PC0口的LED 发光管闪烁的程序: #include avr/io.h int main( void ) { unsigned char i, j, k,led=0; DDRA=0xFF;//为输出 DDRB=0xFF; DDRC=0XFF; while (1) { if(led) { PORTA|=0XFF; PORTB|=0XFF; PORTC|=0XFF; } else { PORTA=0X00; PORTB=0X00; PORTC=0X00; } led=!led;//取反 ////////////延时//////////////// for (i=0; i255; i++) for(j=0; j255;j++) k++; } } 三、I/O口的输入与输出 #include avr/io.h ///////////////////延时 us////////////////// void delay_us(int t) { do t--; while(t1); } ///////////////////延时 ms///////////////// void delay_ms(unsigned int t) { while(t!=0) { delay_us(1142); t--; } } ///////////////////主程序///////////////////// int main(void) { DDRA = 0xff; /* all outputs */ DDRB = 0xff; /* all outputs */ DDRC = 0xff; /* all outputs */ PORTA=0XFF; PORTB=0XFF; PORTC=0XFF; while(1) {//***IO口输出低电平有效,如:0X01为十六进制数,二进制表示,再取反 ////////A口输出////// PORTA=~0X01; // ~表示取反 delay_ms(100);//延时N秒 PORTA=~0X02; delay_ms(100); PORTA=~0X04; delay_ms(100); PORTA=~0X08; delay_ms(100); POR

文档评论(0)

1亿VIP精品文档

相关文档