單片機(jī)怎么寫(xiě)入程序
MCU芯片也就是我們稱之為單片機(jī)的元器件需要在寫(xiě)入程序后才能使用在產(chǎn)品的主板上面,它是實(shí)現(xiàn)電子產(chǎn)品的主要核心技術(shù),通過(guò)芯片的程序設(shè)定,我們?cè)O(shè)計(jì)生產(chǎn)出許多不同功能模式的電子產(chǎn)品。而幾乎所有的電子產(chǎn)品都離不開(kāi)MCU芯片的存在。
那問(wèn)題來(lái)了,MCU芯片作為一個(gè)里面只有晶體管的單身狗它是如何變成一個(gè)萬(wàn)物皆可的海王的呢?
就像武俠小說(shuō)里練就神功第一步首先得打通任督二脈一樣,想要MCU芯片變成萬(wàn)物皆可的海王第一步首先就要將程序這個(gè)東西注入到他的身體里面打通他的任督二脈,這樣他才有機(jī)會(huì)開(kāi)竅展現(xiàn)自己的魅力和價(jià)值,然后一步一步走上巔峰。
這就是我們今天所要講的,程序是如何寫(xiě)入到MCU里面的。這大概分為以下幾步:
第一、程序編寫(xiě)
MCU芯片的程序開(kāi)發(fā)主要使用兩種語(yǔ)言——匯編和C語(yǔ)言。匯編語(yǔ)言是用助記符(Mnemonics)代替機(jī)器指令的操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替指令或操作數(shù)的地址;C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言;兩種語(yǔ)言各有各的優(yōu)點(diǎn)和缺點(diǎn),不能完全說(shuō)哪個(gè)好和不好,需要根據(jù)不同的芯片類型和功能需###求選擇使用哪種語(yǔ)言做開(kāi)發(fā)。如DSH551-LQFP48的芯片,其內(nèi)置是 4K×16 位一次性可編程存儲(chǔ)器(OTP ROM),使用在溫控器或者遙控上時(shí)就適合使用匯編語(yǔ)言。
第二、編譯器生成hex文件
開(kāi)發(fā)的程序需要轉(zhuǎn)換格式才能使用在MCU芯片里面,而這個(gè)格式就是利用編譯器轉(zhuǎn)換的hex文件格式。hex文件格式是Intel公司提出的按地址排列的數(shù)據(jù)信息,數(shù)據(jù)寬度為字節(jié),所有數(shù)據(jù)使用16進(jìn)制數(shù)字表示, 常用來(lái)保存單片機(jī)或其他處理器的目標(biāo)程序代碼。這里我們要說(shuō)一下編譯器,每個(gè)品牌的芯片對(duì)應(yīng)的編譯器都不一樣,目前還不存在通用型的編譯器。如51的編譯器使用的就是keil或tkstudio、PIC的是MAPLAB+PICC 、飛思卡爾使用則是COLDFILE。
第三、程序燒錄
燒錄有分為離線燒錄和在線燒錄這兩種方法,但一般大多數(shù)都使用在線燒錄。因?yàn)殡x線燒錄時(shí)如果生產(chǎn)測(cè)試出現(xiàn)錯(cuò)誤,需要返回重新修改時(shí)需要把芯片從適配器上面拆下來(lái),然后再重新按照規(guī)定的流程進(jìn)行燒錄,這種方法對(duì)人力物力耗費(fèi)較大且成本較高,所以一般都不推薦使用離線燒錄。
在燒錄時(shí),程序是以二進(jìn)制(0低電平和1高電平)的形式,對(duì)芯片的內(nèi)部相應(yīng)MOS管柵極進(jìn)行充電或放電,形成數(shù)據(jù)保存。例如:一竄00000001數(shù)據(jù)送人存儲(chǔ)器,MOS柵極進(jìn)行充放電保存,前面0000000七個(gè)對(duì)對(duì)應(yīng)的MOS管放電以低電平形式保存,最后一個(gè)1,是以給MOS管柵極進(jìn)行充電形式保存。這樣就八個(gè)MOS管就保存00000001的這竄數(shù)據(jù)。
讀取時(shí),MOS管柵極放電輸出為O,充電輸出為1,將一連串的數(shù)據(jù)讀取輸出。
MCU芯片工作時(shí)首先是讀取程序存儲(chǔ)器的數(shù)據(jù),然后是完全按照程序數(shù)據(jù)來(lái)工作的;當(dāng)給MCU芯片內(nèi)存儲(chǔ)器燒錄不同的程序,MCU芯片工作就不相同。
單片機(jī)是一個(gè)微型的控制中心,相當(dāng)于我們的電腦主機(jī),而沒(méi)有燒錄的單片機(jī)是沒(méi)有任何功能的,那么如何把程序?qū)戇M(jìn)深圳單片機(jī)。下次跟安瑪科技小編一起來(lái)看看。
首先你需要寫(xiě)一個(gè)好的程序。不同的單片機(jī)使用不同的編程語(yǔ)言,有的是C++,有的是匯編語(yǔ)言??梢詤⒖紗纹瑱C(jī)的開(kāi)發(fā)手冊(cè)或技術(shù)手冊(cè)。寫(xiě)好程序后,就可以進(jìn)行下一步了。
程序編寫(xiě)完成后,還需要通過(guò)深圳單片機(jī)仿真器進(jìn)行測(cè)試。當(dāng)然,這一步不是必須的。最主要的是測(cè)試功能是否正常,有哪些地方需要修改。
程序沒(méi)問(wèn)題后就可以燒錄了,并在燒錄軟件中進(jìn)行必要的設(shè)置,如選擇要刻錄的程序文件、選擇燒錄模式(如扇區(qū)擦除、全芯片擦除)、設(shè)置刻錄地址等待等。這些參數(shù)根據(jù)具體的MCU和編程器而有所不同。要把程序?qū)戇M(jìn)單片機(jī),不同的單片機(jī)使用不同的編程器,可以查一下相關(guān)的技術(shù)手冊(cè)來(lái)查一下。
燒錄完成后,進(jìn)行驗(yàn)證,以確保程序已成功寫(xiě)入微控制器??梢酝ㄟ^(guò)讀取微控制器中存儲(chǔ)器的內(nèi)容并將其與程序文件進(jìn)行比較來(lái)實(shí)現(xiàn)驗(yàn)證??啼涇浖ǔ?huì)提供一個(gè)驗(yàn)證功能,可以自動(dòng)驗(yàn)證。
通過(guò)以上步驟,您已經(jīng)成功地將程序編寫(xiě)到微控制器中。可以將單片機(jī)與相應(yīng)的電路和外設(shè)連接起來(lái),觀察程序在深圳單片機(jī)上的運(yùn)行情況和效果。以上就是安瑪科技小編為大家分享的關(guān)于單片機(jī)的全部?jī)?nèi)容了,希望可以幫助到大家。
1.什么是單片機(jī)?
簡(jiǎn)單地說(shuō),單片機(jī)就是一個(gè)小計(jì)算機(jī)系統(tǒng)。為了說(shuō)明清楚這個(gè)問(wèn)題,得要從計(jì)算機(jī)說(shuō)起。提到計(jì)算機(jī),大家可能馬上會(huì)想到“顯示器、鼠標(biāo)、鍵盤(pán)”,不過(guò),這不是一個(gè)計(jì)算機(jī)的核心和關(guān)鍵,計(jì)算機(jī)的核心部分在一邊的機(jī)箱里呢。打開(kāi)機(jī)箱,可以看到,機(jī)箱里有主板、硬盤(pán)、光驅(qū)等。仔細(xì)觀察主板,這上面有CPU、內(nèi)存條、BIOS芯片,通常還有25針的打印機(jī)接口等,這些部件都是通過(guò)主板上的連線相互連接。
電路示意圖
電路示意圖
不論計(jì)算機(jī)復(fù)雜程度如何,它總是由運(yùn)算器,控制器,存儲(chǔ)器,輸入/輸出接口,總線這五個(gè)部分組成。通常運(yùn)算器和控制器被做成一塊芯片,也就是CPU(中央處理器)。在計(jì)算機(jī)主板上,內(nèi)存條和BIOS芯片就是存儲(chǔ)器,25針打印機(jī)接口就是輸出/輸出設(shè)備,而總線則被設(shè)計(jì)在主板上,即各部件相互連接的線路。
在一些應(yīng)用場(chǎng)合,人們不需要計(jì)算機(jī)完成十分復(fù)雜的運(yùn)算,但卻希望計(jì)算機(jī)小巧,可靠,價(jià)格低。于是人們就把組成計(jì)算機(jī)的這5個(gè)部分全部集成到一塊芯片上,也說(shuō)是一塊芯片就能構(gòu)成一個(gè)獨(dú)立的計(jì)算機(jī),在當(dāng)時(shí)的技術(shù)條件下,這是一件了不起的事情,于是人們就用這個(gè)特征來(lái)為之命名,稱為“單片機(jī)”。
將構(gòu)成一個(gè)計(jì)算機(jī)所需要的5個(gè)部分全部都集成到一塊芯片中,這塊芯片是否要很大、價(jià)格是否很高呢?并非如此。如果要主板上的所有元件都集成到一塊芯片中,那當(dāng)然非常昂貴,可能技術(shù)上也無(wú)法實(shí)現(xiàn),但很多單片機(jī)中所需要用到的功能完全沒(méi)必要那么強(qiáng)大,因此很多單片機(jī)體積很小,價(jià)格也很低。如市場(chǎng)上常見(jiàn)的單片機(jī)有8,14,16,18,20,28,40,84等引腳,有些甚至只有6個(gè)引腳。而價(jià)格從幾元到幾十、上百元的都有,有些品種在大批量定購(gòu)時(shí)甚至可以低至1元以下。
剛接觸到單片機(jī)的人往往會(huì)有個(gè)疑惑:既然人們已經(jīng)有能力制造功能強(qiáng)大的計(jì)算機(jī),為何還要生產(chǎn)些功能不強(qiáng)的計(jì)算機(jī)?其實(shí),功能強(qiáng)弱并不是決定是否生產(chǎn)的決定因素,市場(chǎng)需要才是關(guān)鍵。比如,用來(lái)控制一臺(tái)電箱的計(jì)算機(jī)顯然沒(méi)必要使用“奔騰”芯片的強(qiáng)大運(yùn)算能力,只要進(jìn)行非常簡(jiǎn)單的計(jì)算,作個(gè)比較,看一看溫度是否在所控制區(qū)間之內(nèi),然后再做出相應(yīng)的控制就行了。
單片機(jī)在人們的生活中、工農(nóng)業(yè)生產(chǎn)設(shè)備中處處有應(yīng)用,例如各定時(shí)裝置、自動(dòng)控制裝置等。愛(ài)好者學(xué)習(xí)單片機(jī)應(yīng)該注意觀察事物,找到自己周圍能夠使用單片機(jī)的場(chǎng)合,從而將學(xué)到的知識(shí)應(yīng)用到實(shí)際中去。例如,使用單片機(jī)技術(shù)改造傳統(tǒng)的機(jī)電設(shè)備、在特定的場(chǎng)合使用單片機(jī)替代PLC等就有著廣闊的應(yīng)用前景;又如,使用單片機(jī)控制電扇、抽油煙機(jī)、空調(diào)等,從而制作出具有更強(qiáng)功能、能夠通用的控制器,也是可以嘗試的。