51單片機發(fā)展,指令代碼與中斷定時器計數(shù)器綜述_第1頁
51單片機發(fā)展,指令代碼與中斷定時器計數(shù)器綜述_第2頁
51單片機發(fā)展,指令代碼與中斷定時器計數(shù)器綜述_第3頁
51單片機發(fā)展,指令代碼與中斷定時器計數(shù)器綜述_第4頁
51單片機發(fā)展,指令代碼與中斷定時器計數(shù)器綜述_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、3.1 單片機的定義 把組成微型計算機的各功能部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時器/計數(shù)器以及串行通信接口等制作在一塊集成芯片中,構成一個完整的微型計算機。 微控制器(Micro Controller Unit) 嵌入式微控制器3.1.1 基于單片機的醫(yī)學儀器3-53.1.2 醫(yī)學儀器的軟件系統(tǒng)3-6外界應用軟件編輯 編譯 連接 轉載操作系統(tǒng)微型計算機硬件匯編 測試軟件 翻譯器圖3.3 微機硬件系統(tǒng)與客觀世界之間存在三種層次的軟件3.2 單片機的發(fā)展第一階段(19711974年): 1971年 Intel 4004 1972年 Intel 80

2、08 第二階段(19741978年): 初級階段。以Intel公司的MCS-48為代表。 特點:集成有8位CPU、并行I/O接口、8位定時 器/計數(shù)器,尋址范圍不大于4K,無串行口。 產(chǎn)品系列:8048,8748;8035和8039 第三階段(19781983年): 單片機普遍帶有串行口,有多級中斷處理系統(tǒng)、16位定時器/計數(shù)器。片內RAM、ROM容量加大,且尋址范圍可達64KB,有的片內還帶有A/D轉換器接口。 代表: MCS-51系列單片機 第四階段(1983年1990): 16 位單片機和8 位高性能單片機并行發(fā)展階段。 特點:實時處理能力強生產(chǎn)工藝先進,集成度高,內部功能強允許用戶采用

3、工業(yè)控制的專用語言編 程,如 PL/M、C 語言、BASIC 語言等 第五階段(1990現(xiàn)在): i80860 超級單片機特點:運算速度快(1.2 億次/秒)運算功能強 可進行32 位整數(shù)運算和64 位浮點運算具有一個三維圖形處理器,可構成超級 圖形工作站。3.3 單片機的應用特性(1)集成度高 MCS-51系列單片機代表產(chǎn)品為8051,8051內部包含4KB的ROM、128B的RAM、四個8位并行口、一個全雙工串行口、兩個16位定時器/計數(shù)器以及一個處理功能強大的中央處理器。(2)系統(tǒng)結構簡單 MCS-51系列單片機芯片內部采用模塊化結構。MCS-51系列單片機具有64KB的外部程序存儲器尋

4、址能力和64KB的外部RAM和I/O口尋址能力。(3)可靠性高 單片機屬于工業(yè)品,能在常溫下工作,不需要在溫度恒定的機房內工作。由于單片機總線大多在芯片內部不易受干擾,而且單片機應用系統(tǒng)體積小,易于屏蔽,所以單片機的可靠性較高。(4)處理功能強,速度快 MCS-51系列單片機指令系統(tǒng)中具有加、減、乘、除指令,各種邏輯運算和轉移指令,還具有位操作功能。CPU時鐘頻率高達12MHz,單字節(jié)乘法和除法僅需要4s,而且具有特殊的多機通信功能。 3.4 單片機的制造工藝 制造單片機的工藝只有兩種:HMOS工藝和CHMOS工藝。 早期的MCS-51系列芯片都采用HMOS工藝,即( )MOS工藝。8051、

5、8751、8031、8951等產(chǎn)品均屬于HMOS工藝制造的產(chǎn)品。 CHMOS工藝是CMOS和HMOS的結合,除保持了HMOS工藝的高密度、高速度之外,還具有CMOS工藝低功耗的特點。3.5 MCS-51單片機系列產(chǎn)品 表表1 MCS-51系列單片機系列單片機 8052資源配置 片內ROM形式片內ROM片內RAM定時/計數(shù)器無ROMEPROME2PROMMCS-5189514KB128B216MCS-52803289528KB256B3168752 (1) 8位中央處理器(CPU) 運算器電路 運算器電路是單片機的運算部件,用于實現(xiàn)算術和邏輯運算。ALU(算術邏輯單元)、ACC(累加器)、B寄存

6、器、程序狀態(tài)字和兩個暫存寄存器等屬于運算器電路。它以ALU為核心,包括加、減、乘、除等算術運算,與、或、非等邏輯運算,左右移位和半字節(jié)交換等操作。 控制電路 包括:PC、PC加1寄存器、指令寄存器、指令譯碼器、定時和控制電路等。 (3)內部數(shù)據(jù)存儲器 包括128B/256B的RAM和RAM地址鎖存器等。實際上8051或80C51內部共有256個RAM單元,但后128單元被特殊功能寄存器SFR占用,供用戶使用的只是前128個單元。(2) 內部程序存儲器 4KB/8KB的存儲器(ROM或EPROM)。對于8051、80C51內部共有4KB的掩膜ROM,用于存放程序和原始數(shù)據(jù)。 圖3.2 MCS-5

7、1系列單片機存儲空間配置示意圖3-11l 程序存儲器 MCS-51片內、片外一共可以尋址64K的程序存儲器地址空間。l 內部數(shù)據(jù)存儲器 MCS-51有128字節(jié)的片內存儲器RAM,同時具有64K的外存尋址能力。圖3.3 片內RAM地址空間3-12(5) 定時器/計數(shù)器 MCS-51有2個或3個16位定時器/計數(shù)器,以實現(xiàn)定時或計數(shù)功能,并以定時或計數(shù)的結果對單片機進行控制。(6) 串行口 全雙工UART的串行口,以實現(xiàn)單片機和其他數(shù)據(jù) 設備之間的串行數(shù)據(jù)傳送??勺鳛槿p工UART異步通信收發(fā)器使用,又可作為同步移位器使用。(4) 并行的I/O口 MCS-51中共有4個8位的I/O口(P0、P1

8、、 P2、 P3)以實現(xiàn)并行的輸入輸出。(7)時鐘電路 MCS-51單片機芯片內部有時鐘電路,但石英晶體振蕩器和微調電容需外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列,典型的晶振頻率為6MHz或12MHz。(8) 位處理器 位處理器又稱布爾處理器。位處理器以狀態(tài)寄存器中的進位標志C為累加位,可進行置位、復位、取反、等于“0”轉移、等于“1”轉移以及C與可尋址位之間的傳送、邏輯與、邏輯或等位操作。(9) 總線 上述8個部件都通過片內單一總線連接。系統(tǒng)的地址信號、數(shù)據(jù)信號、控制信號都是通過總線傳送的??偩€結構減少了單片機的連線和引腳,提高了集成度和可靠性。 問題:單片機包括哪三類? HMOS制造工藝的M

9、CS-51單片機都采用40引腳的DIP方式 CHMOS制造工藝的80C51/80C31芯片除采用DIP方式外,還采用方形封裝工藝 (1)主電源引腳Vcc和Vss Vcc:接+5V電壓 Vss:接地(2) 外接晶體引腳XTAL:接外部晶體的一個引腳。在單片機內部,它是一個反相放大器的輸入端,這個放大器構成了片內振蕩器。 (3) 控制引腳RST/VPD、ALE/PROG、PSEN、EA/VPP RST/VPD(9腳):振蕩器運行時,在此引腳上出現(xiàn)兩個機器周期的高電平使單片機復位。對于EPROM型的單片機,在EPROM編程期間,此引腳用于輸入編程脈沖。 ALE/ PROG: 當訪問外部存儲器時,AL

10、E(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍然以不變的頻率周期性地出現(xiàn)正脈沖信號,此頻率為振蕩器的1/6。因此,它可以用作對外輸出的時鐘,或用于定時。問題:PSEN、EA/VPP各有什么功能?PSEN 外部程序存儲器讀選通信號外部程序存儲器讀選通信號:在讀外部ROM時PSEN低電平有效,以實現(xiàn)外部ROM單元的讀操作。1、內部ROM讀取時,PSEN不動作;2、外部ROM讀取時,在每個機器周期會動作兩次;3、外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出;4、外接ROM時,與ROM的OE腳相接。EA/VPP訪問和序存儲器控制信號1、接高電平時:CPU讀取內部程

11、序存儲器(ROM)擴展外部ROM:當讀取內部程序存儲器超過0FFFH(8051)1FFFH(8052)時自動讀取外部ROM。2、接低電平時:CPU讀取外部程序存儲器(ROM)。在前面的學習中我們已知道,8031單片機內部是沒有ROM的,那么在應用8031單片機時,這個腳是一直接低電平的。3、8751燒寫內部EPROM時,利用此腳輸入21V的燒寫電壓。(4) 輸入/輸出(I/O)引腳P0、P1、P2、P3 P0口:雙向8位三態(tài)I/O口。P0用于分時地址/數(shù)據(jù)總線(低8位地址),P2也用于外部地址總線(高8位地址),與P0一起形成16位地址。 P1口(1腳8腳):是準雙向8位I/O口。P1口可以驅

12、動(吸收或輸出電流)4個LS型的TTL負載。 對于8052、8032,P1.0引腳的第二功能為T2定時器/計數(shù)器的外部輸入,P1.1引腳的第二功能為T2的外部控制端。3.8.1 中斷的定義及優(yōu)點中斷的定義及優(yōu)點(1)中斷的定義)中斷的定義 CPU 在處理某事件在處理某事件 A時,發(fā)生了另一事時,發(fā)生了另一事 件件B請求(請求(中斷發(fā)生中斷發(fā)生)CPU暫時中斷當前的工作,轉去處理事件暫時中斷當前的工作,轉去處理事件B(中斷中斷 響應和中斷服務響應和中斷服務)待待CPU將事件將事件B處理完畢后,再回到原來事件處理完畢后,再回到原來事件A被被 中斷的地方繼續(xù)處理事件中斷的地方繼續(xù)處理事件A(中斷返回

13、中斷返回) (2) 中斷的優(yōu)點中斷的優(yōu)點 中斷技術不僅解決了快速主機與慢速中斷技術不僅解決了快速主機與慢速I/O設設備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點:備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點:l 分時操作分時操作 CPU可以分時為多個可以分時為多個I/O設備服務,提高了設備服務,提高了計算機的利用率;計算機的利用率;l 實時響應實時響應 CPU能及時處理應用系統(tǒng)的隨機事件,系統(tǒng)能及時處理應用系統(tǒng)的隨機事件,系統(tǒng)的實時性大大增強;的實時性大大增強;l 可靠性高可靠性高 CPU具有處理設備故障及掉電等突發(fā)性事件具有處理設備故障及掉電等突發(fā)性事件的能力,從而使系統(tǒng)可靠性提高。的能力,從而使系統(tǒng)可靠性

14、提高。3.8.2 MCS-51中斷系統(tǒng)的結構中斷系統(tǒng)的結構 主程序主程序繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序響應中斷響應中斷中斷返回中斷返回中斷服務程序中斷服務程序中斷結構示意圖中斷結構示意圖主程序主程序響應中斷響應中斷中斷返回中斷返回高級中斷高級中斷繼續(xù)執(zhí)行主程序繼續(xù)執(zhí)行主程序響應中斷響應中斷中斷返回中斷返回低級中斷低級中斷中斷嵌套示意圖中斷嵌套示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖中斷系統(tǒng)示意圖3.8.3 MCS-51的中斷源的中斷源 (1) 中斷分類中斷分類1 (P3.2)P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標志引腳上出現(xiàn)有效

15、的中斷信號時,中斷標志IE0置置12 (P3.3)P3.3引腳上出現(xiàn)有效的中斷信號時,中斷標志引腳上出現(xiàn)有效的中斷信號時,中斷標志IE1置置13 TF0(TCON.5)定時定時/計數(shù)器計數(shù)器T0發(fā)生溢出,置位發(fā)生溢出,置位TF0,向,向CPU申請中斷申請中斷4 TF1(TCON.7)定時定時/計數(shù)器計數(shù)器T1發(fā)生溢出,置位發(fā)生溢出,置位TF1,向,向CPU申請中斷申請中斷5 RI(SCON.0)或)或TI(SCON.1)串行口接收或發(fā)送一幀串行數(shù)據(jù),向串行口接收或發(fā)送一幀串行數(shù)據(jù),向CPU申請申請中斷中斷INT0INT1(2) 中斷優(yōu)先級排隊中斷優(yōu)先級排隊(3)中斷請求標志)中斷請求標志 TC

16、ON的中斷標志的中斷標志IT0(TCON.0)外部中斷)外部中斷0觸發(fā)方式控制位觸發(fā)方式控制位IE0(TCON.1)外部中斷)外部中斷0中斷請求標志位中斷請求標志位IT1(TCON.2)外部中斷)外部中斷1觸發(fā)方式控制位觸發(fā)方式控制位IE1(TCON.3)外部中斷)外部中斷1中斷請求標志位中斷請求標志位TF0(TCON.5)定時)定時/計數(shù)器計數(shù)器T0溢出中斷請求標志溢出中斷請求標志TF1(TCON.7)定時)定時/計數(shù)器計數(shù)器T1溢出中斷請求標志溢出中斷請求標志SCON的中斷標志的中斷標志lTI(SCON.1),串行口發(fā)送中斷標志位發(fā)送),串行口發(fā)送中斷標志位發(fā)送完一個串行幀時,由硬件置位完

17、一個串行幀時,由硬件置位TI。CPU響應響應中斷時,不能自動清除中斷時,不能自動清除TI,TI必須由軟件清必須由軟件清除。除。 l RI(SCON.0),串行口接收中斷標志位。),串行口接收中斷標志位。當允許串行口接收數(shù)據(jù)時,每接收完一個串當允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位行幀,由硬件置位RI。同樣。同樣RI必須由軟件清必須由軟件清除。除。 (1) 中斷允許控制中斷允許控制 3.8.4 MCS-51中斷的控制中斷的控制 lEX0(IE.0) :外部中斷:外部中斷0允許位允許位lET0(IE.1) :定時:定時/計數(shù)器計數(shù)器T0中斷允許位中斷允許位lEX1(IE.2) :外部

18、中斷:外部中斷1允許位允許位lET1(IE.3) :定時:定時/計數(shù)器計數(shù)器T1中斷允許位中斷允許位lES(IE.4) :串行口中斷允許位:串行口中斷允許位lEA (IE.7) : CPU中斷允許(總允許)位中斷允許(總允許)位“1”為允許中斷為允許中斷“0”為禁止中斷為禁止中斷(2) 中斷優(yōu)先級控制中斷優(yōu)先級控制 lPX0(IP.0):外部中斷):外部中斷0優(yōu)先級設定位;優(yōu)先級設定位;lPT0(IP.1):定時):定時/計數(shù)器計數(shù)器T0優(yōu)先級設定位;優(yōu)先級設定位;lPX1(IP.2):外部中斷):外部中斷1優(yōu)先級設定位;優(yōu)先級設定位;lPT1(IP.3):定時):定時/計數(shù)器計數(shù)器T1優(yōu)先級

