MCS51單片機原理及應用課件_第1頁
MCS51單片機原理及應用課件_第2頁
MCS51單片機原理及應用課件_第3頁
MCS51單片機原理及應用課件_第4頁
MCS51單片機原理及應用課件_第5頁
已閱讀5頁,還剩641頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及應用,考核方式:筆試+實驗+作業(yè),期末成績占 70%,期中成績占20%,實驗成 績占5%,平時作業(yè)成績占5%。,答疑時間:周三下午 16:0017:30,答疑地點:機械學院 508室,本課程教學安排,祝愛萍:機械學院 508室,第一章概述 第二章mcs-51單片機結構及原理 第三章 MCS-51單片機指令系統及編程舉例 第四章單片機定時功能及應用 第五章單片機的中斷系統 第六章單片機串行口及應用 第七章單片機系統擴展及顯示接口技術 第八章 D/A、A/D轉換器接口及應用 第九章 鍵盤接口技術,目 錄,第一章 概述,【學習目標】通過本章的學習,學生應該能 夠

2、:熟悉單片機的主要特點、 典型產品、應用領域,掌握數 制以的概念及不同數制間的轉 換方法,明確數在計算機中的 表示方法。,重點和難點內容:數制以及不同數制間的轉 換和數在計算機中的表示 方法。,解決方法:多練習。,課外指導:答疑。,教學效果檢測方法:批閱作業(yè)。,本章作業(yè):教材P14 習題與思考題 1,2,3,4,5,6,7,8,1定義: 單片機全稱為單片微型計算機(single-chip Microcomputer),它在一塊芯片上集成了 CPU、RAM、ROM、PROM,E2PROM) CTC和多個I/O口,此外,有的單片機如8096 單片機上還集成了ADC 和DAC轉換芯片。,本章主要內容

3、,一單片機的定義及特點, 測量與顯示:如各種智能儀表,用于提高測 量與顯示的自動化程度和準確 度。,3. 應用領域:主要應用于以下幾方面,2特點:單片機的體積小,可靠性高,價格便 宜,功耗低,它是目前應用最廣泛的 工業(yè)控制微機。,輔助設計和制造 :如加工中心,用于提高 加工的自動化程度和精度。,日常生活:如各種家電中,用于提高家電的 自動化程度,增強其功能。,科學計算:人造衛(wèi)星軌跡, 天氣預報等,數據處理 :企業(yè)管理、情報檢索等,其他方面:系統仿真 、智能模擬 、計算機 網絡與信息及高速公路管理等。,1946-1958: 第一代電子管計算機。磁鼓存儲 器,機器語言及匯編語言編程。 1958-1

4、964: 第二代晶體管計算機。磁芯作主 存儲器, 磁盤作外存儲器,開始 使用高級語言編程。,二、 單片機的發(fā)展概況,1964-1971: 第三代集成電路計算機。使用半 導體存儲器,出現多終端計算機 和計算機網絡。 1971- : 第四代大規(guī)模集成電路計算機。 出現微型計算機、單片微型計算 機,外部設備多樣化。 1981- : 第五代人工智能計算機。模擬人 的智能和交流方式。,二、 單片機的發(fā)展概況,三、 計算機發(fā)展趨勢,微型化 便攜式、低功耗 巨型化 尖端科技領域的信息處理,滿足 超大容量、高速度的要求 智能化 模擬人類大腦思維和交流方式, 具有多種處理能力 系列化、標準化 便于各種計算機硬、

5、軟 件兼容和升級 多機系統 大型設備、生產流水線集中管理 (獨立控制、故障分散、資源共享),典型產品有8051,8751和8031。其三種 芯片的主要區(qū)別在于:ROM,EPROM和外接 EPROM。8051內部程序要由生產芯片的廠 家寫入,適用于低成本大批量生產;8751片 內程序可由用戶固化或清除,價格相對較貴, 適用于開發(fā)樣機;8031芯片必須外接ROM, 適用于較方便進行修改和更新程序記憶的場 合。,1. MCS-51系列簡介:看P18表2.1,四、 常用單片機系列介紹,2. 存儲器簡介:memory是單片機的主要組成 部分之一,主要用于存儲信 息,它的分類如下:,內存:包含有,RAM:

6、隨機存儲器,其中信息可讀可寫,斷 電丟失全部內容。,ROM:只讀存儲器,用戶不可更改其內容, 與EPROM同樣,斷電仍可保存信息。,外存:包含有,硬盤:可隨時讀寫并永久保存信息 但硬盤存儲 容量有限,隨身攜帶不方便。,EPROM:可擦除可編程的只讀ROM,用紫外 線可擦除其內容,用專用設備用戶 可固化信息。,軟盤:軟盤可隨時讀寫并永久保存信息,其 容量小但可無限擴充,隨身攜帶方便。,光盤:可隨時讀取信息,容量大,隨身攜帶 方便,也可對其進行寫操作并永久保 存信息,但必須配備專門的刻盤機。,五、數制及其間的轉換,1數制:常用的計數方法,有二( Binary )、 十( Decimal )、十六(

7、Hexadecimal)、 八(Q,Octal)、十二及六十進制等。,優(yōu)盤:特點同軟盤,但容量較軟盤大很多, 比硬盤小。,位權:某個數位的值是由這一位的數碼值乘以 處在這一位的固定常數決定的,通常把 這一固定常數稱之為位權值,簡稱位 權。簡而言之權是以基為底的冪。,例:1010.11B的基為2, 各位的權分別為:23、22、21、20。2-1和2-2,基數:指數制所使用數碼的個數。 如: B(2),Q(8),D(10)、H(16)。,例1FFFFH =15163+15162+15161+15160 =65535 例210111100101B =27+25+24+23+22+2-1+2-3=18

