📄 流水灯.c
字号:
/*===============================================================
本实验:
register为寄存器变量。在C语言中,如果有一些使用频繁,则为
存取变量的值要花费不少时间。为了提高执行效率,C语言允许将局
部变量的值放到CPU的寄存器中,需要是直接从寄存器取出草较运算,
不需要再到内存中取。由于堵寄存器的存取速度远高于对内存的存
取速度,因此这样可以提高执行效率。这种变量叫做寄存器变量,
用关键字register作声明。
注: (1):主芯片AT89S52使用11.0592M晶振
(2):Keil uV3 3.30编译运行通过
(3):本例程在 Dream型开发板 平台上成功运行通过
(4):更多学习资源浏览:(http://www.dream-core.cn)
==================================================================*/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint x)
{
register uint y;
for(;x;x--)
for(y=0;y<255;y++);
}
void main()
{
uint z;
uchar temp;
while(1)
{
temp=0x01;//让流水灯从左向右逐个闪动。
for(z=0;z<8;z++)
{
P1=~temp;//把temp值取反付给P1。
delay(50);
temp<<=1;//temp值左移一位。
}
temp=0x80;//让流水灯从右向左逐个闪动。
for(z=0;z<8;z++)
{
P1=~temp;
delay(50);
temp>>=1;//temp值右移取反付给P1。
}
temp=0xfe; //让流水灯从左向右依次全部点亮
for(z=0;z<8;z++)
{
P1=temp;
delay(50);
temp<<=1;
}
temp=0x7f;
for(z=0;z<8;z++) //让流水灯从右向左依次全部点亮
{
P1=temp;
delay(50);
temp>>=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -