介紹CH Basic Compiler
你想學(xué)PIC單片機(jī),一定會(huì)為難以記住的匯編語言頭痛。今給想學(xué)習(xí)開發(fā)PIC系列單片機(jī)的朋友介紹一款軟件CH Basic Compiler.這編輯器是為單片機(jī)PIC系列設(shè)計(jì),它適用于PIC12,PIC14,PIC16系列單片機(jī)。它采取全新編輯思路。CH Basic是一工具,他簡(jiǎn)化了對(duì)Microchip PIC單片機(jī)開發(fā),編寫程序和調(diào)試程序的手續(xù)。不用PIC匯編語言,而用CH Basic來編程,大大節(jié)省時(shí)間。CH Basic包含標(biāo)準(zhǔn)的Basic指令子集和有關(guān)PIC單片機(jī)的某些特殊指令。 你不會(huì)匯編語言,你只要輸入Basic語言碼,編輯器就立刻解釋這碼,并把它翻譯成等效的匯編語言指令。在你輸入的Basic碼的每一改變,在匯編碼窗口也會(huì)實(shí)時(shí)改變。
二.用CH Basic 作為編程的工具有以下好處。
1.不需要學(xué)習(xí)PIC 匯編語言指令。
即使你不會(huì)PIC單片機(jī)匯編語言,你能夠編寫用于任何目的PIC單片機(jī)程序。如果你懂得PIC匯編語言,可以用在線匯編功能(in-line assembly function)直接輸入?yún)R編碼到basic 程序中。當(dāng)你輸入你的簡(jiǎn)單Basic命令,你將在屏幕的右面的匯編窗口看到每一個(gè)命令的匯編語言。
我們知道PIC單片機(jī)有RISC核心,這意味他有較少數(shù)量的指令,他執(zhí)行較快,使程序執(zhí)行也較快。這帶來的問題是程序比用CISC內(nèi)核的單片機(jī)的要長(zhǎng)得多。對(duì)以RISC為核心的單片機(jī)的任何一復(fù)雜運(yùn)算都需要寫比以CISC為核心的單片機(jī)更多的匯編指令。用于12,16系列PIC單片機(jī)算術(shù)指令僅僅是加法和減法。這意味匯編級(jí)的程序員要編制更多的程序。而CH Basic將使程序員在大大縮短了時(shí)間達(dá)到他的目標(biāo)。
一旦程序用CH Basic編輯后,只需把他輸入到MPASM OR MPLAB軟件編輯成機(jī)器碼,把他燒到你選擇的單片機(jī)芯片上就可。
2.簡(jiǎn)單而直觀的指令。
所用的basic指令比匯編語言要簡(jiǎn)潔,清楚,便捷。故他設(shè)用于初學(xué)者,也設(shè)于專業(yè)人員。初學(xué)者可以用指令按鈕,可以減少句法錯(cuò)誤。也可以用鍵盤輸入碼,也可以安自己喜好用文本編輯器進(jìn)行輸入。
基本指令有;For...Next;If...EndIf;Clear;Goto;Gosub;Return;SetPort;PinHigh;PinLow;PortOut;PinRD;PortRD.(有關(guān)其功能可在軟件HELP中查閱。)
3.簡(jiǎn)潔的指令便于調(diào)試。
他的basic程序比匯編程序短很多,故他簡(jiǎn)潔和容易了解,使調(diào)試容易,容易發(fā)現(xiàn)程序的各個(gè)部分。
他支持Microchip PIC12,PIC14,PIC16系列單片機(jī)。
支持8位和16位有符號(hào)數(shù)和無符號(hào)數(shù)。
支持算術(shù)和邏輯運(yùn)算。
支持在行匯編碼輸入。
自動(dòng)設(shè)置正確的存儲(chǔ)體和頁面。
有I/O端口操作的Basic命令。
三.軟件介面說明;
軟件下載,安裝,運(yùn)行后。(見圖一)幕分成幾部分。左面是一組按鈕,用于輸入適當(dāng)?shù)腷asic指令.指令也可以從菜單選取輸入和,或從鍵盤打字輸入。當(dāng)用鍵盤時(shí),你能直接輸入到中央的基本窗口。在那里列出了整個(gè)basic程序。右面是匯編窗口,在那里列出相對(duì)照的匯編碼。在輸入任何指令后,這些窗口的碼都自動(dòng)實(shí)時(shí)的修改。狀態(tài)窗口在右頂部。在那里顯示有關(guān)PIC單片機(jī)類型,basic語言和匯編語言行的數(shù)目,所用程序的百分率及所選PIC單片機(jī)程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器的情況。
[圖一]
建立basic文件,有兩種方法;
一。用文本編輯器;任何文本編輯器都能夠用于寫basic程序。寫完后以*.bsc存盤。再運(yùn)行CH Basic Compiler。打開*.bsc文件。
二,在CH Basic中用按鈕或菜單選擇輸入basic程序。
在每個(gè)basic程序開始必需定義單片機(jī)型號(hào)。如用文本編輯第一行必需是單片機(jī)型號(hào),例如;PIC 16C74A等。
如果選取了無效型號(hào)程序自動(dòng)采用默認(rèn)值PIC 16C73.
在CH BASIC 編輯器從菜單Opions/Change PIC Type選取。
第二步是定義變量;所有在程序中使用變量必需先定義。例如我們要用兩個(gè)Byte變量。則定義為 BYTE X,Y。
四.軟件使用實(shí)例
以下我們將舉一例子,一步步說明如何用CH Basic Compiler來編寫程序。
例子是用單片機(jī)PIC16F84,B口作為輸出口,在B輸出口經(jīng)1k電阻和發(fā)光二極管LED一端相聯(lián)。發(fā)光二極管另一端接地。實(shí)驗(yàn)要求發(fā)光二極管交替的亮和滅。
例子example.bsc的BASIC程序如下:
第1句 'LED's are on port B---<發(fā)光二極管接B口>
第2句 'first set port B as output---<設(shè)置B口為輸出口>
第3句 setport b,%00000000
第4句led_on:'<第一個(gè)發(fā)光管亮>
第5句 'set the RB0 'LED on
第6句 b1=%00000001---<設(shè)一常數(shù)把b1來確定那個(gè)LED亮。>
第7句 portout B,b1---<把常數(shù)從B口輸出>
第8句 'create a time delay---<延遲一段時(shí)間>
第9句 for cn1=1 to 1500
第10句 next
第11句LED_OFF: <發(fā)光管滅>
第12句 B1=%00000000
第13句 Portout B, b1
第14句 for nk1=1 to 1500
第15句 next
第16句 goto led_on返回
可以用文本編輯器寫basic程序,以example.bsc存盤。
現(xiàn)在我們用CH BASIC軟件左邊的命令按鈕來輸入。
從擊菜單欄NEW建立新文件,輸入example.bsc。
第一步,先從菜單Option選取Change PIC type輸入單片機(jī)型號(hào)。
第二步,在這程序中有兩個(gè)常數(shù)b1,nk1。按命令按鈕variables鈕,輸入變量b1,cn1。
然后用命令按鈕輸入basic語句:
第1句是注釋,按COMMT鈕,彈出一對(duì)話框,在框內(nèi)輸入文字。'LED's are on port B---<發(fā)光二極管接B口>
第2句也是注釋,按COMMT鈕,彈出一對(duì)話框,在框內(nèi)輸入文字。'first set port B as output---<設(shè)置B口為輸出口>.
第3句,按setport,輸入b,%00000000 (注解:%00000001表示是二進(jìn)制數(shù)。用$FF表示十六進(jìn)制數(shù).)
第4句是標(biāo)號(hào),按Label鈕,輸入led_on:
第5句是注釋,按COMMT鈕,彈出一對(duì)話框,在框內(nèi)輸入文字'set the RB0 'LED on
第6句是符值b1的表達(dá)式,按Expr鈕,再輸入 b1=%00000001
第7句,按portout鈕,再輸入 portout B,b1
第8句是注釋,按COMMT鈕,彈出一對(duì)話框,在框內(nèi)輸入文字'create a time delay
第9句按FOR鈕,輸入cn1= 1 to 1500
第10句按next鈕
第11句是注釋按Label鈕,輸入LED_OFF:
第12句按Expr鈕,輸入B1=%00000000
第13句按Portout鈕,輸入 Portout B, b1
第14句按for鈕,輸入for nk1=1 to 1500
第15句按next鈕,
第16句按goto鈕,輸入goto led_on
輸入編寫完成后記住存盤?,F(xiàn)在你可以對(duì)所編寫的BASIC程序進(jìn)行編輯。選菜單欄FILE的Compile & check項(xiàng),編輯成功,顯示編輯成功對(duì)話框。則在CH Basic 子目錄中就生成一同名的匯編文件example.ASM。把他輸入到MPASM 或MPLAB軟件編輯成機(jī)器碼,將機(jī)器碼燒到你選擇的單片機(jī)芯片上就可。
有興趣讀者的可以到http://hongyu98.xiloo.com下載試用軟件。
五.參考文獻(xiàn)
Basic Compile Programming Guide,19page,[chbas_pg.pdf]
(http://www.celestialhorizons.com)
評(píng)論