




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第二章 1.MCS51主要性能特點 MCS51產品分類 MCS51是高性能的8位單片機系列產品,它包括8051、80C51和8052三類產品。 8051是HMOS工藝的芯片; 80C51是CHMOS工藝的芯片; 8052是在8051基礎上改進了部分功能的HMOS工藝的芯片。 每類產品中都包括了三個芯片: 8051、8751、8031 80C51、87C51、80C31 8052、8752、8032第1頁/共151頁2第二章 1. MCS51主要性能特點 MCS51產品分類第2頁/共151頁3第二章 1.MCS51主要性能特點 MCS51主要功能 內部程序存儲器容量(ROM):4KB/8KB
2、內部數據存儲器容量(RAM):128B/256B I/O口:數量較多,4個雙向并口,1個全雙工串口,32線 外部程序存儲器尋址空間:內外程序存儲器總空間為64KB, 外部數據存儲器尋址空間:64KB,各型號一致 定時器/計時器:51子系列2個16位T/C,52子系列3個,4種工作模式。 串行口:1個全雙工串口,占用2根I/O線構成,4種模式 寄存器區:內部RAM中開辟4個通用工作寄存器區,32個通用寄存器,可適應多級中斷或子程序嵌套。第3頁/共151頁4第二章 1.MCS51主要性能特點 MCS51主要功能 中斷系統:5個中斷源,2個可編程優先級。 堆棧:位置可編程,深度可達128字節,即整個
3、片內RAM。 布爾處理器:有1個位(布爾)處理機,一位機,有自己的CPU、位寄存器、I/O口和指令集(MCS-51的指令子集)。適用于控制目的和解決邏輯問題。 指令系統:共111條指令。算術邏輯運算、數據傳送、位操作、轉移控制。 52子系列的增強: 片內RAM:256B (51子系列為128B) 片內ROM:8KB (51子系列為 4KB) T/C:3個 (51子系列為2個) 中斷源:6個 (51子系列為5個)第4頁/共151頁5第二章 2.內部結構與外部引腳 MCS51單片機的內部結構框圖內部總線時鐘電路CPUINT0T1T0并行接口串行接口P0 P1 P2 P3TXD RXD中斷系統ROM
4、RAM定時/計數器INT1第5頁/共151頁6第二章 2.內部結構與外部引腳 MCS51單片機的內部由以下8個功能部件組成;1個8位中央處理器CPU振蕩器和時鐘電路4KB內部程序存儲器(ROM/EPROM)128B內部數據存儲器2個16位定時器計數器4個并行IO口1個全雙工串行IO口中斷系統 各部件是通過片內單一總線連接而成 其基本結構是通用CPU加外圍接口的結構模式 功能部件的控制采用了特殊功能寄存器的集中控制方法第6頁/共151頁7第二章 2.內部結構與外部引腳 MCS51單片機的內部邏輯框圖第7頁/共151頁8第二章 2.內部結構與外部引腳 MCS51單片機多采用DIP封裝,也有方形封裝
5、,40個有效引腳。第8頁/共151頁9第二章 2.內部結構與外部引腳nMCS51單片機40個有效引腳,分為4類:n2個專用主電源引腳:nVCC(40腳):+5V主電源nVSS(20腳):地第9頁/共151頁10第二章 2.內部結構與外部引腳n2個外接晶體引腳:nXTAL1(19腳):片內為反向放大器輸入端。使用片內振蕩電路時,外接晶振和電容;使用外部振蕩電路時接地。nXTAL2(18腳):片內為反向放大器輸出端。使用片內振蕩電路時,外接晶振和電容;使用外部振蕩電路時,接外部時鐘信號。n4個控制/電源復用引腳:nRST/VPD(9腳):在振蕩器工作時,引腳上出現連續2個機器周期以上高電平時,單片
6、機復位; VCC掉電期間,可接備用電源,用于內部RAM的數據保持VCC低于規定水平,此引腳上接規定的電壓(50.5V),作為備用電源。第10頁/共151頁11第二章 2.內部結構與外部引腳nALE/ (30腳):當訪問外部存儲器時,ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節。對于EPROM型的單片機(如8751),在EPROM編程期間,此引腳用于輸入編程脈沖(PROG)。n (29腳):此腳的輸出是外部程序存儲器的讀選通信號。n (引腳):當EA端保持高電平時,訪問內部程序存儲器,但在PC(程序計數器)值超過0FFFH(對8051875180C51)或1FFFH(對8052)時,將自動
7、轉向執行外部程序存儲器內的程序。當EA保持低電平時則只訪問外部程序存儲器,不管是否有內部程序存儲器。對于常用的8031來說無內部程序存儲器,所以EA腳必須常接地,這樣才能只選擇外部程序存儲器;對于EPROM型的單片機(如8751),在EPROM編程期間,此引腳也用于施加21伏的編程電源(VPP)。PROGPSEN/VPPEA第11頁/共151頁12第二章 2.內部結構與外部引腳n32個I/O引腳:P0.0P0.7 、P1.0P1.7 、P2.0P2.7和 P3.0P3.7n P0口(39腳一32腳):是雙向8位三態IO口,在外接存儲器時,作為地址總線的低8位及數據總線復用。n P1口(1腳一8
8、腳):是8位準雙向IO口。由于這種接口輸出沒有高阻狀態,輸入也不能鎖存,故不是真正的雙向IO口。nP2口(21腳一28腳):是8位準雙向IO口。在訪問外部存儲器時,作為高8位地址總線送出高8位地址。nP3口(10腳一17腳):是8位準雙向IO口。在MCS-51中,這8個引腳還具有第二功能,是復用雙功能口。第12頁/共151頁13第二章 2.內部結構與外部引腳nP3口第二功能引腳定義: 第13頁/共151頁14第二章 3.中央處理器nCPU的組成:nMCS51單片機內的CPU與其他微處理器一樣,是單片機的指揮和執行部件,完成運算和控制功能。n在邏輯上它是由8位算邏單元、定時控制部件及專用寄存器組
9、組成。第14頁/共151頁15第二章 3.中央處理器第15頁/共151頁16第二章 3.中央處理器n 1算術邏輯單元ALU:n對8位二進信息進行加、減、乘、除、比較等算術運算;n“與”、“或”、“異或”等邏輯運算及取反、清零、置1等邏輯操作功能;n具有很強的調用、轉移、判跳操作和豐富的數據傳送功能。n還具有極強的布爾處理(位處理)功能。n 2內部寄存器n(1)工作寄存器組:MCS-51指定內部數據存儲器(內部RAM)中四組8個字節存儲單元為工作寄存器,并以符號R0,R1 R7 表示。03每組的地址分別為n0007H 08H一0FH 10H一17H 18H一1FHn使用哪一組工作寄存器是由PSW
10、的設置來決定的。n工作寄存器的功用類似于一般CPU中的通用寄存器組。第16頁/共151頁17第二章 3.中央處理器n(2)寄存器A、B:n寄存器A即累加器。在算術運算中用于存放操作數和運算結果;在邏輯操作、數據傳送等操作中作為源或目的操作數。n寄存器B主要用于和累加器配合以執行乘除運算,存放第二個操作數。B也可以作一般的寄存器使用。n(3)程序狀態字PSW: PSW是一個可編程的8位寄存器,用于存放當前指令執行結果的有關狀態,其中有一位可由用戶使用。CYCYACACF0F0RS1RS1RS0RS0OVOVP P第17頁/共151頁18 進位位CY: 表示運算結果有無進位(由硬件改變)CY=1表
11、示有進位,CY=0表示無進位。 在布爾操作中CY是布爾累加器。(由軟件改變)第二章 3.中央處理器第18頁/共151頁19 輔助進位位AC標志: 運算器低四位(低半字節)向高四位(高半字節)的進位情況。有進位則AC1,無進位則AC0。 此位主要用于BCD碼的運算。 由硬件改變第二章 3.中央處理器第19頁/共151頁20 用戶標志位F0: 是給用戶提供的一個狀態標志位。 可由用戶定義為某一狀態的標志。 由用戶在程序中改變。(由軟件改變)第二章 3.中央處理器第20頁/共151頁21 RS1、RS0: 是工作寄存器組的選擇位。用以確定所使用的工作寄存器的地址。 這兩位由程序設定,在使用工作寄存器
12、前應設定這兩位的狀態,從而指定了當前使用的工作寄存器組的地址。(由軟件改變)第二章 3.中央處理器第21頁/共151頁22 溢出位OV標志: 運算結果有無溢出的狀況,由硬件改變。OV1表示有溢出,OV0表示無溢出。 用于對有符號數加/減運算時的結果判斷。 設置規則為: 為第6位向第7位進位 為第7位向CY進位 乘法指令MUL影響OV 積255時,OV=1。積在BA寄存器對中。 積255時,OV=0。積在A寄存器中。 除法指令DIV影響OV 除數=0時,OV=1第二章 3.中央處理器76CCOV6C7C第22頁/共151頁23 奇偶校驗位P標志 運算操作結果中,含有“1”的個數的奇偶性。 MCS
13、-51為奇校驗,即 P=1時表示“1”的個數為奇數, P=0時表示“1”的個數為偶數。 常用于數據傳輸中的檢驗。第二章 3.中央處理器第23頁/共151頁24 (4)堆棧指針SP: 8位的堆棧指針SP指示當前堆棧棧頂的地址。 MCS-51的堆棧設在內部數據存儲器中(內堆棧)。 堆棧是向上生長型(指地址值)。 PUSH:先+1,再入棧 POP: 先出棧,再-1 SP初值愈小,堆棧可以愈深。最深為整個內部RAM。 用戶可以通過SP的設置來定義內部數據存儲器中的任一連續區作為堆棧。 在單片機復位后SP=07H,在不重新定義SP時,第1個壓棧的數據存入08H單元(第1工作寄存器區)。第二章 3.中央處
14、理器第24頁/共151頁25 (5)數據指針DPTR 這是一個16位的寄存器,可分成兩個字節:高字節DPH和低字節DPL。 其功能是存放16位地址,以指示數據存儲器的任何單元。 對64KB外部數據存儲器空間尋址,用作間接尋址寄存器 MOVX A, DPTR MOVX DPTR, A 對程序存儲器空間尋址,作為基址寄存器,基址+變址。 MOVC A,A+DPTR第二章 3.中央處理器第25頁/共151頁26 (6)程序計數器PC 這是一個16位的寄存器,無地址,也不可尋址。 CPU總是按PC的指示讀取程序。PC功能是存放16位地址,以指示下一條要執行的指令的地址。 PC由硬件自動加1,因此CPU
15、執行程序一般是順序方式。當發生轉移、子程序調用、中斷和復位等操作,PC被強制改寫,程序執行順序也發生改變。 復位時,PC=0000H。第二章 3.中央處理器第26頁/共151頁27 CPU定時 MCS-51單片機的振蕩器頻率規定為1.212MHz。該振蕩器周期,稱為振蕩周期。 振蕩脈沖由內部電路形成兩相的時鐘信號,兩相脈沖組成一個狀態周期,也稱為。(=2個振蕩周期)機器周期由6個狀態組成=6個時鐘周期=12個振蕩周期指令周期:執行1條指令所占用的全部時間。 若振蕩器頻率為12MHz, 振蕩周期=1/12 s 時鐘周期=1/6 s 機器周期=1 s 指令周期=14 s第二章 3.中央處理器第27
16、頁/共151頁28 基本定時時序關系第二章 3.中央處理器S機器周期1取指令、譯碼指令周期機器周期2取操作數、執行第28頁/共151頁29 一、存儲器結構 MCS-51單片機的存儲器結構采用哈佛結構,將程序和數據分開存放,程序存儲器用以存放程序和固定的表格數據,而數據存儲器中只能存放數據,不能執行程序。兩者各有自己的尋址方式、尋址空間和控制系統,這對單片機的“面向控制”的實際應用極為方便有利。第二章 4.存儲器與特殊功能寄存器第29頁/共151頁30 8051存儲器組織結構第二章 4.存儲器與特殊功能寄存器第30頁/共151頁31 物理上4個存儲器空間: 片內/片外程序存儲器空間 片內/片外數
17、據存儲器空間 邏輯上3個存儲器地址空間: 64KB 片內外統一的程序存儲器 256B 片內數據存儲器 64KB 片外數據存儲器第二章 4.存儲器與特殊功能寄存器第31頁/共151頁32 二、程序存儲器 程序存儲器用于存放要執行的程序指令和固定的表格、常數。 MCS-51單片機由16位的程序計數器(PC)和16條地址線尋址程序存儲器,尋址范圍為64KB。 內部程序存儲器和外部程序存儲器在邏輯上是統一編址的。對于有內部ROM或EPROM的芯片8051和8751,其內部程序存儲器地址安排在0000H0FFFH的4KB空間,而外部程序存儲器的地址空間為1000HFFFFH(60KB)。 執行程序時,不
18、管是從內部程序存儲器或是從外部程序存儲器讀取指令,其操作速度是一樣的。 程序存儲器的操作完全由程序計數器PC控制,PC指示將要執行的程序指令的地址。 采用立即尋址和基址+變址尋址第二章 4.存儲器與特殊功能寄存器第32頁/共151頁33 程序存儲器有以下特殊單元: 0000H 單片機復位后PC=0000H,初始程序入口 0003H 外部中斷 000BH 定時/計數器T0溢出中斷 0013H 外部中斷 001BH 定時/計數器T1溢出中斷 0023H 串行口中斷 一般在上述地址放置跳轉指令,跳至真正的程序入口第二章 4.存儲器與特殊功能寄存器0INT1INT第33頁/共151頁34 三、數據存儲
19、器 數據存儲器用以存放和讀取數據,它不能存放和執行程序指令。 數據存儲器在物理上和邏輯上都分為兩個地址空間: 內部數據存儲器(內部RAM)地址空間為00H7FH, 128B 外部數據存儲器(外部RAM)地址空間為0000HFFFFH,64KB 兩空間使用不同指令來訪問的: 訪問內部RAM用MOV指令 訪問外部RAM用MOVX指令第二章 4.存儲器與特殊功能寄存器第34頁/共151頁35 8051內部RAM的低128B單元,可按功能分為三個區域: 工作寄存器區: 字節地址:00H1FH 位尋址區: 字節地址:20H2FH,位地址為:00H7FH 數據緩沖區/堆棧區: 字節地址:30H7FH,可用
20、作堆棧和參與運算。 8051高128B為專用寄存器區(S F R) (地址為80HFFH) 其中只有26字節有定義。 對8052,多128B數據存儲器,其地址與SFR區地址重疊: 訪問SFR,采用直接尋址 訪問高128B內部RAM,采用寄存器間接尋址第二章 4.存儲器與特殊功能寄存器第35頁/共151頁36 內部數據存儲器配置圖: 4個工作寄存器組。每一組包括8個工作寄存器,用符號R0R7表示,同一時刻只選用一組,具體使用哪一組是通過對PSW的RS1、RS0兩位的設置來實現的。切換工作寄存器組很容易實現子程廳嵌套、中斷嵌套時的現場保護。若只使用了一組工作寄存器,則其他三組RAM單元可作為一般的
21、內部RAM作用。 注意位尋址空間,區分位地址和字節地址。 堆棧的位置由SP確定,不能超出內部RAM空間。第二章 4.存儲器與特殊功能寄存器第36頁/共151頁37 四、特殊功能寄存器SFR 要點 MCS-51的特殊功能寄存器地址安排在內部數據存儲器的80H0FFH空間。這種存儲器映象方式允許像訪問內部數據存儲器一樣方便的訪問特殊功能寄存器。對SFR訪問的尋址方式只能為直接尋址。 SFR是用來對片內各功能模塊進行管理、控制、監視的控制寄存器和狀態寄存器。MCS-51片內的I/O口鎖存器、定時器、串行口緩沖器以及各種控制寄存器和狀態寄存器都是以SFR的形式出現。 8051有22個SFR,8052有
22、26個SFR。 8051有11個SFR可以被位尋址,其字節地址可以被8整除。第二章 4.存儲器與特殊功能寄存器第37頁/共151頁38 特殊功能寄存器SFR列表第二章 4.存儲器與特殊功能寄存器符號單元地址名稱位地址符號地址* ACCE0H累加器ACC.7ACC.0E7HE0H* BF0H乘法寄存器B.7B.0F7HF0H* PSWD0H程序狀態字PSW.7PSW.0D7HD0H SP81H堆棧指針 DPL82H數據存儲器指針(低8位) DPH83H數據存儲器指針(高8位) * IEA8H中斷允許控制器IE.7IE.0AFHA8H* IPB8H中斷優先控制器IP.7IP.0BFHB8H* P0
23、80H通道0P0.7P0.087H80H* P190H通道1P1.7P1.097H90H* P2A0H通道2P2.7P2.0A7HA0H* P3B0H通道3P3.7P3.0B7HB0H PCON87H電源控制及波特率選擇 * SCON98H串行口控制SCON.7SCON.09FH98H SBUF99H串行數據緩沖器 * TCON88H定時控制TCON.7TCON.08FH88H TMOD89H定時器方式選擇 TL08AH定時器0低8位 TL18BH定時器1低8位 TH08CH定時器0高8位 TH18DH定時器1高8位 第38頁/共151頁39 特殊功能寄存器SFR中可位尋址的寄存器第二章 4.
24、存儲器與特殊功能寄存器n在CPU介紹中介紹了一些SFR,其他SFR與片內的功能模塊管理有關,在后續相關部分詳細介紹。第39頁/共151頁40 一、IO口內部結構 4個功能很強的8位并行口,32條I/O線,分為P0P3口。 I/O口的每位由鎖存器、輸出驅動器和輸入緩沖器組成。 每個I/O既可作輸入又可作輸出,每一條口線可獨立用作輸入又可用作輸出,作輸出時可鎖存數據,作輸入時可緩沖數據。 每個口包含的鎖存器,P0P3是特殊功能寄存器SFR,可以位尋址。第二章 5.并行I/O口口口字節地址字節地址位地址位地址P080H8087HP190H9097HP2A0HA0A7HP3B0HB0B7H第40頁/共
25、151頁41 IO口的每位鎖存器均由D觸發器組成。在CPU“寫鎖存器”信號驅動下,將內部總線上的數據寫入鎖存器中,鎖存器的輸出端Q反饋到內部總線上,以響應來自CPU的“讀鎖存器”信號,把鎖存器內容讀入內部總線上,送CPU處理。而在響應CPU的”讀引腳”信號時,則將IO端口引腳上的信息讀至內部總線,送CPU處理。 讀IO的指令有兩類,一類是讀鎖存器,一類是讀引腳,這兩種指令的操作是有區別的。第二章 5.并行I/O口第41頁/共151頁42 P0口 輸出 輸入 讀-修改-寫操作 P0在有外部存儲器擴充時,作地址/數據總線復用,分時輸出A0A7 和D0D7 輸出時接上拉電阻;輸入時先寫“1”,再讀入
26、。 可驅動8個LSTTL負載。第二章 5.并行I/O口第42頁/共151頁43 P0位結構第二章 5.并行I/O口第43頁/共151頁44 P1位結構第二章 5.并行I/O口第44頁/共151頁45第二章 5.并行I/O口 P2位結構第45頁/共151頁46第二章 5.并行I/O口 P3位結構第46頁/共151頁47I/O口第二功能注 釋P3.0RXD串行口數據接收端P3.1TXD串行口數據發送端P3.2INT0外部中斷請求0P3.3INT1外部中斷請求1P3.4T0定時/計數器0P3.5T1定時/計數器1P3.6WR外部RAM寫信號P3.7RD外部RAM讀信號 P3口第二功能第二章 5.并行
27、I/O口第47頁/共151頁48 I/O口小結: 應用上: P0:系統擴展;通用I/O口(輸出時,需接上拉電阻。) P1:通用I/O口 P2:系統擴展;通用I/O口 P3:功能口,每位獨立定義;通用I/O口。 P0,P2需復用,位結構設有多路轉換器MUX,由內部控制信號控制。 P3口作通用I/O口時,第2功能輸出控制線由硬件設為高電平;作第2功能時,應由軟件對鎖存器置1。 驅動能力上: P0驅動8個LSTTL負載 P1P3驅動34個LSTTL負載第二章 5.并行I/O口第48頁/共151頁49 I/O口小結: 訪問方式上: 每個I/O口均有兩種讀入方式(用指令區分) 讀鎖存器(讀-修改-寫操作
28、指令) 讀引腳 (是以IO口為原操作數的指令) 例如 ANL P1,A MOV A,P1 系統復位時,所有口鎖存器均置“1”。 注意:讀引腳時,需先向鎖存器寫“1”。第二章 5.并行I/O口第49頁/共151頁50 讀引腳時,需先向鎖存器寫“1”的原因。第二章 5.并行I/O口第50頁/共151頁51第二章 6.定時/計數器 對于定時/計數器來說,不管是獨立的定時器芯片還是單片機內的定時器,大都有以下特點:u定時/計數器有多種工作方式,可以是計數方式也可以是定時方式。u定時/計數器的計數值是可變的,當然對計數的最大值有一定限制,這取決于計數器的位數。計數的最大值也就限制了定時的最大值。u可以按
29、照規定的定時或計數值,在定時時間到或者計數終止時,發出中斷申請,以便實現定時控制。第51頁/共151頁52 一、功能和結構: MCS-51有2個16位可編程定時/計數器(Timer/Counter):T0,T1 每個都具有T/C兩種功能和4種工作方式。 有相應的SFR對它們進行編程控制。 工作方式寄存器TMOD 控制寄存器TCON 使用時,靠用戶軟件設置。復位后,全部被清零。第二章 6.定時/計數器第52頁/共151頁53第二章 6.定時/計數器n單片機CPU和T/C的關系第53頁/共151頁54第二章 6.定時/計數器 定時/計數器的原理 本質上是一個加一計數器 定時器功能:計數輸入信號為內
30、部時鐘脈沖,每個機器周期(12個振蕩周期)使計數寄存器的值增一。(計數頻率=1/12振蕩頻率) 計數器功能:計數脈沖由外部輸入(T0-P3.4, T1-P3.5),輸入信號下跳變10時,計數值加1。每個機器周期對外部輸入采樣1次,確認1次下跳變用2個機器周期,計數頻率=1/24振蕩頻率。第54頁/共151頁55 二、相關SFR: TMOD: 地址89H,不可位尋址第二章 6.定時/計數器第55頁/共151頁56 門控方式選擇位GATE : GATE=0,非門控方式(內部啟動): TRx=1,啟動定時器工作; TRx=0,停止定時器工作。 GATE=1,門控方式(外部啟動): TRx=1且引腳/
31、INTx=1才啟動。 /INT0控制T0, /INT1控制T1 定時器/計數器功能選擇位 0:定時器 1:計數器第二章 6.定時/計數器/CT第56頁/共151頁57 方式選擇位:第二章 6.定時/計數器M1 M0工作方式功 能 說 明0 0方式013位計數器0 1方式116位計數器1 0方式2自動再裝入8位計數器1 1方式3定時器0:分成兩個8位計數器定時器1:停止計數第57頁/共151頁58 TCON:地址88H,可位尋址。第二章 6.定時/計數器第58頁/共151頁59 啟動控制位TR0、TR1 =0,停止定時器工作 =1,分情況: GATE=0,啟動定時器工作 GATE=1,由/INT
32、x控制, /INTx為高電平,啟動定時器工作 /INTx為低電平,禁止定時器工作 溢出中斷請求標志位TF0、TF1 定時器溢出時,由硬件置TFx=1,引起中斷請求,CPU響應Tx中斷后(進入中斷處理程序),硬件自動清零TFx。 TFx也可以由程序查詢和清零。 低4位用于外部中斷控制,在后面介紹。第二章 6.定時/計數器第59頁/共151頁60 三、工作方式: 兩個T/C工作方式有所不同。 T0可用: 方式0,1,2,3 T1可用: 方式0,1,2第二章 6.定時/計數器第60頁/共151頁61 工作方式0:13位T/C M1M0兩位為00時,定時/計數器為工作方式0。 13位是由TLx的低五位
33、和THx的全部8位構成。 C/T=0/1,決定其功能:計數信號為內部時鐘或外部輸入 可計數最大值:213=8192第二章 6.定時/計數器第61頁/共151頁62 工作方式1:16位T/C M1M0兩位為01時,定時/計數器為工作方式1。 16位是由全部TLx和THx構成。 與方式0相比,除了位數不同,其他狀態和控制都相同。 可計數最大值:216=65536第二章 6.定時/計數器第62頁/共151頁63 工作方式2:自動重裝載8位T/C M1M0兩位為10時,定時/計數器為工作方式2。 THx為重裝載常數,TLx為計數器 TLx溢出時,THxTLx,THx內容不變。 常用于 周期性工作的精確
34、定時 串行口波特率發生器第二章 6.定時/計數器第63頁/共151頁64 工作方式3:T0分為2個8位T/C M1M0兩位為11時,定時/計數器為工作方式3。 方式3只對T0有效,T1在方式3下不工作。 T0分為2個獨立的8位計數器; TL0利用了T0的狀態和控制位(TR0,GATE,C/T和TF0),功能同方式0、方式1。 TH0使用了定時計數器1的控制啟動位TRl和溢出標志位TF1(占用的T1的中斷),只能完成定時功能。 方式3是為了在使用串行口時,需要兩個獨立的計數器而特定提供的。此時把定時器1設定為方式2,用作串行通信的波特串發生器,不使用中斷(即溢出標志TF1)。第二章 6.定時/計
35、數器第64頁/共151頁65第二章 6.定時/計數器第65頁/共151頁66 四、T/C的編程和應用 編程的基本環節 選擇計數脈沖源,即選擇功能 定時功能:內部時鐘源 計數功能:外部信號輸入 選擇兩個寄存器組成計數器的形式:THx, TLx 選擇啟動、停止的操作方式(是否使用GATE位) 計數器預置初始值 定時:初始值設定了溢出的周期 計數:通常為零 若使用了中斷功能,應做有關設置工作(在中斷系統介紹) 啟動T/C第二章 6.定時/計數器第66頁/共151頁67 編程使用:1、方式0: (13位T/C) 要求: T0產生1ms的定時, 并使P1.0輸出周期為2ms的方波,設晶振為6MHz。 定
36、時,方式0,不用GATE位, GATE=0,C/T=0,M1M0=00,TMOD=00H 計算初始值:機器周期=12/晶振頻率=12/(6106)=2us設初始值為X, (213 X) 2106秒= 103 秒解得 X = 7692 = 1E0CH13位T/C: TH0的8位+TL0的低5位第二章 6.定時/計數器 F0 0C1100000011100001C0E1第67頁/共151頁68 得 TH0=0F0H TL0=0CH 程序:第二章 6.定時/計數器START: MOVTMOD, #00H;置方式0, 完成1,2,3MOVTL0,#0CH;初始值MOVTH0,#0F0HSETBTR0;
37、啟動定時器LOOP: JBCTF0,OUTPUT;等待定時到AJMPLOOPOUTPUT:MOVTL0,#0CH;定時到,需重設初始值MOVTH0,#0F0HCPLP1.0;取反AJMPLOOP;循環第68頁/共151頁692、方式1: (16位T/C) 要求: T0產生1ms的定時, 并使P1.0輸出周期為2ms的方波,設晶振為6MHz。 定時,方式1,不用GATE位, GATE=0,C/T=0,M1M0=01,TMOD=01H 計算初始值:機器周期=12/晶振頻率=12/(6106)=2us設初始值為X, (216 X) 2106秒= 103 秒解得 X = FE0CH 得 TH0=0FE
38、H TL0=0CH第二章 6.定時/計數器第69頁/共151頁70 程序:第二章 6.定時/計數器START: MOVTMOD, #01H;置方式1, 完成1,2,3MOVTL0,#0CH;初始值MOVTH0,#0FEHSETBTR0;啟動定時器LOOP: JBCTF0,OUTPUT;等待定時到AJMPLOOPOUTPUT:MOVTL0,#0CH;定時到,需重設初始值MOVTH0,#0FEHCPLP1.0;取反AJMPLOOP;循環第70頁/共151頁71第二章 6.定時/計數器第71頁/共151頁72第二章 6.定時/計數器3、方式2: (自動重裝載8位T/C) 要求:利用定時器T1的方式2
39、對外部信號計數,要求每計滿100次對P1.0端取反。解:計數功能:C/T = 1方式2:M1M0=10不用門控位:GATE=0得:TMOD=0110 0000 = 60H設計數初值X 100=28-X X=256-100=156=9CH程序:ORG 0000HMAIN:MOV TMOD,#60H ; 方式 MOV TL1,#156 ; 初值 MOV TH1,#156 ; 重裝 SETB TR1 ; 啟動計數LOOP: JNB TF1, LOOP; 等待計夠CPL P1.0 ; 取反CLR TF1SJMP LOOP第72頁/共151頁73第二章 6.定時/計數器4、方式3: (T0分為2個8位C
40、OUNTER) 要求: T0方式3,分別產生200s和400s的定時, 并使P1.0和P1.1分別產生400s和800s的方波,設晶振為6MHz。解:需要利用中斷方式。機器周期 t=2s TL0定時200s TH0定時400s 定時溢出產生中斷,將P1.0和P1.1取反。方式3,GATE=0,C/T=0,M1M0=11,TMOD=03H 初始值:TL0初始值(28 X) 2= 200 X = 156 = 9CHTH0初始值(28 Y) 2= 400 Y = 56 = 38H因涉及中斷系統,程序略去。第73頁/共151頁74第二章 6.定時/計數器5、運行中讀取T/C 在讀取運行中的定時/計數器
41、時要特別小心,否則讀取的計數值有可能出錯。 原因是不可能在同一時刻同時讀取TLx和THx的內容。 先讀TLx,后讀THx:由于定時器在不斷運行,讀THx前,若恰好產生了TLx向THx進位的情形,則讀得的值錯誤。 先讀THx,后讀TLx:讀TLx前,若恰好產生了TLx向THx進位的情形,則讀得的值還是錯誤。 一種方法是:先讀THx,后讀TLx,再讀THx,若兩次讀 得的THx值相同,則可確定讀得的內容是正確的。若前后兩次讀得值不同,則重復上述過程,這次重復讀得的內容就應該是正確的了。(跳過進位時段)第74頁/共151頁75第二章 6.定時/計數器 設讀得的TH0和TL0分別存放在R1和R0中,程
42、序段如下: RDTIME:MOV A,TH0;讀TH0中內容MOV R0,TL0;讀TL0中內容CJNE A,TH0, RDTIME;再讀,兩次TH0比較MOV R1,A;OK!RET第75頁/共151頁76第二章 6.定時/計數器6、門控制位的功能和使用 門控制位GATE=1,且運行控制位TR01時,允許外部輸入電平控制定時器,即INT01啟動計數器;INT00則停止計數。利用這一特點可以測量外部輸入脈沖的寬度。 例:利用定時器計數器T0的門控制位GATE測量INT0引腳上出現的脈沖寬度。 解:應采用T0以定時功能工作,由外部脈沖通過INT0引腳控制計數器的開關,每次開關通過計數器的時鐘(機
43、器周期)信號數量是一定的。計數值乘上機器周期就是脈沖寬度。編程時取T0的方式1定時,且置GATE=1、TR0=1。計數初值取00H。當INT0出現高電平時開始計數,INT0為低電平時停止計數,讀出T0的值。第76頁/共151頁77第二章 6.定時/計數器定時功能:C/T = 0,方式1:M1M0=01,門控位:GATE=1得:TMOD= 0000 1001 = 09H 程序:START:MOVTMOD,#09H; 功能與方式MOVTL0,#00H; 初值0MOVTH0,#00HWAIT1:JBP3.2,WAIT1 ; 等待INT0變低SETBTR0 ;變低,啟動定時,INT0=0,未啟動WAI
44、T2:JNBP3.2,WAIT2 ; 等待INT0變高,WAIT3:JBP3.2,WAIT3 ; 變高,真正定時CLRTR0; 變低,停止定時MOVR0,TL0; 在停止狀態讀取MOVR1,TH0HERE:SJMPHERE第77頁/共151頁78第二章 7.串行接口 一、兩種通信形式:并行通信的特點:短距離、高速度,傳輸線多。串行通信的特點:長距離,高速度,傳輸線少。第78頁/共151頁79 二、串行通信概述 1.異步通信方式(Asynchronous Data Communication) 以字符為傳送單位,用起始位和停止位標識每個字符的開始和結束,字符間隔不固定,只需字符傳送時同步。 發送
45、端和接收端不是同一個時鐘(異步) 是幀格式傳送,幀格式由4部分組成: 起始位 數據位 奇偶校驗位 停止位第二章 7.串行接口第79頁/共151頁80 2、異步通信的特點: 每幀傳送一個字符(字節),字符間不一定相連; 系統簡單可靠、造價低, 傳輸速度較低。第二章 7.串行接口第80頁/共151頁81 3、同步通信方式(Synchronous Data Communication) 同步通信的含義: 以一串字符為一個傳送單位,字符間不加標識位,在一串字符開始用同步字符標識,發送端和接收端使用同一個時鐘,同步發、收。 同步通信的幀格式: 由同步字符和多個(大量)連續的數據構成。 同步通信的特點:
46、通訊雙方須嚴格同步,硬件要求高 傳輸速度高 短距離傳輸 系統復雜 造價高第二章 7.串行接口第81頁/共151頁82 4、波特率 是描述數據傳輸速率的物理量。 定義為:每秒鐘傳送的二進制代碼的位數。 單位:比特(b/s)例:要求每秒傳送120個字符,每幀為10位。解: B=12010=1200波特每位0.83ms有效數據位傳輸率=1208=960位/秒第二章 7.串行接口第82頁/共151頁83 5、串行通信的傳輸方式 單工方式(Simplex) 半雙工方式(Half Duplex) 全雙工方式(Full-duplex)第二章 7.串行接口第83頁/共151頁84 三、MCS-51的串行接口
47、MCS-51有一可編程的全雙工串行通信接口 可用作 異步串行通信 同步移位寄存器 通信連接 1對1單機通信 1對多多機通信 幀格式有 8位 10位 11位 可設置不同波特率。第二章 7.串行接口第84頁/共151頁85 1、串行口結構第二章 7.串行接口第85頁/共151頁86 串行口數據緩沖器SBUF SBUF是一個SFR 內部硬件是兩個獨立的接收、發送緩沖器SBUF,一個用作發送;一個用作接收。發送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,兩者共用一個字節地址(99H)。 可通過指令對SBUF的讀寫來區別:對接收緩沖器的操作還是對發送緩沖器的操作。 CPU寫SBUF,就是修改發送
48、緩沖器: CPU讀SBUF,就是讀接收緩沖器。第二章 7.串行接口第86頁/共151頁87 串行口控制寄存器SCON 用來控制串行口的工作方式和狀態,字節地址為98H,它可以位尋址。在復位時所有位被清零。第二章 7.串行接口第87頁/共151頁88 SM0、SM1:串行口工作方式選擇位第二章 7.串行接口第88頁/共151頁89 SM2:多機通信控制位 主要用于工作方式2和工作方式3。 如SM21,則接收到第9位數據 RB8為0時不啟動接收中斷標志RI(即RI0),并且將接收到的前8位數據丟棄 RB8為1時,才將接收的前8位數據送入SBUF,并置位RI產生中斷請求 當SM2=0時,則不論第9位
49、數據為1或為0,都將前8位數據裝入SBUF中,并產生中斷請求。 在方式0時,SM2必須為0第二章 7.串行接口第89頁/共151頁90 REN:允許接收控制位 =1:允許串行口接收 =0:禁止接收 TB8:發送的第9位數據 方式2和方式3時用于存放發送數據第9位 可作為奇偶檢驗位 多機通信特征位(1:是地址;0:是數據) TB8由軟件置位或復位第二章 7.串行接口第90頁/共151頁91 RB8:接收的第9位數據 方式2和方式3時用于存放接收數據第9位 可作為奇偶檢驗位 在方式1下,若SM2=0,則RB8用于存放接收到的停止位 方式0下,不使用RB8第二章 7.串行接口第91頁/共151頁92
50、 TI:發送中斷標志 用于指示一幀數據是否發送完。 在方式0下,發送電路發送完第8位數據時,TI由硬件置位 在其它方式下,TI在發送電路開始發送停止位時置位, 發送完后由硬件置位,必須由軟件復位 CPU查詢TI狀態,便可知一幀信息是否已發送完畢第二章 7.串行接口第92頁/共151頁93 RI:接收中斷標志 用于指示一幀數據是否接收完。 在方式0下,RI在接收電路接收到第8位數據時由硬件置位 在其它方式下,RI是在接收電路接收到停止位的中間位置時置位 RI供CPU查詢,以決定CPU是否需要從SBUF(接收)中提取接收到的字符或數據 必須由軟件復位第二章 7.串行接口第93頁/共151頁94 特
51、殊功能寄存器PCON PCON主要是為CHMOS型單片機的電源控制設置的專用寄存器,字節地址為87H,不能位尋址。 SMOD:波特率選擇位 在方式1、方式2和方式3時,串行通信的波特率和SMOD有關。 SMOD=1,通信波特率乘2; SMOD=0,波特率不變。第二章 7.串行接口SMODSMODGF1GF1GF0GF0PDPDIDLIDL D7 D6 D5 D4 D3 D2 D1 D0 第94頁/共151頁95 2、串行口工作方式 MCS51的串行口有四種工作方式,它是由SCON中的SM1和SM0來決定的。第二章 7.串行接口第95頁/共151頁96 方式0 為同步移位寄存器方式,常用于擴展I
52、/O口 方式0的特點: 一幀僅有8位數據,無起始和結束位,低位在前。 波特率固定,其值為osc/12。 連接: RXD:數據輸入/輸出端。 TXD:同步脈沖輸出端,每個脈沖對應一個數據位。第二章 7.串行接口第96頁/共151頁97 工作過程: 發送過程:寫入SBUF,啟動發送,一幀發送結束,TI=1 接收過程:REN=1且RI=0,啟動接收,一幀接收完畢,RI=1第二章 7.串行接口第97頁/共151頁98n例 外接移位寄存器輸出( (串行轉換為并行) )第二章 7.串行接口第98頁/共151頁99 方式1 為波特率可變的8位數據位的異步通信接口 特點: 一幀有10位,1位起始位,8位數據位
53、,1位停止位。接收時停止位進入SCON的RB8。 RXD引腳用于接收數據,TXD引腳用于發送數據。可以同時進行收、發。 波特率可變,由T1的溢出率決定。第二章 7.串行接口第99頁/共151頁100 工作過程 發送:寫入SBUF,同時啟動發送,一幀發送結束,TI=1。 接收:REN=1,允許接收。接收完一幀,若RI=0且停止位為1 (或SM2=0),將接收數據裝入SBUF,停止位裝入RB8,并使RI=1;否則丟棄接收數據,不置位RI。第二章 7.串行接口第100頁/共151頁101 方式2,3 為9位異步通信接口 特點: 一幀有11位。1位起始, 8位數據位, 1位校驗/特征位(接收時該位進入
54、SCON的RB8), 1位停止位。 RXD引腳用于接收數據,TXD引腳用于發送數據,可以同時進行收、發。 方式2波特率固定有兩種值: fosc/32或fosc/64 方式3波特率可變,由T1的溢出率決定。 可以進行多機通信第二章 7.串行接口第101頁/共151頁102 工作過程: 發送:先裝入TB8,寫入SBUF并啟動發送,發送結束,TI=1。 接收:REN=1,允許接收。接收完一幀,若RI=0且第9位為1 (或SM2=0),將接收數據裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數據,不置位RI。第二章 7.串行接口第102頁/共151頁103 3、串行通信的波特率設置 MC
55、S-51的串行通信的波特率與下列因素有關 工作方式選擇(波特率有固定和可變之分) 系統振蕩頻率fosc (晶振頻率) PCON的SMOD位設置 定時器T1的設置第二章 7.串行接口第103頁/共151頁104 各工作方式下的波特率 方式0的波特率是固定的,為系統時鐘的12分頻(fosc/12),即每個機器周期傳送一位數據位。 串行口用方式2工作時,波特率為(2SMOD/64)fosc 。 即SMOD=0, fosc/64 即SMOD=1, fosc/32 串行口方式1和方式3用定時器T1作為波特率發生器,其波特率有多種選擇,與T1的溢出率有關第二章 7.串行接口第104頁/共151頁105 T
56、1溢出速率的計算 溢出速率定義為: T1溢出速率= T1溢出次數/秒 溢出速率與定時器的工作方式有關。T1在作為波特率發生器時,設置為方式2自動可重裝載8位定時器。 T1溢出率與這兩個因素有關 fosc T1的定時初始常數N(=TH1) T1定時器計數機器周期(12/fosc)的個數第二章 7.串行接口第105頁/共151頁106 T1溢出率=1/定時時間t t = (28-初值N)*機器周期 =(28-初值N)12/fosc T1溢出率= fosc / 12 / (28-初值N) 例如:若fosc=6MHz,TH1=N=0F3H T1溢出率38461.5次/秒第二章 7.串行接口第106頁/
57、共151頁107 波特率的設置 方式1、3的波特率公式為:波特率 =(2SMOD /32 )(T1溢出率) = 應用中,多是先給定波特率,在據此決定定時器初值常數,得 例如,若fosc=6MHz,SMOD=1,波特率=2400計算可得:N = 242.98 243 = 0F3H第二章 7.串行接口)2(123228NfOSCSMOD12322256波特率OSCSMODfN第107頁/共151頁108 初始化程序:INIT:MOV TMOD, #20H ; T1為方式2定時MOVTH1, #0F3H ; 常數MOVTL1, #0F3H; 初值SETB TR1; 啟動T1MOVPCON, #80H
58、; SMOD=1MOVSCON, #50H; 串行口方式1第二章 7.串行接口第108頁/共151頁109 常用波特率和定時器T1初值關系第二章 7.串行接口波特率(方式1、3)fosc=6Mfosc=12Mfosc = 11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5k 12FFH 19.2k 12FDH9.6k 02FDH4.8k 12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01
59、FEEBH01FEFFH第109頁/共151頁110 SMOD位對波特率的影響 上頁的表中定時器T1的時間常數初值和相應波特率之間有一定誤差,是近似值。 SMOD的選擇對波特率的準確度有影響。 例如:波特率2400,fosc=6MHz SMOD=0時: 常數: 反代入波特率公式:第二章 7.串行接口HFN9249123224001062256608 .2238)92(12106322860HF波特率第110頁/共151頁111 誤差=(2400-2238.8)/2400=7% SMOD=1時: 常數: 反代入波特率公式: 誤差=(2403.85-2400)/2400=0.16%第二章 7.串行
60、接口HFN32431232240010622566185.2403)32(12106322861HF波特率第111頁/共151頁112 結論: SMOD雖然可以任選,但在某些情況下直接影響波特率的誤差范圍。因此,要適當考慮其設置。 為保證通信可靠,通常相對誤差應不大于2.5%,不同機種間通信尤其應注意。第二章 7.串行接口第112頁/共151頁113 一、中斷系統概述 中斷系統是為使處理機對外界異步事件具有處理能力而設置的。 (在資源競爭有限的條件下,中斷技術是解決資源競爭的可行辦法,采用中斷方法可以使多項任務共享一個資源,中斷技術實質上就是一種資源共享技術。) 例:某人看書電話鈴響暫停看書書
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度行業銷售增長數據表
- 食品加工工藝及技術案例分析題
- 醫學遺傳學遺傳病知識點梳理
- 農業園區建設合作協議書
- 物聯網技術在農業生產中的應用與創新
- 農業循環經濟在綠色低碳轉型中的應用
- 個體知識在學科實踐中的作用機制與教學策略
- 2025年衛星通信相關知識考試試題及答案
- 2025年市場調查與分析考試題及答案
- 2025年體育運動科學與人類健康考試試題及答案
- 高速列車安全性能提升
- 2024年婚內出軌協議書模板范本2019版
- 水利工程閥門安裝及調試方案
- 專項訓練主謂一致專題(含答案)含答案解析
- 【中國傳媒大學】2024中國虛擬數字人影響力指數報告
- 北京市初級注冊安全工程師真題
- GB/T 44450-2024光學和光子學光學材料和元件0.78 μm~25 μm紅外光譜用光學材料特性
- 歷屆“挑戰杯”全國大學生課外科技學術作品競賽獲獎作品
- 形勢與政策(23-24-1學期)學習通超星期末考試答案章節答案2024年
- 《遙感原理與應用》課件
- 浙江省杭州市濱江區2023-2024學年下學期期末考試七年級數學試卷
評論
0/150
提交評論