本書分三部分介紹在美國廣泛應(yīng)用的、高功能的M68HC11系列單片機(jī)(8位機(jī) ,Motorola公司)。內(nèi)容包括M68HC11的結(jié)構(gòu)與其基本原理、開發(fā)工具EVB(性能評估板)以及開發(fā)和應(yīng)用技術(shù)。本書在介紹單片機(jī)硬、軟件的基礎(chǔ)上,進(jìn)一步介紹了在美國實驗室內(nèi),如何應(yīng)用PC機(jī)及EVB來進(jìn)行開發(fā)工作。通過本書的介紹,讀者可了解這種單片機(jī)的原理并學(xué)會開發(fā)和應(yīng)用方法。本書可作為大專院校單片機(jī)及其實驗的教材(本科、短訓(xùn)班)。亦可供開發(fā)、應(yīng)用單片機(jī)的各專業(yè)(計算機(jī)、機(jī)電、化工、紡織、冶金、自控、航空、航海……)有關(guān)技術(shù)人員參考。 第一部分 M68HC11 結(jié)構(gòu)與原理Motorola單片機(jī) 1 Motorla單片機(jī) 1.1 概述 1.1.1 Motorola 單片機(jī)發(fā)展概況(3) 1.1.2 Motorola 單片機(jī)結(jié)構(gòu)特點(4) 1.2 M68HC11系列單片機(jī)(5) 1.2.1 M68HC11產(chǎn)品系列(5) 1.2.2 MC68HC11E9特性(6) 1.2.3 MC68HC11E9單片機(jī)引腳說明(8) 1.3 Motorola 32位單片機(jī)(14) 1.3.1中央處理器(CPU32)(15) 1.3.2 定時處理器(TPU)(16) 1.3.3 串行隊列模塊(QSM)(16) 1.3.4 系統(tǒng)集成模塊 (SIM)(16) 1.3.5 RAM(17) 2 系統(tǒng)配置與工作方式 2.1 系統(tǒng)配置(19) 2.1.1 配置寄存器CONFIG(19) 2.1.2 CONFIG寄存器的編程與擦除(20) 2?2 工作方式選擇(21) 2.3 M68HC11的工作方式(23) 2.3.1 普通單片工作方式(23) 2.3.2 普通擴(kuò)展工作方式(23) 2.3.3 特殊自舉方式(27) 2.3.4 特殊測試方式(28) 3 中央處理器(CPU)與片上存儲器 3.1 CPU寄存器(31) 3?1?1 累加器A、B和雙累加器D(32) 3.1.2 變址寄存器X、Y(32) 3.1.3 棧指針SP(32) 3.1.4 程序計數(shù)器PC(33) 3.1.5 條件碼寄存器CCR(33) 3.2 片上存儲器(34) 3.2.1 存儲器分布(34) 3.2.2 RAM和INIT寄存器(35) 3.2.3 ROM(37) 3.2.4 EEPROM(37) 3.3 M68HC11 CPU的低功耗方式(39) 3.3.1 WAIT方式(39) 3.3.2 STOP方式(40) 4 復(fù)位和中斷 4.1 復(fù)位(41) 4.1.1 M68HC11的系統(tǒng)初始化條件(41) 4.1.2 復(fù)位形式(43) 4.2 中斷(48) 4.2.1 條件碼寄存器CCR中的中斷屏蔽位(48) 4.2.2 中斷優(yōu)先級與中斷矢量(49) 4.2.3 非屏蔽中斷(52) 4.2.4 實時中斷(53) 4.2.5 中斷處理過程(56) 5 M68HC11指令系統(tǒng) 5.1 M68HC11尋址方式(59) 5.1.1 立即尋址(IMM)(59) 5.1.2 擴(kuò)展尋址(EXT)(60) 5.1.3 直接尋址(DIR)(60) 5.1.4 變址尋址(INDX、INDY)(61) 5.1.5 固有尋址(INH)(62) 5.1.6 相對尋址(REL)(62) 5.1.7 前置字節(jié)(63) 5.2 M68HC11指令系統(tǒng)(63) 5.2.1 累加器和存儲器指令(63) 5.2.2 棧和變址寄存器指令(68) 5.2.3 條件碼寄存器指令(69) 5.2.4 程序控制指令(70) 6 輸入與輸出 6.1 概述(73) 6.2 并行I/O口(74) 6.2.1 并行I/O寄存器(74) 6.2.2 應(yīng)答I/O子系統(tǒng)(76) 6?3 串行通信接口SCI(82) 6.3.1 基本特性(83) 6.3.2 數(shù)據(jù)格式(83) 6.3.3 SCI硬件結(jié)構(gòu)(84) 6.3.4 SCI寄存器(86) 6.4 串行外圍接口SPI(92) 6.4.1 SPI特性(92) 6.4.2 SPI引腳信號(92) 6.4.3 SPI結(jié)構(gòu)(93) 6.4.4 SPI寄存器(95) 6.4.5 SPI系統(tǒng)與外部設(shè)備進(jìn)行串行數(shù)據(jù)傳輸(99) 7 定時器系統(tǒng)與脈沖累加器 7.1 概述(105) 7.2 循環(huán)計數(shù)器(107) 7.2.1 時鐘分頻器(107) 7.2.2 計算機(jī)正常工作監(jiān)視功能(110) 7.2.3 定時器標(biāo)志的清除(110) 7.3 輸入捕捉功能(111) 7.3.1 概述(111) 7.3.2 定時器輸入捕捉鎖存器(TIC1、TIC2、TIC3) 7.3.3 輸入信號沿檢測邏輯(113) 7.3.4 輸入捕捉中斷(113) 7.4 輸出比較功能(114) 7.4.1 概述(114) 7.4.2 輸出比較功能使用的寄存器(116) 7.4.3 輸出比較示例(118) 7.5 脈沖累加器(119) 7.5.1 概述(119) 7.5.2 脈沖累加器控制和狀態(tài)寄存器(121) 8 A/D轉(zhuǎn)換系統(tǒng) 8.1 電荷重新分布技術(shù)與逐次逼近算法(125) 8.1.1 基本電路(125) 8.1.2 A/D轉(zhuǎn)換逐次逼近算法原理(130) 8.2 M68HC11中A/D轉(zhuǎn)換的實現(xiàn)方法(131) 8.2.1 逐次逼近A/D轉(zhuǎn)換器(131) 8.2.2 控制寄存器(132) 8.2.3 系統(tǒng)控制邏輯(135)? 9 單片機(jī)的內(nèi)部操作 9.1 用立即> 圖書前言 美國Motorola公司從80年代中期開始推出的M68HC11系列單片機(jī)是當(dāng)今功能最強(qiáng)、性能/價格比最好的八位單片微計算機(jī)之一。在美國,它已被廣泛地應(yīng)用于教學(xué)和各種工業(yè)控制系統(tǒng)中。? 該單片機(jī)有豐富的I/O功能,完善的系統(tǒng)保護(hù)功能和軟件控制的節(jié)電工作方式 。它的指令系統(tǒng)與早期Motorola單片機(jī)MC6801等兼容,同時增加了91條新指令。其中包含16位乘法、除法運(yùn)算指令等。 為便于用戶開發(fā)和應(yīng)用M68HC11單片機(jī),Motorola公司提供了多種開發(fā)工具。M68HC11 EVB (Evaluation Board)性能評估板就是一種M68HC11系列單片機(jī)的廉價開發(fā)工具。它既可用來 調(diào)試用戶程序,又可在仿真方式下運(yùn)行。為方便用戶,M68HC11 EVB可與IBM?PC連接 ,借助于交叉匯編、通信程序等軟件,在IBM?PC上調(diào)試程序。? 本書分三部分(共15章)介紹了M68HC11的結(jié)構(gòu)和基本原理、開發(fā)工具-EVB及開發(fā)應(yīng)用實例等。第一部分(1~9章),介紹M68HC11的結(jié)構(gòu)和基本原理。包括概述,系統(tǒng)配置與工作方式、CPU和存儲器、復(fù)位和中斷、指令系統(tǒng)、I/O、定時器系統(tǒng)和脈沖累加器、A/D轉(zhuǎn)換系統(tǒng)、單片機(jī)的內(nèi)部操作等。第二部分(10~11章),介紹M68HC11 EVB的原理和技術(shù)特性以及EVB的應(yīng)用。第三部分(12~15章),介紹M68HC11的開發(fā)與應(yīng)用技術(shù)。包括基本的編程練習(xí)、應(yīng)用程序設(shè)計、接口實驗、接口設(shè)計及應(yīng)用等。 讀者通過學(xué)習(xí)本書,不僅可了解M68HC11的硬件、軟件,而且可了解使用EVB開發(fā)和應(yīng)用M68HC11單片機(jī)的方法。在本書的第三部分專門提供了一部分實驗和應(yīng)用程序。? 本書系作者張寧作為高級訪問學(xué)者,應(yīng)邀在美國馬薩諸塞州洛厄爾大學(xué)(University of Massachusetts Lowell)工作期間完成的。全書由張寧執(zhí)筆。在編著過程中,美國洛厄爾大學(xué)的R·代克曼教授?(Professor Robert J. Dirkman)多次與張寧一起討論、研究,并提供部分資料及實驗數(shù)據(jù)。參加編寫和審校等工作的還有王云霞、孫曉芳、劉安魯、張籍、來安德、張楊等同志。? 為將M68HC11系列單片機(jī)盡快介紹給我國,美國Motorola公司的Terrence M.S.Heng先生曾大力支持本書的編著和出版。在此表示衷心感謝。
上傳時間: 2013-10-27
上傳用戶:rlgl123
普通查表原理 查表時,執(zhí)行CALL指令后,下一條指令的地址被自動壓入堆棧中,然后跳轉(zhuǎn)到數(shù)據(jù)表處,執(zhí)行TJMP指令,PC指針跳轉(zhuǎn)到PC11~PC8,TBR(TABLE BRANCH REGISTER),AC(累加器)所指向的地址,該地址的數(shù)據(jù)通過RTNW指令返回,其中,高4位數(shù)據(jù)保存到TBR寄存器中,低4位數(shù)據(jù)保存到累加器AC中。返回時PC指針會自動被堆棧中保存的PC數(shù)據(jù)覆蓋。
上傳時間: 2014-12-27
上傳用戶:zhaoman32
AVR單片機(jī)技術(shù)原理 AVR單片機(jī)介紹 單片機(jī)又稱單片微控制器,它是把一個計算機(jī)系統(tǒng)集成到一個芯片上,概括的講:一塊芯片就成了一臺計算機(jī)。單片機(jī)技術(shù)是計算機(jī)技術(shù)的一個分支,是簡易機(jī)器人的核心元件。 1997年,由ATMEL公司挪威設(shè)計中心的A先生與V先生利用ATMEL公司的Flash新技術(shù), 共同研發(fā)出RISC精簡指令集的高速8位單片機(jī),簡稱AVR。[編輯本段]AVR單片機(jī)的優(yōu)勢特征 單片機(jī)已廣泛地應(yīng)用于軍事、工業(yè)、家用電器、智能玩具、便攜式智能儀表和機(jī)器人制作等領(lǐng)域,使產(chǎn)品功能、精度和質(zhì)量大幅度提升,且電路簡單,故障率低,可靠性高,成本低廉。單片機(jī)種類很多,在簡易機(jī)器人制作和創(chuàng)新中,為什么選用AVR單片機(jī)呢? 一、簡便易學(xué),費用低廉 首先,對于非專業(yè)人員來說,選擇AVR單片機(jī)的最主要原因,是進(jìn)入AVR單片機(jī)開發(fā)的門檻非常低,只要會操作電腦就可以學(xué)習(xí)AVR單片機(jī)的開發(fā)。單片機(jī)初學(xué)者只需一條ISP下載線,把編輯、調(diào)試通過的軟件程序直接在線寫入AVR單片機(jī),即可以開發(fā)AVR單片機(jī)系列中的各種封裝的器件。AVR單片機(jī)因此在業(yè)界號稱“一線打天下”。 其次,AVR單片機(jī)便于升級。AVR程序?qū)懭胧侵苯釉陔娐钒迳线M(jìn)行程序修改、燒錄等操作,這樣便于產(chǎn)品升級。 再次,AVR單片機(jī)費用低廉。學(xué)習(xí)AVR單片機(jī)可使用ISP在線下載編程方式(即把PC機(jī)上編譯好的程序?qū)懙絾纹瑱C(jī)的程序存儲器中),不需購買仿真器、編程器、擦抹器和芯片適配器等,即可進(jìn)行所有AVR單片機(jī)的開發(fā)應(yīng)用,這可節(jié)省很多開發(fā)費用。程序存儲器擦寫可達(dá)10000次以上,不會產(chǎn)生報廢品。 二、高速、低耗、保密 首先,AVR單片機(jī)是高速嵌入式單片機(jī): 1、AVR單片機(jī)具有預(yù)取指令功能,即在執(zhí)行一條指令時,預(yù)先把下一條指令取進(jìn)來,使得指令可以在一個時鐘周期內(nèi)執(zhí)行。 2、多累加器型,數(shù)據(jù)處理速度快。AVR單片機(jī)具有32個通用工作寄存器,相當(dāng)于有32條立交橋,可以快速通行。 3、中斷響應(yīng)速度快。AVR單片機(jī)有多個固定中斷向量入口地址,可快速響應(yīng)中斷。 其次,AVR單片機(jī)耗能低。對于典型功耗情況,WDT關(guān)閉時為100nA,更適用于電池供電的應(yīng)用設(shè)備。有的器件最低1.8 V即可工作。 再次,AVR單片機(jī)保密性能好。它具有不可破解的位加密鎖Lock Bit技術(shù),保密位單元深藏于芯片內(nèi)部,無法用電子顯微鏡看到。 三、I/O口功能強(qiáng),具有A/D轉(zhuǎn)換等電路 1. AVR單片機(jī)的I/O口是真正的I/O口,能正確反映I/O口輸入/輸出的真實情況。工業(yè)級產(chǎn)品,具有大電流(灌電流)10~40 mA,可直接驅(qū)動可控硅SCR或繼電器,節(jié)省了外圍驅(qū)動器件。 2. AVR單片機(jī)內(nèi)帶模擬比較器,I/O口可用作A/D轉(zhuǎn)換,可組成廉價的A/D轉(zhuǎn)換器。ATmega48/8/16等器件具有8路10位A/D。 3. 部分AVR單片機(jī)可組成零外設(shè)元件單片機(jī)系統(tǒng),使該類單片機(jī)無外加元器件即可工作,簡單方便,成本又低。 4. AVR單片機(jī)可重設(shè)啟動復(fù)位,以提高單片機(jī)工作的可靠性。有看門狗定時器實行安全保護(hù),可防止程序走亂(飛),提高了產(chǎn)品的抗干擾能力。 四、有功能強(qiáng)大的定時器/計數(shù)器及通訊接口 定時/計數(shù)器T/C有8位和16位,可用作比較器。計數(shù)器外部中斷和PWM(也可用作D/A)用于控制輸出,某些型號的AVR單片機(jī)有3~4個PWM,是作電機(jī)無級調(diào)速的理想器件。 AVR單片機(jī)有串行異步通訊UART接口,不占用定時器和SPI同步傳輸功能,因其具有高速特性,故可以工作在一般標(biāo)準(zhǔn)整數(shù)頻率下,而波特率可達(dá)576K。
標(biāo)簽: AVR 單片機(jī)技術(shù)
上傳時間: 2013-10-18
上傳用戶:二十八號
單片機(jī)的硬件結(jié)構(gòu) 2.3 MCS-51的CPU由運(yùn)算器和控制器所構(gòu)成2.3.1 運(yùn)算器對操作數(shù)進(jìn)行算術(shù)、邏輯運(yùn)算和位操作。1.算術(shù)邏輯運(yùn)算單元ALU2.累加器A使用最頻繁的寄存器,可寫為Acc。A的作用:(1)是ALU單元的輸入之一,又是運(yùn)算結(jié)果存放單元。(2)數(shù)據(jù)傳送大多都通過累加器A。(3)A的進(jìn)位標(biāo)志Cy同時又是位處理機(jī)的位累加器。
上傳時間: 2013-10-20
上傳用戶:蔣清華嗯
I/O 型單片機(jī)使用手冊 目錄 間接尋址寄存器 – IAR, IAR0, IAR1 .............................................35間接尋址指針 – MP, MP0, MP1 ......................................................35存儲區(qū)指針 – BP .........................................................................36累加器 – ACC...................................................................................37程序計數(shù)器低字節(jié)寄存器 – PCL....................................................37表格寄存器 – TBLP,TBHP,TBLH....................................................37看門狗定時寄存器 – WDTS............................................................38狀態(tài)寄存器 – STATUS.....................................................................38中斷控制寄存器 – INTC,INTC0,INTC1 .........................................39定時/計數(shù)寄存器...............................................................................39輸入/輸出端口和控制寄存器...........................................................40UART 寄存器 .USR,UCR1,UCR2,TXR/RXR,BRG.......................40輸入/輸出端口..........................................................................................41上拉電阻............................................................................................41PA 口的喚醒......................................................................................41輸入/輸出端口控制寄存器...............................................................41引腳共享功能....................................................................................42編程注意事項....................................................................................45定時/計數(shù)器..............................................................................................46配置定時/計數(shù)器輸入時鐘源...........................................................47定時/計數(shù)寄存器 – TMR, TMR0,TMR0L/TMR0H,TMR1L/TMR1H,TMR2.....................................................................49定時/計數(shù)控制寄存器 – TMRC,TMR0C,TMR1C,TMR2C............50定時器模式........................................................................................53事件計數(shù)器模式................................................................................53脈沖寬度測量模式............................................................................54可編程分頻器(PFD)和蜂鳴器的應(yīng)用..............................................55預(yù)分頻器(Prescaler)...........................................................................56輸入/輸出接口...................................................................................56編程注意事項....................................................................................57定時/計數(shù)器應(yīng)用范例.......................................................................57中斷............................................................................................................59中斷寄存器........................................................................................59中斷優(yōu)先權(quán)........................................................................................62外部中斷............................................................................................63定時/計數(shù)器中斷...............................................................................64UART 中斷........................................................................................64編程注意事項....................................................................................65復(fù)位和初始化............................................................................................66復(fù)位....................................................................................................66目錄iii異步串行口——UART............................................................................74UART 特性..........................................................................................74UART 外部引腳..................................................................................74數(shù)據(jù)發(fā)送.............................................................................................75UART 狀態(tài)控制寄存器......................................................................75波特率發(fā)生器.....................................................................................79UART 設(shè)置與控制..............................................................................81UART 發(fā)送器......................................................................................83UART 接收器......................................................................................84接收錯誤處理.....................................................................................85接收中斷圖解.....................................................................................86地址檢測模式.....................................................................................86暫停模式下的UART 功能.................................................................87UART 應(yīng)用范例.................................................................................87振蕩器........................................................................................................89系統(tǒng)時鐘配置....................................................................................89系統(tǒng)晶體/陶瓷振蕩器.......................................................................89系統(tǒng)電阻電容振蕩器........................................................................90內(nèi)部系統(tǒng)電阻電容振蕩器................................................................90RTC 振蕩器........................................................................................91看門狗定時振蕩器............................................................................91暫停和喚醒................................................................................................92暫停.....................................................................................................92進(jìn)入暫停.............................................................................................92靜態(tài)電流.............................................................................................92喚醒....................................................................................................92看門狗定時器............................................................................................94掩膜選項....................................................................................................96應(yīng)用電路....................................................................................................97第二部份 程序語言.....................................................................99第二章 指令集介紹.................................................................................101指令集......................................................................................................101指令周期..........................................................................................101數(shù)據(jù)的傳送......................................................................................101算術(shù)運(yùn)算..........................................................................................102邏輯和移位運(yùn)算..............................................................................102分支和控制的轉(zhuǎn)換..........................................................................102位運(yùn)算..............................................................................................102查表運(yùn)算..........................................................................................103其它運(yùn)算..........................................................................................103指令設(shè)定一覽表......................................................................................104慣例..................................................................................................104I/O 型單片機(jī)使用手冊iv第三章 指令定義.....................................................................................107第四章 匯編語言和編譯器.....................................................................121常用符號..................................................................................................121語句語法..................................................................................................122名稱..................................................................................................122操作項..............................................................................................122操作數(shù)項..........................................................................................122注解..................................................................................................122編譯偽指令..............................................................................................123條件編譯偽指令..............................................................................123文件控制偽指令..............................................................................124程序偽指令......................................................................................126數(shù)據(jù)定義偽指令..............................................................................130宏指令..............................................................................................132匯編語言指令..........................................................................................136名稱..................................................................................................136助記符..............................................................................................136操作數(shù)、運(yùn)算子和表達(dá)式..............................................................136其它..........................................................................................................139前置引用..........................................................................................139局部標(biāo)號..........................................................................................139匯編語言保留字..............................................................................140編譯器選項..............................................................................................141編譯列表文件格式..................................................................................141源程序列表......................................................................................141編譯總結(jié)..........................................................................................142其它..................................................................................................142第三部份 開發(fā)工具................................................................... 145第五章 單片機(jī)開發(fā)工具.........................................................................147HT-IDE 集成開發(fā)環(huán)境............................................................................147盛群單片機(jī)仿真器(HT-ICE) ..................................................................149HT-ICE 接口卡.................................................................................149OTP 燒寫器.....................................................................................149OTP 適配卡.....................................................................................149系統(tǒng)配置..................................................................................................150HT-ICE 接口卡設(shè)置........................................................................151安裝..........................................................................................................153系統(tǒng)要求..........................................................................................153硬件安裝..........................................................................................153軟件安裝..........................................................................................154目錄v第六章 快速開始.....................................................................................159步驟一:建立一個新項目..............................................................159步驟二:將源程序文件加到項目中..............................................159步驟三:編譯項目..........................................................................159步驟四:燒寫OTP 單片機(jī).............................................................160步驟五:傳送程序與掩膜選項單至Holtek ..................................160附錄............................................................................................... 161附錄A 特性曲線圖...................................................................................163附錄B 封裝信息.......................................................................................173
上傳時間: 2013-10-18
上傳用戶:blacklee
單片機(jī)指令系統(tǒng)原理 51單片機(jī)的尋址方式 學(xué)習(xí)匯編程序設(shè)計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運(yùn)算碼找操作數(shù)的方法。在我們學(xué)習(xí)的8051單片機(jī)中,有6種尋址方法,下面我們將逐一進(jìn)行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個字節(jié)是操作碼,第二個字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱立即數(shù),有“#”號表示。立即數(shù)就是存放在程序存儲器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV DPTR,#8200H在前面學(xué)單片機(jī)的專用寄存器時,我們已學(xué)過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機(jī)的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項給出的是參加運(yùn)算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV A,30H 這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機(jī)中,直接地址只能用來表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址空間,具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV IE,#85H 前面的學(xué)習(xí)我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲器RAM的內(nèi)部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV 65H,A ;將A的內(nèi)容送入內(nèi)部RAM的65H單元地址中MOV A,direct ;將直接地址單元的內(nèi)容送入A中MOV direct,direct;將直接地址單元的內(nèi)容送直接地址單元MOV IE,#85H ;將立即數(shù)85H送入中斷允許寄存器IE 前面我們已學(xué)過,數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當(dāng)前寄存器組(工作寄存器組的選擇在前面專用寄存器的學(xué)習(xí)中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設(shè)置,來進(jìn)行對當(dāng)前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進(jìn)位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學(xué)習(xí)中我產(chǎn)應(yīng)可以理解到,其實寄存器尋址方式就是對由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進(jìn)行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機(jī)規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV R0,#30H ;將值30H加載到R0中 MOV A,@R0 ;把內(nèi)部RAM地址30H內(nèi)的值放到累加器A中 MOVX A,@R0 ;把外部RAM地址30H內(nèi)的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數(shù)據(jù)存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV DPTR,#1234H ;將DPTR值設(shè)為1234H(16位) MOVX A,@DPTR ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH 30H ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對內(nèi)部RAM低128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應(yīng)使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標(biāo)志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問程序存儲器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進(jìn)行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲器地址單元的內(nèi)容送A假若指令執(zhí)行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數(shù)地址就是54H+3F21H=3F75H。如果3F75H單元中的內(nèi)容是7FH,則執(zhí)行這條指令后,累加器A中的內(nèi)容就是7FH。 變址尋址的指令只有三條,分別如下:JMP @A+DPTRMOVC A,@A+DPTRMOVC A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC A,@A+DPTR和MOVC A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細(xì)說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們在學(xué)習(xí)特殊功能寄存器時已知道,程序計數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進(jìn)行賦值。我們再看指令MOVC A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應(yīng)可明白,MOVC A,@A+PC這條指令的尋址范圍其實就是只能在當(dāng)前指令下256個地址單元。所在,這在我們實際應(yīng)用中,可能就會有一個問題,如果我們需要查詢的數(shù)據(jù)表在256個地址單元之內(nèi),則可以用MOVC A,@A+PC這條指令進(jìn)行查表操作,如果超過了256個單元,則不能用這條指令進(jìn)行查表操作。剛才我們已說到,DPTR是一個數(shù)據(jù)指針,這個數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達(dá)到64K。這就是這兩條指令在實際應(yīng)用當(dāng)中要注意的問題。 變址尋址方式是MCS-51單片機(jī)所獨有的一種尋址方式。 位尋址 80C51單片機(jī)有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個位,直接加以置位為1或復(fù)位為0。 位尋址的范圍,也就是哪些部份可以進(jìn)行位尋址: 1、我們在第十二課學(xué)習(xí)51單片機(jī)的存儲器結(jié)構(gòu)時,我們已知道在單片機(jī)的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區(qū)共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學(xué)習(xí)中00H、01H。。。。7FH等等,所表示的都是一個字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現(xiàn)在正在研究的位尋址的一個重要問題。其實,區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個問題我們在后面的指令系統(tǒng)學(xué)習(xí)中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進(jìn)行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來進(jìn)行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H MOV C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示 MOV C,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5 MOV C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5 MOV C,PSW.5 這四種方法實現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題: 1. 說明下列指令中源操作數(shù)采用的尋址方式。 MOV R5,R7 答案:寄存器尋址方式 MOV A,55H 直接尋址方式 MOV A,#55H 立即尋址方式 JMP @A+DPTR 變址尋址方式 MOV 30H,C 位尋址方式 MOV A,@R0 間接尋址方式 MOVX A,@R0 間接尋址方式 改錯題 請判斷下列的MCS-51單片機(jī)指令的書寫格式是否有錯,若有,請說明錯誤原因。 MOV R0,@R3 答案:間址寄存器不能使用R2~R7。 MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。 ADD R0,R1 運(yùn)算指令中目的操作數(shù)必須為累加器A,不可為R0。 MUL AR0 乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用AB寄存器組合。
標(biāo)簽: 單片機(jī)指令 系統(tǒng)原理
上傳時間: 2013-11-11
上傳用戶:caozhizhi
單片機(jī)入門基礎(chǔ)知識大全免費下載 單片機(jī)第八課(尋址方式與指令系統(tǒng)) 通過前面的學(xué)習(xí),我們已經(jīng)了解了單片機(jī)內(nèi)部的結(jié)構(gòu),并且也已經(jīng)知道,要控制單片機(jī),讓它為我們干學(xué),要用指令,我們已學(xué)了幾條指令,但很零散,從現(xiàn)在開始,我們將要系統(tǒng)地學(xué)習(xí)8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計算機(jī)做事,就得給計算機(jī)以指令,并且我們已知,計算機(jī)很“笨”,只能懂得數(shù)字,如前面我們寫進(jìn)機(jī)器的75H,90H,00H等等,所以指令的第一種格式就是機(jī)器碼格式,也說是數(shù)字的形式。但這種形式實在是為難我們?nèi)肆耍y記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關(guān)系呢,我們不難理解,本質(zhì)上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計算機(jī)只懂機(jī)器碼格式,所以要將我們寫的匯編格式的指令轉(zhuǎn)換為機(jī)器碼格式,這種轉(zhuǎn)換有兩種方法:手工匯編和機(jī)器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不同,所以是一一對應(yīng)的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機(jī)軟件,用計算機(jī)軟件來替代手工查表,這就是機(jī)器匯編。 二、尋址 讓我們先來復(fù)習(xí)一下我們學(xué)過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數(shù)據(jù)送到相應(yīng)的位置中去,為什么要送數(shù)據(jù)呢?第一個因為送入的數(shù)可以讓燈全滅掉,第二個是為了要實現(xiàn)延時,從這里我們可以看出來,在用單片機(jī)的編程語言編程時,經(jīng)常要用到數(shù)據(jù)的傳遞,事實上數(shù)據(jù)傳遞是單片機(jī)編程時的一項重要工作,一共有28條指令(單片機(jī)共111條指令)。下面我們就從數(shù)據(jù)傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結(jié)論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規(guī)定做什么事情,后面還有一些參數(shù),分析一下,數(shù)據(jù)傳遞必須要有一個“源”也就是你要送什么數(shù),必須要有一個“目的”,也就是你這個數(shù)要送到什么地方去,顯然在上面那條指令中,要送的數(shù)(源)就是0FFH,而要送達(dá)的地方(目的地)就是P1這個寄存器。在數(shù)據(jù)傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數(shù)本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數(shù)本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0 ;(1) LCALL DELAY ;(2) CLR P1.0 ;(3) LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,#250 ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表1 MAIN: SETB P1.0 ;(1) MOV 30H,#255 LCALL DELAY ; CLR P1.0 ;(3) MOV 30H,#200 LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,30H ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表2 這樣一來,我每次調(diào)用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環(huán),這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調(diào)用則見表2中的主程,也就是先把一個數(shù)送入30H,在子程序中R7中的值并不固定,而是根據(jù)30H單元中傳過來的數(shù)確定。這樣就可以滿足要求。 從這里我們可以得出結(jié)論,在數(shù)據(jù)傳遞中要找到被傳遞的數(shù),很多時候,這個數(shù)并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數(shù),我們把尋找操作數(shù)所在單元的地址稱之為尋址。在這里我們直接使用數(shù)所在單元的地址找到了操作數(shù),所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數(shù)放在工作寄存器中,從工作寄存器中尋找數(shù)據(jù),則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數(shù)據(jù)送到累加器A中去。提一個問題:我們知道,工作寄存器就是內(nèi)存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區(qū)別了嗎?為什么要加以區(qū)分呢?的確,這兩條指令執(zhí)行的結(jié)果是完全相同的,都是將00H單元中的內(nèi)容送到A中去,但是執(zhí)行的過程不同,執(zhí)行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標(biāo)碼要兩個字節(jié)(E5H 00H),而第二條則只要一個字節(jié)(E8h)就可以了。 這么斤斤計較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節(jié)又能有多少? 不對,如果這條指令只執(zhí)行一次,也許無所謂,但一條指令如果執(zhí)行上1000次,就是1毫秒,如果要執(zhí)行1000000萬次,就是1S的誤差,這就很可觀了,單片機(jī)做的是實時控制的事,所以必須如此“斤斤計較”。字節(jié)數(shù)同樣如此。 再來提一個問題,現(xiàn)在我們已知,尋找操作數(shù)可以通過直接給的方式(立即尋址)和直接給出數(shù)所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數(shù),分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數(shù),就用MOV A,30H,那么下一個數(shù)呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數(shù),不是得20條指令才能寫完嗎?這里只有20個數(shù),如果要送200個或2000個數(shù),那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現(xiàn)這樣的狀況?是因為我們只會把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據(jù)這個寄存器單元中的數(shù)值決定該到哪個單元中取數(shù)據(jù),比如,當(dāng)前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發(fā)生變化,比如取完一個數(shù)后,將這個寄存器單元中的值加1,還是執(zhí)行同一條指令,可是取數(shù)的對象卻不一樣了,不是嗎。通過例子來說明吧。 MOV R7,#20 MOV R0,#30H LOOP:MOV A,@R0 INC R0 DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數(shù)20送到R7中,執(zhí)行完后R7中的值應(yīng)當(dāng)是20。第二句是將立即數(shù)30H送入R0工作寄存器中,所以執(zhí)行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內(nèi)容送入A中,此時,執(zhí)行這條指令的結(jié)果就相當(dāng)于MOV A,30H。第四句,沒學(xué)過,就是把R0中的值加1,因此執(zhí)行完后,R0中的值就是31H,第五句,學(xué)過,將R7中的值減1,看是否等于0,不等于0,則轉(zhuǎn)到標(biāo)號LOOP處繼續(xù)執(zhí)行,因此,執(zhí)行完這句后,將轉(zhuǎn)去執(zhí)行MOV A,@R0這句話,此時相當(dāng)于執(zhí)行了MOV A,31H(因為此時的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環(huán)20次為止,就實現(xiàn)了我們的要求:從30H單元開始將20個數(shù)據(jù)送入A中。 這也是一種尋找數(shù)據(jù)的方法,由于數(shù)據(jù)是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數(shù)據(jù)。 二、指令 數(shù)據(jù)傳遞類指令 1) 以累加器為目的操作數(shù)的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數(shù)data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內(nèi)存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執(zhí)行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數(shù)34H送入A中,執(zhí)行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 這組指令功能是把源地址單元中的內(nèi)容送入工作寄存器,源操作數(shù)不變。
標(biāo)簽: 單片機(jī) 免費下載 基礎(chǔ)知識
上傳時間: 2013-10-13
上傳用戶:3294322651
MCS-51系列單片機(jī)芯片結(jié)構(gòu):2.1 MCS—51系列單片機(jī)的結(jié)構(gòu)原理2.1.1 MCS-51單片機(jī)邏輯結(jié)構(gòu) MCS-51單片機(jī)的系統(tǒng)結(jié)構(gòu)框圖如圖2.1所示。 圖2.1 MCS-51單片機(jī)的系統(tǒng)結(jié)構(gòu)框圖由圖2.1可以看出,單片機(jī)內(nèi)部主要包含下列幾個部件:u 一個8位CPU;u 一個時鐘電路;u 4Kbyte程序存儲器;u 128byte數(shù)據(jù)存儲器;u 兩個16位定時/計數(shù)器;u 64Kbyte擴(kuò)展總線控制電路;u 四個8-bit并行I/O端口;u 一個可編程串行接口;五個中斷源,其中包括兩個優(yōu)先級嵌套中斷 1. CPU CPU即中央處理器的簡稱,是單片機(jī)的核心部件,它完成各種運(yùn)算和控制操作,CPU由運(yùn)算器和控制器兩部分電路組成。(1)運(yùn)算器電路 運(yùn)算器電路包括ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、狀態(tài)寄存器、暫存器1和暫存器2等部件,運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。 (2)控制器電路 控制器電路包括程序計數(shù)器PC、PC加1寄存器、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、堆棧指針SP、緩沖器以及定時與控制電路等。控制電路完成指揮控制工作,協(xié)調(diào)單片機(jī)各部分正常工作。
標(biāo)簽: MCS 51 單片機(jī) 芯片結(jié)構(gòu)
上傳時間: 2013-10-27
上傳用戶:tianyi223
單片機(jī)指令系統(tǒng) 3.1 MCS-51指令簡介 3.2 指令系統(tǒng) 3.1 MCS-51指令簡介 二、MCS-51系列單片機(jī)指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址 1、數(shù)據(jù)傳送指令位操 2、直接尋址 2、算術(shù)運(yùn)算指令 3、寄存器尋址 3、邏輯運(yùn)算指令 4、寄存器間接尋址指令 4、控制轉(zhuǎn)移類指令 5、相對尋址 5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址 MOV A, @R1 操作數(shù)是通過寄存器間接得到的。 4、立即尋址 MOV A, #40H 操作數(shù)在指令中直接給出。 5、基址寄存器加變址寄存器尋址 以DPTR或PC為基址寄存器,以A為變址寄存器, 以兩者相加形成的16位地址為操作數(shù)的地址。 MOVC A, @A+DPTR MOVC A, @A+PC 四、指令中常用符號說明 Rn——當(dāng)前寄存器區(qū)的8個工作寄存器R0~R7(n=0~7); Ri——當(dāng)前寄存器區(qū)可作地址寄存器的2個工作寄存器R0和R1(i=0,1); direct——8位內(nèi)部數(shù)據(jù)存儲器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(shù)(立即數(shù)); #datal6——表示16位常數(shù); add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號中單元的內(nèi)容 (( ))——表示間接尋址的內(nèi)容; 五、MCS-51指令簡介 1. 以累加器A為目的操作數(shù)的指令 2. 以Rn為目的操作數(shù)的指令 3. 以直接地址為目的操作數(shù)的指令 4. 以寄存器間接地址為目的操作數(shù)指令 應(yīng)用舉例1 8段數(shù)碼管顯示 應(yīng)用舉例2 3.2 指令系統(tǒng) 2、堆棧操作指令 3. 累加器A與外部數(shù)據(jù)傳輸指令 4. 查表指令 MOVC A, @A+PC 例子: 5. 字節(jié)交換指令 6. 半字節(jié)交換指令 二、算術(shù)操作類指令 PSW寄存器 2. 帶進(jìn)位加法指令 3. 加1指令 4. 十進(jìn)制調(diào)整指令 5. 帶借位減法指令(Subtraction) 6. 減1指令(Decrease) 7. 乘法指令(Multiplication) 8. 除法指令(Division) 三、邏輯運(yùn)算指令 1. 簡單邏輯操作指令 2. 循環(huán)指令 帶進(jìn)位左循環(huán)指令(Rotate Accumulator Left through Carry flag) 右循環(huán)指令(Rotate Accumulator Right) 帶進(jìn)位右循環(huán)指令(Rotate A Right with C) 3. 邏輯與指令 4. 邏輯或指令 5. 邏輯異或指令 四、控制轉(zhuǎn)移類指令 1. 跳轉(zhuǎn)指令 相對轉(zhuǎn)移指令 SJMP rel PC←(PC)+2 PC←(PC)+rel 程序中標(biāo)號與地址之間的關(guān)系 2. 條件轉(zhuǎn)移指令 3. 比較不相等轉(zhuǎn)移指令 4. 減 1 不為 0 轉(zhuǎn)移指令 5. 調(diào)用子程序指令 7. 中斷返回指令 五、位操作指令 1. 數(shù)據(jù)位傳送指令 2. 位變量邏輯指令 3. 條件轉(zhuǎn)移類指令
標(biāo)簽: 單片機(jī) 指令系統(tǒng)
上傳時間: 2013-10-27
上傳用戶:xuanjie
匯編指令查詢器:數(shù)據(jù)傳送指令 MOV 格式: MOV OPRD1,OPRD2 功能: 本指令將一個源操作數(shù)送到目的操作數(shù)中,即OPRD1<--OPRD2. 說明: 1. OPRD1 為目的操作數(shù),可以是寄存器、存儲器、累加器. OPRD2 為源操作數(shù),可以是寄存器、存儲器、累加器和立即數(shù). 2. MOV 指令以分為以下四種情況: <1> 寄存器與寄存器之間的數(shù)據(jù)傳送指令 <2> 立即數(shù)到通用寄存器數(shù)據(jù)傳送指令 <3> 寄存器與存儲器之間的數(shù)據(jù)傳送指令 <4> 立即數(shù)到存儲器的數(shù)據(jù)傳送 3. 本指令不影響狀態(tài)標(biāo)志位
上傳時間: 2013-11-13
上傳用戶:腳趾頭
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1