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