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