|
整理/測試:阿莫(armok) / 代碼設計:HJJourAVR / 2005-08-28 / www.OurAVR.com #include <avr/io.h>#include <avr/delay.h> //注: 內部函數_delay_ms() 最高延時 262.144mS@1MHz 即 32.768ms@8MHz// 該函數可以實現較精確的定時for()/while()指令很難計算延時時間// 為了使 _delay_ms()函數的延時正確,須在makefile中設定F_CPU為實際的系統時鐘頻// 本范例為1MHz內部RC振蕩器 即 F_CPU=1000000 int main(void){ unsigned char i,j,k; //定義變量 PORTA=0xFF; DDRA=0xFF; //PA口設為輸出高電平,燈滅 while(1) { i=1; for (j=0;j<8;j++) //循環(huán)8次,即PA0~~PA7輪流閃亮 { PORTA=~i; //反相輸出,低電平有效 for (k=0;k<10;k++) _delay_ms(30); //延時 30*10=300毫秒,可自行調節(jié) i=i<<1; //左移一位 // 0b00000001 PA0 // 0b00000010 PA1 // 0b00000100 PA2 // 0b00001000 PA3 // 0b00010000 PA4 // 0b00100000 PA5 // 0b01000000 PA6 // 0b10000000 PA7 } }
|