www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]如何開始編寫一個(gè)簡(jiǎn)單的單片機(jī)程序呢?接下來就來介紹一下步驟和方法以便更快更好的編寫出來單片機(jī)程序。

編寫一個(gè)單片機(jī)程序需要七步,

1.建立工程;對(duì)于單片機(jī)程序來說,每個(gè)功能程序,都必須要有一個(gè)配套的工程(Project)。點(diǎn)擊:Project-->New uVision Project...然后會(huì)出現(xiàn)一個(gè)新建工程的界面。選擇工程放置位置,(位置是任意的,建議不要放在系統(tǒng)盤)并在根目錄創(chuàng)建文件夾,用來放置工程文件,我們將它命名為L(zhǎng)ED,軟件會(huì)自動(dòng)添加擴(kuò)展名.uvproj。我們可以直接點(diǎn)保存,工程會(huì)自動(dòng)保存成 LED.uvproj 文件,下次要打開 LED 這個(gè)工程時(shí),可以直接找到文件夾,雙擊這個(gè).uvproj 文件就可以直接打開了。保存之后會(huì)彈出一個(gè)對(duì)話框,這個(gè)對(duì)話框讓我們選擇單片機(jī)型號(hào)。找到Atmel單片機(jī),選擇AT89S52. 點(diǎn)擊 OK 之后,會(huì)彈出一個(gè)對(duì)話框每個(gè)工程都需要一段啟動(dòng)代碼,如果點(diǎn)“否”編譯器會(huì)自動(dòng)處理這個(gè)問題,如果點(diǎn)“是”,這部分代碼會(huì)提供給我們用戶,我們就可以按需要自己去處理這部分代碼,那這部分代碼在我們初學(xué) 51 的這段時(shí)間內(nèi),一般是不需要去修改的,但是隨著技術(shù)的提高和知識(shí)的擴(kuò)展,我們就有可能會(huì)需要了解這塊內(nèi)容,到時(shí)候我們選擇是就好了。在這里我們不需要太多復(fù)雜的內(nèi)容,所以我們就點(diǎn)擊否就好了。此時(shí),我們會(huì)發(fā)現(xiàn)keil uVision4界面左邊的工程窗口里多了一個(gè)目標(biāo)文件夾“Target 1”,其下有一個(gè)源文件組文件夾“Suorce Group 1”。

2.建立C文件;“Suorce Group 1”這個(gè)源文件夾下還沒有任何文件。接下來就是創(chuàng)建一個(gè)C文件。我們要建立編寫代碼的文件,點(diǎn)擊“File”菜單,選擇“New”,,新建一個(gè)文件,也就是我們編寫程序的平臺(tái)。然后點(diǎn) “File”“Save ”或者直接點(diǎn)擊那個(gè) Save 的快捷鍵,可以保存文件,保存時(shí)我們把它命名為 LED.c。(注意我們必須要命名成.c)這個(gè)地方的擴(kuò)展名是.asm,頭文件就是.h 等等,我們編寫的是 C 語言程序,這個(gè)地方必須自己添加文件的擴(kuò)展名.c

3.添加C文件到工程;雖然“LED.c”這個(gè)文件已經(jīng)在我們的工程文件夾里,但還不屬于我們的工程文件,如果不把它添加到工程里去,它的存在對(duì)這個(gè)工程將沒有任何意義。接下來就是把C文件添加到工程里,讓它變成我們的工程文件。鼠標(biāo)右鍵點(diǎn) Source Group 1,點(diǎn) Add Files to Group?Source Group 1?...在彈出的對(duì)話框中,單擊 LED.c 選中它,然后點(diǎn) Add,然后單擊 Close,關(guān)閉添加。這個(gè)時(shí)候大家會(huì)看到在 Source Group 1下邊又多了一個(gè) LED.c 文件。

4.編寫C代碼

#include <reg52.h>  //包含特殊功能寄存器定義的頭文件

sbit LED = P0^0;     //位地址聲明,注意:sbit 必須小寫、P 大寫!

void main(){        //任何一個(gè) C 程序都必須有且僅有一個(gè) main 函數(shù)

while(1){         //循環(huán)

LED = 0;   //分號(hào)表示一條語句結(jié)束

}

}

該程序的功能是程序在反復(fù)不斷的無限次執(zhí)行 LED = 0;這條語句。


5.設(shè)置目標(biāo)工程的選項(xiàng);這一步主要是設(shè)置時(shí)鐘頻率和產(chǎn)生HEX文件這兩項(xiàng)。在編譯之前,我們先要勾選一個(gè)選項(xiàng),“Project”“Options for Target” ?Target1?...,在彈出的對(duì)話框中,點(diǎn)擊 Output 選項(xiàng)頁(yè),勾選其中的“Create HEX File”復(fù)選框,然后點(diǎn) OK。