8、8625,二,八,十六進制轉換為十進制時,原則 為:按位權展開相加。,2數制之間相互轉換的原則:,十進制轉換為二,八,十六進制時,原則 為: 整數部分除基取余,先出低位, 小數部分乘基取整,先出高位。,例1 432D=1000101B (取四位小數,并非精確轉換) 例2 25473D=37656Q=FEBAH, 機器數:數字在機器中的表示方式稱為機 器數,即將符號(+,)也作為 數字的一部分。具體地說,在存 儲數據時,最高一位用來表示數 字的符號,當數字為正時,最高 一位的值為0,當數字為負時,最 高一位的值為1。機器數有原碼、 反碼和補碼三種形式。,3數在計算機中的表示方法,真值:一個數的實

9、際大小稱為這個數的真 值。, 原碼:正數的符號位用0表示,負數的符號 位用1表示,符號位之后是數字的真 值,此法表示的數字稱為數的原碼。 正數的原碼與其真值相同。,例: 對于8位數據: +35H表示為 +35H原碼=00110101 , -35H表示為 -35H原碼 =10110101 , +0原碼=00000000 , -0原碼=10000000, 反碼:正數的反碼與其原碼相同,負數 的反碼則為其對應的原碼按位取 反(符號位除外)。,例: 對于8位數據: +35H表示為 +35H反碼=00110101 , -35H表示為 -35H反碼=11001010 , +0反碼=00000000 , -

10、0反碼=11111111, 補碼:正數的補碼與其原碼相同,負數 的補碼則為其對應的原碼按位取 反(符號位除外)加1。, 注意: 計算機中所有的符號數都是默認用補碼 表示的。,例:對于8位數據: +35H表示為: +35補碼=00110101 , -35H表示為: -35補碼=11001011, +0補碼=-0補碼=00000000。, 計算機中所能表示的符號數的范圍為: -2n-12n-11, n為數據的位數。,當n=8時,所能表示的符號數的范圍為: -128127, 即 -2727-1 當n=16時,所能表示的符號數的范圍為: -3276832767 即 -215215-1 。, 已知一個數

11、的補碼時,其真值為: 正數真值=正數補碼 負數真值=負數補碼取反(符號位除外)1,例:x=01001101, 則x真值=01001101=77D x=10110101, 則x真值=11001010+1=11001011=75D,例:Y=11710=117補+10補 =10001011+1110110 =110000001=-127, 利用補碼可將減法轉換為加法以簡化硬 件電路,具體原理為:將減數與減號一 起變?yōu)檠a碼后再與被減數的補碼相加, 其和(如有進位則舍棄進位)就是兩數 之差。(了解),4ASCII碼:(又稱字符編碼), 英文字母AZ及az; 數字字符09: 專用字符:+,/,空格和各種標

12、 點符號; 各種非打印字符如:CR(回車),LF (換行), BELL(響鈴)等。,計算機處理的信息并不全是數字,有時還 要處理字符和字符串,常見的字符有:,5 BCD碼(Binary Coded Decimal) 用四位二進制代碼表示一位十進制正整數 的編碼稱為BCD碼。,以上這些字符在計算機中都用固定的二進 制數表示,國際上目前采用最常用的美國標準 信息交換碼也稱ASCII碼來表示。要求大家記 住前兩類字符的ASCII碼值。(P10表1.3,列高行低),例:129=(0001 0010 1001)BCD,第二章 mcs-51單片機結構及原理,【學習目標】通過本章的學習,學生應該能 夠:掌握

13、有關單片機的基本結 構及其功能,尤其是mcs-51系 列單片機CPU和存儲器的結構 及功能,這一部分是全新的概 念,需要認真掌握。,重點和難點內容: mcs-51系列單片 機CPU和 存儲器的結構及功能。,解決方法:細講、慢講。,課外指導:答疑、質疑。,教學效果檢測方法:課堂提問、批閱作業(yè)。,本章作業(yè):教材P36 習題與思考題 1,3,5,6,7,本章主要內容,2.1 mcs-51單片機結構 2.2 mcs-51的存儲器結構 2.3 單片機的時序,第一節(jié) mcs-51單片機結構,一、mcs-51單片機內部結構簡介 二8051 CPU的組成及其功能 三計算機指令執(zhí)行過程 四. MCS-51引腳及

14、功能,單片機內部最核心的部分是CPU,CPU 的主要功能是產生各種控制信號,控制存儲器 及輸入/輸出端口的數據傳送,實現數據的算 術運算、邏輯運算以及位操作處理等功能。,8051 CPU 的組成及其功能,PC程序計數器:16位專用RS,用于存放下 一條將要執(zhí)行的指令地址, 其內容有自加功能,它可 保證程序按一定順序執(zhí)行。,8051 CPU由控制器與運算器兩部分組成 1控制器:,指令譯碼器:將指令RS的指令轉換成電信 號,再經邏輯控制電路產生各 種控制信號。(譯碼前指令為 0、1代碼,譯碼后指令為脈沖 信號),指令Register(RS):8位,用于暫存待執(zhí)行的 指令,等待譯碼。,8051 CP

15、U 的組成及其功能,數據指針DPTR:16位專用地址指針RS, 主要用于存放16位地址, 作間址RS使用,也可拆 成兩個8位RS,DPH和 DPL,它們片內RAM中 占據的地址分為83H和 82H。,8051 CPU 的組成及其功能,定時控制與條件轉移邏輯電路:不介紹。,2運算器:,累加器ACC:8位專用RS,用于存放操作數 或中間結果,是CPU中使用最 頻繁的一個RS,也是20個SFR 中的一個。,8051 CPU 的組成及其功能,程序狀態(tài)字RS(PSW):8位專用RS,用于 存放程序運行中的各種狀態(tài)信 息,它可以進行位操作,PSW 的字節(jié)地址為D0H,位地址為 D0D7H。各位的含義如下:

16、, 算邏運算部件:此部件實現算數運算與邏輯 運算的功能,其運算結果的 狀態(tài)送PSW中。,8051 CPU 的組成及其功能, CY(PSW.7):進位標志,表示在進行無 符號加減時,最高位有無向更高位進 (借)位,當有進位CY=1,無進位則 CY=0。,程序狀態(tài)字RS(PSW)各位的含義,AC(PSW.6):半進位標志,表示在進行 無符號加減時,D3位有無向D4位進 (借)位,當有AC=1,無則AC=0,主 要用于BCD 碼的判斷位。,程序狀態(tài)字RS(PSW)各位的含義, RS1,RS0(PSW.4,PSW.3):工作RS組 選擇標志,用于選擇內部RAM 中4 個RS中的一組它們的關系 如下:,

17、 F0(PSW.5):用戶標志位,由用戶通過程 序設置1或0,表示程序處于某種狀態(tài), 為后續(xù)程序執(zhí)行提供條件。,程序狀態(tài)字RS(PSW), OV(PSW.2):溢出標志,當進行符號數 運算時可表示是否有溢出,則OV=1, 無則OV=0,溢出的邏輯表達式為 OV=C6YC7Y。, F1(PSW.1):保留位,無定義。,程序狀態(tài)字RS(PSW)各位的含義, P(PSW.0):奇偶標志位,表示累加器A 中含“1”個數的奇偶性,當A中有奇數個1,, B寄存器:用于乘除法操作,8位RS,是20 個SFR中之一,B用來存放第二操 作數,即用于存放乘法的高位字 節(jié)或除法的余數部分。, 暫存器:暫存數據信息。

18、,P=1,否則P=0。 注意:P的值與A內容的奇偶無關。,程序狀態(tài)字RS(PSW)各位的含義,三、計算機指令執(zhí)行過程,MCS-51采用40引腳雙列直插式封裝(DIP) 形式,(看P28圖2-6)。 主電源引腳:Vss(地)和Vcc(+5v)。 外接晶振引腳:有兩個,四 MCS-51引腳及功能, XTAL2:片內晶振器反向放大器輸出端,當 使用外部晶振器,作為晶振信號的輸入端。, XTAL1:片內晶振器反向放大器輸入端, 當使用外部晶振器,此端接地。,四 MCS-51引腳及功能,3控制信號引腳:, RST/VPD:系統復位/備用電源輸入引腳, 輸入信號,有兩個作用:,RST端維持兩個機器周期以上

19、的高電平時 將使單片機復位。復位后CPU各寄存器的 特點為:,A)四個I/O口P0P3鎖存器均被初始化 為0FFH; B)堆棧指針寄存器SP=07H; C)串行口數據緩沖器寄存器SBUF的內容 不確定;其它各專用RS 均被寫成00H; D)內部RAM不受復位影響,上電后RAM 內容為隨機。,MCS-51引腳及功能,MCS-51引腳及功能, 當電源電壓下降時,此引腳可為備用電源 輸入線,為片內RAM 提供備用電源。, 當CPU訪問外部memory初時,產生正脈沖 ALE信號輸出,在其后沿將P0口輸出的低 8位地址鎖存于外部地址鎖存器中;,MCS-51引腳及功能,當片內有EPROM時,可作為編程脈

20、沖輸入 端使用。, 訪問外部memory的過程中,ALE端仍以 不變的頻率周期性的輸出正脈沖信號,且 fALE=1/6fosc ,所以可用作對外輸出的時鐘 信號和定時作用;,MCS-51引腳及功能,MCS-51引腳及功能, 對于片內有EPROM,編程時,此引腳接 21v編程電源VPP ;,MCS-51引腳及功能,準雙向端口工作特點:只有使端口鎖存 器事先置“1”,才能使對應口的I/O引腳作為 輸入線使用,而CPU執(zhí)行輸出操作時,不管 端口的狀態(tài)如何都能直接輸出信號。,4輸入輸出引腳:P0、P1、P2、P3均為準雙 向信息傳輸端口。,注意:P0P3除作為一般的I/O線使 用外,還 兼有以下功能:

