#include "STC15F2K60S2.h" //STC15單片機頭文件 在項目中有這個文件
/*
* LED燈是共陽極 公共端由P4.5控制
* P2.0-P2.7控制8個LED燈 低電平點亮 高電平熄滅
* P4.5 要配置成推挽輸出<大電流>
* P4M0 |= (1<<5) ; 0010 0000 P4M0寄存器 0x40對應P4M0位五設置為1
* P4M1 &=~ (1<<5); 0000 0000 P4M0寄存器 0x40對應P4M0位五設置為0
* 技巧:
* A |= (1<<n) --> A = A | (1<<n) 將變量A的n位置1
* A &=~ (1<<n) --> A = A & (~(1<<n)) 將變量A的n位清0
*/
//注意 code 是將數組存儲在單片機ROM 意味著數據只讀 不能改變數組值,
//對于固定的數據可以用code修飾
unsigned char code s[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit LED = P4^5;
void delay(unsigned int z) //延時1T 1/12 us 機器周期
{
while(z--);
}
void main ()
{
unsigned char i;
P4M0 |= (1<<5);
P4M1 &=~ (1<<5); //推挽輸出 不然等不亮
LED = 1;
while(1)
{
for ( i = 0 ; i < 8 ; i ++ ) //這種查表的法 節約CPU
{
P2 = s[i];
delay(50000);
}
}
}
|