前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇單片機(jī)編程范文,相信會(huì)為您的寫作帶來(lái)幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
中圖分類號(hào):TP313文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1007-9599 (2010) 04-0000-01
Comparison on Various Microcontroller Programming Languages
Zhou Hao
(China West Normal University, Physics and Electronic Information College,Nanchong 637002,China)
Abstract:MCU applications now is gradually expanding,meanwhile microcontroller programming language can be used for it is also more and more, the most commonly used languages are C language, PL / M. and the BASIC language, etc. This paper will give a variety of Comparison of these languages and strengths and weaknesses, to provide quick and easy path for beginners.
Keywords:Single chip micyoco(MCU);Programming language
一、引言
隨著計(jì)算機(jī)技術(shù)和產(chǎn)業(yè)的不斷發(fā)展,單片機(jī)的優(yōu)點(diǎn)和特性十分突出,其應(yīng)用領(lǐng)域也非常廣泛。下面分別對(duì)匯編語(yǔ)言、C語(yǔ)言、PL/M.和BASIC等4種語(yǔ)言做個(gè)對(duì)比,讓大家對(duì)這4總語(yǔ)言有一個(gè)較為清晰的認(rèn)識(shí)。
二、匯編語(yǔ)言
匯編語(yǔ)言是是最接近機(jī)器碼的一種語(yǔ)言,它用來(lái)表示機(jī)器指令的符號(hào)語(yǔ)言,一種用文字助記符。占用資源少是其主要優(yōu)點(diǎn),程序執(zhí)行效率高。匯編語(yǔ)言調(diào)試起來(lái)也比較方便是因?yàn)樗粭l指令就對(duì)應(yīng)一條機(jī)器碼,每一步的對(duì)應(yīng)都很清楚,并且程序大小和堆棧調(diào)用情況都容易掌控。但是因?yàn)椴煌念愋偷膯纹瑱C(jī)的指令系統(tǒng)是有區(qū)別的,所以其匯編語(yǔ)言也有些差異,不易移植。單片機(jī)的匯編語(yǔ)言和其他匯編語(yǔ)言也很相像。指令系統(tǒng)比第一代微處理器要好一些。但單片機(jī)編程之所以變得復(fù)雜一些是因?yàn)槠鋼碛胁煌鎯?chǔ)區(qū)域,如果你是一位電子工程師,懂得匯編語(yǔ)言就等于是一個(gè)基礎(chǔ),它可以幫助你了解影響任何語(yǔ)言效率的特殊規(guī)定。
三、單片機(jī)的C語(yǔ)言
單片機(jī)的C語(yǔ)言是一種具備匯編語(yǔ)言功能以及多種高級(jí)語(yǔ)言的編譯型程序設(shè)計(jì)語(yǔ)言。C語(yǔ)言可以直接控制系統(tǒng)硬件,此外還具有許多其他功能。如庫(kù)函數(shù)功能多樣,操作運(yùn)算速度快,編譯效率強(qiáng),可移植性也較強(qiáng)。值得一提的是在軟件開(kāi)發(fā)中如果采用模塊化程序設(shè)計(jì)方法C語(yǔ)言就具有明顯的優(yōu)勢(shì),因其具有完整的程序模塊結(jié)構(gòu)。它與匯編相比,有如下幾大優(yōu)點(diǎn):
(一)程序函數(shù)可互有差異且組織結(jié)構(gòu)規(guī)范,其最大的優(yōu)點(diǎn)就是使程序的可讀性得到很大的提高,程序結(jié)構(gòu)化趨于完善。
(二)模塊化編程技術(shù)使得其數(shù)據(jù)處理力較強(qiáng),它能將已編好的程序輕松的植入新程序且所需要的編程及程序調(diào)試周期短,效率高。
(三)C語(yǔ)言程序最大的優(yōu)點(diǎn)就是它不依賴于機(jī)器硬件系統(tǒng),因此它能較快地移植且不做修改。
(四)它是一種中級(jí)語(yǔ)言。他具有承上啟下功能,上則具有高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句,下則具備低級(jí)語(yǔ)言的實(shí)用性,他可以對(duì)位、字節(jié)和地址進(jìn)行操作,就像匯編語(yǔ)言,上述三個(gè)地址是計(jì)算機(jī)最基本的工作單元。
(五)它是結(jié)構(gòu)式語(yǔ)言。結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,有
各種各樣的數(shù)據(jù)類型,這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?便于使用、維護(hù)以及調(diào)試。
(六)C語(yǔ)言功能齊全。具并引入了指針概念,可使程序效率更高。另外C
語(yǔ)言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。
四、PL/M編程語(yǔ)言
PL/M語(yǔ)言具有以下幾大優(yōu)點(diǎn):
(一)具有較好的可讀性
模塊式的程序,結(jié)構(gòu)化的語(yǔ)言以及縮進(jìn)式的書(shū)寫方法,這都使得其可讀性提高。一個(gè)大型的程序是由多個(gè)模塊組成的,而在每一個(gè)模塊下面又分布著多個(gè)程序塊,這樣每個(gè)程序塊負(fù)責(zé)一部分功能,各司其責(zé),即縮短了編程時(shí)間又提高了程序設(shè)計(jì)的靈活性。
(二)具有較好的可依賴性
如果程序中有沖突使用或不合理使用時(shí)其能在提出警告的同時(shí)自動(dòng)為用戶程序重新合理分配內(nèi)存,給使用者帶來(lái)了方便也有效地節(jié)約了空間資源。
(三)具有較好的結(jié)合性
局部動(dòng)態(tài)變量是指一個(gè)程序中的不同模塊由多個(gè)人共同編制,但其不會(huì)因?yàn)槭褂昧讼嗤臉?biāo)識(shí)符而發(fā)生沖突,從而減小了工作量.全局的靜態(tài)變量不像局部動(dòng)態(tài)變量那樣在所說(shuō)明的程序塊中有效而在其以外無(wú)效,它是在整個(gè)程序中都有效,而PL/M正是這兩者的結(jié)合。
(四)具有較好的兼容性
PL/M程序可以使用戶方便地連接某段特定的匯編語(yǔ)言程序并生成可執(zhí)行代碼。
(五)BASIC編程語(yǔ)言
BASIC譯成中文是“初學(xué)者通用符號(hào)指令代碼”,它是由美國(guó)科學(xué)家托馬斯庫(kù)爾茲研制出來(lái)的,后由微軟公司把它應(yīng)用到微型機(jī)上,BASIC一直被定義為初學(xué)者最合適的編程語(yǔ)言,它的最大特點(diǎn)及優(yōu)點(diǎn)就是容易入門,現(xiàn)在BASIC語(yǔ)言也包括了很多結(jié)構(gòu)化程序及編程方式。例如,局部變量,全局變量,數(shù)據(jù)傳遞,函數(shù),模塊等。
關(guān)鍵詞:?jiǎn)纹瑱C(jī); 編程; 仿真; 實(shí)驗(yàn)
目前,單片微型計(jì)算機(jī)已經(jīng)在人們的工作生活中廣泛應(yīng)用。就我國(guó)而言,大部分高等院校中的電子信息專業(yè)也開(kāi)設(shè)有涉及到單片機(jī)相關(guān)內(nèi)容的專業(yè)教學(xué)課程。大量的實(shí)踐研究結(jié)果表明,實(shí)驗(yàn)是單機(jī)片技術(shù)教學(xué)過(guò)程中最必不可少一大環(huán)節(jié)。然而在當(dāng)前單片機(jī)技術(shù)蓬勃發(fā)展的推動(dòng)作用下,市場(chǎng)所提供的各種實(shí)驗(yàn)儀器無(wú)法滿足教學(xué)的發(fā)展要求,同時(shí)增大了教學(xué)成本。因此,如何才能降低教學(xué)成本、滿足教學(xué)需要,已成為單片機(jī)教學(xué)中不得不思考的問(wèn)題,設(shè)計(jì)高技術(shù)、易更新的單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng),對(duì)支持單片機(jī)課程教學(xué)以及培養(yǎng)單片機(jī)專業(yè)人才具有重要意義。
1、 單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)概述
一般而言,單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)使用主板以及諸多12C總線基礎(chǔ)上進(jìn)行擴(kuò)展的實(shí)驗(yàn)板共同構(gòu)成。在這一實(shí)驗(yàn)系統(tǒng)系統(tǒng)當(dāng)中,主板部分實(shí)現(xiàn)了包括單片機(jī)仿真、單片機(jī)基本實(shí)驗(yàn)電路、ISP在線系統(tǒng)編程以及總線等子系統(tǒng)結(jié)構(gòu)的有機(jī)結(jié)合。在這當(dāng)中,仿真實(shí)驗(yàn)系統(tǒng)的仿真部分發(fā)揮著最為重要的功效,其各種應(yīng)用功能均是通過(guò)“SST89E564RD”的仿真監(jiān)控芯片得以實(shí)現(xiàn)的。
該單片機(jī)的仿真系統(tǒng)CPU利用SST89E564RD,兼容性強(qiáng)、功能豐富、應(yīng)用較為廣泛,且其中集合了很多功能部件,這使得該仿真系統(tǒng)能夠在降低系統(tǒng)的復(fù)雜性與研發(fā)應(yīng)用成本投入的基礎(chǔ)上,對(duì)整個(gè)系統(tǒng)運(yùn)行穩(wěn)定性以及可靠性提供支持與依據(jù)。本文設(shè)計(jì)的單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng),具有較強(qiáng)的綜合性,集合編程、仿真、實(shí)驗(yàn)為一體,全面支持單片機(jī)的實(shí)驗(yàn)教學(xué),提高教學(xué)質(zhì)量與效率[1]。
大量的實(shí)踐研究結(jié)果表明,在單片機(jī)編程仿真試驗(yàn)系統(tǒng)中應(yīng)用模塊式的結(jié)構(gòu)設(shè)計(jì)思路,不僅實(shí)現(xiàn)了各個(gè)實(shí)驗(yàn)接口相互間依存性與獨(dú)立性的統(tǒng)一,促進(jìn)各項(xiàng)實(shí)驗(yàn)工作內(nèi)容循序漸進(jìn)的開(kāi)展,同時(shí)這種以該系統(tǒng)支持為基礎(chǔ)建設(shè)的編程仿真實(shí)驗(yàn)系統(tǒng)平臺(tái),在順利完成基礎(chǔ)性的單片機(jī)原理、理論傳授的同時(shí),還可對(duì)單片機(jī)的擴(kuò)展接口、串等進(jìn)行實(shí)驗(yàn)。這樣做既滿足了高等學(xué)院不同層次的學(xué)生對(duì)發(fā)散性知識(shí)的學(xué)習(xí)需求,為學(xué)習(xí)過(guò)程中各階段實(shí)踐性教學(xué)模式,例如課程實(shí)驗(yàn)、電子設(shè)計(jì)比賽以及畢業(yè)設(shè)計(jì)等工作的開(kāi)展?fàn)I造練好的外部環(huán)境,同時(shí)也利于學(xué)生形成創(chuàng)新精神與創(chuàng)新能力,提高學(xué)習(xí)積極性。
2、 單片微型計(jì)算機(jī)(MCU)的選型
單片機(jī)從本質(zhì)上來(lái)說(shuō)是嵌入式微控制器的具體體現(xiàn)。單片機(jī)的問(wèn)世意味著現(xiàn)代社會(huì)計(jì)算機(jī)應(yīng)用技術(shù)的發(fā)展邁入一個(gè)嶄新的階段,其最大的特點(diǎn)在于實(shí)現(xiàn)了計(jì)算機(jī)應(yīng)用功能由模式下單一的計(jì)算數(shù)據(jù)逐步發(fā)展為智能化的計(jì)算與分析,這也使得單片微型計(jì)算機(jī)具備了體積小、性能穩(wěn)定、成本投入低、操作性強(qiáng)、可靠性高、以及適用性強(qiáng)等諸多特點(diǎn)。其主要運(yùn)行思路在于:?jiǎn)纹瑱C(jī)系統(tǒng)能夠?qū)⑵淝度雽?duì)象所處基本環(huán)境當(dāng)中,并與結(jié)構(gòu)、體系發(fā)生聯(lián)動(dòng)關(guān)系,從而形成一個(gè)智能化的控制單元[2]。單片機(jī)的應(yīng)用系統(tǒng)主要包括硬件與軟件兩大類。據(jù)相關(guān)數(shù)據(jù)顯示,目前全世界已研發(fā)MCU的品種與數(shù)量高達(dá)一千種,普遍應(yīng)用的約為30多種,以8051體系為代表。一個(gè)良好的單片機(jī)編程仿真實(shí)驗(yàn)運(yùn)行系統(tǒng),必須選擇相匹配的MCU支持開(kāi)展工作。有關(guān)MCU的選擇應(yīng)主要參照以下原則:
2.1典型性
首先,選擇MCU應(yīng)先了解有關(guān)單片機(jī)使用的產(chǎn)品概念。美國(guó)英特爾公司于1980年推出的MCS-51單片機(jī),其中就包含有包含8031,但由于這種型號(hào)單片機(jī)并未設(shè)置系統(tǒng)程序存儲(chǔ)器,使用起來(lái)不夠方便,現(xiàn)已基本被市場(chǎng)淘汰;而8051系列所采用的HMOS芯片決定了其使用過(guò)程中的功耗較高;以及8751等通用性產(chǎn)品。目前,MCS-51仍然是單片機(jī)應(yīng)用中的主流產(chǎn)品,各高校及相關(guān)專業(yè)的教材也主要以MCS-51為實(shí)驗(yàn)代表開(kāi)展理論教學(xué),因此實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì),應(yīng)該始終堅(jiān)持系統(tǒng)、理論的充分契合[3]。
2.2可編程功能
當(dāng)前單片機(jī)編程可以劃分為三種形式:專業(yè)級(jí)。它所采用的高端仿真芯片雖然能夠仿真包括單片機(jī)、接口在內(nèi)的系統(tǒng)運(yùn)行全部資源,但芯片投入成本高,普及性不夠;二是單片機(jī)生產(chǎn)商提供的IDE軟件燒錄,目前多應(yīng)用在高檔單片機(jī)的芯片中,其最要功能在于仿真芯片并支持單片機(jī)實(shí)驗(yàn)的進(jìn)行。其價(jià)格適中,仿真單機(jī)資源較為全面并且調(diào)試方便[4];三是以單片機(jī)可編程功能為參考依據(jù),在軟件仿真性能得以確保的基礎(chǔ)上,對(duì)單片機(jī)實(shí)施直接的系統(tǒng)編程,并將運(yùn)行效果及時(shí)呈現(xiàn)出來(lái)。其成本不高,便于進(jìn)一步研究與推廣。這也就說(shuō)明,單片機(jī)的可編程技術(shù)是該行業(yè)領(lǐng)域發(fā)展中的必然選擇與趨勢(shì)。。
2.3性價(jià)比
微控制器的成本問(wèn)題是所有單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)需要考慮的基本問(wèn)題之一,如忽略成本因素,將會(huì)造成產(chǎn)品造價(jià)過(guò)高,市場(chǎng)競(jìng)爭(zhēng)力比較弱,進(jìn)而對(duì)仿真實(shí)驗(yàn)的開(kāi)展帶來(lái)一定影響。為了控制成本,本文中提到的單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng),集合了編程、仿真、實(shí)驗(yàn)為一體,具有強(qiáng)大的MCU功能性[5],一方面是MCS-51系列的基本作用;另一方面則具備仿真功能與在線編程。由美國(guó)艾特梅爾公司生產(chǎn)的AT89S51單片機(jī),性價(jià)比較高,既可滿足各種基本功能,同時(shí)成本不高。
3、 單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)
3.1單片機(jī)的編程器模塊
一般而言,單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)所涉及到的編程器模塊總體設(shè)計(jì)可以劃分為操作部分、顯示部分以及設(shè)置部分三大板塊。在這一系統(tǒng)當(dāng)中,操作部分還能夠進(jìn)一步劃分為文件保存、文件打開(kāi)、讀器件、寫器件、擦除器件、數(shù)據(jù)檢測(cè)以及系統(tǒng)鎖定等子功能;而設(shè)置部分則將括編程器類型選擇、串口和波特率的性能設(shè)置、加密位的設(shè)置納入工作范疇;顯示部分包括緩沖存儲(chǔ)區(qū)的1內(nèi)容與2內(nèi)容、提示信息等。
3.2 Flash閃速存儲(chǔ)器的并行編程
以AT8951單片機(jī)為例,它所具備的4K字節(jié)的快速Flash編程存儲(chǔ)陣列使其在編程方法的選擇過(guò)程中可以采取以EPROM編程器為中心,以高壓及協(xié)調(diào)控制信號(hào)為主要手段進(jìn)行編程的方式。具體方法可以歸納為以下幾個(gè)步驟:①在地址線中添加編程的地質(zhì)信號(hào);②在數(shù)據(jù)線中加入需寫入數(shù)據(jù)的字節(jié);③將相對(duì)應(yīng)的控制信號(hào)激活,以備使用;④在EA/VPP終端加入編程電壓(+12V)[6];⑤當(dāng)Flash存儲(chǔ)陣列寫入新建字節(jié)或是寫完程序時(shí),ALE/PROG編程脈沖需要做到及時(shí)的,在編程過(guò)程中循環(huán)以上步驟,直至整個(gè)文件編寫工作的順利完成。
3.3 Flash閃速存儲(chǔ)器的串行編程
一般來(lái)說(shuō),其串口接口主要包括:輸入線(MOSI)、輸出線(MISO)、SCK線。當(dāng)RST被拉高之后,應(yīng)該在進(jìn)行其他操作之前,發(fā)出編程的相關(guān)指令,并擦除芯片。以33MHz的晶體為例,最高串行時(shí)鐘的頻率為2MHz[7]。那么其具體編程方法與步驟分析包括以下幾方面:①上電的程序。將電源添加到GND與VCC,將RST設(shè)置成“H”代碼,若系統(tǒng)還存在XTSL1/XTAL2接入晶體、時(shí)鐘頻率等,需要等候約10ms;②將編程的指令發(fā)送至MOSI,編程的時(shí)鐘接到SCK,在該頻率狀態(tài)下,應(yīng)比晶體時(shí)鐘頻率小于1/16;③代碼陣列編程的可選擇字節(jié)模式,由自身定時(shí)決定寫周期,一般在0.5ms范圍內(nèi);④所有的代碼單元都可以與讀指令選擇相對(duì)應(yīng)的地址,并與回讀數(shù)據(jù)進(jìn)行驗(yàn)證;⑤完成整個(gè)編程過(guò)程之后,將RST設(shè)置成“L”,即代表操作結(jié)束;⑥斷電的程序,如果沒(méi)有在系統(tǒng)中應(yīng)用任何晶體,那么將XTAL設(shè)置為低檔、RST設(shè)置為低檔,對(duì)VCC進(jìn)行判斷。
3.4系統(tǒng)的可編程功能
系統(tǒng)涉及到了ISP可編程接口的設(shè)置與應(yīng)用。ISP 下載的同時(shí)配合上位機(jī)的應(yīng)用編程軟件,整個(gè)仿真實(shí)驗(yàn)系統(tǒng)能夠?qū)崿F(xiàn)直接插入單片機(jī)的功能,并以此完成編程、燒寫等過(guò)程,這種方法既穩(wěn)定又快捷。在實(shí)際應(yīng)用過(guò)程中,這些編程軟件不需要再額外安裝綠色軟件,使用起來(lái)非常便捷,且功能強(qiáng)大,支持寫入、讀寫、代碼區(qū)的數(shù)據(jù)檢驗(yàn)、器件的自動(dòng)檢驗(yàn)等,完成自動(dòng)化、智能化過(guò)程。
參考文獻(xiàn):
[1]馬忠梅等.單片機(jī)的C語(yǔ)言應(yīng)用語(yǔ)言設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社.2007
[2]姚燁.基于PROTEUS和KEIL C的單片機(jī)仿真技術(shù)淺析[J].科技經(jīng)濟(jì)市場(chǎng).2008(6)
[3]范維浩.控制器編程智能仿真模塊[J].儀表技術(shù)與傳感器.2011(4)
[4]馬淑華、王鳳文、張美金.單片機(jī)原理與接口技術(shù)[J].北京:北京郵電學(xué)院出版社.2005
[5]譚林.基于單片機(jī)的溫度監(jiān)控系統(tǒng)設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù).2009(4)
[6]周艷香.掌握Visual FoxPro 應(yīng)用的一些小技巧[J].職業(yè)圈.2007(17)
一、序言
近年來(lái),隨著C語(yǔ)言的進(jìn)一步推廣使用,絕大多數(shù)的工程師都傾向于使用C語(yǔ)言進(jìn)行單片機(jī)系統(tǒng)開(kāi)發(fā),匯編語(yǔ)言由于可讀性、通用性、可移植性差的原因,很難滿足產(chǎn)品開(kāi)發(fā)的需求。但是匯編語(yǔ)言具有執(zhí)行效率高、占用內(nèi)存空間小等特點(diǎn),在某些應(yīng)用領(lǐng)域還是具有無(wú)可替代的作用。
本文結(jié)合Keil μVision2程序開(kāi)發(fā)流程,描述了51單片機(jī)匯編程序多文件編譯的實(shí)現(xiàn)方法。通過(guò)多文件編譯的使用,大大提高了匯編程序代碼的可讀性、可擴(kuò)展性,同時(shí)也很大程度地提高程序代碼的執(zhí)行效率以及內(nèi)存空間的使用率,避免內(nèi)存空間的浪費(fèi)。
二、Keil μVision2程序開(kāi)發(fā)流程簡(jiǎn)介
Keil μVision2是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)軟件集成開(kāi)發(fā)環(huán)境,該軟件提供宏匯編器、鏈接/定位器、庫(kù)管理器、調(diào)試器以及目標(biāo)文件轉(zhuǎn)換器等工具,是51單片機(jī)系統(tǒng)開(kāi)發(fā)的首選工具。
Keil μVision2集成開(kāi)發(fā)環(huán)境的編譯流程如下:首先宏匯編器對(duì)匯編源程序文件進(jìn)行編譯,生成擴(kuò)展名為.OBJ的目標(biāo)文件和擴(kuò)展名為.LST的列表文件,緊接著鏈接/定位器將所有的.OBJ文件進(jìn)行絕對(duì)地址分配,鏈接生成包含絕對(duì)地址的目標(biāo)文件和擴(kuò)展名為.M51的地址文件,最后由目標(biāo)文件轉(zhuǎn)換器生成可用于編程器燒寫、擴(kuò)展名為.HEX的可執(zhí)行文件。
三、匯編程序多文件編譯實(shí)現(xiàn)
在Keil μVision2集成開(kāi)發(fā)環(huán)境下,我們可以根據(jù)不同的硬件模塊、功能模塊分開(kāi)編寫應(yīng)用子程序,進(jìn)行模塊化管理,實(shí)現(xiàn)多文件編譯,這樣就可以大大提高匯編程序代碼的可讀性、可擴(kuò)展性。以下首先對(duì)段和模塊的概念進(jìn)行描述。
一個(gè)段可以是一塊程序代碼或者是一個(gè)數(shù)據(jù)塊。根據(jù)其地址空間是否可以被鏈接/定位器更改,段可以分為可定位段和絕對(duì)地址段。在定義可重定位段的時(shí)候需要對(duì)其段名、類型及其屬性進(jìn)行定義。一個(gè)段可以分在不同的程序模塊中,只要具有相同的段名,在編譯過(guò)程中鏈接/定位器會(huì)把它們合并到一起。在定義絕對(duì)地址段的時(shí)候直接人為分配絕對(duì)地址,鏈接/定位器不能對(duì)改地址進(jìn)行更改。絕對(duì)地址段沒(méi)有段名,也不能給其他段結(jié)合。
模塊是一個(gè)可以被單獨(dú)編譯的代碼單元,可以包含一個(gè)或多個(gè)段或者部分段,一個(gè)模塊既可以是單個(gè)文本文件,也可以通過(guò)INCLUDE指令把幾個(gè)文本文件合并在一起。在程序編譯過(guò)程中,匯編器會(huì)把一個(gè)模塊編譯為一個(gè)目標(biāo)文件,也就是一個(gè)模塊對(duì)應(yīng)一個(gè).OBJ文件。
根據(jù)以上對(duì)段和模塊的描述,匯編程序的多文件編譯可以通過(guò)以下三個(gè)方法來(lái)實(shí)現(xiàn):
1、通過(guò)INCLUDE指令合并源文件
在代碼編寫時(shí),通過(guò)INCLUDE指令可以將一個(gè)源文件插入到當(dāng)前源文件中,這樣匯編器在編譯的時(shí)候就會(huì)將INCLUDE指令之后的文件合并到當(dāng)前文件進(jìn)行編譯,生成一個(gè)擴(kuò)展名為.OBJ的目標(biāo)文件。INCLUDE指令的格式如下:
$ INCLUDE (文件名)
通過(guò)該方式實(shí)現(xiàn)多文件編譯時(shí),插入的源文件既可以是擴(kuò)展名為.ASM的匯編源程序文件,也可以是擴(kuò)展名為.INC的包含文件。注意在被包含的源文件結(jié)尾不能有END指令,否則編譯會(huì)停止運(yùn)行。
2、通過(guò)絕對(duì)地址段實(shí)現(xiàn)多文件編譯
Keil μVision2中提供以下定義絕對(duì)地址段的指令,通過(guò)這些指令可以定義代碼段和各種數(shù)據(jù)段,并指定其絕對(duì)地址。
由于絕對(duì)地址段在定義的時(shí)候?qū)Φ刂愤M(jìn)行了分配,鏈接/定位器不能夠?qū)ζ涞刂愤M(jìn)行更改,因此很容易造成地址重疊或者內(nèi)存空間浪費(fèi),而且在后續(xù)對(duì)程序進(jìn)行維護(hù)、升級(jí)的時(shí)候很有可能需要重新對(duì)地址進(jìn)行分配,非常不利于程序的擴(kuò)展和維護(hù)。因此絕對(duì)地址段通常是用在某些特定的場(chǎng)合,例如確定中斷向量的入口地址、數(shù)據(jù)存儲(chǔ)空間等。
3、通過(guò)可重定位段實(shí)現(xiàn)多文件編譯
在Keil μVision2中,通過(guò)SEGMENT指令即可定義可重定位段。定義可重定位段時(shí)必須指定段的名稱和存儲(chǔ)類型,其格式如下:
四、總結(jié)
通過(guò)以上三種方式,均可以實(shí)現(xiàn)多文件編譯,但是在實(shí)際使用過(guò)程中,INCLUDE指令通常用于包含特殊功能寄存器的定義等;絕對(duì)地址段則通常用于確定中斷向量的入口地址、數(shù)據(jù)存儲(chǔ)空間;而可重定位段的方式則廣泛地用于各種代碼段或數(shù)據(jù)段的定義。
通過(guò)多文件編譯的方式,解決了單文件編譯會(huì)導(dǎo)致程序文件過(guò)于臃腫、可讀性差、不便于維護(hù)等缺點(diǎn),大大提高匯編程序代碼的可讀性以及可維護(hù)性。
參考文獻(xiàn)
[1] Keil Software. A51/AX51/A251 Macro Assembler and Utilities.2001.
關(guān)鍵詞:T6963C;80C196KC;接口;通用程序
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3198(2007)10-0248-01
1引言
隨著測(cè)控技術(shù)的日益發(fā)展,智能儀器在集成度、功能、人機(jī)界面等方面均有了巨大的進(jìn)步和發(fā)展,圖形液晶顯示器由于具有顯示信息多、體積小、重量輕、功耗低、壽命長(zhǎng)、價(jià)格低、接口控制方便等優(yōu)點(diǎn),正成為當(dāng)今顯示技術(shù)發(fā)展的主流。目前,顯示器的核心――液晶顯示控制器品種繁多,各種控制芯片在控制電路邏輯指令、指標(biāo)參數(shù)等方面各有差異,但無(wú)論那一種型號(hào)的產(chǎn)品,其連接信號(hào)基本相同。本文以清華蓬遠(yuǎn)的T6963C控制器為例,介紹其與80C196KC單片機(jī)的接口電路和編程。
2 T6963C及其構(gòu)成的液晶顯示模塊
T6963C液晶顯示控制器多用于中小規(guī)模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內(nèi)藏控制器型圖形液晶顯示模塊的形式出現(xiàn)。在內(nèi)置T6963C的液晶顯示模塊上已經(jīng)實(shí)現(xiàn)了T6963C與行、列驅(qū)動(dòng)器及顯示緩沖區(qū)RAM的接口,同時(shí)也已用硬件設(shè)置了數(shù)據(jù)傳輸方式、顯示窗口長(zhǎng)度、寬度等。內(nèi)置T6963C的單屏點(diǎn)陣圖形液晶顯示模塊結(jié)構(gòu)如圖1所示。
T6963C的特點(diǎn):
(1)T6993C是點(diǎn)陣式液晶圖形顯示控制器,能與80系列的8位微處理器直接連接使用;
(2)T6993C可以圖形方式、文本方式及圖形和文本合成方式進(jìn)行顯示,還可以實(shí)現(xiàn)文本方式下的特征顯示和屏拷貝操作等;
(3)T6963C的占空比可從1/16到1/128;
(4)T6993C點(diǎn)陣式液晶圖形顯示控制器具有內(nèi)部字符發(fā)生器CGROM,共有128個(gè)ASCII碼字符;
(5)T6993C點(diǎn)陣式液晶圖形顯示控制器可以管理64KRAM,作為顯示緩沖區(qū)及字符發(fā)生器CGRAM。允許MPU(微處理器)隨時(shí)訪問(wèn)顯示緩沖區(qū),甚至可以進(jìn)行換位操作。
3 T6963C與80C196KC的接口
內(nèi)置T6963C控制器的液晶顯示模塊與計(jì)算機(jī)的接口時(shí)序?yàn)镮NTER8080時(shí)序。它與計(jì)算機(jī)有兩種連接方式:直接訪問(wèn)方式和間接訪問(wèn)方式。直接訪問(wèn)方式是內(nèi)置T6963C控制器的液晶顯示模塊作為存儲(chǔ)器或I/O設(shè)備直接掛在計(jì)算機(jī)的總線上。模塊的數(shù)據(jù)線接計(jì)算機(jī)的數(shù)據(jù)總線上,片選及寄存器選擇信號(hào)線由計(jì)算機(jī)的地址總線提供,讀和寫操作由計(jì)算機(jī)的讀寫操作信號(hào)控制;間接控制方式是將內(nèi)置T6963C控制器的液晶顯示模塊與計(jì)算機(jī)系統(tǒng)中的某個(gè)并行I/O接口連接,計(jì)算機(jī)通過(guò)對(duì)該I/O接口的操作間接的實(shí)現(xiàn)對(duì)模塊的控制。下圖為T6963C與80C196KC單片機(jī)采用直接訪問(wèn)方式的電路圖。
4程序設(shè)計(jì)
T6963C的初始化設(shè)置一般都由硬件作了設(shè)置,因此其指令系統(tǒng)將集中于顯示功能的設(shè)置上。
T6963C的指令可以帶一個(gè)或兩個(gè)參數(shù),或無(wú)參數(shù)。每條指令的執(zhí)行都是先送入?yún)?shù)(如果有參數(shù)),再送入指令代碼。每次操作之前最好先進(jìn)行狀態(tài)字的檢測(cè)。下面給出T6963C指令寫入的
此程序是通用程序,當(dāng)寫入單參數(shù)指令時(shí),應(yīng)把參數(shù)或數(shù)據(jù)送入D2中,其子程序入口為PR11;無(wú)參數(shù)指令寫入子程序入口為PR12。
5結(jié)束語(yǔ)
隨著現(xiàn)代測(cè)控技術(shù)的發(fā)展,儀器儀表的智能化程度日益提高,對(duì)儀器的可操作性要求也越來(lái)越高,因此,良好的人機(jī)界面也越來(lái)越受到設(shè)計(jì)者的重視。T6963C是比較常用到的液晶顯示控制器,它與單片機(jī)的接口十分方便,可實(shí)現(xiàn)控制和現(xiàn)場(chǎng)過(guò)程的動(dòng)態(tài)顯示,提供友好的人機(jī)接口。當(dāng)然,液晶顯示控制器的種類很多,各套指令也有一定差異,但其設(shè)計(jì)思路和流程基本相同。
參考文獻(xiàn)
【關(guān)鍵詞】單片機(jī) 理論與實(shí)驗(yàn) 課程設(shè)計(jì) 協(xié)同教學(xué)
【中圖分類號(hào)】G64 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2016)31-0243-01
引言
單片機(jī)理論、實(shí)驗(yàn)和課程設(shè)計(jì)相關(guān)課程體系是各高等院校電子電氣信息類工科專業(yè)基礎(chǔ)專業(yè)課程設(shè)置的重要組成部分,為大學(xué)生深入學(xué)習(xí)掌握單片機(jī)的基本原理,設(shè)計(jì)方法,實(shí)踐應(yīng)用等打下基礎(chǔ)。大多數(shù)理工科高校開(kāi)設(shè)這些課程,對(duì)學(xué)生進(jìn)行綜合培養(yǎng)。對(duì)于單片機(jī)的理論與實(shí)踐教學(xué),既可以選擇匯編語(yǔ)言,也可以選擇C語(yǔ)言進(jìn)行。在高校的實(shí)際教學(xué)工作中,大多數(shù)老師是選擇匯編語(yǔ)言進(jìn)行教學(xué)的,因?yàn)閺膮R編語(yǔ)言入手能更好的掌握單片機(jī)的硬件資源使用原理等,也有部分老師是直接使用C語(yǔ)言進(jìn)行教學(xué),認(rèn)為匯編語(yǔ)言編程過(guò)于繁瑣,而C語(yǔ)言編程能夠在將來(lái)的實(shí)踐工作中得到更好的應(yīng)用。本文通過(guò)總結(jié)作者多年來(lái)在單片機(jī)相關(guān)課程教學(xué)積累的經(jīng)驗(yàn)和教學(xué)研究心得,以51單片機(jī)理論、實(shí)驗(yàn)和課程設(shè)計(jì)教學(xué)為例,對(duì)如何在使用不同編程語(yǔ)言進(jìn)行繁瑣和復(fù)雜的教學(xué)中使學(xué)生更好地掌握單片機(jī)知識(shí)體系進(jìn)行了探討。
1.單片機(jī)理論教學(xué)
1.1 匯編語(yǔ)言理論教學(xué)
單片機(jī)是一個(gè)把中央處理器CPU、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、并行IO接口、串行IO接口、定時(shí)器計(jì)數(shù)器、時(shí)鐘振蕩電路等集成在一起的控制芯片,硬件資源簡(jiǎn)單且豐富,也易于擴(kuò)展電路,所以單片機(jī)的學(xué)習(xí)側(cè)重點(diǎn)首先在于掌握硬件資源使用方法。因?yàn)閰R編語(yǔ)言實(shí)際上是CPU能夠識(shí)別的機(jī)器碼的助記符,從匯編語(yǔ)言入手開(kāi)始教學(xué),能夠使學(xué)生更好地掌握單片機(jī)的硬件資源使用原理。使用匯編語(yǔ)言編程可以很方便地對(duì)單片機(jī)存儲(chǔ)器地址直接進(jìn)行存取操作,也能很方便地對(duì)存儲(chǔ)器地址進(jìn)行整體安排分配,前提是對(duì)單片機(jī)硬件資源非常熟悉,能夠靈活調(diào)用。比如指令MOV、MOVC和MOVX可以分別訪問(wèn)單片機(jī)內(nèi)部的數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器和外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器。匯編編程的缺點(diǎn)在于進(jìn)行算術(shù)運(yùn)算和邏輯判斷跳轉(zhuǎn)等比較繁瑣。
1.2 C語(yǔ)言理論教學(xué)
國(guó)內(nèi)的單片機(jī)C語(yǔ)言程序設(shè)計(jì)教程多數(shù)的編排都會(huì)在前面開(kāi)始的章節(jié)介紹單片機(jī)硬件資源以及匯編語(yǔ)言指令系統(tǒng),然后以更大篇幅講述C語(yǔ)言程序設(shè)計(jì)語(yǔ)法和針對(duì)硬件資源的編程。針對(duì)單片機(jī)的C語(yǔ)言程序設(shè)計(jì)語(yǔ)法與計(jì)算機(jī)C語(yǔ)言高級(jí)程序設(shè)計(jì)編程語(yǔ)法基本一致,而針對(duì)硬件資源的指令又類似于匯編語(yǔ)言指令系統(tǒng),所以應(yīng)該可以說(shuō)單片機(jī)C語(yǔ)言程序設(shè)計(jì)是計(jì)算機(jī)C語(yǔ)言高級(jí)程序設(shè)計(jì)和匯編語(yǔ)言指令結(jié)合體。要掌握好C語(yǔ)言編程依然要對(duì)于單片機(jī)的硬件資源理解透徹并能靈活調(diào)用。但是C語(yǔ)言針對(duì)硬件資源的指令與匯編語(yǔ)言指令比較起來(lái)卻不如匯編那么直觀,也不如匯編指令那樣更加有助于單片機(jī)硬件體系結(jié)構(gòu)的理解。
為了使初學(xué)者能夠更好地理解單片機(jī)硬件體系結(jié)構(gòu),掌握硬件資源的調(diào)用,選擇匯編語(yǔ)言進(jìn)行教學(xué)顯然是更加合適的。
2.單片機(jī)實(shí)驗(yàn)教學(xué)
單片機(jī)作為電子電氣信息類專業(yè)的一門專業(yè)基礎(chǔ)核心課程,比某些專業(yè)基礎(chǔ)課程如電路原理、數(shù)字電子技術(shù)、模擬電子技術(shù)等更加注重編程實(shí)踐的練習(xí)。單片機(jī)實(shí)驗(yàn)課程一般都是配套安排在單片機(jī)理論課程的下半學(xué)期,這樣能夠更加有助于理論的理解和掌握。作為理論課程的配套課程,單片機(jī)實(shí)驗(yàn)課程在教學(xué)上必須與理論課程保持一致性,選擇匯編語(yǔ)言進(jìn)行實(shí)驗(yàn)教學(xué)就是必然和最好的選擇。
在實(shí)驗(yàn)設(shè)備的選擇上,學(xué)院實(shí)驗(yàn)室早期購(gòu)置過(guò)星研單片機(jī)Star ES51實(shí)驗(yàn)箱,后來(lái)又購(gòu)置了大批光佑STC開(kāi)發(fā)板,可以兩者選其一。
早期的單片機(jī)實(shí)驗(yàn)都是集中在實(shí)驗(yàn)室進(jìn)行,兩人共用一臺(tái)實(shí)驗(yàn)箱,通過(guò)連線和讀寫配套程序仿真運(yùn)行來(lái)進(jìn)行實(shí)驗(yàn)。這樣的實(shí)驗(yàn)有一些明顯的不足,比如配套程序調(diào)用了很多鍵盤顯示的子程序,而這些子程序沒(méi)有直接給出來(lái),實(shí)驗(yàn)箱的很多硬件電路連接也沒(méi)有給出詳細(xì)原理圖,所以造成了實(shí)驗(yàn)結(jié)束后多數(shù)學(xué)生也是對(duì)實(shí)驗(yàn)原理和編程似懂非懂的結(jié)果。
有了STC開(kāi)發(fā)板后,每個(gè)學(xué)生可以分配一塊開(kāi)發(fā)板,各自進(jìn)行單片機(jī)的編程仿真實(shí)驗(yàn),還可以將開(kāi)發(fā)板帶回宿舍課后繼續(xù)練習(xí),實(shí)驗(yàn)可以更方便地進(jìn)行。實(shí)驗(yàn)開(kāi)發(fā)板的原理圖清晰,例子程序豐富,通過(guò)讀寫配套例程可以較好的掌握單片機(jī)的基本原理。
顯然使用匯編語(yǔ)言選擇STC開(kāi)發(fā)板進(jìn)行單片機(jī)實(shí)驗(yàn)是實(shí)驗(yàn)教學(xué)的最好安排。實(shí)驗(yàn)課程的要求注重于單片機(jī)基礎(chǔ)知識(shí)的掌握和硬件資源的調(diào)用。
3.單片機(jī)課程設(shè)計(jì)教學(xué)
單片機(jī)課程設(shè)計(jì)的安排是為了進(jìn)一步提高學(xué)生的實(shí)踐能力,所以課程設(shè)計(jì)的教學(xué)就不再局限于基本原理的掌握,而是必須達(dá)到更高程度的實(shí)踐效果。匯編語(yǔ)言編程有利于對(duì)基礎(chǔ)知識(shí)的理解和單片機(jī)硬件資源的掌握,卻不利于復(fù)雜邏輯的處理。所以在學(xué)生已經(jīng)基本掌握了基礎(chǔ)理論的情況下,課程設(shè)計(jì)選擇C語(yǔ)言編程,可以讓學(xué)生更加方便的進(jìn)行復(fù)雜程序的編寫。
單片機(jī)課程設(shè)計(jì)實(shí)踐項(xiàng)目?jī)?nèi)容的安排上,必須注重單片機(jī)內(nèi)部和外部硬件資源的綜合調(diào)用,以便完成具有實(shí)際意義的綜合程序的編寫。課程設(shè)計(jì)實(shí)踐項(xiàng)目安排了可以綜合調(diào)用單片機(jī)I/O口資源進(jìn)行鍵盤掃描數(shù)碼管顯示以及中斷處理的實(shí)現(xiàn)計(jì)算器功能的程序編寫,和能夠使用I2C總線進(jìn)行通訊的AD/DA處理的程序編寫。這兩種程序的綜合度和復(fù)雜度都遠(yuǎn)遠(yuǎn)大于單片機(jī)實(shí)驗(yàn)題目的要求。從實(shí)踐結(jié)果來(lái)看,通過(guò)這種綜合性復(fù)雜程序的編寫練習(xí),能夠大大提高學(xué)生的開(kāi)發(fā)設(shè)計(jì)實(shí)際項(xiàng)目的動(dòng)手實(shí)踐能力。
結(jié)束語(yǔ)
在我國(guó)大力實(shí)行人才戰(zhàn)略強(qiáng)調(diào)人才培養(yǎng)的大環(huán)境下,本文作者所在高校也響應(yīng)國(guó)家號(hào)召加強(qiáng)本科生培養(yǎng),實(shí)施卓越工程教育,取得了積極可喜的成績(jī)。本文積極探索和提高單片機(jī)理論實(shí)驗(yàn)課程設(shè)計(jì)協(xié)同教學(xué)的方法,取得了長(zhǎng)足的進(jìn)步和發(fā)展,也得到了學(xué)生的高度認(rèn)同。以此方法培養(yǎng)出來(lái)的本科生在參加全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽的過(guò)程中也取得了驕人的成績(jī)。本文作者經(jīng)驗(yàn)和方法也可以為兄弟院校相關(guān)專業(yè)的教學(xué)提供參考和借鑒。
參考文獻(xiàn):
[1]李朝青.單片機(jī)原理及接口技術(shù)(第4版),北京航空航天大學(xué)出版社,2013.7
[2]郭天祥.新概念51單片機(jī)C語(yǔ)言教程――入門、提高、開(kāi)發(fā)、拓展, 電子工業(yè)出版社,2009.1
[3]彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例――基于8051+Proteus仿真(第2版), 電子工業(yè)出版社,2012.10