21、,MCS-51引腳及功能, P1口:在EPROM編程驗證程序時輸入低8 位地址。, P0口:當CPU訪問外部memory時,P0口 可分時作為低8位地址線和8位雙 向數據線用。,MCS-51引腳及功能, P3口:第二功能見P27表27。復位后P3口 的第二功能可直接使用,但復位前必 須先置口內鎖存器FFH才能用。,P2口;當CPU訪問外部memory時,P2口 可作為外部高8位地址的輸出線。,第二節(jié) MCS-51的存儲器結構,MCS-51單片機物理上有4個存儲空間: 片內程序存儲器ROM(4KB) 片外程序存儲器EPROM(64KB) 片內數據存儲器RAM(256B) 片外數據存儲器RAM(6

22、4KB),這些存儲器結構的物理特點是:程序存 儲器和數據存儲器空間是相互獨立的,片內 數據存儲器和片外數據存儲器空間在也是相 互獨立的。,從邏輯上MCS-51單片機又可分為3個存儲空間: 片內、外統一編址的程序存儲器(共68KB) 片內數據存儲器(共256B) 片外數據存儲器(共64KB) 。,MCS-51存儲器配置,0FFFH,256B,4KB,64KB,64KB,68KB, CPU通過P0,P2口送出要訪問存儲單元的 地址A0A15 。 CPU發(fā)出ALE信號把P0口地址信號A0A7 鎖入鎖存器。 存儲器按A0A15地址進行譯碼,找到要訪 問的單元。,如下頁圖,MCS-51訪問外部存儲器,粗

23、 略的講可分為以下四步:,一、 MCS-51單片機片內外存儲器系統簡介,二、MCS-51各存儲器具體說明:, 外部程序存儲器用于存放程序、程序執(zhí)行 時必要的常數和表格。, 外部程序存儲器EPROM: MCS-51可以擴展64K字節(jié)的EPROM,其中:, 外部程序存儲器受PC管理,PC的內容始 終指向下一條將要執(zhí)行的指令所在的地 址,PC具有自動加1的功能,保證程序按 規(guī)定順序執(zhí)行。,二、MCS-51各存儲器具體說明:, 外部程序存儲器的容量為64K字節(jié),地址范 圍為:0000H0FFFFH,且有, 內部程序存儲器EPROM:, 外部數據存儲器主要存放運行程序的過 程中所需的數據,中間結果和最終

24、結果。, 外部數據存儲器受data point(數據指針) 寄存器DPTR和工作寄存器R0及R1的管 理。, 外部數據存儲器RAM:, 外部數據存儲器在軟件上由MOVX類指令 訪問。, 外部數據存儲器的最大容量為64K字節(jié), 地址范圍為: 0000H0FFFFH。, 外部數據存儲器RAM:,MCS-51芯片內部有128個字節(jié)(BYTE) 的內部數據存儲器RAM(稱片內RAM), 地址為00H7FH,有128B的特殊功能寄存 器(SFR)區(qū),地址為80H0FFH,也稱高 地址區(qū),共256個字節(jié)的存儲空間。從使用 性能上可分為以下幾部分:,4. MCS-51片內數據存儲器,SFR,FFH, 位尋址

25、空間:內部RAM中,地址20H2FH 16個字節(jié)單元(共128個位)具有位尋址的 功能,即CPU可對這16個字節(jié)中的每一位, 工作寄存器R:內部RAM中00H1FH單元 (共32B)為通用工作Register區(qū),分為4組, 每組8個字節(jié),均可用作R0R7,用戶可根 據PSW中的RS1和RS0的值選擇相應的工作 寄存器組。,MCS-51內部RAM,這128個位的地址規(guī)定為00H7FH(RAM的 低區(qū)地址也是00H7FH),在使用中由軟件 指令加以區(qū)分。如:,MCS-51內部RAM,單獨進行操作,所以 20H2FH區(qū)域是MCS-51 單片機布爾處理機的一個存儲空間,其中:,20H2FH對應此存儲區(qū)

26、中16個字節(jié)的每一 個字節(jié)的地址。,因為每個字節(jié)有8位,所以此存儲區(qū)共有 168=128位供用戶單獨操作。,MCS-51內部RAM,且有: 對應的字節(jié)地址=20H+位地址/8, 其中位地址/8的余數為該位在該字 節(jié)中所處的具體位置)。,MOV 20H, A (字節(jié)操作) ;20H單元 A的內容 MOV 20H, C (位操作) ;布爾處理機存儲空間第20H位(即24H單元 中的第0位)中 PSW中進位位CY內容 。,例:位地址7AH對應的字節(jié)地址的計算方法是: 7AH/8,商為F,余數為2,表示該位處于片 內RAM 2FH(20H+F)字節(jié)的第二位。, 位地址=(字節(jié)地址-20H)8+N; 其

27、中:N=07,為該位在此字節(jié)中的位置, 例:2EH中的第6位對應的位地址 =(2EH-20H)8+6=76H。, 30H7FH空間:用戶RAM區(qū),共80個字 節(jié),此部分空間可以作為buffer、堆棧區(qū) 等存儲單元用,但不能作為工作寄存器用, 不能進行位尋址。, 對于工作Register區(qū)(00H1FH)單元, 沒有被選中的工作Register單元與30H 7FH單元具有同樣功能。, MCS-51特殊功能Register(SFR):, 在80H0FFH這128個字節(jié)中除去SFR占用 的21個字節(jié)外其余字節(jié)均無定義,注意訪 問無定義的單元得到的是一個隨即數。, SFR的分布:MCS-51單片機除P

28、C外共有20 個SFR,占21個字節(jié)(因為DPTR占兩個字 節(jié)),它們分布在內部RAM的80H0FFH。,MCS-51特殊功能Register(SFR), 位尋址空間:在SFR中凡是字節(jié)地址能 被8整除的SFR均有位尋址功能(即末位 地址為8或0的SFR有位尋址功能),共 11個SFR有85位可進行位尋址。, SFR與RAM(007FH)的區(qū)別:SFR作為 源操作數時只能采用直接尋址,寄存器間接 尋址對其無效,但對低128B的RAM區(qū)有效。, SP:堆棧指針RS,是個8位SFR,在RAM 中的地址值為81H,其內容用于指示堆 棧棧頂(已存有數據的堆棧存儲單元) 的地址值。每當有數據進棧時SP值

