首先我們來(lái)看一段程序:
Tittle ‘Input.asm’ ;標(biāo)題
;這是一個(gè)簡(jiǎn)單的輸入實(shí)驗(yàn)
include
COUNT EQU 20H ;定義20H寄存器名為COUNT
ORG 0 ;程序區(qū)將從0000H開(kāi)始裝載
GOTO START
ORG 4 ;中斷入口
GOTO INTEN ;中斷發(fā)生時(shí)跳轉(zhuǎn)到INTEN
ORG 10 ;START將從第10行開(kāi)始
START
……
MAIN
……
GOTO MAIN
INTSEVER
……
RETFIE ;中斷返回
END ;程序結(jié)束偽指令,不能少!
事實(shí)上匯編程序并沒(méi)有固定的格式,但是它的各部分是有一定的位置安排的,習(xí)慣上依次為:
①程序標(biāo)題:用Tittle偽指令定義,可缺省;
②程序注釋?zhuān)赫?qǐng)注意必須在程序說(shuō)明及注釋部分的內(nèi)容前面用“;”號(hào),否則將會(huì)出現(xiàn)編譯錯(cuò)誤。程序說(shuō)明及注釋部分均可缺省;
③調(diào)用到的.inc文件:用include偽指令來(lái)調(diào)用。通常.inc文件是與單片機(jī)型號(hào)相對(duì)應(yīng)的,包括了一些特殊寄存器的定義等內(nèi)容。PIC單片機(jī)各種型號(hào)的.inc文件在MPLAB目錄中就能找到,不需要自己編寫(xiě)。如果被調(diào)用的.inc文件遺失,編譯時(shí)將會(huì)出現(xiàn)編譯錯(cuò)誤;
④通用寄存器定義:用EQU偽指令定義,格式為“寄存器名稱 EQU 寄存器標(biāo)號(hào)”,寄存器名稱要頂格寫(xiě)。這是程序編寫(xiě)人員為所用到的通用寄存器起的名字,對(duì)應(yīng)了一個(gè)實(shí)際的通用積存器地址;
⑤宏定義:在上面的程序中沒(méi)有用到宏,缺省;
⑥程序初始化:START部分;
⑦主程序:MAIN部分;
⑧子程序:如本程序的INTSEVER部分。有時(shí)候會(huì)將子程序放在初始化程序的前面,例如一些查表程序等;
⑨程序結(jié)束:END語(yǔ)句,不可缺省。
以上的部分構(gòu)成了一個(gè)完整的PIC匯編程序。在程序編寫(xiě)過(guò)程中需要注意的問(wèn)題我認(rèn)為有以下幾點(diǎn):
1、編程中首先要避免使用直接地址對(duì)寄存器操作。使用直接地址來(lái)操作寄存器會(huì)使程序的可讀性大大的降低,一來(lái)容易和數(shù)據(jù)發(fā)生混淆,二來(lái)也不容易更改。以上面的程序來(lái)說(shuō)吧,寄存器“COUNT”的直接地址是20H。假如調(diào)試過(guò)程中我突然發(fā)現(xiàn)調(diào)用到COUNT的子程序中其它的寄存器都是在BANK1的,我為了調(diào)用它需要常常切換BANK極不方便,因此要將它的地址改為90H。那么現(xiàn)在我只要將定義的語(yǔ)句改為“COUNT EQU 90H ”就可以了,假如我沒(méi)有這樣定義,那么我只能去程序中查找20H然后一一改為90H……
2、注意子程序標(biāo)號(hào)的可讀性。雖然這些標(biāo)號(hào)在被編譯之后是沒(méi)有區(qū)別的(當(dāng)然了,地址還是不一樣的),只是編程人員用以識(shí)別的標(biāo)記(比如:main通常被使用作為程序的主循環(huán)標(biāo)號(hào),而start則常被用做程序初始化的標(biāo)號(hào),可以說(shuō),標(biāo)號(hào)的命名情況與程序的編譯、運(yùn)行是沒(méi)有太大的影響的。假如你的main標(biāo)號(hào)被改成loop,編譯結(jié)果也是一樣),但是它們的合理與否將會(huì)影響到程序的調(diào)試。通常來(lái)講,標(biāo)號(hào)最好是能一目了然,甚至要能概括這段程序處理的內(nèi)容。比如延時(shí)程序用dealy,中斷服務(wù)用intsever等等。這樣一來(lái)程序的可讀性高了,以后要修改調(diào)試起來(lái)也很方便。
3、程序結(jié)構(gòu)要合理。
上一篇:如何提高單片機(jī)系統(tǒng)的抗干擾性能
下一篇:超聲波測(cè)距資料(HC-SR04)+原理圖 單片機(jī)源程序
推薦閱讀
史海拾趣
Anixter Inc 是一家全球性的供應(yīng)鏈解決方案提供商,以下是該公司發(fā)展的相關(guān)故事:
公司成立與初期發(fā)展:Anixter Inc 成立于 1957 年,總部位于美國(guó)伊利諾伊州格倫維爾回。最初,公司主要從事電線電纜的銷(xiāo)售和分銷(xiāo)。隨著時(shí)間的推移,Anixter 不斷擴(kuò)大業(yè)務(wù)范圍,逐步涉足網(wǎng)絡(luò)設(shè)備、安全解決方案、電子元器件等領(lǐng)域。
業(yè)務(wù)拓展與國(guó)際化:隨著市場(chǎng)需求的變化和全球化的趨勢(shì),Anixter 不斷拓展業(yè)務(wù),并加速國(guó)際化進(jìn)程。公司在全球范圍內(nèi)建立了廣泛的分銷(xiāo)網(wǎng)絡(luò)和供應(yīng)鏈體系,在北美、歐洲、亞洲和拉丁美洲等地區(qū)設(shè)立了辦事處、倉(cāng)庫(kù)和物流中心,以更好地滿足客戶的需求。
技術(shù)創(chuàng)新與解決方案提供:Anixter 不斷注重技術(shù)創(chuàng)新和解決方案提供,與各種供應(yīng)商合作,推出了多種先進(jìn)的產(chǎn)品和服務(wù)。公司致力于為客戶提供全方位的供應(yīng)鏈解決方案,包括設(shè)計(jì)、采購(gòu)、倉(cāng)儲(chǔ)、配送和技術(shù)支持等,幫助客戶提高效率、降低成本并增強(qiáng)競(jìng)爭(zhēng)力。
收購(gòu)與合并:為了加速業(yè)務(wù)發(fā)展和擴(kuò)大市場(chǎng)份額,Anixter 進(jìn)行了一系列收購(gòu)和合并活動(dòng)。通過(guò)收購(gòu)具有特定技術(shù)或地區(qū)優(yōu)勢(shì)的公司,Anixter 不僅增強(qiáng)了自身的競(jìng)爭(zhēng)實(shí)力,還拓展了業(yè)務(wù)領(lǐng)域和市場(chǎng)覆蓋范圍。
可持續(xù)發(fā)展與未來(lái)展望:Anixter 積極響應(yīng)可持續(xù)發(fā)展的呼聲,致力于推動(dòng)環(huán)保和社會(huì)責(zé)任的實(shí)踐。公司在供應(yīng)鏈管理、能源管理和環(huán)境保護(hù)等方面持續(xù)改進(jìn),致力于減少碳排放、資源浪費(fèi)和環(huán)境污染。未來(lái),Anixter 將繼續(xù)秉承技術(shù)創(chuàng)新和客戶導(dǎo)向的理念,不斷適應(yīng)市場(chǎng)變化和挑戰(zhàn),保持行業(yè)領(lǐng)先地位,并為客戶和股東創(chuàng)造持續(xù)增長(zhǎng)的價(jià)值。
2019年1月底,Entegris與Versum Materials宣布合并。合并后的公司由Entegris占據(jù)五席董事,而Versum占四席。Versum是一家主要生產(chǎn)半導(dǎo)體的化學(xué)、氣體及輸送系統(tǒng)的公司,兩家公司的前三大客戶均為臺(tái)積電、英特爾、三星電子。合并后,新公司在半導(dǎo)體材料市場(chǎng)的影響力顯著增強(qiáng),同時(shí)也面臨著來(lái)自德國(guó)默克等競(jìng)爭(zhēng)對(duì)手的挑戰(zhàn)。
隨著業(yè)務(wù)的不斷擴(kuò)展,Belden公司于1910年搬遷至芝加哥更大的區(qū)域,并在產(chǎn)品線上增加了橡膠絕緣電線。這一舉措不僅擴(kuò)大了公司的生產(chǎn)規(guī)模,也進(jìn)一步豐富了產(chǎn)品種類(lèi),滿足了市場(chǎng)的多樣化需求。隨后,百通工程師于1927年發(fā)明的軟橡膠塞技術(shù),進(jìn)一步推動(dòng)了公司的技術(shù)創(chuàng)新和業(yè)務(wù)拓展。
Ericsson公司在早期就非常注重市場(chǎng)拓展和全球布局。通過(guò)與各國(guó)電信運(yùn)營(yíng)商建立合作關(guān)系,Ericsson成功將其產(chǎn)品和服務(wù)推廣到了全球各地。特別是在中國(guó)市場(chǎng),Ericsson早在19世紀(jì)90年代就與中國(guó)簽訂了供貨合同,成為中國(guó)通信網(wǎng)絡(luò)建設(shè)的重要參與者。如今,Ericsson已經(jīng)在中國(guó)扎根130余年,成為了唯一一家從1G到5G全程參與中國(guó)通信網(wǎng)絡(luò)建設(shè)的企業(yè)。
比亞迪的發(fā)展可以追溯到1995年,當(dāng)時(shí)王傳福創(chuàng)立了這家公司,最初專(zhuān)注于生產(chǎn)小型電池。在初創(chuàng)期,比亞迪通過(guò)模仿日本三洋和索尼的產(chǎn)品快速積累了生產(chǎn)經(jīng)驗(yàn)。然而,王傳福深知模仿不是長(zhǎng)久之計(jì),因此他果斷地決定轉(zhuǎn)向自主研發(fā)和創(chuàng)新。這一決策在日后證明是極其明智的。隨著技術(shù)的不斷積累,比亞迪于1997年開(kāi)始量產(chǎn)鋰離子電池,并成功實(shí)現(xiàn)了年銷(xiāo)售額突破1億元。這一里程碑標(biāo)志著比亞迪在電池技術(shù)領(lǐng)域取得了重大突破,為其日后在電子行業(yè)的發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
隨著公司業(yè)務(wù)的不斷發(fā)展,Elcoma意識(shí)到要進(jìn)一步拓展市場(chǎng),必須與國(guó)際同行建立合作關(guān)系。他們積極尋求與全球知名電子企業(yè)的合作機(jī)會(huì),通過(guò)技術(shù)交流和合作研發(fā),不斷提升自身的技術(shù)水平和市場(chǎng)競(jìng)爭(zhēng)力。同時(shí),Elcoma還積極參與國(guó)際電子展會(huì)和論壇,展示公司的最新技術(shù)和產(chǎn)品,吸引了眾多國(guó)際客戶的關(guān)注。這些國(guó)際合作不僅為Elcoma帶來(lái)了更多的商業(yè)機(jī)會(huì),也進(jìn)一步提升了公司的國(guó)際影響力。
急需 Protel DXP 2004 SP2 的軟件,我有教程,沒(méi)有軟件,沒(méi)有辦法學(xué),我是新手,希望能發(fā)給我.我的郵箱:yinghua8383@163.com 謝謝!… 查看全部問(wèn)答∨ |
一.什么是電池? 化學(xué)電源俗稱為電池。是一種將物質(zhì)的化學(xué)變化所釋放出的能量直接轉(zhuǎn)化為低壓直流電的裝置。 二.電池的工作原理 電池在放電過(guò)程中,負(fù)極發(fā)生氧化反應(yīng),向外提供電子;在正極上進(jìn)行還原反應(yīng),從外電路接受電子,電子從負(fù)極流到正極 ...… 查看全部問(wèn)答∨ |
朋友發(fā)了一張圖叫我?guī)退纯矗谒厦姘l(fā)現(xiàn)了一個(gè)很牛的鍵盤(pán)接口電路。 發(fā)上來(lái)分享一下。 16個(gè)鍵,只用了4個(gè)IO。 … 查看全部問(wèn)答∨ |
WINCE在開(kāi)機(jī)后自動(dòng)彈出來(lái)一個(gè)WIFI無(wú)線配置的窗口,但是這個(gè)窗口比LCD高了,有沒(méi)有好辦法把這個(gè)窗口縮小一點(diǎn)呀!如果單改代碼來(lái)縮小窗口,那窗口上的控件也要調(diào)整,比較麻煩,改資源文件又好像只有英文版的才有效,哪位前輩能給小弟一點(diǎn)建議呀?!… 查看全部問(wèn)答∨ |
我最近期購(gòu)買(mǎi)了一套ARM開(kāi)發(fā)板子,后來(lái)發(fā)現(xiàn)我的筆記本上沒(méi)有串口,請(qǐng)問(wèn)下用USB轉(zhuǎn)串口線能現(xiàn)實(shí)學(xué)習(xí)板的下載,調(diào)試等功能嗎,急!… 查看全部問(wèn)答∨ |
|
用Design compiler編繹綜合乘法器,然后用面積約束去優(yōu)化它,結(jié)果面積反而變大了。會(huì)是什么問(wèn)題呢?乘法器是簡(jiǎn)單的z=x*y;x,y為8位,z為16位。試了很多次,都出現(xiàn)相同的問(wèn)題。 請(qǐng)教各位大神!!!!!!!!!!!!!!… 查看全部問(wèn)答∨ |
本帖最后由 dontium 于 2015-1-23 13:37 編輯 我燒寫(xiě)完程序,運(yùn)行的時(shí)候,顯示“Can\\\'t Set Breakpoint: Error 0x00000008/-1076 Error during: Break Point, Cannot set/verify breakpoint at 0x000004DC Breakpoint Manager: An e ...… 查看全部問(wèn)答∨ |
開(kāi)始學(xué)習(xí)FPGA了,希望能在這里同大家一起成長(zhǎng),一起分享在學(xué)習(xí)中的一些心得和感悟~ … 查看全部問(wèn)答∨ |
請(qǐng)問(wèn)wince5.0如何修改注冊(cè)表更改USB加載方式? 我是新手,碰到一采用wince5.0操作系統(tǒng)的GPS一體機(jī),內(nèi)置4G ResidentFlash,進(jìn)入資源管理器內(nèi)能看到ResidentFlash和ResidentFlash2的盤(pán)符,連接U盤(pán)后不顯示盤(pán)符,連接PC也沒(méi)有動(dòng)靜。只有進(jìn)入DVD播放以及刪除完ResidentFlash內(nèi)所有文件后才會(huì)加載出U ...… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無(wú)刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無(wú)線智能控制器的設(shè)計(jì)
- 基于PTR2000的無(wú)線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無(wú)人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- Gartner發(fā)布企業(yè)構(gòu)建智能應(yīng)用的五項(xiàng)基本原則
- TLSM系列輕觸開(kāi)關(guān)為高使用率設(shè)備提供200萬(wàn)次長(zhǎng)使用壽命
- 品英Pickering公司仿真方案和測(cè)試系統(tǒng)滿足航電設(shè)備可靠性和安全性等更高要求
- RAK12039傳感器如何參與LoRaWAN水培環(huán)境監(jiān)測(cè)物聯(lián)網(wǎng)系統(tǒng)集成
- 如何添加和激活RAK12035傳感器(電容式土壤濕度傳感器)
- ?數(shù)據(jù)分析軟件imc FAMOS 2025全球同步發(fā)布
- 基于雙積分滑模控制的單移相調(diào)制(SPS)的應(yīng)用
- 場(chǎng)效應(yīng)管有哪些特點(diǎn)、測(cè)量方法?場(chǎng)效應(yīng)管是如何導(dǎo)通的
- 場(chǎng)效應(yīng)管和晶閘管有什么區(qū)別?場(chǎng)效應(yīng)管使用注意事項(xiàng)有哪些
- 場(chǎng)效應(yīng)管常用驅(qū)動(dòng)芯片有哪些?如何估測(cè)場(chǎng)效應(yīng)管放大能力
- 【已結(jié)束】力源直播【安森美 25KW 充電樁模塊方案】(9:30入場(chǎng))
- “贊一贊我的國(guó)”:集合啦,侃侃好用的國(guó)產(chǎn)單片機(jī)
- 以拆會(huì)友,你拆、你評(píng)我送禮!
- 【搶樓有禮】聊聊vishay照明應(yīng)用在我們身邊哪些地方!
- 免費(fèi)申請(qǐng)TI 樣片, 曬訂單贏好禮!
- 趣味電子技術(shù)史話欄目開(kāi)播啦!第一集:白熾燈到底是誰(shuí)發(fā)明的?
- 【頒獎(jiǎng)禮】摸黑搶樓贏大禮!
- 是德科技有獎(jiǎng)直播:如何讓你的Wi-Fi測(cè)試“兔”飛猛進(jìn)?
- 提交物聯(lián)網(wǎng)應(yīng)用創(chuàng)意,贏萬(wàn)用表、藍(lán)牙耳機(jī)、小米排插、京東卡等好禮!
- 韋爾股份聘任王崧為公司總經(jīng)理 馬劍秋不再擔(dān)任總經(jīng)理
- 真機(jī)圖像確認(rèn)有蘋(píng)果AirPods Pro在越南組裝
- 機(jī)器人對(duì)我們生活的好處有哪些
- 好品質(zhì)的焊接機(jī)器人推薦
- Google Store的到來(lái),可否能給線下零售帶來(lái)新思考
- ACCIONA Energy與施耐德合作,共同致力于可再生能源與清潔技術(shù)
- 董明珠現(xiàn)身東莞:希望政府能保護(hù)我們的知識(shí)產(chǎn)權(quán)
- 科學(xué)家開(kāi)發(fā)軟Q水母機(jī)器人 讓這些小可愛(ài)守護(hù)珊瑚礁海域
- 調(diào)查:企業(yè)過(guò)去4年人工智能使用量增加270%
- 聯(lián)手空客 Facebook太陽(yáng)能互聯(lián)網(wǎng)無(wú)人機(jī)測(cè)試再啟動(dòng)