?? watchdog._c
字號:
//***************FileName:LED.C***************//
//**************ICCAVR V6.30編譯**************//
#include<io8535v.h> //頭文件,AT90S8535單片機的寄存器定義
#define uchar unsigned char //數據類型說明
#define uint unsigned int //數據類型說明
void DelayMs(uint i) //Ms級延時函數,參數i:延時時間
{uint j;
for(;i!=0;i--)
{for(j=2000;j!=0;j--) {;}}
}
void Horse(uchar i) //跑馬燈程序,通過步判斷點亮相應的LED
{switch(i) //高電平點亮LED
{case 1:PORTA=0xfe;break; //1111 1110B 點亮LED1
case 2:PORTA=0xfc;break; //1111 1100B 點亮LED1~LED2
case 3:PORTA=0xf8;break; //1111 1000B 點亮LED1~LED3
case 4:PORTA=0xf0;break; //1111 0000B 點亮LED1~LED4
case 5:PORTA=0xe0;break; //1110 0000B 點亮LED1~LED5
case 6:PORTA=0xc0;break; //1100 0000B 點亮LED1~LED6
case 7:PORTA=0x80;break; //1000 0000B 點亮LED1~LED7
case 8:PORTA=0x00;break; //0000 0000B 點亮LED1~LED8
default:break;}
}
void main(void)
{uchar i;
DDRA=0xff; //端口設置:PA口設置為推挽1輸出
PORTA=0xff;
PORTA=0x00; //PORTA初始值為0,滅掉所有的LED
DelayMs(1000);
WDTCR=0x0f;
while(1) //程序無條件執行
{ for(i=1;i<9;i++) //依次點亮LED1~LED8
{Horse(i);
DelayMs(1000);
WDTCR=0x1f;
WDTCR=WDRCR&0xf7;} //點亮時間約1秒
for(i=9;i>0;i--) //依次熄滅LED8~LED1
{Horse(i);
DelayMs(1000);} //熄滅時間約1秒
PORTA=0xff;
DelayMs(1000);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -