專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享PIC 單片機(jī)BASIC 編程應(yīng)用。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。
本教程目的在于 教會(huì)你如何編寫程序, 如何編譯,以及如何使用它們使得單片機(jī)工作。我們這里提供了大量的實(shí)際應(yīng)用實(shí)例以及其必須的外圍接口及其設(shè)備連接: 如使用溫度傳感器,AD 和DA 轉(zhuǎn)換, LCD 和LED 顯示,延時(shí),通訊,而且本書還一直不斷地補(bǔ)充更新一些新的應(yīng)用內(nèi)容?!∷械木幋a都為初學(xué)者考慮,盡可能地詳盡描述?!τ谥噶罴?,運(yùn)算符,控制體,和其他的一些basic 的基本元素在許多實(shí)例中都有完全解釋。 而且,本書包括了一些有用的mikroBasic 開發(fā)環(huán)境的介紹: 如何安裝以及如何開發(fā)它可能完成的任務(wù)的潛力。
為了使問題簡化以及破除一些固有成見,請?jiān)试S我在你開始閱讀此書之前給你一些建議?!∧憧梢砸婚_始就閱讀此書中某些章節(jié)內(nèi)你認(rèn)為最感興趣的內(nèi)容,任何你認(rèn)為適合你需要的內(nèi)容。然后再在設(shè)計(jì)工作的同時(shí),不斷地閱讀你亟需的內(nèi)容。如果一些功能出現(xiàn)之后,你可能還不是很了解它,也不必產(chǎn)生太多的困擾?!o論如何,使得你的程序工作起來是第一位的。應(yīng)該一直不斷嘗試,而且要按時(shí)完成工作,還要使得它有良好的可靠性,當(dāng)然,你就可以憑借它賺到錢了。
換句話說,你不用管你是否十分清楚電子是如何在PN結(jié)里運(yùn)動(dòng)的。你也不必靠知道整個(gè)電子發(fā)展歷史擔(dān)保你或你的家庭的收入。別希望你可以從一本書里就得到所有你需要的?!「鞣N信息總是分散地漫布于我們周圍,細(xì)心地收集和給與它們有效的分類。如果你這樣做的話,成功就是必然的。
編譯器Compiler):這是一個(gè)運(yùn)行于PC計(jì)算機(jī)中的程序,它的任務(wù)是把你所用BASIC語言寫出的程序翻譯成為單片機(jī)可以執(zhí)行的“0”、“1”語言。這將BASIC程序翻譯成可以執(zhí)行的16進(jìn)制HEX編碼的過程如下面的圖示。用BASIC編寫的程序是以:program_name. pbas 的格式存儲(chǔ)的,然后編譯器把它轉(zhuǎn)化為:program_name.asm 的格式。這個(gè)格式的文件然后再轉(zhuǎn)化為單片機(jī)可執(zhí)行的HEX 形式,就可以將其由下面的機(jī)器寫入單片機(jī)的存儲(chǔ)器了。
編程機(jī)(Programmer):這是一個(gè)將我們轉(zhuǎn)換后的HEX(16進(jìn)制)編碼文件從計(jì)算機(jī)傳送到單片機(jī)的存儲(chǔ)器中的器件(也常稱為編程器)。
1.1 為什么使用BASIC(Why BAISIC)?
最初,BASIC語言是作為一種“易于使用”的工具語言,而在1980年代廣泛應(yīng)用于家用計(jì)算機(jī)的,而且直到今天也是應(yīng)用十分普及的少數(shù)的不斷拓展的語言之一。BASIC 的名字來自于傳統(tǒng)的,計(jì)算機(jī)科學(xué)上習(xí)慣采用的縮寫詞,但所表示的意義卻非常貼切, Beginner’s All-purpose Symbolic Instruction Code – 為“初學(xué)者的通用符號指令編碼”
現(xiàn)在,BASIC語言依然被若干的計(jì)算機(jī)用戶認(rèn)為是最簡單易用的編程語言而使用著。這樣,這種情況也被轉(zhuǎn)移到了單片機(jī)領(lǐng)域里來。BASIC 語言對于PIC的應(yīng)用來說,較比Microchip 的 MPASM 在應(yīng)用和開發(fā)中使用起來更容易和便捷。在對MCU的編碼過程中,編程者經(jīng)常要面對對于相同模塊的處理,比如串行通訊,LCD的顯示,PWM 信號的產(chǎn)生等等。為了更好地處理這些情況,BASIC 就提供了大量的內(nèi)置以及庫范例(Library routine) 子程序供調(diào)用和開發(fā)。
如果單從程序簡捷和執(zhí)行速度上考慮,MPASM還是比BASIC小有優(yōu)點(diǎn)的。所以,現(xiàn)在依然在BASIC里保留了一個(gè)為某些情況下直接使用MPASM的指令,以期在某些特定情況下由用戶使用。現(xiàn)在大多的單片機(jī),比如PIC,
其一般是單周期執(zhí)行指令。比如,單片機(jī)的時(shí)鐘是4MHz 的話,那一個(gè)匯編指令執(zhí)行需要 250ns * 4 = 1us。 而BASIC
命令通常是一系列的匯編指令,所以其執(zhí)行時(shí)間就是其構(gòu)成中的各個(gè)匯編指令的總和。
1.2 不同的需要選擇不同的PIC 單片機(jī)
當(dāng)前,選擇BASIC語言作為開發(fā)應(yīng)用最多的是: PIC16F84, PIC16F87x, PIC16F62x, PIC18Fxxx等。這些單片機(jī)具有內(nèi)置的FLASH程序存儲(chǔ)器,為快速擦除和重新寫入程序提供了保證,所以可快速調(diào)試。只要用鼠標(biāo)輕輕一點(diǎn)編程軟件,單片機(jī)的程序就可以被立即擦除,然后重新載入新的程序而不必把芯片拔出。而且,被寫入FLASH 存儲(chǔ)器的數(shù)據(jù)不會(huì)在斷電之后丟失。除了FLASH存儲(chǔ)器之外,PIC16F87x 和PIC16F84系列的單片機(jī)還包括了64-256字節(jié)的內(nèi)置EEPROM(電擦寫只讀存儲(chǔ)器), 這同樣可以用于儲(chǔ)存程序數(shù)據(jù)或者參數(shù)而掉電后不會(huì)丟失。 BASIC 具有內(nèi)置的 EEPROM_Read 和 EEPROM_Write 指令 that can 用于將數(shù)據(jù)載入和儲(chǔ)存以及讀出于 EEPROM.
較早的 PIC 單片機(jī)系列 (12C67x, 14C000, 16C55x, 16C6xx, 16C7xx, and 16C92x)的程序存儲(chǔ)器是建立于EPROM/ROM 技術(shù)上的, 所以它們只能夠被一次編程 (帶有 ROM 存儲(chǔ)器的OTP版本) 或者帶有一個(gè)玻璃窗口 ( 具有 EPROM 存儲(chǔ)器的JW版本,這種版本可以允許當(dāng)UV光照射玻璃窗口幾分鐘后將其程序內(nèi)容擦除) 。 OTP 版本通常價(jià)格便宜,可以在大規(guī)模生產(chǎn)時(shí)考慮選擇。
關(guān)于更多的單片機(jī)特殊品種及其應(yīng)用的信息,可以查閱數(shù)據(jù)手冊或者M(jìn)icrochip 的CD-ROM.