19、設定位;優(yōu)先級設定位;lPS (IP.4) :串行口優(yōu)先級設定位。:串行口優(yōu)先級設定位。 “1”為高優(yōu)先級,為高優(yōu)先級,“0”為低優(yōu)先級。為低優(yōu)先級。(4)中斷優(yōu)先級原則)中斷優(yōu)先級原則l CPU同時接收到幾個中斷時,首先響應優(yōu)先級別同時接收到幾個中斷時,首先響應優(yōu)先級別 最高的中斷請求。最高的中斷請求。l 正在進行的中斷過程不能被新的同級或低優(yōu)先級正在進行的中斷過程不能被新的同級或低優(yōu)先級 的中斷請求所中斷。的中斷請求所中斷。l 正在進行的低優(yōu)先級中斷服務,能被高優(yōu)先級中正在進行的低優(yōu)先級中斷服務,能被高優(yōu)先級中 斷請求所中斷。斷請求所中斷。 為實現(xiàn)后兩條原則,為實現(xiàn)后兩條原則,中斷系統(tǒng)內部

20、設有兩個用戶中斷系統(tǒng)內部設有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。 一個表示正在響應高優(yōu)先級的中斷,它將阻斷一個表示正在響應高優(yōu)先級的中斷,它將阻斷 后來所有的中斷請求;后來所有的中斷請求; 另一個表示正在響應低優(yōu)先級中斷,它將阻斷另一個表示正在響應低優(yōu)先級中斷,它將阻斷 后來所有的低優(yōu)先級中斷請求。后來所有的低優(yōu)先級中斷請求。(1)中斷響應)中斷響應中斷響應定義中斷響應定義 中斷響應是中斷響應是 CPU 對中斷源中斷請求的響應,包對中斷源中斷請求的響應,包括保護斷點和將程序轉向中斷服務程序入口地址括保護斷點和將程序轉向中斷服務程序入口地址 中斷響應條件中斷響應條件l

21、 中斷源有中斷請求中斷源有中斷請求l 此中斷源的中斷允許位為此中斷源的中斷允許位為1l CPU開中斷(即開中斷(即EA=1) 以下情況中斷響應會受阻以下情況中斷響應會受阻lCPU正在處理同級或高優(yōu)先級中斷正在處理同級或高優(yōu)先級中斷l(xiāng)當前查詢的機器周期非執(zhí)行指令的最后一個機器周期當前查詢的機器周期非執(zhí)行指令的最后一個機器周期l正在執(zhí)行的指令為正在執(zhí)行的指令為RETI或訪問或訪問IE或或IP寄存器的指令寄存器的指令 中斷響應時間中斷響應時間l中斷響應時間:中斷響應時間:指從查詢中斷請求標志位到轉指從查詢中斷請求標志位到轉向中斷服務入口地址所需的機器周期數(shù)。向中斷服務入口地址所需的機器周期數(shù)。 l若

22、若M1周期的周期的S5P2前某中斷生效,在前某中斷生效,在S5P2期間其期間其中斷請求被鎖存到相應的標志位中;中斷請求被鎖存到相應的標志位中;M2周期查詢周期查詢中斷標志;中斷標志;M3和和M4執(zhí)行硬件執(zhí)行硬件LCALL指令;指令;M5周周期將進入中斷服務程序期將進入中斷服務程序中斷響應時間范圍中斷響應時間范圍最快響應時間最快響應時間 以外部中斷的電平觸發(fā)為最快。以外部中斷的電平觸發(fā)為最快。 從查詢中斷請求信號到中斷服務程序需從查詢中斷請求信號到中斷服務程序需 三個機器周期:三個機器周期: 1個周期(查詢)個周期(查詢)2個周期(長調用個周期(長調用LCALL)最長時間最長時間問題:若當前指令

23、是RET、RETI和IP、IE指令,下一條發(fā)生乘除指令,則最長為多少個周期?2個周期執(zhí)行當前指令(其中含有個周期執(zhí)行當前指令(其中含有1個周期查詢)個周期查詢)4個周期乘除指令個周期乘除指令2個周期長調用個周期長調用(2)中斷處理)中斷處理 中斷處理就是執(zhí)行中斷服務程序。中斷處理就是執(zhí)行中斷服務程序。 中斷服務程序從中斷入口地址開始執(zhí)行,到返中斷服務程序從中斷入口地址開始執(zhí)行,到返回指令回指令RETIRETI為止。為止。 執(zhí)行硬件執(zhí)行硬件LCALL指令,指令,進入中斷服務程序后,進入中斷服務程序后,先保護現(xiàn)場,后執(zhí)行中斷處理程序,在中斷返先保護現(xiàn)場,后執(zhí)行中斷處理程序,在中斷返回前再恢復現(xiàn)場。

24、回前再恢復現(xiàn)場。 (3 3)中斷返回)中斷返回 中斷返回是指中斷服務完后,計算機返回原中斷返回是指中斷服務完后,計算機返回原來斷開的位置(即斷點),繼續(xù)執(zhí)行原來的程來斷開的位置(即斷點),繼續(xù)執(zhí)行原來的程序。中斷返回由中斷返回指令序。中斷返回由中斷返回指令 RETI 來實現(xiàn)。來實現(xiàn)。 RETI指令的具體功能:指令的具體功能:l 將中斷響應時壓入堆棧保存的斷點地址從棧將中斷響應時壓入堆棧保存的斷點地址從棧 頂彈出送回頂彈出送回PC,CPU從原來中斷的地方繼續(xù)從原來中斷的地方繼續(xù) 執(zhí)行程序;執(zhí)行程序;l 將相應中斷優(yōu)先級狀態(tài)觸發(fā)器清零。將相應中斷優(yōu)先級狀態(tài)觸發(fā)器清零。0,通知,通知中斷系統(tǒng),中斷服

25、務程序已執(zhí)行完畢。中斷系統(tǒng),中斷服務程序已執(zhí)行完畢。 (4) 中斷請求的撤除中斷請求的撤除8051 各中斷源中斷請求撤消方法:各中斷源中斷請求撤消方法: 對串口、對串口、T2中斷中斷:CPU 在響應中斷后,硬在響應中斷后,硬 件不能自動清除中斷請求標志位件不能自動清除中斷請求標志位 TI、RI,須,須 在中斷服務程序中用軟件將其清除;在中斷服務程序中用軟件將其清除; 對對INT0、INT1:若設置為電平中斷,:若設置為電平中斷,CPU響應中斷后,應使外部引腳置高,以避免重復響應中斷后,應使外部引腳置高,以避免重復中斷中斷 。例例 多外部中斷源的系統(tǒng)示例多外部中斷源的系統(tǒng)示例 設有設有5個外部中

26、斷源,中斷優(yōu)先級排隊順序為:個外部中斷源,中斷優(yōu)先級排隊順序為:XI0、XI1、XI2、XI3、XI4。試設計它們與。試設計它們與80C51單片機的接口。單片機的接口。 ORG 0003H LJMP INSE0 轉外部中斷轉外部中斷0服務程序入口服務程序入口 ORG 0013H LJMP INSE1 轉外部中斷轉外部中斷1服務程序入口服務程序入口 INSE0: PUSH PSW XI0中斷服務程序中斷服務程序 PUSH ACC POP ACC POP PSW RETI INSE1: PUSH PSW 中斷服務程序中斷服務程序 PUSH ACC JB P1.0,DV1; JB P1.1,DV2

27、; INRET: POP ACC POP PSW RETI DV1: XI1中斷服務程序中斷服務程序 AJMP INRET DV2: XI2中斷服務程序中斷服務程序 AJMP INRET 3.9.1 三種定時方式三種定時方式l 軟件定時軟件定時 不占用硬件資源,但占用不占用硬件資源,但占用 了了CPU時間時間l 基電路定時基電路定時 如采用如采用555電路,外接必要的元器件電路,外接必要的元器件 缺點:在硬件連接好以后,定時值與定時范圍缺點:在硬件連接好以后,定時值與定時范圍 不能由軟件進行控制和修改不能由軟件進行控制和修改l可編程芯片定時可編程芯片定時 定時值及定時范圍很容易用軟件來確定和修

28、定時值及定時范圍很容易用軟件來確定和修 改,此種芯片定時功能強,使用靈活改,此種芯片定時功能強,使用靈活3.9.2 3.9.2 定時定時/ /計數(shù)器的結構計數(shù)器的結構3.9.3 定時定時/計數(shù)器的工作原理計數(shù)器的工作原理 脈沖來源:脈沖來源: 一個由系統(tǒng)時鐘振蕩器輸出脈沖經(jīng)一個由系統(tǒng)時鐘振蕩器輸出脈沖經(jīng)12分頻后分頻后送來;一個是送來;一個是T0或或T1引腳輸入的外部脈沖源。引腳輸入的外部脈沖源。 定時器模式定時器模式 加加1計數(shù)器是對內部機器周期計數(shù),每過一計數(shù)器是對內部機器周期計數(shù),每過一個機器周期,計數(shù)器加個機器周期,計數(shù)器加1,直,直 至計滿溢出為止。至計滿溢出為止。 定時時間定時時間

29、 t = 計數(shù)值計數(shù)值N 機器周期機器周期Tcy 計數(shù)器模式計數(shù)器模式 3.9.4 定時定時/計數(shù)器的控制計數(shù)器的控制 工作方式寄存器工作方式寄存器TMOD定時器定時器T1定時器定時器T0GATE:門控位:門控位lGATE0時,用軟件使時,用軟件使TCON中的中的TR0或或TR1為為1,就可啟動定時,就可啟動定時/計數(shù)器工作;計數(shù)器工作;lGATE1時,要用軟件使時,要用軟件使TR0或或TR1為為1,同時外部中斷引腳為高電平時,才能啟動定同時外部中斷引腳為高電平時,才能啟動定時時/計數(shù)器工作。計數(shù)器工作。問題:若定時/計數(shù)器以計數(shù)方式工作,工作方式為2,那么TMOD 的值應為多少?定時器定時器

30、T1定時器定時器T0MIMO 工作方式工作方式說明說明00 方式013位定時/計數(shù)器01方式116位定時/計數(shù)器10方式28位自動重裝定時/計數(shù)器11方式3T0分為兩個獨立的8位定時/計數(shù)器,T1此方式停止計數(shù) 控制寄存器控制寄存器TCON l TF1(TCON.7):):T1溢出中斷請求標志位溢出中斷請求標志位 T1計數(shù)溢出時由硬件自動置計數(shù)溢出時由硬件自動置TF1為為1。CPU響應響應 中斷后中斷后TF1由硬件自動清由硬件自動清0。l TR1(TCON.6):):T1運行控制位。運行控制位。 TR1置置1時,時,T1開始工作;開始工作;TR1置置0時,時,T1停止工停止工 作。作。TR1由

31、軟件置由軟件置1或清或清0。3.9.5 定時定時/計數(shù)器的工作方式計數(shù)器的工作方式 (1) 方式方式0 13位計數(shù)時,位計數(shù)時,由由TL0的低的低5位和位和TH0的的8位組成。位組成。 16X=2 -N(2)方式)方式1 方式方式1的計數(shù)位數(shù)是的計數(shù)位數(shù)是16位,由位,由TL0作為低作為低8位而位而 TH0 作為高作為高8位,組成了位,組成了16位加位加1計數(shù)器。計數(shù)器。 計數(shù)個數(shù)與計數(shù)初值的關系為:計數(shù)個數(shù)與計數(shù)初值的關系為: 8X=2 -N(3)方式)方式2 方式方式2為自動重裝初值的為自動重裝初值的8位計數(shù)方式位計數(shù)方式計數(shù)個數(shù)與計數(shù)初值的關系為計數(shù)個數(shù)與計數(shù)初值的關系為: (4)方式)

32、方式3 方式方式3只適用于定時只適用于定時/計數(shù)器計數(shù)器T0,定時器,定時器T1處于處于方式方式3時相當于時相當于TR1=0,停止計數(shù),停止計數(shù) 3.9.5 定時定時/計數(shù)器用于外部中斷擴展計數(shù)器用于外部中斷擴展 方法:方法:定時定時/計數(shù)器設置為計數(shù)器方式計數(shù)器設置為計數(shù)器方式 初值設為滿程初值設為滿程 待擴展外部中斷源接至外部計數(shù)引腳待擴展外部中斷源接至外部計數(shù)引腳 3.9.5 定時定時/計數(shù)器用于外部中斷擴展計數(shù)器用于外部中斷擴展 初始化工作:初始化工作:定時器定時器T1定時器定時器T0l對對TMOD賦值,以確定賦值,以確定T0和和T1的工作方式的工作方式l 計算初值,并將其寫入計算初值

33、,并將其寫入TH0、TL0或或TH1、 TL1 3.9.5 定時定時/計數(shù)器用于外部中斷擴展計數(shù)器用于外部中斷擴展 初始化工作:初始化工作:l中斷方式時,則對中斷方式時,則對IE賦值,開放中斷賦值,開放中斷l(xiāng)使使TR0或或TR1置位,啟動定時置位,啟動定時/計數(shù)器定計數(shù)器定 時或計數(shù)時或計數(shù) 例例1 :利用:利用T0擴展一個外部中斷源。擴展一個外部中斷源。 T0以計數(shù)器以計數(shù)器方式工作,工作方式為方式工作,工作方式為2 。 Program: MOV TMOD,#06H ;置;置T0為計數(shù)器方式為計數(shù)器方式2 MOV TL0,#0FFH ; 置計數(shù)初值置計數(shù)初值 MOV TH0,#0FFH SE

34、TB TR0 ;啟動;啟動T0工作工作 SETB EA ; CPU開中斷開中斷 SETB ET0 ;允許;允許T0中斷中斷 例例 2 利用定時利用定時/計數(shù)器計數(shù)器T0的方式的方式1,產(chǎn)生,產(chǎn)生10ms的定的定時,并使時,并使P1.0引腳上輸出周期為引腳上輸出周期為20ms的方波,采用的方波,采用中斷方式,設系統(tǒng)時鐘頻率為中斷方式,設系統(tǒng)時鐘頻率為12 MHz。 關鍵點:計算計數(shù)初值關鍵點:計算計數(shù)初值X 晶振為晶振為12 MHz,機器周期,機器周期Tcy為?為?S 機器周期=6個狀態(tài)周期=12個時鐘周期 Nt/ Tcy 10103/110610000 X655361000055536D8F0

35、H LJMP DVT0 ;轉向中斷服務程序;轉向中斷服務程序MAIN:MOV TMOD,#01H ;置置T0工作于方式工作于方式1 MOV TH0,#0D8H ;裝入計數(shù)初值裝入計數(shù)初值 MOV TL0,#0F0H SETB ET0 ;T0開中斷開中斷 SETB EA ;CPU開中斷開中斷 SETB TR0 ;啟動啟動T0 SJMP $ ;等待中斷等待中斷DVT0:CPL P1.0 ; P1.0取反輸出取反輸出 MOV TH0,#0D8H ; 重新裝入計數(shù)值重新裝入計數(shù)值 MOV TL0,#0F0H RETI ; 中斷返回中斷返回 ENDl 4.1 指令分類 按指令功能,MCS-51指令系統(tǒng)分

36、為: 數(shù)據(jù)傳遞與交換、算術運算、邏輯運算、程序轉移、布爾處理操作、CPU控制等6類。l4.2 指令格式 在MCS-51指令中,一般指令主要由操作碼、操作數(shù)組成。 指令格式為:操作碼 目的操作數(shù),源 操作數(shù) 尋址方式:就是尋找指令中操作數(shù)或操作數(shù)所在地址的方法。8051共有七中尋址方式。立即尋址 直接尋址寄存器尋址 寄存器間接尋址變址尋址 相對尋址位尋址lRn當前選中的寄存器區(qū)中的8個工作寄存 器R0R7(n=07)lRi當前選中的寄存器區(qū)中的2個工作寄存 器(間接尋址寄存器)R0、R1ldirect 8位的內部數(shù)據(jù)存儲器單元中的地址l#data包含在指令中的8位常數(shù)l#data16包含在指令中

