📄 8.c
字号:
#include <at89x51.h>
void main(void)
{
unsigned int a;
unsigned int b;
unsigned char temp; //临时变量
P1 = 0xAA; //点亮D1,D3,D5,D7 P1口的二进制为10101010,为0时点亮LED
for (a=0;a<1000;a++)
for (b=0;b<1000;b++); //延时
temp = P1 & 0x7; //单纯的写P1|0x7是没有意义的,因为没有变量被影响,不会被编译
//执行P1|0x7后结果存入temp,这时改变的是temp,但P1不会被影响。
//这时LED没有变化,仍然是D1,D3,D5,D7亮
for (a=0;a<1000;a++)
for (b=0;b<1000;b++); //延时
P1 = 0xFF; //熄灭LED
for (a=0;a<1000;a++)
for (b=0;b<1000;b++); //延时
P1 = 0xAA; //点亮D1,D3,D5,D7 P1口的二进制为10101010,为0时点亮LED
for (a=0;a<1000;a++)
for (b=0;b<1000;b++); //延时
P1 = P1 & 0x7; //这时LED会变得只有D2灭
//因为之前P1=0xAA=10101010
//与0x7位与 0x7=00000111
//结果存入P1 P1=00000010 //位为O时点亮LED,电路看第三课
for (a=0;a<1000;a++)
for (b=0;b<1000;b++); //延时
P1 = 0xFF; //熄灭LED
while(1);
//大家可以根据上面的程序去做位或,左移,取反等等。
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -