專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

基于AVR單片機(jī)I/O演示C語言程序

作者:未知   來源:不詳   點(diǎn)擊數(shù):  更新時(shí)間:2013年12月27日   【字體:

 //程序流程:全亮->全滅->PD隔一步進(jìn)->全亮->全滅->PD隔二步進(jìn)->全亮->全滅->PB全亮->pb0置位->pb0清零->PB0反轉(zhuǎn)->全滅->(循環(huán))  
  
// Target : M8  
// Crystal: 11.059Mhz  
  
#include <iom8v.h>  
#include <macros.h>  
  
//起始全亮  
void port_init(void)  
{  
 PORTB = 0x00;  
 DDRB  = 0xFF;  
 PORTC = 0x00;   
 DDRC  = 0x7F;  
 PORTD = 0x00;  
 DDRD  = 0xFF;  
}  
  
//延時(shí)函數(shù),大約1ms;  
void delay(char tim)  
{  
 unsigned int i,j;  
 for(i=0;i<tim;i++)  
    for(j=0;j<10000;j++);  
}  
  
//led全亮  
void led_on(void)  
{  
 PORTB = 0x00;  
 PORTC = 0x00;  
 PORTD = 0x00;  
   
 delay(5000);  
}  
//led全滅  
void led_off(void)  
{  
 PORTB = 0xFF;  
 PORTC = 0xFF;  
 PORTD = 0xFF;  
   
 delay(5000);  
}  
//PB隔1步進(jìn)  
void pd_1(void)  
{  
 char i;  
 for (i = 0; i < 8; i++)  
 {  
     PORTB = ~(1 << (i));//位操作結(jié)合移位操作  
     delay(5000);  
 }  
}  
//PB隔2步進(jìn)  
void pd_2(void)  
{  
 char i;  
 for (i = 0; i < 8; i+=2)  
 {  
     PORTB = ~(1 << (i));//位操作結(jié)合移位操作  
     delay(5000);  
 }  
}  
  
//call this routine to initialise all peripherals  
void init_devices(void)  
{  
 //stop errant interrupts until set up  
 CLI(); //disable all interrupts  
 port_init();  
  
 MCUCR = 0x00;  
 GICR  = 0x00;  
 TIMSK = 0x00; //timer interrupt sources  
 SEI(); //re-enable interrupts  
 //all peripherals are now initialised  
}  
  
//  
void main(void)  
{  
 init_devices();  
   
 while(1)  
 {  
  led_on();  
  led_off();  
    
  led_on();  
  led_off();  
    
    
  pd_1();  
    
  led_on();  
  led_off();  
    
    
  pd_2();  
    
  led_on();  
  led_off();  
    
    
  //賦值(會給所有的位以特定值),使pb0為0,led亮;  
  PORTB = 0xFE;  
  delay(5000);  
  //置位(不影響其他位),使pb0為1,led滅;  
  PORTB |= 0x01;  
  delay(5000);  
  //清零(不影響其他位),使pb0為0,led亮;   
  PORTB &= ~0x01;  
  delay(5000);  
  //反轉(zhuǎn)(不影響其他位),使pb0為1,led滅;  
  PORTB ^= 0x01;  
  delay(5000);  
 }  
}  

關(guān)閉窗口

相關(guān)文章