37、的16位常數(shù)laddr1616位目的地址laddr1111位目的地址rel8位帶符號的偏移字節(jié),簡稱偏移量DPTR數(shù)據(jù)指針,可用作16位地址寄存器bit內部RAM或專用寄存器中的直接尋址位A 累加器B 專用寄存器,用于乘法和除法指令中C進位標志或進位位,或布爾處理機中的累 加器$ 表示程序計數(shù)器的當前值。常出現(xiàn)在轉移 指令中,如:SJMP $ 表示循環(huán)等待l指令中直接給出操作數(shù)的尋址方式。 立即操作數(shù)用加有#號的8位或16位數(shù)表示 例如:MOV A,# 60H;A60H MOV DPTR,# 3400H;DPTR3400H MOV30H,# 40H;30H單元40H l上述三條指令執(zhí)行完后,累

38、加器A中數(shù)據(jù)為立即數(shù)據(jù)60H,DPTR寄存器中數(shù)據(jù)為3400H,30H單元中數(shù)據(jù)為立即數(shù)40H。l指令中直接給出操作數(shù)地址的尋址方式,能進行直接尋址的存儲空間有SFR寄存器和片內RAM的128個單元。 例如:MOV A,P1; A(P1) 把SFR中P1口的內容送A。 MOV A,30H; A(30H) 30H為直接給出的內部RAM的地址l以通用寄存器的內容為操作數(shù)的尋址方式。通用寄存器指A、B 、DPTR以及R0R7 。 例如:MOV A,R0;A (R0) CLR A;A0 INC DPTR;DPTRDPTR+1 ADDA,R5;A(A)+(R5)l以寄存器中內容為地址,以該地址中內容為操

39、作數(shù)的尋址方式。間接尋址的存儲器空間包括內部數(shù)據(jù)RAM和外部數(shù)據(jù)RAM。l能用于寄存器間接尋址的寄存器有R0,R1,DPTR,SP。其中R0、R1必須是工作寄存器組中的寄存器。SP僅用于堆棧操作。例:MOV R0,A ;內部RAM(R0)A 其指令操作過程示意圖如圖4.1所示。 又如:MOVX DPTR,A; 外部RAM (DPTR)A 其指令操作過程示意圖如圖4.所示。片內RAM30HR034HA30H34H圖4-1 MOV R0,A間接尋址示意圖片外RAM2000HDPTR30HA2000H30H圖圖4-2 MOVX DPTR,A間接尋址間接尋址 基址寄存器(A)+變址寄存器(PC或DPT

40、R)的間接尋址。 變址尋址只能對程序存儲器中數(shù)據(jù)進行操作。由于程序存儲器是只讀的,因此變址尋址只有讀操作而無寫操作,在指令符號上采用MOVC的形式(如圖4-3所示)。 例:MOVC A, A+DPTR; A(A+DPTR) 又 如:MOVC A, A+PC ; A(A+PC) 圖4-3 變址尋址示意圖程序存儲器2000HDPTR64H(10H)A2010H64H10H2000Hl以當前程序計數(shù)器PC的內容為基礎,加上指令給出的一字節(jié)補碼數(shù)(偏移量)形成新的PC值的尋址方式。l相對尋址用于修改PC值,主要用于實現(xiàn)程序的分支轉移。 例:SJMP 08H ;PCPC+2+08H 指令操作示意圖如圖4

41、-4所示。程序存儲器(2000H)200AHSJMP200AH08H2000H+208HPC2000H圖4-4 相對尋址示意圖l只能對有位地址的單元作位尋址操作。l是一種直接尋址方式,但其地址是位地址。 例:SETB 10H;將10H位置1。 若22H單元中存放著數(shù)據(jù)40H,22H單元的 D0位的位地址為10H,執(zhí)行上述指令后 (22H)=41H 又如:MOV 32H,C ;32H進位位C ORL C ,32H ;CC32H尋址方式源操作數(shù)尋址空間立即數(shù)尋址程序存儲器ROM直接尋址片內RAM低128B、SFR寄存器尋址工作寄存器R0-R7、A、B、C、DPTR寄存器間接尋址片內RAM低128B

42、R0、R1片外RAM R0、R1、 DPTR變址尋址程序存儲器A+PC、 A+DPTR相對尋址程序存儲器256B范圍(PC+偏移量)位尋址片內RAM的20H2FH字節(jié)地址l4.2.1 數(shù)據(jù)傳送類指令l4.2.2 算術運算類指令l4.2.3 邏輯運算類指令l4.2.4 控制程序轉移類指令l4.2.5 調用子程序及返回指令l4.2.6 位操作指令l4.2.7 空操作指令l數(shù)據(jù)傳送類指令共28條,是將源操作數(shù)送到目的操作數(shù)。l指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代。l數(shù)據(jù)傳送類指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8種。l源操作數(shù)可采用

43、寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址;l目的操作數(shù)可以采用寄存器、寄存器間接、直接尋址3種尋址方式。l數(shù)據(jù)傳送指令是一種最基本最常用的操作,在通常的程序中占有極大的比例。MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri ;A(Ri)MOV A,#data;A #data上述指令是將源操作數(shù)指定的內容送到累加器A中。上述操作只影響PSW的P標志位。在8051指令系統(tǒng)中,訪問片外RAM只能用寄存器間接尋址,與累加器A配合,共四條指令。 MOVX A,Ri;A (Ri) MOVX Ri,A;(Ri) A 尋址范圍是片外256BRAM。 MOVX

