找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

第一個(gè)單片機(jī)程序(點(diǎn)亮LED)

[復(fù)制鏈接]
ID:115111 發(fā)表于 2016-4-28 03:25 | 顯示全部樓層 |閱讀模式
        對(duì)一個(gè)單片機(jī)新手,遇到的第一個(gè)問題往往是如何使用單片機(jī)點(diǎn)亮LED,這就好比學(xué)習(xí)編程語言第一個(gè)程序的HelloWorld。

        這里默認(rèn)大家已經(jīng)裝好了KEIL的開發(fā)環(huán)境及燒寫器,有自己的單片機(jī)開發(fā)板,假設(shè)單片機(jī)的P0口接了八個(gè)LED,電路圖入下圖:
其中JPP0接的是高電平5V,而L0.0到L0.7接的分別是P0.7到P0.0這樣的話如果
P0.7到P0.0上電平是高電平,那么這個(gè)led的壓降就是0,led不亮,如果P0.7到P0.0上電平是低電平,那么led上就會(huì)產(chǎn)生壓降,led就會(huì)亮。
那么點(diǎn)亮其中一個(gè)的程序如下:




#include<reg51.h>   //包含單片機(jī)寄存器的頭文件

void main(void)
{
   while(1)
          {
                 P0=0xfe;   //第一個(gè)燈亮       
                 P0=0xff;   //第一個(gè)燈滅        
         }
}


對(duì),就是這么簡(jiǎn)單,P0=0xfe,相當(dāng)于P0=11111110,這時(shí)候P0.0=0,燈L0.7亮,然后P0=0xff,相當(dāng)于P0=11111111,這時(shí)候P0.0=1,燈L0.7滅,然后由于這兩句是放在while(1)中的由于其中1是while{}中的語句執(zhí)行的條件,由于1始終為真,所以這兩句循環(huán)執(zhí)行。燈L0.7就在不斷閃爍,亮滅,但由于閃爍的速度很快,由于視覺暫留,你看到的是燈一直亮著。





接下來來個(gè)流水燈,大家嘗試自己分析程序的原理:
#include<reg51.h>   //包含單片機(jī)寄存器的頭文件
/****************************************
函數(shù)功能:延時(shí)一段時(shí)間
*****************************************/

void delay(void)
   {
          unsigned char i,j;
           for(i=0;i<250;i++)
                 for(j=0;j<250;j++)                  
                   ;
          }
/*******************************************************
函數(shù)功能:主函數(shù)
********************************************************/
void main(void)
{
   while(1)
          {
                P0=0xfe;   //第一個(gè)燈亮
                 delay();   //調(diào)用延時(shí)函數(shù)
                P0=0xfd;   //第二個(gè)燈亮
                 delay();   //調(diào)用延時(shí)函數(shù)
                P0=0xfb;   //第三個(gè)燈亮
                 delay();   //調(diào)用延時(shí)函數(shù)
                P0=0xf7;   //第四個(gè)燈亮
                 delay();   //調(diào)用延時(shí)函數(shù)
                P0=0xef;   //第五個(gè)燈亮
                   delay();   //調(diào)用延時(shí)函數(shù)
                P0=0xdf;   //第六個(gè)燈亮
                 delay();   //調(diào)用延時(shí)函數(shù)
                P0=0xbf;   //第七個(gè)燈亮
                   delay();   //調(diào)用延時(shí)函數(shù)
                P0=0x7f;   //第八個(gè)燈亮
                   delay();   //調(diào)用延時(shí)函數(shù)  
         }

}
這時(shí)候這八個(gè)燈就愉快的流動(dòng)閃爍了。


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表