29、自 動加1,出棧時SP值自動減1,當系統 復位后,SP=07H,即堆棧實際上是 由08H單元開始。, 幾個常用SFR的基本功能, 串行數據緩沖器SBUF:是個8位的SFR, 地址為99H,用于存放串行通訊時待發(fā)送 或已接受到的數據,它由兩個獨立的寄存 器(Rbuf和Tbuf)組成,但它們共用一 個地址值),復位后SBUF的內容不確定。,堆棧:是個具有先入后出特點的一片存儲區(qū), 堆棧的真正工作區(qū)一般選在片內RAM 的30H7FH內。, 幾個常用SFR的基本功能,定時器/計數器T0/T1:8051系列單片機有 兩個16位的定時器 /計數器 T0和T1,它們 分別由TL0,TH0和TL1,TH1兩個

30、 8位的 獨立的SFR組成,分布在片內RAM的地址 為8AH8DH。,注意:T0與T1在使用時不能作為2個16位的 RS來對待。,第三節(jié) 單片機的時序,一、MCS-51單片機的復位方法及復位 后內部各SFR狀態(tài),復位后內部各SFR的狀態(tài):看P25表2.5。,一條指令可分解為若干個基本的微操作, 而這些操作所對應的脈沖信號在時間上有嚴格 的先后次序,這種次序就稱為計算機的時序。 要求掌握以下幾個概念:,二、 CPU的時序,振蕩周期T振:也稱時鐘周期,指為單片機提供 時鐘信號的振蕩源的周期,當晶 振頻率為12MHz 時T振=1/12us 。,CPU的時序,機器周期T機:指CPU完成某些基本操作的所

31、 需要的時間,1個機器周期包含 6個狀態(tài)周期。 T機=6T狀=12T振=1us 。,2.狀態(tài)周期T狀:也稱S周期,由兩個振蕩周期組 成一個狀態(tài)周期。如上例中: T狀=Ts=21/12=1/6us。,CPU的時序, 指令周期T指:指令周期是指執(zhí)行一條指令 所需要的時間,一般情況下, T指=(14)T機 ,MCS51 系列單片機執(zhí)行一條最長的 指令(如乘、除法指令)需要 4個機器周期,即4 us時間。,第二章補充練習,MCS-51單片機內256B的數據存儲器可分為 哪幾個區(qū)?分別作什么用? 開機復位后,CPU使用的是哪組工作寄存 器?它們的地址是什么?CPU如何確定和 改變當前工作寄存器組? MC

32、S-51單片機的程序存儲器和數據存儲器共 處同一地址空間為什么不會發(fā)生總線沖突? 位地址7CH與字節(jié)地址7CH如何區(qū)別?位地 址7CH具體在片內RAM中什么位置?,第三章 MCS-51單片機 指令系統及編程舉例,【學習目標】通過本章的學習,學生應該能 夠:熟練地掌握符號指令及尋址方式,掌 握常用偽指令的使用方法以及匯編語言指 令的完整格式,會讀常見典型程序,學會 編寫基本的匯編語言程序。,重點和難點內容:MCS-51尋址方式 、指令 系統及匯編語言程序的編 寫方法。,解決方法:詳細講解,多舉實例,不斷重復 要點,增加練習。,課外指導:答疑。,教學效果檢測方法:質疑,批閱作業(yè)并結合 期中考試。,

33、指令:是控制計算機進行各種操作的運算代 碼形式的命令(MCS-51有42種助記 符33個指令功能共111條指令)。,指令系統:計算機所能識別執(zhí)行的全部指令的 集合稱作這種計算機的指令系統。 各種計算機的指令系統各不相同。,本章常用術語簡介:,機器碼:計算機所能辨認的命令是二進制代 碼,又稱操作碼或指令代碼稱。一 種計算機有幾十種甚至幾百中指令, 如果都用二進制代碼,記憶、書寫, 編程都很不方便,且易出錯。,程序:是人們?yōu)榱送瓿赡持蓄A定的任務,將 一系列指令、數據,地址按一定順序 排列而得到的一組指令。,匯編語言源程序:用助記符(操作碼)、符號 地址和標識符等書寫的程序 稱之為匯編語言源程序。,

34、助記符:為解決上述問題,制造廠家對指令 系統中的每一條指令規(guī)定了特定的 英文縮寫符號稱為助記符。,MOV A,R0;AR0內容,MOV稱指令助記符 對應的機器碼為:11111000,匯編:匯編語言源程序在機器執(zhí)行前必須先 轉換為相應的機器碼方可被機器識別 執(zhí)行,這個過程稱為翻譯(匯編)。 翻譯匯編語言源程序的方法有兩種: 人工翻譯和匯編軟件自動翻譯。,本章第一次作業(yè): 教材P55 習題與思考題 2,4,7 ,8(4),10,補充作業(yè): 請用位操作指令編寫實現下面邏輯表達式的程序。 PSW.5=P1.3Acc.2+B.5P1.1,3.1 指令格式簡介 3.2 MCS-51的尋址方式 3.3 指令

35、系統 3.4 偽指令 3.5匯編程序設計及應用舉例,本章主要內容,第一節(jié) 指令格式簡介,匯編語言的標準格式為: 標號: 指令助記符 操作數1,操作數2,操作數3 ;注釋, 標號:是用戶定義的符號,它代表該條指令 的符號地址,標號也稱標識符。,標號組成:以英文字母開始,由18個字符 (字母、數字和下劃線“-”)組成, 以“:”結尾。, 操作碼助記符:是匯編語言中每一行不可缺 少的部分,它規(guī)定了指令的 操作功能,操作碼助記符是 由25個字母組成的字符串, 也是機器的保留字,操作碼 與操作數之間要用若干空格 分開。,注意:標號不能使用機器的保留字。 一個程序中不允許重復定義標號。, 操作數:可以是具

36、體的數字,也可以是符號 或RS名,操作數可分為源操作數 SRC(source)和目的操作數DST (destination),二者用逗號分開, 有些指令無操作數。, 帶 的內容可省。, 注釋:注釋必須以“;”開頭,可有可無, 可由任何可打印的ASCII碼字符組 成,用于解釋說明程序。,第二節(jié) MCS-51的尋址方式,例:mov A, #data ; A將數字data 特點:, 指令操作碼后面的一個字節(jié)就是操 作數本身,立即數是放在程序存儲 器中的一個常數。,1. 立即尋址:,所要找的操作數是一二進制數或十進制 數,出現在指令中,用“#”作前綴。, #為立即數的前綴符號,data可為 16位,也

37、可為8位。, MCS-51系列只有一條指令,其立即數為 16位,這就是: MOV DPTR,# data16 ; DPH data高8位 ; DPL data低8位,2. 直接尋址:,例:MOV A, 70H;ARAM 區(qū)70H單元的內容。 特點為:,指令中直接給出操作數的地址。, 指令操作碼后面的一個字節(jié)就是實際操作 數的地址(8位)。, 因為direct是8位二進制數,所以直接尋 址的范圍主要有以下三個地址空間:, 指令中的直接地址可用direct表示 。 例:PUSH direct;功能為將direct所指 ;示的片內RAM中單元 ;的內容堆棧中。,內部RAM及SFR中,可進行位尋址的位

38、地 址空間共213位(內部 RAM中有20H2FH 中有128個位,SFR中有85位)。, 內部RAM 00H7FH地址空間共128個字節(jié); 特殊功能R,即SFR (直接尋址是訪問 SFR的唯一尋址方式) ;,3. 寄存器尋址: 操作數存放在工作寄存器R0 R7中, 或寄存器A、B、DPTR和C中。 例:MOV A, Rn ; A (Rn),n=07 特點: Rn的內容就是操作數本身;, 尋址范圍是:被選中的工作RS組 中的8個work RS,R0R7及A,B, DPTR和進位標志CY(C)。, R中的內容不是操作數本身而 是其所在存儲單元的地址值, 即R0指示了操作數所在存儲單 元的地址值。

39、,4. 寄存器間接尋址:(間址尋址),指令中寄存器的內容作為操作數存 放的地址,在指令中間接尋址寄存器前 用“”表示前綴。,例:MOV A, R0 ;A(R0) ;將R0所指向存儲單元的內容A 中 特點:, 可用作間址RS的register有work RS (R0 , R1)、數據指針DPTR。,例如: “一本書放在甲抽屜中,上了鎖; 其開鎖的鑰匙放在乙抽屜中,乙 抽屜也上了鎖。問如何才能取到 那本書?” 答:這就是一個間接尋址的問題,要經 過兩次尋址才能找到那本書。而寄 存器間接尋址也是同樣。, 間址尋址的范圍: R0、R1、SP作為間址RS可以訪問內部 RAM的128個字節(jié)。, DPTR作

40、為間址RS可訪問外部RAM全部 的64KB空間。,R0、R1作為間址RS可以訪問外部數據存儲 器RAM頁內256個字節(jié)(可用P2口選中頁 面,64KB的RAM可分為256個頁面)。, 間址尋址方式有: ADD A,Ri ;i=0或1 MOV Ri ,direct ;i=0或1 MOVX A , DPTR,又稱變址尋址,有兩種方式: MOVC A, A+PC ;A(A+PC) MOVC A, A+DPTR ;A(A+DPTR) 特點:,5.基址寄存器加變址RS間接尋址:,操作數地址 = 變地址 + 基地址 基地址寄存器 DPTR 或 PC 變址寄存器 A, 是MCS-51單片機特有的一種尋址方

41、式,它以地址指針DPTR或程序計數 器PC(當前值)為基地址R,以累 加器A作為變址R,這二者內容之和 才是實際操作數地址。, A是無符號8位數(00HFFH)。 尋址的范圍是68K字節(jié)的程序存儲 器EPROM。,該尋址方式常用于訪問程序存儲器 和查表。兩條指令的區(qū)別為: 前者查表的范圍是相對PC當前值 以后的255字節(jié)地址空間,而后者查表 范圍可達整個程序存儲器64K字節(jié)的地 址空間。,6 相對尋址:,把指令中給定的地址偏移量與下一 條將要執(zhí)行的指令所在單元地址(PC內 容)相加,得到真正有效的操作數所存 放的地址值。,例:JC rel;若PSW中CY=1,則轉移至 PC=PC當前值 +re

