您好,登錄后才能下訂單哦!
接下來的幾節(jié),我們會帶著人人編寫第一個單片機程序。在此之前,我們先來理解一些 51 單片機特有的程序語法以及 Keil 軟件的根本操作步調(diào),請人人必定要有耐煩。
我們次要是用 C 言語來對單片機編程,而有的單片機有那么幾條很特別的獨有的編程語句,51 單片機就有,先引見 2 條。
第一條語句是:sfr P0 = 0x80;
sfr 這個癥結(jié)字,是 51 單片機特有的,他的感化是界說一個單片機特別功用存放器(special function register)。51 單片機外部有許多個小模塊,每一個模塊寓居在具有獨一房間號的房間內(nèi),同時每一個模塊都有 8 個掌握開關(guān)。P0 就是一個功用模塊,就住在了 0x80 這個房間里,我們就是經(jīng)過設(shè)置 P0 外部這個模塊的 8 個開關(guān),來讓單片機的 P0 這 8 個 IO 口輸入高電平或許低電平的。而 51 單片機外部有許多存放器,假如我們想運用的話必需提早停止 sfr 聲明。不外 Keil 軟件曾經(jīng)把一切這些聲明都事后寫好并保管到一個專門的文件中去了,我們要用的話只需文件掃尾添加一行#include<reg52.h>即可,這個在后邊有效法詳解。
第二條語句是:sbit LED = P0^0;
這個 sbit,就是對方才所說的 SFR 里邊的 8 個開關(guān)個中的一個停止界說。經(jīng)由上邊第二條語句后,今后只需在程序里寫 LED,就代表了 P0.0 口(“^”這個符號在數(shù)字鍵 6 上邊),留意這個 P 必需大寫,也就是說我們給 P0.0 又取了一個更抽象的名字叫做 LED。
理解了這兩個語句后,我們來大約看一下單片機的特別功用存放器。請留意,每一個型號的單片機都邑配有消費廠商所編寫的數(shù)據(jù)手冊(Datasheet),所以我們來看一下 STC89C52 的數(shù)據(jù)手冊,從 21 頁到 24 頁,全體是對特別功用存放器的引見以及地址映射列表。我們在運用這個存放器之前,必需對這個存放器的地址停止闡明。是不是花花綠綠的太多了,記不住啊,這個沒緊要的,不需求你記住,理解一下,后邊大局部我會漸漸給人人說明,少局部需求用到的時分,本人過去查手冊就可以了,做技巧不是為了敷衍測驗,你可以隨時翻閱手冊查找你需求的材料。
如圖 2-7,是截取的手冊中第 22 頁最下邊的一個表格。
圖 2-7 IO 口特別功用存放器
我們來看一下這個表,個中 P4 口 STC89C52 對規(guī)范 51 的擴大,我們先疏忽它,只看前邊的 P0、P1、P2、P3 這 4 個,每一個 P 口自身又有 8 個掌握端口。人人可以聯(lián)合我們的開辟板道理圖或許圖 2-1 來看,那么如許就肯定了我們的單片機一共有 32 個 IO 口(IO,Input 和 Output,辨別是輸出和輸入)。
個中 P0 口地點的地址是 0x80,一共有從 7 到 0 這 8 個 IO 口掌握位,后邊有個 Reset Value(復(fù)位值),這個很主要,是我們看存放器必看的一個參數(shù),8 個掌握位復(fù)位值全體多是 1。
這就是通知我們,每當單片機上電復(fù)位的時分,一切的引腳的值默許是多是 1,即高電平,我們在設(shè)計電路的時分也要充沛的思索這個成績。
那么上邊那 2 條語句,我們寫 sfr 的時分,必需要依據(jù)手冊里的這個地址(Add)去寫,寫sbit 的時分,就可以直接將一個字節(jié)個中某一位掏出來。我們編程的時分,也有現(xiàn)成的寫好存放器地址的頭文件,我們直接包括該頭文件就可以了,不需求一一去寫了。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。