?? 流水燈.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 + -