電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 3009|回復(fù): 0
收起左側(cè)

單片機(jī)C語言實(shí)例-13-雙燈左移右移閃爍

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-11-24 10:27:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)C語言實(shí)例-13-雙燈左移右移閃爍

內(nèi)容:2個(gè)led燈先左移,然后右移,然后同時(shí)閃爍
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動(dòng),
                  //頭文件包含特殊功能寄存器的定義

void Delay(unsigned int t); //函數(shù)聲明
/*------------------------------------------------
                    主函數(shù)
------------------------------------------------*/
void main (void)
{

unsigned char i;  //定義一個(gè)無符號字符型局部變量 i
                  //取值范圍 0~255
unsigned char temp;//定義臨時(shí)變量用于轉(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í)程序;更改延時(shí)數(shù)字可
                     //以更改延時(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í)程序;更改延時(shí)數(shù)字可以
                     //更改延時(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í)函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值
unsigned int 是定義無符號整形變量,其值的范圍是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}


更多詳情參考附件文檔
游客,如果您要查看本帖隱藏內(nèi)容請回復(fù)


發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表