新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 介紹CH Basic Compiler

        介紹CH Basic Compiler

        作者:包起龍 時間:2003-07-21 來源:電子設計應用 收藏
        一.前言
        你想學,一定會為難以記住的匯編語言頭痛。今給想學習開發PIC系列單片機的朋友介紹一款軟件CH Basic Compiler.這編輯器是為單片機PIC系列設計,它適用于PIC12,PIC14,PIC16系列單片機。它采取全新編輯思路。CH Basic是一工具,他簡化了對Microchip 開發,編寫程序和調試程序的手續。不用PIC匯編語言,而用CH Basic來編程,大大節省時間。CH Basic包含標準的Basic指令子集和有關的某些特殊指令。 你不會匯編語言,你只要輸入Basic語言碼,編輯器就立刻解釋這碼,并把它翻譯成等效的匯編語言指令。在你輸入的Basic碼的每一改變,在匯編碼窗口也會實時改變。

        二.用CH Basic 作為編程的工具有以下好處。
        1.不需要學習PIC 匯編語言指令。
        即使你不會PIC單片機匯編語言,你能夠編寫用于任何目的PIC單片機程序。如果你懂得PIC匯編語言,可以用在線匯編功能(in-line assembly function)直接輸入匯編碼到basic 程序中。當你輸入你的簡單Basic命令,你將在屏幕的右面的匯編窗口看到每一個命令的匯編語言。
        我們知道PIC單片機有RISC核心,這意味他有較少數量的指令,他執行較快,使程序執行也較快。這帶來的問題是程序比用CISC內核的單片機的要長得多。對以RISC為核心的單片機的任何一復雜運算都需要寫比以CISC為核心的單片機更多的匯編指令。用于12,16系列PIC單片機算術指令僅僅是加法和減法。這意味匯編級的程序員要編制更多的程序。而CH Basic將使程序員在大大縮短了時間達到他的目標。
        一旦程序用CH Basic編輯后,只需把他輸入到MPASM OR MPLAB軟件編輯成機器碼,把他燒到你選擇的單片機芯片上就可。
        2.簡單而直觀的指令。
        所用的basic指令比匯編語言要簡潔,清楚,便捷。故他設用于初學者,也設于專業人員。初學者可以用指令按鈕,可以減少句法錯誤。也可以用鍵盤輸入碼,也可以安自己喜好用文本編輯器進行輸入。
        基本指令有;For...Next;If...EndIf;Clear;Goto;Gosub;Return;SetPort;PinHigh;PinLow;PortOut;PinRD;PortRD.(有關其功能可在軟件HELP中查閱。)

        3.簡潔的指令便于調試。
        他的basic程序比匯編程序短很多,故他簡潔和容易了解,使調試容易,容易發現程序的各個部分。
        他支持Microchip PIC12,PIC14,PIC16系列單片機。
        支持8位和16位有符號數和無符號數。
        支持算術和邏輯運算。
        支持在行匯編碼輸入。
        自動設置正確的存儲體和頁面。
        有I/O端口操作的Basic命令。

        三.軟件介面說明;

        軟件下載,安裝,運行后。(見圖一)幕分成幾部分。左面是一組按鈕,用于輸入適當的basic指令.指令也可以從菜單選取輸入和,或從鍵盤打字輸入。當用鍵盤時,你能直接輸入到中央的基本窗口。在那里列出了整個basic程序。右面是匯編窗口,在那里列出相對照的匯編碼。在輸入任何指令后,這些窗口的碼都自動實時的修改。狀態窗口在右頂部。在那里顯示有關PIC單片機類型,basic語言和匯編語言行的數目,所用程序的百分率及所選PIC單片機程序存儲器,數據存儲器的情況。
        [圖一]
        建立basic文件,有兩種方法;
        一。用文本編輯器;任何文本編輯器都能夠用于寫basic程序。寫完后以*.bsc存盤。再運行CH Basic Compiler。打開*.bsc文件。
        二,在CH Basic中用按鈕或菜單選擇輸入basic程序。
        在每個basic程序開始必需定義單片機型號。如用文本編輯第一行必需是單片機型號,例如;PIC 16C74A等。
        如果選取了無效型號程序自動采用默認值PIC 16C73.
        在CH BASIC 編輯器從菜單Opions/Change PIC Type選取。
        第二步是定義變量;所有在程序中使用變量必需先定義。例如我們要用兩個Byte變量。則定義為 BYTE X,Y。
        四.軟件使用實例
        以下我們將舉一例子,一步步說明如何用CH Basic Compiler來編寫程序。
        例子是用單片機PIC16F84,B口作為輸出口,在B輸出口經1k電阻和發光二極管LED一端相聯。發光二極管另一端接地。實驗要求發光二極管交替的亮和滅。
        例子example.bsc的BASIC程序如下:
        第1句 'LED's are on port B---<發光二極管接B口>
        第2句 'first set port B as output---<設置B口為輸出口>
        第3句 setport b,%00000000
        第4句led_on:'<第一個發光管亮>
        第5句 'set the RB0 'LED on
        第6句 b1=%00000001---<設一常數把b1來確定那個LED亮。>
        第7句 portout B,b1---<把常數從B口輸出>
        第8句 'create a time delay---<延遲一段時間>
        第9句 for cn1=1 to 1500
        第10句 next
        第11句LED_OFF: <發光管滅>
        第12句 B1=%00000000
        第13句 Portout B, b1
        第14句 for nk1=1 to 1500
        第15句 next
        第16句 goto led_on返回

        可以用文本編輯器寫basic程序,以example.bsc存盤。
        現在我們用CH BASIC軟件左邊的命令按鈕來輸入。
        從擊菜單欄NEW建立新文件,輸入example.bsc。
        第一步,先從菜單Option選取Change PIC type輸入單片機型號。
        第二步,在這程序中有兩個常數b1,nk1。按命令按鈕variables鈕,輸入變量b1,cn1。

        然后用命令按鈕輸入basic語句:
        第1句是注釋,按COMMT鈕,彈出一對話框,在框內輸入文字。'LED's are on port B---<發光二極管接B口>
        第2句也是注釋,按COMMT鈕,彈出一對話框,在框內輸入文字。'first set port B as output---<設置B口為輸出口>.
        第3句,按setport,輸入b,%00000000 (注解:%00000001表示是二進制數。用$FF表示十六進制數.)
        第4句是標號,按Label鈕,輸入led_on:
        第5句是注釋,按COMMT鈕,彈出一對話框,在框內輸入文字'set the RB0 'LED on
        第6句是符值b1的表達式,按Expr鈕,再輸入 b1=%00000001
        第7句,按portout鈕,再輸入 portout B,b1
        第8句是注釋,按COMMT鈕,彈出一對話框,在框內輸入文字'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在你可以對所編寫的BASIC程序進行編輯。選菜單欄FILE的Compile & check項,編輯成功,顯示編輯成功對話框。則在CH Basic 子目錄中就生成一同名的匯編文件example.ASM。把他輸入到MPASM 或MPLAB軟件編輯成機器碼,將機器碼燒到你選擇的單片機芯片上就可。

        有興趣讀者的可以到http://hongyu98.xiloo.com下載試用軟件。

        五.參考文獻
        Basic Compile Programming Guide,19page,[chbas_pg.pdf]
        (http://www.celestialhorizons.com)



        關鍵詞: PIC單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 太仆寺旗| 信阳市| 福泉市| 武城县| 东山县| 介休市| 湖南省| 玉屏| 卢湾区| 卫辉市| 新泰市| 邵阳市| 永福县| 盐源县| 那曲县| 沙坪坝区| 曲麻莱县| 石渠县| 定南县| 辽源市| 柳林县| 都匀市| 铜陵市| 吉木乃县| 酉阳| 汝南县| 翼城县| 乌恰县| 桐柏县| 涞水县| 社旗县| 财经| 肇东市| 得荣县| 军事| 香河县| 泰来县| 无为县| 阳信县| 百色市| 宁乡县|