|
- /*-----------------------------------------------
- 名稱:IO口高低電平控制
- 編寫:shifang
- 修改:無
- 內(nèi)容:2個led燈先左移,然后右移,然后同時閃爍
- ------------------------------------------------*/
- #include<reg52.h> //包含頭文件,一般情況不需要改動,
- //頭文件包含特殊功能寄存器的定義
- void Delay(unsigned int t); //函數(shù)聲明
- /*------------------------------------------------
- 主函數(shù)
- ------------------------------------------------*/
- void main (void)
- {
-
- unsigned char i; //定義一個無符號字符型局部變量 i
- //取值范圍 0~255
- unsigned char temp;//定義臨時變量用于轉(zhuǎn)換
- while (1) //主循環(huán)
- {
- temp=0xfc;
- P1=temp;
- for(i=0;i<7;i++) //加入 for循環(huán),表明for循環(huán)大括號
- //中的程序循環(huán)執(zhí)行7次
- {
- Delay(50000); //調(diào)用延時程序;更改延時數(shù)字可
- //以更改延時長度;用于改變閃爍頻率
- temp<<=1;
- temp=temp|0x01; //也可以直接把temp換成P1
- P1=temp; //之所以加入temp做中間變量,轉(zhuǎn)換
- //完成后直接賦值到端口,防止直接
- //操作端口造成的短暫閃爍
- }
-
- temp=0x3f;
- P1=temp;
- for(i=0;i<7;i++) //加入 for循環(huán),表明for循環(huán)大括號
- //中的程序循環(huán)執(zhí)行7次
- {
- Delay(50000); //調(diào)用延時程序;更改延時數(shù)字可以
- //更改延時長度;用于改變閃爍頻率
- temp>>=1;
- temp|=0x80; //等效于 temp=temp|0x80
- P1=temp;
- }
- for(i=0;i<3;i++) //加入 for循環(huán),表明for循環(huán)大括號
- //中的程序循環(huán)執(zhí)行3次
- {
- P1=0xff;
- Delay(50000);
- P1=0x00;
- Delay(50000);
- } //主循環(huán)中添加其他需要一直工作的程序
- }
- }
- /*------------------------------------------------
- 延時函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值
- unsigned int 是定義無符號整形變量,其值的范圍是
- 0~65535
- ------------------------------------------------*/
- void Delay(unsigned int t)
- {
- while(--t);
- }
復(fù)制代碼
|
|