42、l處,若PSW 中CY=0,PC不變。 特點:, 以程序計數器PC當前值內容為基 地址,加上指令中給定的偏移量 作為操作數的存儲地址。,位移量rel為帶符號的8位二進制數,必須 以補碼形式出現,所以rel的范圍為+127 -128,即該種尋址方式的尋址范圍為:以 當前PC內容為起點向下可偏移128字節(jié), 向上可轉移127個字節(jié)。,7. 位尋址: 專門用于位操作指令,可對MCS- 51中213個位進行運算和傳送的操作, 且本尋址方式只能使用專用累加器C。,例:MOVC,20H,第三節(jié) 指令系統及應用舉例,MCS-51單片機共有111條指令,用42 個助記符表示了33種指令功能,同一種指 令所對應

43、的操作碼可多達8種,指令按其 功能可分為5大類:數據傳送類,算術運 算類,邏輯運算類,控制轉移類,位操 作指令。,指令中操作數的描述符號: Rn 工作寄存器R0 R7 Ri 間接尋址寄存器R0、R1 Direct 直接地址,包括內部128B RAM單元地址、 21個SFR地址。 #data 8位常數 #data 16 16位常數 addr 16 16位目的地址 addr 11 11位目的地址 rel 8位帶符號的偏移地址 DPTR 16位外部數據指針寄存器 bit 可直接位尋址的位, direct可表示片內RAM 00H7FH(128B) 的內存空間和SFR的地址,但不包括A、 DPTR、Rn

44、寄存器。, 除以direct為DST外,其它指令都不影響 PSW中除P以外的其它位,以A為DST的指 令會影響PSW中的P位。,一、數據傳送類指令: 分為五部分共29條,看P41表3.1。特點如下:,訪問ROM和片外RAM的指令所使用的寄存器 只能是專用寄存器A。 通常SRC可以是:A,Rn,direct, Ri 和 #data 5種,而DST只能有4種(不能 是#data)。 訪問SFR的唯一尋址方式是直接尋址,SFR 的名稱代表直接地址(A寄存器除外) 。,數據傳送類指令總結,注意:以下指令均為非法指令。 MOV Rn,Rn MOV Ri, Ri MOV Rn, Ri MOV #data,

45、 A MOVX 30H,DPTR MOVC B,A+DPTR,哇!好容易出錯啊!,例1 設內部RAM 30H單元內容為52H,給出 以下程序執(zhí)行后(R0)=?(A)? (30H)?及30H在不同指令中的作用。,MOV A, #30H MOV A, 30H MOV R0,#30H MOV A, R0 MOV 30H, #30H,;A30H ;A (30H),即(A)=52H ;R030H ;A(R0),即(A)=52H ;(30H)30H,解: (R0)=30H, (A)=52H, (30H)=30H 其中: 第一,三,五句中#30H為立即數, 第二,五條指令中30H為直接地址, 第四條指令R0

46、中的30H為隱含的間接地址。,例2.已知P1口內容為0AAH,給出下列程序執(zhí) 行的結果及相應的機器碼(P214表A.1)。, , , , , ,,;78 30H ;85 10 90H ;E5 10H ;F6H ; 86 40H,例3. 設片內RAM30H單元內容為40H,40H 單元中的內容為10H,P1口上的內容為 0CAH,給出執(zhí)行以下程序的結果。,, , , , , ,,;() ;()() ;() ;()() ;(40H)(P1) ;()(),例4.設片外(), (0),分析下面程序 執(zhí)行的結果。, , , , ,,;() ;() ;() ;(),, , , , ,,;() ;(H) ;

47、 ()=44H ;()(2030H) ; ;() ;(),例5設堆棧指針(SP)=11H,(PSW)=00H, 給出下面程序執(zhí)行的結果。,MOV 20H,#53H PUSH 20H POP PSW,;(20H)53H ; (SP)=(SP)+1,(SP)=12H ; 53H (SP)(12H) ;PSW(SP)=53H, ;(SP)=(SP)-1 ,(SP)=11H,例3、試編寫一程序段,實現將外RAM 0FAH單元中的內容傳送到外RAM 04FFH單元中。,解: MOV P2,#00H MOV DPTR,#04FFH MOV R0,#0FAH MOVX A,R0 MOVX DPTR, A,小

48、結: 數據傳送類指令有幾種類型? 哪些影響哪個標志位?,二、算術運算類指令:(看P45表3.2),此類指令具有加,減,乘,除指令,它 們一般對PSW的CY、AC、OV和P各位均有影 響,對其余四位不影響,但INC與DEC指令不 影響PSW的內容。,具體特點如下:, 加減法指令的DST只能是A,SRC可為 其它四種方式,減法指令只有帶進位減 助記符。,除法中,OV=1表示除數為0,A、B中的內 容均不定,其它情況OV=0。, 乘法中,OV=1表示乘積大于255,OV=0 表示乘積小于255。, 加1減1指令不影響PSW除P位以外的其 它位 。 乘、除法中CY=0。,程序中DA A指令必須緊跟在加

49、法指令之后。,再判斷當PSW中的CY=1或A寄存器 中高4位值大于9,則對A寄存器中高 4位內容進行加6處理;,先判斷當PSW中的AC=1或A寄存器 中低4位值大于9,則對A寄存器中低 4位內容進行加6處理;,十進制加法調整指令DA A的調整原理為, 在操作數為十進制時,加法指令執(zhí)行后:,類型,助記符,功能,對PSW的影響,字節(jié)數,振蕩周期,算術運算類指令,例1: 給出以下程序執(zhí)行結果及對程序狀態(tài) 字PSW的影響。,;(30H)=43H ;(A)=7AH ;(R0)=30H ;(A)=(30H)+7AH =0BDH,MOV 30H,#43H MOV A,#7AH MOV R0,#30H ADD

