?? diy0816_07.c
字號:
//7. I/O端口進一步應用。
//用圖6的ATmega16的PB.0端口開關(可用接插線接VCC或GND代替)
//控制PA口8個LED燈作跑馬燈控制;可作廣告燈用。
//請你編寫出其它花樣的廣告燈程序!
// www.sl.com.cn
// teny@sl.com.cn 05-11-12
// Target : mega16 Crystal: 8.0000Mhz
#include <iom16v.h>
#include <macros.h>
#define delay_time 500
unsigned char pa_buf,pb_buf,loop_timers;
//定義為字符型變量
void delay_us(int time)
{ //微秒延時
do
{
time--;
}
while (time>1);
}
void delay_ms(unsigned int time)
{ //毫秒延時
while(time!=0)
{
delay_us(1000);
time--;
}
}
void shiyan7()
{
DDRB=0x00;PORTB=0xFF;//PB口輸入,內部上拉
DDRA=0xFF;PORTA=0xFF;//PA口輸出
while(1)//循環運行
{
pb_buf=PINB & 0x01;//檢測PINB0是否為0,為1重新檢測
if(pb_buf==0x00)//為0,運行跑馬燈程序,PA口的LED依次點亮
{
pa_buf=0x01;//送初值
for(loop_timers=0;loop_timers<8;loop_timers++)//循環8次
{PORTA=~pa_buf;pa_buf=pa_buf<<1;delay_ms(delay_time/2);}
//取反輸出,左移一位,延時
}//循環檢測
PORTA=0xff;//為1,熄滅PA口的LED
}
}
void main()
{
shiyan7();//實驗7函數
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -