




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文由段公子哥貢獻(xiàn) ppt文檔可能在WAP端瀏覽體驗(yàn)不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機(jī)查看。 第2章 AT89C51單片機(jī)的結(jié)構(gòu) 章 單片機(jī)的結(jié)構(gòu) 2011-3-8 1 第2章 AT89C51單片機(jī)的結(jié)構(gòu) 章 單片機(jī)的結(jié)構(gòu) 2.1 2.2 2.3 2.4 2.5 AT89C51單片機(jī)的基本結(jié)構(gòu) AT89C51單片機(jī)的存儲器配置 AT89C51的時鐘電路與CPU時序 AT89C51復(fù)位與復(fù)位電路 AT89C51單片機(jī)的最小系統(tǒng) 2011-3-8 2 2. 1 AT89C51單片機(jī)的基本結(jié)構(gòu) 單片機(jī)的基本結(jié)構(gòu) AT89C51是具有MCS-51內(nèi)核、片內(nèi)帶有4KB的flash ROM的單片機(jī),圖2-1為AT89C51基本結(jié)構(gòu)示意圖。 從圖中可以看出,單片機(jī)有一條內(nèi)部總線,各個功 能模塊都掛在這條總線上,通過內(nèi)部總線傳送數(shù)據(jù) 信息和控制信息。AT89C51主要由以下部件組成。 2011-3-8 3 AT89C51單片機(jī)基本結(jié)構(gòu)示意圖 AT89C51單片機(jī)基本結(jié)構(gòu)示意圖 2011-3-8 4 2011-3-8 5 AT89C51主要組成部件 AT89C51主要組成部件 1CPU CPU是單片機(jī)的核心部分,CPU包括兩個基本部分:運(yùn)算器 和控制器。 (1)運(yùn)算器 運(yùn)算器即算術(shù)邏輯運(yùn)算單元ALU(Arithmetic Logic Uint), 是進(jìn)行算術(shù)或邏輯運(yùn)算的部件。可實(shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算。 操作的結(jié)果一般送回累加器 ACC (Accumulator),而其狀 態(tài)信息送至程序狀態(tài)寄存器PSW(Program Status Word)。 (2)控制器 控制器是用來控制計(jì)算機(jī)工作的部件。控制器接收來自存儲 器的指令,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。 2011-3-8 6 2內(nèi)部數(shù)據(jù)存儲器 AT89C51芯片內(nèi)共有256B(地址為:00HFFH)的數(shù)據(jù)存 儲器,其中高128B(地址為:80HFFH)被專用寄存器占 用,能作為寄存器供用戶使用的只是低128B(地址為: 00H7FH),用于存放可讀寫的數(shù)據(jù),如程序執(zhí)行過程中 的變量。 2011-3-8 7 3內(nèi)部程序存儲器 AT89C51共有4KB(地址為:0000H0FFFH)的flash程序 存儲器,用于存放程序、原始數(shù)據(jù)或表格常數(shù)。 4定時/計(jì)數(shù)器 定時 計(jì)數(shù)器 AT89C51共有兩個16位的定時/計(jì)數(shù)器,每個定時/計(jì)數(shù)器都 AT89C51 16 / / 可以設(shè)置成計(jì)數(shù)方式,用于對外部事件進(jìn)行計(jì)數(shù);也可以設(shè) 置成定時方式,并可以根據(jù)計(jì)數(shù)或定時的結(jié)果實(shí)現(xiàn)對單片機(jī) 運(yùn)行的控制。 2011-3-8 8 5并行I/O口 并行 口 AT89C51共有4個8位的I/O口(P0、Pl、P2、P3)。每個8 位的口,既可用作輸入口,也可用作輸出口,每個口即可 以8位同步讀寫,又可對每一位進(jìn)行單獨(dú)的操作,十分的 方便。 6串行口 AT89C51單片機(jī)有一個全雙工的串行接口,以實(shí)現(xiàn)單片機(jī) 和其他設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既 可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器 使用。 2011-3-8 9 7中斷控制系統(tǒng) AT89C51單片機(jī)有較強(qiáng)的中斷系統(tǒng),可以滿足控制應(yīng)用的 需要。AT89C51的中斷系統(tǒng)有5個中斷源,包括兩個外中斷、 兩個定時/計(jì)數(shù)中斷和一個串行口中斷。 8 8時鐘電路 AT89C51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容 需外接。時鐘電路為單片機(jī)產(chǎn)生時鐘脈沖序列。 2011-3-8 10 2.1.2 AT89C51單片機(jī)的引腳功能 單片機(jī)的引腳功能 AT89C51單片機(jī)采用40腳雙列直插式的DIP40封裝,還 提供較小尺寸表面封裝形式的PQFP/TQFP44,其引腳排 列如圖2-2所示。為使結(jié)構(gòu)更加緊湊,單片機(jī)的許多引 腳具有雙重功能。 2011-3-8 11 AT89C51采用 采用DIP40封裝 采用 封裝 2011-3-8 12 AT89C51采用 采用PQFP/TQFP44封裝 采用 封裝 2011-3-8 13 引腳功能 40個引腳大致可分為4 40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。 個引腳大致可分為 電源、時鐘、控制和I/O引腳。 I/O引腳 2011-3-8 14 芯片電源, +5V; VCC - 芯片電源,接+5V; 接地端; VSS - 接地端; 時鐘:XTAL1、 晶體振蕩電路反相輸入端和輸出端。 時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 控制線:控制線共有4 控制線:控制線共有4根, ALE/PROG:地址鎖存允許/片內(nèi)EPROM EPROM編程脈沖 ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖 ALE功能 用來鎖存P0口送出的低8 功能: P0口送出的低 ALE功能:用來鎖存P0口送出的低8位地址 PROG功能 片內(nèi)有EPROM的芯片, EPROM編程期間 功能: EPROM的芯片 編程期間, PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳 輸入編程脈沖。 輸入編程脈沖。 PSEN:外ROM讀選通信號 讀選通信號。 PSEN:外ROM讀選通信號。 RST/ 復(fù)位/備用電源。 RST/VPD:復(fù)位/備用電源。 RST(Reset)功能:復(fù)位信號輸入端。 RST(Reset)功能:復(fù)位信號輸入端。 功能: Vcc掉電情況下 接備用電源。 掉電情況下, VPD功能:在Vcc掉電情況下,接備用電源。 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 ROM選擇 EPROM編程電源 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 EA功能 內(nèi)外ROM選擇端。 功能: ROM選擇端 EA功能:內(nèi)外ROM選擇端。 Vpp功能 片內(nèi)有EPROM的芯片, EPROM編程期間 功能: EPROM的芯片 編程期間, Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程 電源Vpp Vpp。 電源Vpp。 2011-3-8 15 電源: 電源: I/O線 I/O線 80C51共有 共有4 位并行I/O端口:P0、P1、P2、P3口 I/O端口 32個 80C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個 引腳。P3口還具有第二功能 口還具有第二功能, 引腳。P3口還具有第二功能,用于特殊信號輸入輸出和控制 信號(屬控制總線)。 信號(屬控制總線)。 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 2011-3-8 RXD:串行口輸入端; RXD:串行口輸入端; TXD:串行口輸出端; TXD:串行口輸出端; INT0 外部中斷0請求輸入端; INT0:外部中斷0請求輸入端; INT1 外部中斷1請求輸入端; INT1:外部中斷1請求輸入端; 定時/計(jì)數(shù)器0外部信號輸入端; T0:定時/計(jì)數(shù)器0外部信號輸入端; 定時/計(jì)數(shù)器1外部信號輸入端; T1:定時/計(jì)數(shù)器1外部信號輸入端; WR: RAM寫選通信號輸出端 寫選通信號輸出端; WR:外RAM寫選通信號輸出端; RD: RAM讀選通信號輸出端 讀選通信號輸出端。 RD:外RAM讀選通信號輸出端。 16 P3口的第二功能表 P3口的第二功能表 表2-1 P3口的第二功能表 口的第二功能表 端口 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 2011-3-8 引腳( 封裝) 引腳(DIP40封裝) 封裝 10 11 12 13 14 15 16 17 第二功能 RXD(串行輸入口) (串行輸入口) TXD(串行輸出口) (串行輸出口) INT0(外部中斷0輸入) (外部中斷 輸入 輸入) INT1(外部中斷1輸入) (外部中斷 輸入 輸入) T0(定時/計(jì)數(shù)器 的外部計(jì)數(shù)輸入) (定時 計(jì)數(shù)器 的外部計(jì)數(shù)輸入) 計(jì)數(shù)器0的外部計(jì)數(shù)輸入 T1(定時/計(jì)數(shù)器 的外部計(jì)數(shù)輸入) (定時 計(jì)數(shù)器 的外部計(jì)數(shù)輸入) 計(jì)數(shù)器1的外部計(jì)數(shù)輸入 WR(外部數(shù)據(jù)存儲器寫脈沖輸出) (外部數(shù)據(jù)存儲器寫脈沖輸出) RD(外部數(shù)據(jù)存儲器讀脈沖輸出) (外部數(shù)據(jù)存儲器讀脈沖輸出) 17 2.2 AT89C51單片機(jī)的存儲器配置 單片機(jī)的存儲器配置 一般微機(jī)通常是程序和數(shù)據(jù)共用一個存儲空間,屬 于“馮諾依曼”(Von Neumann)結(jié)構(gòu)。而單片 機(jī)的存儲器組織結(jié)構(gòu)則把程序存儲空間和數(shù)據(jù)存儲 空間嚴(yán)格區(qū)分開來,屬于“哈佛”(Harvard)結(jié) 構(gòu)。 2011-3-8 18 2.2 AT89C51單片機(jī)的存儲器配置 AT89C51單片機(jī)的存儲器配置 AT89C51單片機(jī)存儲器在物理結(jié)構(gòu)上分成四個存儲空間: 片內(nèi)程序存儲器、片外程序存儲器、 片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片 外數(shù)據(jù)存儲器。從用戶使用的角度,即從邏輯上考慮,則有 外數(shù)據(jù)存儲器 三個存儲空間:片內(nèi)外統(tǒng)一編址的64KB程序存儲器地址空 間(0000H FFFFH)、256B的片內(nèi)數(shù)據(jù)存儲器地址空間 (00H FFH)及片外數(shù)據(jù)存儲器地址空間(0000H FFFFH)。 CPU在訪問三個不同的邏輯空間時,通過采用不同形式的 指令,來產(chǎn)生相應(yīng)的存儲器選通信號,訪問程序存儲器使用 MOVC指令、訪問片內(nèi)數(shù)據(jù)存儲器使用MOV指令、訪問片 外數(shù)據(jù)存儲器使用MOVX指令 2011-3-8 19 程序存儲器 89C51單片機(jī)內(nèi)部有4K的程序存儲器, 0000H0FFFH; 程序從0000H開始; 有一些特殊功能的區(qū)域,如中斷入口地 址。 2011-3-8 20 FFFFH 外部 ROM (60KB) ) FFFFH EA=0/1 1000H FFH 0FFFH 特殊功能 寄存器 (21個SFR) 個 ) 外部 RAM (64KB) ) 內(nèi)部 ROM (4KB) ) 外部 ROM (4KB) ) 80H 7FH 內(nèi)部RAM 內(nèi)部 128B 0000H 00H WE RD 0000H EA=1 EA=0 PSEN 2011-3-8 21 AT89C51程序存儲器配置 程序存儲器配置 2011-3-8 22 中斷入口地址表: 中斷源 外部中斷0 定時器0 外部中斷1 定時器1 串行口 入口地址 0003H 000BH 0013H 001BH 0023H 2011-3-8 23 數(shù)據(jù)存儲器 內(nèi)部數(shù)據(jù)存儲器在物理上分為兩個不同的存儲 空間: 數(shù)據(jù)存儲器空間(低128單元) 特殊功能寄存器空間(高128單元)。 這兩個空間是相連的。從用戶角度而言,低128 單元才是真正的數(shù)據(jù)存儲器。 2011-3-8 24 MCS51數(shù)據(jù)存儲器配置 數(shù)據(jù)存儲器配置 2011-3-8 25 AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器 AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器 數(shù)據(jù)存儲器由RAM構(gòu)成,一旦掉電,其數(shù)據(jù)將丟失。 低128B的數(shù)據(jù)存儲器(地址范圍:00H7FH)用于存放 程序運(yùn)算的中間結(jié)果的暫存,用作緩存、堆棧等。 低128B的數(shù)據(jù)存儲器的存儲器配置如圖2-4。 數(shù)據(jù)存儲器空間(低128單元)按功能劃分為: 通用寄存器區(qū) 位尋址區(qū) 用戶區(qū) 2011-3-8 26 AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器 AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器 7FH 用戶RAM區(qū) 工作寄存器 3區(qū) 工作寄存器 2區(qū) 1FH 18H 17H 10H 30H 2FH 20H 1FH 位尋址區(qū) 工作寄存器 1區(qū) 工作寄存器 0區(qū) 0FH 08H 工作寄存器區(qū) 07H 00H 27 00H 2011-3-8 1)片內(nèi) 片內(nèi)RAM 片內(nèi) 工作寄存器區(qū): 工作寄存器區(qū): 字節(jié)地址: 字節(jié)地址:00H1FH 位尋址區(qū): 位尋址區(qū): 字節(jié)地址: 字節(jié)地址:20H2FH 位地址為: 位地址為:00H7FH 數(shù)據(jù)緩沖區(qū)/堆棧區(qū) 堆棧區(qū): 數(shù)據(jù)緩沖區(qū) 堆棧區(qū): 字節(jié)地址: 字節(jié)地址:00H7FH 一般使用30H7FH 一般使用 2011-3-8 28 工作寄存器區(qū) 將地址00H1FH共32個單元設(shè)為工作寄存器區(qū),分為4組, 每組由8個單元按序組成通用寄存器R0R7。 任一時刻CPU只能選用一組工作寄存器為當(dāng)前工作寄存 器。CPU復(fù)位后,自動選中第0組工作寄存器。 通過程序?qū)Τ绦驙顟B(tài)字PSW中的RS1、RS0位進(jìn)行設(shè)置, 以實(shí)現(xiàn)工作寄存器組的切換,對應(yīng)關(guān)系如表2-2。 2-2 表2-2 工作寄存器選擇 RS1 0 0 1 1 2011-3-8 RS0 0 1 0 1 寄存器組 第0組 第1組 第2組 第3組 片內(nèi)RAM地址 00H07H 08H0FH 10H17H 18H1FH 29 位尋址區(qū) 地址為20H2FH的16個RAM(字節(jié))單元,既可以作 為一般的數(shù)據(jù)存儲器按字節(jié)讀寫,又可以按位存取。 16個RAM單元,每個單元8位,共有128位,將每一位 分配一個地址,稱為位地址,地址編碼007FH。表2-3是位 地址的分布表。 字節(jié)地址和位地址都是用8位的二進(jìn)制表示,理解上容 8 易產(chǎn)生混淆。字節(jié)地址單元的數(shù)據(jù)(內(nèi)容)是8位二進(jìn)制數(shù), 而位地址的數(shù)據(jù)(內(nèi)容)是1位二進(jìn)制數(shù)。例如,字節(jié)地址 2AH單元的數(shù)為0,表示位地址50H57H中8個單元的數(shù)均為 0,又例如位地址28H的數(shù)為0表示字節(jié)地址25H的D0位(最 低位)為0。也可以用“字節(jié)地址.位”表示位地址,例如 25H.1(字節(jié)地址25H的第1位D1)等于位地址29H。 2011-3-8 30 位尋址區(qū) 位尋址區(qū)(20H2FH)16個字節(jié)。 16*8=128位,每一位都有一個位地址,范圍為:00H7FH, 位地址區(qū)也可作為一般RAM使用。 單元地址 2FH 2EH 位地址 7FH 7EH 7 DH 7CH 77 H 76H 75H 74H 7BH 7 AH 79H 73H 72H 71H 78H 70H 21H 20H 0FH 0EH 0DH 0CH 07 H 06H 05H 04H 0BH 0 AH 09H 03H 02H 01H 08H 00H 2011-3-8 31 用戶RAM區(qū) 區(qū) 用戶 在30H7FH區(qū)的80個RAM單元為用戶RAM區(qū),只能按 字節(jié)存取。30H7FH區(qū)是真正的數(shù)據(jù)緩沖區(qū)。由于工 作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)統(tǒng)一編址,使用同 樣的指令訪問,這三個區(qū)的單元既有自己獨(dú)特的功能, 又可統(tǒng)一調(diào)度使用。因此,前兩區(qū)未使用的單元也可用 為一般的用戶RAM單元,使容量較小的片內(nèi)RAM得以 充分利用。程序設(shè)計(jì)時,將中間的計(jì)算結(jié)果,作為變量 存放在該區(qū)域。 對這部分區(qū)域的使用不作任何規(guī)定和限制,但應(yīng)當(dāng)說明 的是,堆棧一般開辟在此區(qū)。 2011-3-8 32 *關(guān)于堆棧 堆棧:是一個特殊的存儲區(qū)域; 特點(diǎn):“后進(jìn)先出”。 單片機(jī)的堆棧是地址增加型,即壓 入數(shù)據(jù)時地址指針增加。 堆站的操作有 壓入:PUSH 彈出:POP 2011-3-8 33 堆棧操作示意圖 RAM 89H SP 6BH 6BH 棧頂 61H 60H 1EH F5H棧底 圖 2-5 堆棧和堆棧指針示意圖 2011-3-8 34 RAM SP 62H 61H 60H SP PUSH 31H (31H) PUSH 30H (30H) 60H XX 30H 31H POP 30H POP 31H 62H 61H 60H 圖 2-6 例 2-1 堆棧操作示意圖 2011-3-8 35 AT89C51的特殊功能寄存器 SFR( 128單元 AT89C51的特殊功能寄存器 SFR(高128單元) 單元) 內(nèi)部RAM的高128單元是給特殊寄存器使用的, 因此稱之為專用寄存器區(qū),其單元地址為 80HFFH。因?yàn)檫@些寄存器的功能已作專門規(guī)定, 所以稱其為專用寄存器或特殊功能寄存器 (Special Function Registers)。特殊功能寄存器 的總數(shù)為21個,僅占用了80HFFH中的很小一部 分。表中給出了這些特殊功能寄存器的符號、名 稱和地址等。 2011-3-8 36 特殊功能寄存器SFR 特殊功能寄存器 占用字節(jié)地址: 占用字節(jié)地址:80HFFH 位尋址寄存器: 位尋址寄存器: 其字節(jié)地址可被8整除 整除。 其字節(jié)地址可被 整除。 專用寄存器: 專用寄存器: A、B、PSW、DPTR、SP 、 、 、 、 I/O接口寄存器: 接口寄存器: 接口寄存器 P0、P1、P2、P3、SBUF、TMOD、TCON、 、 、 、 、 、 、 、 SCON 2011-3-8 37 特殊功能寄存器符號極其分布表 表2-4 特殊功能寄存器SFR地址表 位地址及位名稱 寄存器 D7 D6 D5 F7H F6H F5H B ACC PSW IP P3 IE E7H D7H Cy BFH B7H P3.7 AFH EA E6H D6H AC BEH B6H P3.6 AEH E5H D5H F0 BDH B5H P3.5 ADH D4 F4H E4H D4H RS1 BCH B4H P3.4 ACH ES D3 F3H E3H D3H RS0 BBH B3H P3.3 ABH ET1 D2 F2H E2H D2H OV BAH B2H P3.2 AAH EX1 D1 F1H E1H D1H F1 B9H B1H P3.1 A9H ET0 D0 F0H E0H D0H P B8H B0H P3.0 A8H EX0 字節(jié)地 址 F0H E0H D0H B8H B0H A8H 2011-3-8 38 P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 A7H P2.7 9FH SM0 97H P1.7 A6H P2.6 9EH SM1 96H P1.6 A5H P2.5 9DH SM2 95H P1.5 A4H P2.4 9CH REN 94H P1.4 A3H P2.3 9BH TB8 93H P1.3 A2H P2.2 9AH RB8 92H P1.2 A1H P2.1 99H TI 91H P1.1 A0H P2.0 98H RI 90H P1.0 A0H 99H 98H 90H 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H GATE 8FH TF1 SMOD C/T 8EH TR1 M1 8DH TF0 M0 8CH TR0 GATE 8BH IE1 GF1 C/T 8AH IT1 GF0 M1 89H IE0 PD M0 88H IT0 IDL 87H P0.7 86H P0.6 85H P0.5 84H P0.4 83H P0.3 82H P0.2 81H P0.1 80H P0.0 2011-3-8 39 21個特殊功能寄存器是不連讀地分散在內(nèi)部RAM的高 128單元之中,盡管其中還有許多空閑地址,但用戶不能 使用。 程序計(jì)數(shù)器PC是獨(dú)立于SFR之外的唯一的一個不可尋址 的專用寄存器。PC不占RAM單元,在物理上是獨(dú)立存在 的。它不包括在21個特殊功能寄存器中。 在21個特殊功能寄存器中,有11個寄存器不僅可以字節(jié) 尋址,也可以進(jìn)行位尋址。凡是能進(jìn)行位尋址的SFR, 其特征是字節(jié)地址都能被8整除(字節(jié)地址的末位是0或 8)。 IP中有3位、IE中有2位、PSW中有一位對用戶無實(shí)際意 義,所以直接尋址位為82位;再加上數(shù)據(jù)存儲器中的128 位,89C51共計(jì)有210位可尋址位。 2011-3-8 40 (1)程序計(jì)數(shù)器PC PC是一個16位的計(jì)數(shù)器。其內(nèi)容為將要執(zhí)行的指 令地址,尋址范圍達(dá)64KB。PC有自動加1功能, 從而實(shí)現(xiàn)程序的順序執(zhí)行。PC沒有地址,是不可 尋址的(但在物理上是存在的),因此用戶無法 對它進(jìn)行讀寫;但可以通過轉(zhuǎn)移、調(diào)用返回等指 令改變其內(nèi)容,以實(shí)現(xiàn)程序的轉(zhuǎn)移。 2011-3-8 41 (2) 累加器A 累加器A為8位寄存器,是最常用的專用寄存器, 功能較多。它既可用于存放操作數(shù),也可用來 存放中間結(jié)果。89C51單片機(jī)中大部分單操作數(shù) 指令的操作數(shù)就取自累加器,許多雙操作數(shù)指 令中的一個操作數(shù)也取自累加器。加、減、乘、 除運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A或AB 寄存器對中。 2011-3-8 42 (3) B寄存器 B寄存器是一個8位寄存器,主要用于乘 除運(yùn)算。乘法運(yùn)算時,B是乘數(shù)。乘法操 作后,乘積的高8位存于B中。除法運(yùn)算 時,B存放除數(shù)。除法操作后,余數(shù)存于 B中。此外,B寄存器也可作為一般數(shù)據(jù) 寄存器使用。 2011-3-8 43 (4) 程 序 狀 態(tài) 字 PSW ( PROGRAM WORD) ) STATUS 程序狀態(tài)字PSW是一個8位寄存器,用于存放程 序運(yùn)行的狀態(tài)信息。其中,有些位的狀態(tài)是程序 執(zhí)行的結(jié)果,是由硬件自動置位的;而有些位的 狀態(tài)則采用軟件的方法來設(shè)定。PSW的位狀態(tài)可 以用專門指令進(jìn)行測試,也可以用指令讀出。一 些條件轉(zhuǎn)移指令會根據(jù)PSW有關(guān)位的狀態(tài)進(jìn)行程 序轉(zhuǎn)移。PSW的各位含義如圖所示。其中PSW.1 為保留位,未用。 2011-3-8 44 程序狀態(tài)字PSW 表2-5 程序狀態(tài)字寄存器PSW各位名稱及地址 位 位地址 名稱 D7 D7H CY D6 D6H AC D5 D5H F0 D4 D4H RS1 D3 D3H RS0 D2 D2H OV D1 D1H F1 D0 D0H P 2011-3-8 45 CY(PSW.7):進(jìn)位標(biāo)志位 : CY是PSW中最常用的標(biāo)志位,其功能有二:一是 存放算術(shù)運(yùn)算的進(jìn)位標(biāo)志;二是在位操作中作累 加位使用。位傳送、位與、位或操作,操作數(shù)之 一為進(jìn)位標(biāo)志位。 AC(PSW.6):輔助進(jìn)位位 : 當(dāng)進(jìn)行加法或減法操作而產(chǎn)生由低4位向高4位的 進(jìn)位或借位時,由硬件將AC置1;否則就被清除。 AC還用于十進(jìn)制調(diào)整,同DA A 指令結(jié)合起來使 用。 2011-3-8 46 F0(PSW.5):用戶標(biāo)志位 : 它是用戶定義的一個狀態(tài)標(biāo)記,可以用軟件來使 它置位或清除,也可用軟件測試F0以控制程序的 流向。 RS1、RS0(PSW.4,PSW.3):當(dāng)前寄存器區(qū)選 、 ( , ) 擇位 用軟件來置位或清除,以選擇和確定當(dāng)前工作寄 存器區(qū)。 2011-3-8 47 OV(PSW.2)溢出標(biāo)志位 溢出標(biāo)志位 在帶符號數(shù)運(yùn)算中,OV1,表示加減運(yùn)算結(jié)果超 出了累加器所能表示的符號數(shù)的有效范圍( 128127),即產(chǎn)生了溢出,因此運(yùn)算結(jié)果是錯 誤的;否則OV0,運(yùn)算結(jié)果正確,無溢出。 在乘法運(yùn)行中,OV1,表示乘積超過255,即乘 積分別放在B與A中;否則OV0,表示乘積只放 在中。 在除法運(yùn)行中,OV1,表示除數(shù)為0,除法不能 進(jìn)行;否則,OV0,除數(shù)不為0,除法可正常進(jìn) 行。 2011-3-8 48 (PSW.0):奇偶位 ) 每個指令周期都由硬件來置位或清除,以表示 累加器中1的個數(shù)的奇偶性。P1,則累加器 中1的個數(shù)為奇數(shù);若P=0,則累加器中1的 個數(shù)為偶數(shù)。在串行通訊中用于校驗(yàn)數(shù)據(jù)的正 確性。 2011-3-8 49 (5) 棧指針SP 棧指針 棧指針SP是一個8位專用寄存器。它指示出堆棧頂部 在內(nèi)部數(shù)據(jù)存儲器中的位置。系統(tǒng)復(fù)位后,SP初始 化為07H,使得堆棧向上由08H單元開始??紤]到 08H1FH單元屬于工作寄存器區(qū),若程序設(shè)計(jì)中要 用到這些區(qū),最好把SP的值置為1FH或更大一些, 一般將堆棧開辟在30H7FH區(qū)域中。SP的值越小, 堆棧深度就越深,但最大為128字節(jié)。 2011-3-8 50 SP的值除了可以用軟件直接改變外(MOV SP, #DATA),在執(zhí)行堆棧操作,程序調(diào) 用、子程序返回及中斷返回等指令時,SP 的值自動增量或減量。堆棧操作指令為: PUSH ACC (壓入堆棧) POP ACC (彈出堆棧) 2011-3-8 51 (6) 數(shù)據(jù)指針DPTR 數(shù)據(jù)指針DPTR是唯一1個16位的可尋址的專用寄存器; 由兩個8位寄存器DPH和DPL拼裝而成,其中DPH為DPTR的 高8位,DPL為DPTR的低8位。它既可作為一個16位寄存器來 使用,也可作為2個獨(dú)立的8位寄存器(DPH和DPL)來使用。 DPTR通常用來存放16位地址。既可訪問外部RAM,也可訪 問ROM。例如: MOV DPTR, #2000H MOVX A, PPTR ;將外RAM2000H單元內(nèi)容A MOVC A, A+DPTR ;訪問ROM指令 2011-3-8 52 (7) 端口P0P3 專用寄存器P0、P1、P2和P3分別是I/O 口P0P3的鎖存器。 在80C51中,I/O 和RAM統(tǒng)一編址,既 可以字節(jié)尋址,也可以位尋址,使用起 來較方便。 有關(guān)P0P3的詳細(xì)情況,在后續(xù)內(nèi)容中 介紹。 2011-3-8 53 (8) 串行數(shù)據(jù)緩沖器SBUF 串行數(shù)據(jù)緩沖器SBUF用于存放欲發(fā)送或接 收的數(shù)據(jù),它實(shí)際上由兩個獨(dú)立的寄存器 組成,一個是發(fā)送緩沖器,另一個是接收 緩沖器。當(dāng)要發(fā)送的數(shù)據(jù)傳送到SBUF時, 進(jìn)入的是發(fā)送緩沖器,當(dāng)要從SBUF取數(shù)據(jù) 時,則取自接收緩沖器,取走的是剛接收 到的數(shù)據(jù)。 2011-3-8 54 (9) 定時器/計(jì)數(shù)器 80C51單片機(jī)有兩個16位定時器/計(jì)數(shù)器 T0和T1,它們分別由兩個獨(dú)立的8位寄存 器組成,共有4個獨(dú)立的寄存器:TH0, TL0,TH1,TL1,可對這4個寄存器尋址, 但不能把T0和T1當(dāng)成16位寄存器來訪問。 2011-3-8 55 (10) 其它控制寄存器 IP、IE、TMOD、TCON、SCON和PCON 寄存器分別包含有中斷系統(tǒng)、定時器/計(jì)數(shù) 器、串行口和供電方式的控制和狀態(tài)位, 這些寄存器將在以后內(nèi)容中介紹。 2011-3-8 56 AT89C51的片外數(shù)據(jù)存儲器 AT89C51的片外數(shù)據(jù)存儲器 外部數(shù)據(jù)存儲器又稱外部RAM,當(dāng)片內(nèi)RAM的容量 不能滿足要求時,可通過總線端口和其他I/O口擴(kuò)展 外部數(shù)據(jù)RAM,其最大容量可達(dá)64K字節(jié)。外部數(shù) 據(jù)存儲器和內(nèi)部數(shù)據(jù)存儲器的功能基本相同,但外 部數(shù)據(jù)存儲器不能用于堆棧操作,對外部外部數(shù)據(jù) 存儲器的訪問只能使用間接尋址方式。 2011-3-8 57 FFFFH 外部 ROM (60KB) FFFF H EA=0/1 1000H FFH 0FFFH 特殊功能 寄存器 (21個SFR) 外部 RAM (64KB) 內(nèi)部 ROM (4KB) EA=1 外部 ROM (4KB) EA=0 80H 7FH 內(nèi)部RAM 128B 0000H 00H WE RD 58 0000H PSEN 2011-3-8 AT89C52的存儲器配置 AT89C52的存儲器配置 AT89C52相當(dāng)于MCS-51單片機(jī) 中的52子系列,與51子系列的 AT89C51相比,片內(nèi)的程序存儲 器flash ROM增加到了8KB,片 內(nèi)的數(shù)據(jù)存儲器增加了128B。 AT89C52的存儲器結(jié)構(gòu)如圖2-7 所示。 FFH 特殊功能 寄存器 (27個SFR) 內(nèi)部RAM 低128B 內(nèi)部RAM 高128B FFFFH 外部 ROM (56KB) ) EA=0/1 2000H 1FFFH 80H 7FH 內(nèi)部 ROM (8KB) ) EA=1 外部 ROM (8KB) ) EA=0 PSEN 0000H 00H 內(nèi)部數(shù)據(jù)存儲器 2011-3-8 內(nèi)、外程序存儲器 59 89C51的存儲器配置小結(jié) 89C51的存儲器配置小結(jié) AT89C51的片內(nèi)集成有一定容量的程序存儲器(4K)和數(shù)據(jù) 存儲器(128B)。當(dāng)然,還可以根據(jù)需要對存儲器進(jìn)行外 部擴(kuò)展。 從物理上分,89C51的存儲器有4個存儲空間:片內(nèi)程序存 儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲 器。 從邏輯上分,89C51有3個存儲器地址空間:片內(nèi)外統(tǒng)一的 64KB的程序存儲器地址空間、256B的內(nèi)部數(shù)據(jù)存儲器地址 空間(其中128B的專用寄存器地址空間,僅有部分字節(jié)有 實(shí)際意義)和64KB的外部數(shù)據(jù)存儲器地址空間。 為了區(qū)分不同的存儲器空間,在用指令訪問這三個不同的 邏輯空間時采用了不同形式的指令。 2011-3-8 60 2.3 AT89C51的時鐘電路與CPU時序 AT89C51的時鐘電路與 的時鐘電路與CPU時序 晶體振蕩器時鐘方式 利用芯片內(nèi)部的振蕩器,然后在引腳XTALl和XTAL2兩端跨接晶體振蕩器 (簡稱晶振),就構(gòu)成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部 時鐘電路。外接晶振通常為石英晶體振蕩器或振蕩器。使用石英晶體振 蕩器時,Cl和C2的值為30pF左右;使用陶瓷振蕩器時,Cl和C2的值為 40pF左右;選用晶振的頻率也就是單片機(jī)的時鐘頻率,AT89C51最高時 鐘頻率可達(dá)到24MHz。晶振和電容要盡可能安裝得與單片機(jī)引腳XTALl和 24MHz XTALl XTAL2靠近。 C1 XTAL1 AT89C51 XTAL2 C2 2011-3-8 61 2.3 AT89C51的時鐘電路與CPU時序 AT89C51的時鐘電路與 的時鐘電路與CPU時序 外部時鐘方式 從單片機(jī)外部直接引入振蕩時鐘脈沖。振蕩時鐘脈沖從AT89C51的XTALl 輸入,XTAL2應(yīng)懸空。 懸空 XTAL1 AT89C51 外部時鐘 XTAL2 2011-3-8 62 CPU時序 時序 單片機(jī)的時序是指CPU在執(zhí)行指令時所需控制信號的時間順 序。時序信號是以時鐘脈沖為基準(zhǔn)產(chǎn)生的。CPU發(fā)出的時序 信號有兩類:一類用于片內(nèi)各功能部件的控制,由于這類信 號在CPU內(nèi)部使用,用戶無須了解;另一類信號通過單片機(jī) 的引腳送到外部,用于片外存儲器或I/O端口的控制,這類時 序信號對單片機(jī)系統(tǒng)的硬件設(shè)計(jì)非常重要。 為了便于對CPU時序進(jìn)行分析,人們按指令的執(zhí)行過程規(guī)定 了幾種周期,即時鐘周期、機(jī)器周期和指令周期,也稱為時 序定時單位。 2011-3-8 63 CPU時序 時序 時鐘周期 時鐘周期也稱為振蕩周期,定義為時鐘脈沖頻率(fosc)的 倒數(shù),是計(jì)算機(jī)中最基本的、最小的時間單位。 機(jī)器周期 完成一個基本操作所需要的時間稱為機(jī)器周期。AT89C51有 固定的機(jī)器周期,規(guī)定一個機(jī)器周期就有12個時鐘周期,也 就是說一個機(jī)器周期共包含12個振蕩脈沖,即機(jī)器周期就是 振蕩脈沖的12分頻。 如果使用6MHz的時鐘頻率,一個機(jī)器周期就是2s,而 如果使用12MHz的時鐘頻率,一個機(jī)器周期就是1s。 2011-3-8 64 指令周期 指令周期是執(zhí)行一條指令所需要的時間 一般由若干個機(jī)器周期組成,指令不同,所需要的機(jī)器周 期數(shù)也不同。對于一些簡單的單字節(jié)指令,在取指令周期 中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要 其他的機(jī)器周期。對于一些比較復(fù)雜的指令,例如,轉(zhuǎn)移 指令、乘除運(yùn)算則需要兩個或兩個以上的機(jī)器周期。 2011-3-8 65 讀外部RAM或I/O的時序圖 MOVX A, DPTR 2011-3-8 66 2.4 AT89C51復(fù)位與復(fù)位電路 AT89C51復(fù)位與復(fù)位電路 復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化 為0000H,使單片機(jī)從0000H 單元開始執(zhí)行程序。除了 進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯或操作 錯誤使系 統(tǒng)出現(xiàn)死機(jī)時,也必須對單片機(jī)進(jìn)行復(fù)位,使其 重新從頭開始工作。 2011-3-8 67 復(fù)位電路 當(dāng)AT89C51通電,時鐘電路開始工作,在AT89C51單片機(jī) 的RST(DlP40封裝第9腳)引腳加上大于24個時鐘周期以 上的高電平脈沖,AT89C51單片機(jī)系統(tǒng)即初始復(fù)位。初始 化后,程序計(jì)數(shù)器PC指向0000H,P0P3輸出口全部為高 電平,堆棧指針寫入07H。系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語詞匯拓展:名詞復(fù)數(shù)變化的技巧
- 高中語文古詩文閱讀教學(xué)重點(diǎn)內(nèi)容詳解
- 計(jì)算機(jī)網(wǎng)絡(luò)安全管理知識考點(diǎn)
- 一件有意義的事記敘事文(6篇)
- 《能源種類與利用方式:高中地理環(huán)境科學(xué)教案》
- 八年級語文社團(tuán)活動方案
- 公主舞蹈活動方案
- 公交公司送清涼活動方案
- 公交職工文化節(jié)活動方案
- 公眾考古活動方案
- 三超一疲勞安全教育
- 《自動控制原理》說課
- 醫(yī)療器械(耗材)項(xiàng)目投標(biāo)服務(wù)投標(biāo)方案(技術(shù)方案)
- 鄉(xiāng)村醫(yī)生從業(yè)管理?xiàng)l例全面解讀
- 2024年中國石油集團(tuán)招聘筆試參考題庫含答案解析
- 神經(jīng)科患者的心理支持與護(hù)理
- 智慧樓宇智能化管理系統(tǒng)需求規(guī)格說明書
- 幼兒園中班數(shù)學(xué)《小魚有多長》
- 過程控制系統(tǒng)及儀表智慧樹知到課后章節(jié)答案2023年下青島大學(xué)
- 中國共產(chǎn)主義青年團(tuán)團(tuán)員發(fā)展過程紀(jì)實(shí)簿
- 項(xiàng)目現(xiàn)場施工管理制度
評論
0/150
提交評論