6.編譯工程產(chǎn)生HEX文件;點(diǎn)擊第二條工具欄的第三個(gè)按鈕(Rebuild),工程便進(jìn)入編譯鏈接狀態(tài),編譯完成后,在我們的 Keil 下方的 Output 窗口會(huì)出現(xiàn)相應(yīng)的提示。

7.將HEX文件下載到單片機(jī);以上步驟完成后我們只需要下載我們的程序就可以了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式系統(tǒng)開發(fā)中,時(shí)間戳的獲取是一項(xiàng)基礎(chǔ)而關(guān)鍵的功能。時(shí)間戳,即表示某一瞬間的時(shí)間點(diǎn)的唯一標(biāo)識(shí),通常以自某一固定時(shí)間點(diǎn)(如Unix紀(jì)元,即1970年1月1日00:00:00 UTC)以來的秒數(shù)或毫秒數(shù)表示。它不僅在日志...

關(guān)鍵字: 嵌入式系統(tǒng)開發(fā) C代碼 時(shí)間戳 Unix

關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容文章來源:segmentfault作者:Ethson【導(dǎo)讀】:樹是數(shù)據(jù)結(jié)構(gòu)中的重中之重,尤其以各類二叉樹為學(xué)習(xí)的難點(diǎn)。在面試環(huán)節(jié)中,二叉樹也是必考的模塊。本文主要講二叉樹操作的相關(guān)知識(shí),梳理...

關(guān)鍵字: C代碼 BSP ORDER WHILE

【導(dǎo)讀】:樹是數(shù)據(jù)結(jié)構(gòu)中的重中之重,尤其以各類二叉樹為學(xué)習(xí)的難點(diǎn)。在面試環(huán)節(jié)中,二叉樹也是必考的模塊。本文主要講二叉樹操作的相關(guān)知識(shí),梳理面試??嫉膬?nèi)容。請(qǐng)大家跟隨小編一起來復(fù)習(xí)吧。本文針對(duì)面試中常見的二叉樹操作做個(gè)總結(jié)...

關(guān)鍵字: C代碼 ORDER WHILE RETURN

關(guān)注「Linux大陸」,一起進(jìn)步!繼?300來行代碼帶你實(shí)現(xiàn)一個(gè)能跑的最小Linux文件系統(tǒng)?之后,我們來看看如何60行C代碼實(shí)現(xiàn)一個(gè)shell!在實(shí)現(xiàn)它之前,先看看這樣做的意義。美是有目共睹的。Unix之美,稍微體會(huì),...

關(guān)鍵字: shell C代碼

來源:公眾號(hào)【編程珠璣】作者:守望先生前言如何在C代碼中調(diào)用寫好的C接口?你可能會(huì)奇怪,C不是兼容C嗎?直接調(diào)用不就可以了?這里我們先按下不表,先看看C如何調(diào)用C代碼接口。C如何調(diào)用C接口為什么會(huì)有這樣的情況呢?想象一下...

關(guān)鍵字: C代碼

今天跟大家分享三種表驅(qū)動(dòng)設(shè)計(jì)的方法,都非常的精妙,值得收藏和細(xì)品。

關(guān)鍵字: 表驅(qū)動(dòng) 靜態(tài)結(jié)構(gòu)體 C代碼

▍很懶很操心 有一次,我在項(xiàng)目開發(fā)中想監(jiān)控某段空間數(shù)據(jù)的大小,即這段空間在MCU中非常有限,希望每個(gè)版本在集成軟件的時(shí)候都想獲取其使用了多少空間,防止某些愣頭青不珍惜內(nèi)存,亂塞東西。而這段空間,我定義了一個(gè)神一樣的結(jié)構(gòu)體...

關(guān)鍵字: C代碼

為了優(yōu)化鉆井流程并降低作業(yè)成本,Baker Hughes的動(dòng)力學(xué)與遙測(cè)(Dynamics & Telemetry)小組開發(fā)了一個(gè)序列預(yù)測(cè)算法,用于在鉆井作業(yè)期間快速可靠的解碼井下數(shù)據(jù)。這個(gè)已集成

關(guān)鍵字: C代碼 編碼 自動(dòng)代碼生成 馬爾可夫鏈

  本文講解的是飛思卡爾軟件開發(fā)C語言編碼規(guī)范。來自于痞子衡嵌入式公眾號(hào),下面是編碼規(guī)范原文: 1.引言   制定此編碼風(fēng)格指導(dǎo)手冊(cè)的目的是為了使按此規(guī)范編寫出的C/C++代碼極易被閱讀和理解。 2.與其他編碼風(fēng)格對(duì)比...

關(guān)鍵字: 軟件開發(fā) MCU 半導(dǎo)體 C代碼

1. 不能清晰理解“==”運(yùn)算以及優(yōu)先級(jí)和結(jié)核性的含義在判斷i,j,k三個(gè)變量是否相等時(shí)往往會(huì)輕率地寫出“i == j == k ”這樣的表達(dá)式并誤以為三個(gè)變量

關(guān)鍵字: C語言 RSQUO IP C代碼
關(guān)閉