44、A,DPTR;A (DPTR) MOVX DPTR,A;(DPTR) A 尋址范圍是片外64KBRAM。注:數(shù)據(jù)表格放在程序存儲器中 近程查表指令(256B) MOVC A,A+PC ;A(A)+(PC) 只能查找指令所在地址以后256B范圍內的常數(shù)或代碼。遠程查表指令(64KB)MOVC A,A+DPTR;A (A)+(DPTR)查表范圍可達ROM的64KB空間。例如:在程序存儲器中,數(shù)據(jù)表格為 1010H:02H 1011H:04H 1012H:06H 1013H:08H執(zhí)行程序1000H:MOV A,#0DH;A 0DH, 偏移量1002H:MOVC A,A+PC;1003H:MOV R

45、0,A ; R0 A 問題:(A)= ? (R0)=? (PC)=? 如:在程序存儲器中,數(shù)據(jù)表格為: 7010H:02H 7011H:04H 7012H:06H 7013H:08H 執(zhí)行程序 1000H:MOV A,#10H; A 10H ,偏移量 1002H:MOV DPTR,#7000H; 1003H: MOVC A, A+DPTR; 問題(A)=?l 字節(jié)交換XCH A,Rn;A RnXCH A ,direct ;A(direct)XCH A,Ri;A(Ri)l 半字節(jié)交換XCHD A,Ri ;A03(Ri)03 低4位互換,高4位不變。SWAP A;A03A47(高低兩半字節(jié)交換)

46、堆棧是在片內RAM中按“先進后出,后進先出”原則設置的專用存儲區(qū)。數(shù)據(jù)的進棧出棧由指針SP統(tǒng)一管理。 堆棧的操作有如下兩條專用指令: PUSH direct; SP(SP+1),(SP)(direct) POP direct; (direct)(SP),SP SP-1 MOV R5,R7MOV A,55HMOV A,55HJMP A+DPTR MOV 30H,CMOV A,R0MOVX A, R0習題:分別說出下列指令的尋址方式方法1: MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2: MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R

47、1 MOVR1,A MOVR0,B SJMP$ 方法3: MOVA,30H XCHA,40H MOV30H,A SJMP$ 方法4: PUSH30H PUSH40H POP30H POP40H SJMP$l8051算術運算指令包括加、減、乘、除基本四則運算l算術運算結果將使進位CY、半進位AC、溢出位OV三個標志位置位或復位,只有加1和減1指令不影響這些標志位l加、減、乘、除及十進制調整指令,目的操作數(shù)均為累加器A。(1) 加法指令(四條)ADD A,Rn;A A + RnADD A,direct;A A +(direct)ADD A,Ri ;A A +(Ri)ADD A,#data ;A A

48、 + #data(2)帶進位加指令(四條) ADDC A,Rn;A A + Rn + C ADDC A,direct;A A +(direct)+ C ADDC A,Ri;A A +(Ri)+ C ADDC A,#data;A A + #data + C C為來自PSW狀態(tài)寄存器中的進位位C 功能:把源操作數(shù)指出的內容和進位標志位 CY都加到累加器A中,結果存在A中 例:設(A)=03CH,(R0)=0AAH,CY=1, 執(zhí)行指令 ADDC ,R0 后,A=6EH (A):1100 0011 +(CY):0000 0001 1100 0100 +(R0):1010 1010 0110 1110

49、 標志位CY=1,AC=0(3) 帶借位減指令 SUBB A,Rn;A A - Rn - C SUBB A,direct;A A -(direct)- C SUBB A,Ri;A A -(Ri)- C SUBB A,#data;A A - #data C 功能:從累加器A中減去源操作數(shù)指出的內容和進位標志位CY的值,差存放在累加器A中 例:設(A)=0C9H,(R2)=20H, (20H)=54H,CY=1 執(zhí)行指令 SUBB,R2后, A=74H (A):1100 1001 (CY):0000 0001 1100 1000 (R2):0101 0100 0111 0100 標志位CY=0,A

50、C=0(4) 乘法指令 MUL AB;BA AB A和B中各存放一個8位無符號數(shù),指令執(zhí)行后,16位乘積的高8位在B中,低8位存A中。 例: (A)=30H, (B)=60H; 執(zhí)行 MUL AB 后,A=00H,B=12H (5) 除法指令 DIV AB;AB商在A中,余數(shù)在 B中 A和B中各存放一個8位無符號數(shù),A放被除數(shù),B放除數(shù)。指令執(zhí)行后,A中存放商,B中存入余數(shù)。若B=00H,則指令執(zhí)行后OV=1,A與B不變。 例: (A)=30H,(B)=07H; 執(zhí)行 DIV AB 后,A=06H,B=06H(6) 加1指令 (5條) INC A; A A + 1 INC Rn ; Rn Rn + 1 INC direct; (direct) (direct)+ 1 INC Ri; (Ri)(Ri)+ 1 INC DPTR; DPTR DPTR + 1功能:將操作數(shù)所指定的單元加,其操作不影響PSW;若原單元內容為FFH,加1后溢出為00H,也不影響PSW。例:(30H)=22H,執(zhí)行 INC 30H 后, (30H)=23H (7) 減1指令DEC A;A A - 1DEC Rn

溫馨提示

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

評論

0/150

提交評論