手把手教您編寫第一個單片機程序


51單片機的開發環境是Keil 軟件。Keil 軟件雖然是一個收費軟件,但從uVision2到目前的uVison4版本都有破解版,在網上都可以找到下載。筆者推薦大家使用uVisong4破解版本,好處不用多說。Keil uVision4軟件的壓縮包里附有安裝和破解說明,本文不再贅述。

開發一個單片機程序,一般都要經過這幾個步驟:建立工程->建立C文件->添加C文件到工程->編寫C代碼->設置目標工程的選項->編譯工程產生HEX文件->將HEX文件下載到單片機。本文將一步一步手把手教您開發一個LED閃爍的簡單且實用的C51程序。讓您從0基礎起步學習開發51單片機。

安裝Keil uVison4之后,第一次運行出現如圖1的界面,從上往下數,依次是菜單欄、第一條工具欄、第二條工具欄,接下來左邊白色部分為工程文件區(顯示文件、函數、語言模板和相關書籍),右邊灰色部分為文本區(編寫源文件),最下邊為編譯信息欄(顯示編譯時產生的相關信息)。

 

 

圖1

一.建立工程

點擊“Project”菜單項,選“New uVision Project…”,跳出創建新工程對話框,選擇工程放置位置,在這里筆者選擇F盤,並在根目錄創建LED這個文件夾,用來放置工程文件,如圖2:

 

 

圖2

打開LED文件夾,然后給新工程取個名字(可以任意取),在這里筆者取工程名字為“LED”,如圖3:

 

 

圖3

點擊“保存”按鈕,跳出器件選擇對話框,如圖4:

 

 

圖4

找到Atmel單片機,選擇AT89S52,同時右邊的描述欄里顯示了該器件的基本信息,如圖5:

 

 

圖5

點擊“OK按鈕,”跳出提示對話框,如圖6:

 

 

圖6

提示對話框問您“是否將8051標准啟動代碼復制到工程文件夾並添加到工程?”,根據您的需要選擇,一般不需要,在這里筆者選擇“否”。此時,可看到keil uVision4界面左邊的工程窗口里多了一個目標文件夾“Target 1”,其下有一個源文件組文件夾“Suorce Group 1”,如圖7。此時,新工程已經建立,但還只是一個空的工程。

 

 

圖7

二.建立C文件和保存C文件

從圖7可看到,“Suorce Group 1”這個源文件夾下還沒有任何文件。接下來就是創建一個C文件。點擊“File”菜單,選擇“New”,文檔區便出現了一個默認文件名為“Text 1”的空白文檔,如圖8:

 

 

圖8

在該文檔上隨便輸入一個空格,然后點擊“File”菜單,選擇“Save”,跳出保存對話框,如圖9,輸入文件名為“LED.c”,點擊“保存”按鈕。這一步需要注意的是這個C文件必須保存在剛才創建的工程文件夾下,否則在后面編譯時會出錯。C文件的文件名一般和工程名一致。擴展名必須為“.c”。這個C文件就是您后面要編寫C語言源代碼的源文件,現在已經在你的工程文件夾里了。

 

 

圖9

三.添加C文件到工程

雖然“LED.c”這個文件已經在您的工程文件夾里,但還不屬於你的工程文件,如果您不把它添加到工程里去,它的存在對您這個工程沒有任何意義。接下來就是把C文件添加到您的工程里,讓它變成您的工程文件。右鍵點擊左邊工程窗口里的“Suorce Group 1”這個源文件夾,選“Add File to Group ‘Suorce Group 1’…”,跳出添加源文件對話框,找到剛才建立的“LED.c”文件,點擊“Add”按鈕后,再點擊“Close”按鈕退出,不要重復點擊,如圖10:

 

 

圖10

這時可以看到“Suorce Group 1”這個源文件下多了一個源文件“LED.c”,同時,右邊的文檔區的文件名也改變了,如圖11。

 

 

圖11

四.編寫C代碼

在空白的文檔區輸入如下C代碼:

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#i nclude//包含頭文件

sbit led=P2^0;//定義位變量led,使其關聯單片機管腳P2.0

void Delayms(unsigned int t);//聲明延時函數

/////////////////////////////////////////////////////////////////////////////////

int main(void)//主函數(C語言程序入口函數)

{

while(1)

{

led=0;//P2.0拉低,點亮LED

Delayms(500);//調用延時函數,延時500毫秒

led=1;//P2.0拉高,熄滅LED

Delayms(500);//調用延時函數,延時500毫秒

}

return 0;

}

//////////////////////////////////////////////////////////////////////////////////

void Delayms(unsigned int t)//定義延時函數

{

unsigned int i,j;

for(i=0;i

for(j=0;j<120;j++);//大約延時1毫秒

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

這是一個常用的指示燈閃爍的程序,輸入完成以后,先不要馬上編譯,還需要作一些設置。

五.工程選項設置

這一步主要是設置時鍾頻率和產生HEX文件這兩項。進入工程選項有兩個途徑:從“Project”菜單進入和直接點擊工具欄快捷按鈕進入。這里使用工具欄快捷按鈕進入,點擊第二條工具欄的第7個按鈕(Target Opsions…),跳出選項對話框,默認選項卡為“Target”,如圖12,將晶振頻率設為你目標板所使用的晶振頻率,這里設為12.0;再點擊“Output”選項卡,將“Create HEX File ”復選框打勾,這個項設置絕不能忽略,否則您的工程就沒有 HEX文件產生。其他選項保持默認。最后點擊“OK”按鈕,完成選項設置。

 

 

圖12

六.編譯工程產生HEX文件

點擊第二條工具欄的第三個按鈕(Rebuild),工程便進入編譯鏈接狀態,“Build Output”信息欄就會出現相關的編譯信息,如圖13。從該信息欄可以知道程序的大小,使用了的多少內部RAM和外部RAM、生成多少個代碼、是否生成HEX文件、有多少個錯誤和警告等信息。如果有錯誤,目標文件將不會被創建,只要雙擊錯誤信息,光標就會跳到C文檔錯誤代碼的行號或錯誤代碼的附近,方便您排查錯誤。

 

 

圖13

七.將HEX文件下載到單片機

編譯通過的C代碼,在工程文件夾下就會生成很多文件,其中有兩個文件是最重要的,一個是擴展名為“.c”文件“LED.c”,這是移植程序用的C源文件,是程序的核心,擁有這個文件就相當於擁有整個程序;另一個是擴展名為“.hex”的文件“LED.hex”,這是下載程序用的文件。這兩個文件都可以用記事本打開。“LED.hex”文件是采用Intel hex文件格式存儲程序代碼的。下載程序的時用下載軟件打開這個hex文件,將文件里的程序代碼提取出來寫入單片機的程序存儲區里。

在下載單片機程序之前,您需要構建一個單片機最小系統,請參閱筆者的《學單片機從構建最小系統開始》一文。下載軟件使用WSFISP軟件,也可以用AtmelISP軟件。下載線可根據筆者提供的原理圖自己DIY,也可以購買。51單片機程序下載軟件操作都很簡單,本文不再敘述。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM