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

QQ登錄

只需一步,快速開始

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

零基礎(chǔ)學(xué)習(xí)C51單片機(jī)簡明實(shí)用教程--第一課點(diǎn)亮LED

[復(fù)制鏈接]
ID:299360 發(fā)表于 2018-4-13 14:21 | 顯示全部樓層 |閱讀模式
以下內(nèi)容為我理解的單片機(jī)及程序。51單片機(jī),簡單的可以實(shí)現(xiàn)交通燈功能,一般的可以驅(qū)動(dòng)機(jī)器人,打印機(jī)等,可以實(shí)現(xiàn)溫度、壓力自動(dòng)控制。復(fù)雜的可以制成例如俄羅斯方塊等游戲機(jī)。其他還有很多等待你改變世界......。

本課程以STC80C51系列芯片為基礎(chǔ)(STC80C52,STC80C51RC,80C52RC均可),強(qiáng)調(diào)實(shí)用、簡單為特點(diǎn),適合沒有基礎(chǔ)的學(xué)生學(xué)習(xí),后續(xù)課程陸續(xù)更新中。
適應(yīng)范圍:有一點(diǎn)電子基礎(chǔ),會(huì)用烙鐵(當(dāng)然不會(huì)也可以用面包板),萬用表,這是一個(gè)硬件和軟件結(jié)合的事業(yè),這里主要討論C程序部分.
學(xué)習(xí)前的準(zhǔn)備工作:1.要有一塊學(xué)習(xí)版(因?yàn)樾率趾附蛹夹g(shù)也不一定過關(guān))或最小系統(tǒng)板。
                           2.要有電腦并安裝C程序編輯軟件KEIL、和燒錄芯片的軟件stc-isp-v6.86L程序見附件
                           3.能上網(wǎng)查詢相關(guān)資料,STC80C52資料見附件,相關(guān)軟件安裝及使用可搜索百度。
準(zhǔn)備工作做完了我們來編程:
目標(biāo)讓一個(gè)LED燈亮:  打開vision4軟件輸入

#include <at89x52.h>   //斜杠就是注釋的意思,第一行就是將at89x52的注冊(cè)表加進(jìn)來                                                                //也可以在程序里點(diǎn)右鍵打開看看都有啥。編程必備語句。
void main()                 //程序從這開始,編程必備語句。
{                               //程序包含內(nèi)容的起點(diǎn)標(biāo)記
   P2_0=0;                    //讓芯片P2.0腳為低電平,如你的機(jī)器上P2.0腳連著LED,就可以點(diǎn)亮要注意學(xué)習(xí)板連接
  }                             //程序包含內(nèi)容的終點(diǎn)標(biāo)記

以上程序就寫完了,雖然不太標(biāo)準(zhǔn),但好用,編輯一下形成.hex文件,這就是點(diǎn)亮一個(gè)LED的C 程序,然后用STC-ISP-V6.86燒錄
注意事項(xiàng):
             1.  P一定要大寫,后面一定要加分號(hào),0是零不是英文字母O
             2.  vision4軟件需設(shè)置HEX輸出,在閃存---配置閃存工具---輸出---選中產(chǎn)生HEX文件--確定,芯片ATMEL---AT89C51即可。
             3.  STC-ISP-V6.86軟件,注意先點(diǎn)下載,然后再打開學(xué)習(xí)版電源才能燒錄成功,芯片型號(hào)必須對(duì)
是不是很簡單啊,實(shí)際編程也沒那么難,不用學(xué)太多理論,先點(diǎn)亮一個(gè)燈再說這樣比較有興趣。那點(diǎn)亮兩個(gè)呢三個(gè)呢學(xué)習(xí)版一般會(huì)配7個(gè)你都可點(diǎn)亮
擴(kuò)展:
       #include <at89x52.h>
        void main()
      {
       P2_0=0;
       P2_2=0;
       }

這就是點(diǎn)亮兩個(gè)的程序同樣你可以同時(shí)點(diǎn)亮7個(gè)(一般學(xué)習(xí)版會(huì)有七個(gè)供直接點(diǎn)亮的LED),其實(shí)能點(diǎn)亮LED理論上你就可以點(diǎn)繼電器模塊、直流小電機(jī)、小風(fēng)扇等等。
讓我們?cè)贁U(kuò)展一下讓蜂鳴器響:

        #include <at89x52.h>
        void main()
       {
         
         P1_5=~P1_5; //假設(shè)你的學(xué)習(xí)版P1.5是蜂鳴器那就可以響了
       }

注意:輸入程序一定要在純英文輸入狀態(tài)輸入這個(gè)~,它的意思是狀態(tài)翻轉(zhuǎn)從高電平到低電平再高電平循環(huán),直接 P1_5=0是不行的,因?yàn)榈谜饎?dòng),但發(fā)過來這個(gè)符號(hào)是可以點(diǎn)亮LED的,學(xué)不在多要會(huì)活用。

       #include <at89x52.h>
        void main()
      {
       P2_0=~P2_0;
        
       }

雖然是亮了只是有些暗,為什么呢?因?yàn)槠鋵?shí)它是在快速閃,其實(shí)讓燈亮還有正規(guī)寫法
  
      #include "at89x52.h"   

      sbit led=P2^0;           //將單片機(jī)的P2.0端口定義為led

      void main()
     {
        while(1)     //后面括號(hào)里的程序循環(huán)
          {
          led=0;        //P2.0端口設(shè)置為低電平
          }               
     }

這又是一種寫法也可以點(diǎn)亮LED,自己多試驗(yàn)一下吧。

學(xué)習(xí)板自帶的燒錄程序也可以燒錄,好處就是可以開機(jī)直接燒不用關(guān)機(jī),壞處是有些芯片燒不了所以建議一開始就用STC-ISP燒。再拓展一下點(diǎn)亮LED的方法:
#include "at89x52.h"        
void main()
{
P2=0xfe;    //這點(diǎn)亮的是P2.0口的燈,P2.1是0xfd,全亮是0x00
}

這是16進(jìn)制的表示方法,以后學(xué)習(xí)復(fù)雜的程序必須用的,所以有時(shí)間看看背一下2進(jìn)制、10進(jìn)制、16進(jìn)制的轉(zhuǎn)換,有助于以后學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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