我們先上一個最普通的跑馬燈:
用p1來控制
void delay(void)
{
unsigned char i;
for(i=0;i<1000;i++);
}
void main(void)
{
while(1)
{
P3 = 0xFE;
delay;
P3 = 0Xfd;
delay;
P3 = 0Xfb;
delay;
P3 = 0Xf7;
delay;
}
}
這是一個非常簡單的跑馬燈,完全是用P3這個口在操作
接下來使用地址來操作:
#include <reg51.h>
sfr x = 0xB0; // 這是又愛又恨的sfr,初次使用的意思是三位一體,將這個地址賦給x,而這個地址在
8051中恰好就是P3。
void delay(void)
{
unsigned char i;
for(i=0;i<1000;i++);
}
void main(void)
{
while(1)
{
x = 0xFE;
delay();
x = 0xFD;
delay();
x = 0xFB;
delay();
x = 0xF7;
delay();
}
}
其實這一個代碼和上一個是完全一樣的,或者可以說直接對P3操作是不符合規範的,因爲P3只能你知道是一個引腳,而電腦並不知道這是個啥,是通過REG51.H這個頭文件才知道的。