50、 A,R0,上述結果對于無符號數而言為正確,但 對有符號數而言不正確。(因為2個正數相 加得到一個負數,所以一定是發(fā)生了溢出, 結果不正確。),執(zhí)行程序以后,據以上結果知PSW中:,CY=D7CY=0, AC=D3CY=0,奇偶位P=0, OV=D7CYD6CY=01=1,MOV R0,#7EH MOV 7EH,#0FFH MOV 7FH,#38H MOV DPL,#0FEH MOV DPH,#10H INC R0 INC R0 INC R0 INC DPTR INC DPTR,;(R0)=7EH ;(7EH)=0FFH ;(7FH)=38H ;(DPL)=0FEH ;(DPH)=10H ;(

51、7EH)+1=0FFH+1=00H(7EH) ;(R0)=7FH ;(7FH)+1=38H+1=39H(7FH) ;(DPTR)=10FEH+1=10FFH ;(DPTR)=10FFH+1=1100H,例2 分析執(zhí)行以下程序段的結果。,MOV A,#0C4H SUBB A,#55H,例3設進位位C=1,給出執(zhí)行以下程序片斷后 A寄存器的結果及對PSW的影響。,;(A)=0C4H ;A(A)- 55H-(C),以上結果對于無符號數而言為正確, (OV)=1無意義,對于符號數則(OV)=1 表示結果為錯誤,負數減正數結果應為負數, 而6EH為正數,原因是因為符號數C4H真值 為-3CH,所以C4H

52、-55H-1=(-3CH)-56H =-92H,而-92H=-146已超出8位二進制數所 能表示的最大負數。(-128)。,其中:(A)=6EH,(CY)=D7CY=0, (AC)=D3CY=1,(P)=1 (OV)= D7CYD6CY=01=1,,例4設累加器A中內容為89的BCD碼,即 10001001,R0中的內容為28的BCD碼, 即00101000,求執(zhí)行下面程序后,A中 結果及正確的BCD碼值應為多少?,ADD A,R0 DA A,;(A)+(R0)A,即(A)=B1H,即非 十進制正確結果,也非十六進制正確結果 ;(A)=17H , 這里,因為(C)=1,所以 正確答案為117。

53、,因為在執(zhí)行DA A指令時,首先由于 (AC)=D3CY=1,所以對A 中低4位內容加 6調節(jié),使A的低4位變?yōu)?111,然后又由于 A中高4位內容大于9,所以對A中高4位內容 再加6進行調整,使其變?yōu)?001,同時使進 位位(CY)=1,則最終得到結果為117。,以累加器A作為DST,SRC可以是#data, Rn,direct(內部RAM低128B或SFR)和 Ri四種方式。,三、 邏輯運算類指令:看P49表3.4。,邏輯運算類指令主要用于邏輯運算中,主 要可以分為兩大類:,2. 以direct為DST,而以A或 #data為SRC的 操作指令。,三、 邏輯運算類指令:看P45表3.4。,

54、 邏輯與(ANL):按位相與,特點是清0或 屏蔽,操作數和0相與結果為0,和1相與原 內容保持不變。,3單操作數的指令,操作數必須放在A中。 4各類指令的特點為:,特點:此類指令除RLC和RRC指令外,均不 影響PSW中除P以外的其他位,而RLC 和RRC也只影響P與C位。,邏輯運算類指令, 邏輯異或指令(XRL)對操作數中的某 一位或某幾位進行取反(兩個操作數不 同出1,相同出0),具體方法為:操作 數和1相異或內容被取反,和0相異或原 內容保持不變??蠢?。, 邏輯或(ORL):按位相或,特點是置 1,操作數和1相或結果為1,和0相或原 內容保持不變。看例1及例2。,邏輯循環(huán)右移(RL):

55、,特點是在操作數 最高低為0的條件下,操作數每被左循環(huán)移 位一次,其內容相當于被除2??蠢?。,邏輯循環(huán)左移(RL):,特點是在操作數 最高位為0的條件下,操作數每被左循環(huán)移 位一次,其內容相當于被乘2。,MOV A,#0F0H ANL P1,#00H ORL P1,#55H ORL P1,A ANL P1,A,;(A)=0F0H ;P1=00H ;P1=55H ;P1=0F5H ;P1=0F0H,例1:給出下列兩段程序執(zhí)行的結果。,; 屏蔽A中高5位 ;去掉P1中的低3位 ; P120A20,例2: 要求編程把累加器中的低3位傳送到 P1口,傳送時不影響P1口的高5位。,ANL A,#07H ANL P1,#0F8H ORL P1,A,例3 : MOV A,#42H XRL A,#52H,例4:分析以下程序執(zhí)行的結果,MOV A,#08H RL A RL A RL A RR A RR A,;(A)=08H ;左移一位,(A)=10H ;左移一位,(A)=20H ;左移一位,(A)=40H ;右移一位,(A)=20H ;右移一位,(A)=10H,例5:分析以下程序執(zhí)行的結果,CLR C MOV A,#99H RL A MOV A,#99H RRC A,;(C)=0 ;(A)=99H ;左移一位,(A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論