第2章 單片機(jī)硬件結(jié)構(gòu)及基本原理_第1頁
第2章 單片機(jī)硬件結(jié)構(gòu)及基本原理_第2頁
第2章 單片機(jī)硬件結(jié)構(gòu)及基本原理_第3頁
第2章 單片機(jī)硬件結(jié)構(gòu)及基本原理_第4頁
第2章 單片機(jī)硬件結(jié)構(gòu)及基本原理_第5頁
已閱讀5頁,還剩107頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第2章單片機(jī)硬件結(jié)構(gòu)及根本原理教學(xué)目標(biāo)2.1MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)2.2MCS-51單片機(jī)引腳及其功能2.3MCS-51單片機(jī)存儲(chǔ)器2.4MCS-51單片機(jī)工作方式2.5MCS-51時(shí)鐘電路與時(shí)序2.6MCS-

51單片機(jī)最小系統(tǒng)本章小結(jié)思考題與習(xí)題本章主要介紹MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)、引腳功能、存儲(chǔ)器結(jié)構(gòu)、四個(gè)I/O口的根本工作原理和操作特點(diǎn)。單片機(jī)的各種工作方式、單片機(jī)的時(shí)序等。教學(xué)目標(biāo)1.了解MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)。2.熟悉MCS-51單片機(jī)40個(gè)引腳及其功能。3.熟悉MCS-51三個(gè)不同存儲(chǔ)空間配置及地址范圍,了解不同存儲(chǔ)空間的操作指令和控制信號(hào)。4.熟悉MCS-51片內(nèi)RAM低128B分區(qū)結(jié)構(gòu)和作用。5.了解特殊功能存放器地址分布范圍,理解ACC、B、SP、DPTR的作用和功能,重點(diǎn)掌握PSW結(jié)構(gòu)組成和各位作用。通過本章教學(xué),要求到達(dá)以下目標(biāo):6.理解程序計(jì)數(shù)器PC的功能。

7.了解MCS-514個(gè)I/O端口結(jié)構(gòu)及工作原理。

8.了解堆棧指針SP及堆棧的作用,掌握堆棧的設(shè)置及使用方式;

9.熟悉MCS-51復(fù)位條件、復(fù)位電路和復(fù)位后常用的SFR的狀態(tài)。

10.理解時(shí)鐘電路組成、時(shí)鐘和機(jī)器周期的概念。第2章MCS-51單片機(jī)的結(jié)構(gòu)和原理

2.1MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)2.2MCS-51單片機(jī)引腳及其功能2.3MCS-51單片機(jī)存儲(chǔ)器2.4MCS-51單片機(jī)工作方式2.5MCS-51時(shí)鐘電路與時(shí)序2.6MCS-

51單片機(jī)最小系統(tǒng)2.1MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)51子系列的配置如下:〔1〕8位CPU;〔2〕振蕩頻率1.2~12MHZ;〔3〕128個(gè)字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器〔片內(nèi)RAM〕;〔4〕21個(gè)專用存放器(包含特殊功能存放器組);〔5〕4KB的片內(nèi)程序存儲(chǔ)器〔8031無〕;〔6〕8位并行I/O口P0,P1,P2,P3;〔7〕一個(gè)全雙工串行I/O口;〔8〕2個(gè)16位定時(shí)器/計(jì)數(shù)器;〔9〕5個(gè)中斷源,分為2個(gè)優(yōu)先級(jí)2.1MCS-51單片機(jī)的結(jié)構(gòu)時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件圖2.1MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件1)中央處理器〔CPU〕

單片機(jī)的核心,完成運(yùn)算和控制功能。MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件2)內(nèi)部數(shù)據(jù)存儲(chǔ)器〔內(nèi)部RAM〕共有256個(gè)RAM單元,但其中高128單元被專用存放器占用,能作為存放器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲(chǔ)器就是指低128單元,簡稱內(nèi)部RAM。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件3)內(nèi)部程序存儲(chǔ)器〔內(nèi)部ROM〕

共有4KB的ROM,用于存放程序、原始數(shù)據(jù)或表格,因此,稱之為程序存儲(chǔ)器,簡稱內(nèi)部ROM。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件4)定時(shí)/計(jì)數(shù)器共有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并以其定時(shí)或計(jì)數(shù)結(jié)果對計(jì)算機(jī)進(jìn)行控制。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件

5)并行I/O口共有4個(gè)8位的I/O口〔P0、P1、P2、P3〕,以實(shí)現(xiàn)數(shù)據(jù)的并行輸入/輸出。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件6)串行口有一個(gè)全雙工的串行口,以實(shí)現(xiàn)單片機(jī)和其它設(shè)備之間的串行數(shù)據(jù)傳送。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件7)中斷控制系統(tǒng)有5個(gè)中斷源,即外中斷兩個(gè),定時(shí)/計(jì)數(shù)中斷兩個(gè),串行中斷一個(gè)。全部中斷分為高級(jí)和低級(jí)共兩個(gè)優(yōu)先級(jí)別。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷P0P1P2P3RXDTXD時(shí)鐘源外部事件8)時(shí)鐘電路內(nèi)部有時(shí)鐘電路,但晶振〔頻率一般為6MHz和12MHz〕和微調(diào)電容〔一般采用22p到33p〕需外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列。第2章MCS-51單片機(jī)的結(jié)構(gòu)和原理

2.1MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)2.2MCS-51單片機(jī)引腳及其功能2.3MCS-51單片機(jī)存儲(chǔ)器2.4MCS-51單片機(jī)工作方式2.5MCS-51時(shí)鐘電路與時(shí)序2.6MCS-

51單片機(jī)最小系統(tǒng)2.2MCS-51單片機(jī)引腳及其功能MCS-51有40條引腳,與其他51系列單片機(jī)引腳是兼容的。這40條引腳可分為I/O端口線(32)、電源線(2)、控制線(6)、外接晶體線(2)四局部。封裝形式有兩種:雙列直插封裝(DIP)形式和方形封裝形式,如圖2.2所示。時(shí)序和振蕩電路程序存儲(chǔ)器

ROM數(shù)據(jù)存儲(chǔ)器RAM2個(gè)16位定時(shí)/計(jì)數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口

串行I/O口內(nèi)部中斷外部中斷

P0P1P2P3RXDTXD時(shí)鐘源外部事件圖2.1MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖圖2.2MCS-51封裝和引腳分配圖(a)雙列直插式封裝(b)方形封裝這40條引腳可分為:I/O端口線(32)控制線(6)電源線(2)外接晶體線(2)1.主電源引腳〔2〕VCC(40腳):接+5V電源。VSS(20腳):接地端。2.外接晶體引腳〔2〕XTAL1(19腳),XTAL2(18腳):接外部石英晶體的二端。在單片機(jī)內(nèi)部,它們是一個(gè)反相放大器的輸入/輸出端,與放大器構(gòu)成了片內(nèi)振蕩器。時(shí)鐘頻率越高,單片機(jī)控制器的控制節(jié)拍就越快,運(yùn)算速度也就越快。P0P1P3P23.輸入/輸出引腳〔32〕(1)P0口(39~32腳):P0.0~P0.7統(tǒng)稱為P0口。

P0口是一個(gè)8位雙向I/O口,可作為通用I/O接口,也可作為地址/數(shù)據(jù)分時(shí)復(fù)用口。輸出級(jí)是漏極開路電路,

必須外接上拉電阻。

3.輸入/輸出引腳〔32〕(2)P1口(1~8腳):P1.0~P1.7稱為P1口P1口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,可作為通用I/O接口。3.輸入/輸出引腳〔32〕(3)P2口(21~28腳):P2.0~P2.7統(tǒng)稱為P2口

P2口也是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,可作為通用I/O接口

,還用于提供高8位地址。3.輸入/輸出引腳〔32〕

(4)P3口(10~17腳):P3.0~P3.7統(tǒng)稱為P3口。P3口也是一個(gè)帶上拉電阻的8位雙向I/O口,可作為通用I/O接口,還具有第2功能。3.輸入/輸出引腳〔32〕表2.3P3口各位的第二功能引腳第二功能功能說明P3.0RXD串行數(shù)據(jù)輸入端P3.1TXD串行數(shù)據(jù)輸出端P3.2INT0外部中斷0中斷請求信號(hào)輸入端P3.3INT1外部中斷1中斷請求信號(hào)輸入端P3.4T0定時(shí)/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入端P3.5T1定時(shí)/計(jì)數(shù)器1外部計(jì)數(shù)脈沖輸入端P3.6WR片外RAM寫選通信號(hào)輸出端P3.7RD片外RAM讀選通信號(hào)輸出端在單片機(jī)中,口是一個(gè)集數(shù)據(jù)輸入緩沖、數(shù)據(jù)輸出驅(qū)動(dòng)及鎖存等多項(xiàng)功能于一體的I/O電路。MCS-51的4個(gè)口在電路結(jié)構(gòu)上根本相同,P0~P3口都可作為普通I/O口來使用。但又各具特點(diǎn),因此在功能和使用上各口之間有一定的差異。 用作輸入時(shí),均須先寫入“1〞; P0口用作輸出時(shí),應(yīng)外接上拉電阻。I/O口的讀寫

(1)ALE/PROG(30腳):地址鎖存有效信號(hào)輸出端。

當(dāng)訪問外部存儲(chǔ)器時(shí),ALE信號(hào)負(fù)跳變將P0口上低8位地址送入鎖存器

非訪問外部存儲(chǔ)器期間,ALE以1/6振蕩頻率輸出4.控制線〔6〕(2)PSEN(29腳):訪問外部程序存儲(chǔ)器〔ROM〕選通信號(hào),低電平有效。在訪問片外數(shù)據(jù)存儲(chǔ)器期間,PSEN信號(hào)將不出現(xiàn)。4.控制線〔6〕

(3)RST/VPD(9腳):復(fù)位端。持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)回復(fù)到初始狀態(tài)。上電時(shí),考慮到振蕩器有一定的起振時(shí)間,該引腳上高電平必須持續(xù)10ms以上才能保證有效復(fù)位。第二章單片機(jī)結(jié)構(gòu)和時(shí)序4.控制線〔6〕

(4)EA/VPP(31腳):EA為片外程序存儲(chǔ)器選用端。4.控制線〔6〕為高電平時(shí),默認(rèn)使用內(nèi)部ROM,超過4K那么使用片外ROM為低電平,那么使用外部ROM。第2章MCS-51單片機(jī)的結(jié)構(gòu)和原理

2.1MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)2.2MCS-51單片機(jī)引腳及其功能2.3MCS-51單片機(jī)存儲(chǔ)器2.4MCS-51單片機(jī)工作方式2.5MCS-51時(shí)鐘電路與時(shí)序2.6MCS-

51單片機(jī)最小系統(tǒng)8051單片機(jī)在結(jié)構(gòu)上采用了哈佛型,將程序和數(shù)據(jù)分別放在兩個(gè)存儲(chǔ)器內(nèi):

一個(gè)稱為程序存儲(chǔ)器(ROM);

另外一個(gè)稱為數(shù)據(jù)存儲(chǔ)器(RAM)。

兩個(gè)存儲(chǔ)器共有四個(gè)物理上相互獨(dú)立的存儲(chǔ)空間:即:

片內(nèi)ROM 片外ROM

片內(nèi)RAM 片外RAM

程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器0000H000H00H0000H1000HFFFFHFFHFFFHFFFFH外部ROM內(nèi)部ROM外部RAM內(nèi)部RAMEA=1EA=0MCS-51單片機(jī)存貯器配置EA=1時(shí),若地址大于4k,則自動(dòng)訪問外部RAM2.3.1程序存儲(chǔ)器1、MCS-51程序存儲(chǔ)器有片內(nèi)和片外之分。2、控制引腳/EA決定使用片內(nèi)外存儲(chǔ)器。3、片內(nèi)4KB字節(jié)的程序存儲(chǔ)器,地址范

圍為0000H~0FFFH。4、片外程序存儲(chǔ)器擴(kuò)展的最大空間是64KB,地址范圍為0000H~FFFFH。

5、片內(nèi)外的ROM是統(tǒng)一編址。0000H0000H1000HFFFFH0FFFH外部ROM內(nèi)部ROMEA=1EA=00FFFHMCS-51單片機(jī)片內(nèi)程存儲(chǔ)器4KB,地址范圍為0000H~0FFFH。由于系統(tǒng)復(fù)位后的PC地址為0000H,故系統(tǒng)從0000H單元開始取指,執(zhí)行程序。從0003H~002DH單元被保存用于5個(gè)中斷源的中斷效勞程序的入口地址。1.片內(nèi)程序存儲(chǔ)器MCS-51單片機(jī)可擴(kuò)展片外64KB空間的程序

存儲(chǔ)器,地址范圍為0000H~FFFFH。2.片外程序存儲(chǔ)器

5個(gè)單元具有特殊用途:5種中斷源的中斷入口地址外中斷00003H定時(shí)器T0000BH外中斷10013H定時(shí)器T1001BH串行口

0023HFFFFH1000H外部ROM0000H內(nèi)部ROMEA=1外部ROMEA=0工作寄存器區(qū)

位尋址區(qū)

數(shù)據(jù)緩沖區(qū)00H20H30H80H

外部

RAM0000HFFFFH0FFFHSFR2FH7FHFFH1FH

內(nèi)部RAM

2.3.2數(shù)據(jù)存儲(chǔ)器1、MCS-51數(shù)據(jù)存儲(chǔ)器也有片內(nèi)和片外之分。2、片內(nèi)有256個(gè)字節(jié)RAM,地址范圍為:00H~FFH。3、低128字節(jié)為一般RAM區(qū)〔地址為00H~7FH〕,高128字節(jié)〔地址為80H~FFH〕為特殊功能存放器(SFR)區(qū)。4、片外數(shù)據(jù)存儲(chǔ)器可擴(kuò)展64KB存儲(chǔ)空間,

地址范圍為0000H~FFFFH。MCS-51單片機(jī)片內(nèi)數(shù)據(jù)存儲(chǔ)器256字節(jié)可分為兩局部:00H~7FH單元空間的128字節(jié)為RAM區(qū);7FH~FFH單元空間的128字節(jié)為專用存放器(SFR)區(qū)。1.片內(nèi)數(shù)據(jù)存儲(chǔ)器MCS-51單片機(jī)可擴(kuò)展片外64KB空間的數(shù)據(jù)

存儲(chǔ)器,地址范圍為0000H~FFFFH。2.片外數(shù)據(jù)存儲(chǔ)器片內(nèi)RAM高128單元:SFR(80H ~FFH)低128單元(00H~7FH)堆棧和數(shù)據(jù)緩沖區(qū)(30H~7FH)位尋址區(qū)(20H~2FH)通用存放器區(qū)(00H~1FH)片內(nèi)數(shù)據(jù)存儲(chǔ)器框架分析1.片內(nèi)數(shù)據(jù)存儲(chǔ)器(1)片內(nèi)RAM區(qū):低128單元共128字節(jié),它又可劃分為通用存放器區(qū)、位尋址區(qū)、普通RAM區(qū)。工作寄存器區(qū)

位尋址區(qū)

數(shù)據(jù)緩沖區(qū)00H20H30H80HSFR2FH7FHFFH1FH

內(nèi)部RAM00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作存放器區(qū)R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器區(qū)3工作寄存器區(qū)2工作寄存器區(qū)1工作寄存器區(qū)00FH10H17H18H片內(nèi)RAM前32個(gè)單元是工作存放器區(qū)(00H—1FH)①工作存放器區(qū):存放器常用于存放操作數(shù)中間結(jié)果等。00H~1FH這32個(gè)單元為工作存放器區(qū),共有4組存放器,每組8個(gè)存放單元〔各為8〕,各組都以R0~R7作存放單元編號(hào)。程序中每次只用1組,到底是哪一組,由程序狀態(tài)字存放器PSW中RS1、RS0位的狀態(tài)組合來決定。工作寄存器區(qū)00HR0

工作寄存器0組01HR1工07HR7

08HR0

工作寄存器1組作09HR1

寄0FHR7

10HR0

工作寄存器2組存11HR1

器17HR7

18HR0

工作寄存器3組區(qū)19HR11FHR7工作寄存器區(qū)每次只用1組!?。」ぷ鞔娣牌鹘M的選擇表PSW.4(RS1)PSW.3(RS0)當(dāng)前使用的工作寄存器組R0~R7000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作存放器區(qū)27H22H21H20H26H24H25H23H28H2FH單元地址07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241407F7E7D7C7B7A7978位地址總共128個(gè)可按位尋址的位位尋址區(qū)分布在:20H—2FH單元

②位尋址區(qū):

20H~2FH這16個(gè)單元為位尋址區(qū)。它有雙重尋址功能,既可以按位尋址操作,也可以普通RAM單元那樣按字節(jié)尋址操作。位尋址區(qū)共有16個(gè)RAM單元,計(jì)128位,地址為00H~7FH。50

片內(nèi)RAM位尋址區(qū)的位地址位操作:SETB7FHSETB2FH.7

③普通RAM區(qū):30H~7FH這80個(gè)單元為普通RAM區(qū)。用于存放用戶數(shù)據(jù),只能按字節(jié)存取。對用戶RAM區(qū)的使用沒有任何規(guī)定或限制,但在一般應(yīng)用中常把堆棧開辟在此區(qū)中。數(shù)據(jù)緩沖區(qū)

堆棧區(qū):堆棧是片內(nèi)RAM中的特殊群體。用來暫時(shí)存放諸如子程序端口地址、中斷端口地址以及其它需要保護(hù)的數(shù)據(jù)。

工作寄存器區(qū)

位尋址區(qū)

數(shù)據(jù)緩沖區(qū)00H20H30H80HSFR2FH7FHFFH1FH

內(nèi)部RAM(2)專用存放器區(qū):高128單元工作寄存器區(qū)

位尋址區(qū)

數(shù)據(jù)緩沖區(qū)00H20H30H80HSFR2FH7FHFFH1FH

內(nèi)部RAM不同的SFR管理不同的硬件模塊,負(fù)責(zé)不同的功能——各司其職。換言之:要讓單片機(jī)實(shí)現(xiàn)預(yù)訂的功能,必須有相應(yīng)的硬件和軟件,而軟件中最重要的一項(xiàng)工作就是對SFR寫命令〔要求〕。表2.5MCS-51特殊功能存放器一覽表SFR符號(hào)地址復(fù)位值功能名稱*ACC0E0H00000000B

累加器*B0F0H00000000BB寄存器*PSW0D0H00000000B

程序狀態(tài)字SP81H00000111B

堆棧指針DPL82H00000000B

數(shù)據(jù)寄存器指針(低8位)DPH83H00000000B

數(shù)據(jù)寄存器指針(高8位)*P080H11111111BP0口鎖存器*P190H11111111BP1口鎖存器*P20A0H11111111BP2口鎖存器*P30B0H11111111BP3口鎖存器*IP0B8HXXX00000B

中斷優(yōu)先級(jí)控制寄存器表2.5MCS-51特殊功能存放器一覽表〔續(xù)〕SFR符號(hào)地址復(fù)位值功能名稱*IE0A8HXXX00000H中斷允許控制寄存器TMOD89H000000000B定時(shí)/計(jì)數(shù)器方式控制寄存器*TCON88H00000000B定時(shí)/計(jì)數(shù)器控制寄存器TH08CH00000000B定時(shí)/計(jì)數(shù)器0高字節(jié)TL08AH00000000B定時(shí)/計(jì)數(shù)器0低字節(jié)TH18DH00000000B定時(shí)/計(jì)數(shù)器1高字節(jié)TL18BH00000000B定時(shí)/計(jì)數(shù)器1低字節(jié)*SCON98H00000000B串行控制寄存器SBUF99H不定串行數(shù)據(jù)緩沖器PCON87H0XXX0000B電源控制寄存器56(1)程序計(jì)數(shù)器〔PC—ProgramCounter〕PC是一個(gè)16位的計(jì)數(shù)器,它的作用是控制程序的執(zhí)行順序。其內(nèi)容為將要執(zhí)行指令的地址,尋址范圍達(dá)64KB。PC有自動(dòng)加1功能,從而實(shí)現(xiàn)程序的順序執(zhí)行。PC沒有地址,是不可尋址的,因此用戶無法對它進(jìn)行讀寫。因地址不在SFR〔專用存放器〕之內(nèi),一般不計(jì)作專用存放器。MCS-51單片機(jī)共有21個(gè)SFR,每個(gè)SFR占一個(gè)RAM單元。它們離散地分布在80H~FFH地址范圍內(nèi)?,F(xiàn)把其中局部存放器簡單介紹如下:571.程序計(jì)數(shù)器PC〔ProgramCounter〕特點(diǎn):▼總指向下一條指令所在首地址(當(dāng)前PC值)▼一切分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位等操作的本質(zhì)就是:改變PC值根本工作方式有以下幾種:〔1〕程序順序執(zhí)行,程序計(jì)數(shù)器自動(dòng)加1〔2〕執(zhí)行有條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令時(shí),PC將被置入新的數(shù)值,從而使程序的流向發(fā)生變化。〔3〕執(zhí)行子程序調(diào)用或中斷調(diào)用,完成以下操作: ①PC的現(xiàn)行值保護(hù)②將子程序入口地址或中斷向量的地址送入PC。58

(2)累加器〔ACC—Accumulator〕。累加器為8位存放器,是最常用的專用存放器。它既可用于存放操作數(shù),也可用來存放運(yùn)算的中間結(jié)果。

MOVA,#03H;A3 ADDA,#05H;AA+559(3)通用存放器B〔GeneralPurposeRegister〕。B存放器是一個(gè)8位存放器,主要用于乘除運(yùn)算。乘法運(yùn)算時(shí),B存乘數(shù)。乘法操作后,乘積的高8位存于B中。除法運(yùn)算時(shí),B存除數(shù)。除法操作后,余數(shù)存于B中。此外,B存放器也可作為一般數(shù)據(jù)存放器使用。 MOVA,#03H;A3 MOVB,#05H;B5 MULAB;BAA*B=3X5

程序狀態(tài)字PSW是一個(gè)8位的標(biāo)志存放器,它用來存放指令執(zhí)行結(jié)果的特征信息,以供程序查詢和判別。其各位的定義如下:字節(jié)地址D0HCyACF0RS1RS0OV---PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0進(jìn)位標(biāo)志位Cy

(4)程序狀態(tài)字(PSW—ProgramStatusWord)。輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志位用戶自定義標(biāo)志位F0工作存放器組選擇位RS1、RS0溢出標(biāo)志位OV奇偶標(biāo)志位P預(yù)留輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志位AC(PSW.6):它表示兩個(gè)8位數(shù)運(yùn)算,低4位有無進(jìn)(借)位的狀況。當(dāng)?shù)?位相加(或相減)時(shí),假設(shè)D3位向D4位有進(jìn)位(或借位),那么AC=1,否那么AC=0。在BCD碼運(yùn)算的十進(jìn)制調(diào)整中要用到該標(biāo)志。字節(jié)地址D0HCyACF0RS1RS0OV---PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0用戶自定義標(biāo)志位F0(PSW.5):用戶可根據(jù)自己的需要對F0賦予一定的含義,通過軟件置位或清零,并根據(jù)F0=1或0來決定程序的執(zhí)行方式,或反映系統(tǒng)某一種工作狀態(tài)。字節(jié)地址D0HCyACF0RS1RS0OV---PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0工作存放器組選擇位RS1、RS0(PSW.4、PSW.3):可用軟件置位或清零,用于選定當(dāng)前使用的4個(gè)工作存放器組中的某一組字節(jié)地址D0HCyACF0RS1RS0OV---PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0RS1 RS0 工作寄存器組

片內(nèi)RAM地址

0 0 第0組 00H~07H

0 1 第1組 08H~0FH

1 0 第2組10H~17H

1 1 第3組18H~1FH

溢出標(biāo)志位OV(PSW.2):OV是帶符號(hào)數(shù)運(yùn)算的溢出標(biāo)志,當(dāng)運(yùn)算結(jié)果超出機(jī)器所能表示的范圍〔-128~+127〕時(shí)稱溢出。如發(fā)生溢出,那么OV=1;否那么OV=0。執(zhí)行加/減運(yùn)算時(shí),OV的值為最高位進(jìn)位和次高位進(jìn)位的異或,即OV=C7⊕C6,(C7—第7位的進(jìn)位,C6-第6位的進(jìn)位)執(zhí)行乘法指令MULAB時(shí),積>255時(shí)OV=1,否那么OV=0。執(zhí)行除法指令DIVAB也會(huì)影響OV標(biāo)志,如B中所放除數(shù)為0,OV=1,否那么OV=0。字節(jié)地址D0HCyACF0RS1RS0OV---PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0奇偶標(biāo)志位P(PSW.0):在執(zhí)行指令后,單片機(jī)根據(jù)累加器A中1的個(gè)數(shù)的奇偶自動(dòng)給該標(biāo)志置位或清零。假設(shè)A中1的個(gè)數(shù)為奇數(shù),那么P=1,否那么P=0。該標(biāo)志對串行通信的數(shù)據(jù)傳輸非常有用,通過奇偶校驗(yàn)可檢驗(yàn)傳輸?shù)目煽啃浴W止?jié)地址D0HCyACF0RS1RS0OV---PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0程序狀態(tài)字可反映運(yùn)算結(jié)果的狀態(tài),下面以加法指令為例進(jìn)行說明。例:分析執(zhí)行以下指令序列后,A、Cy、AC、OV、P的內(nèi)容是什么?MOVA,#79HADDA,#58H

答:該指令序列的功能是將79H+58H→A。計(jì)算過程如下:〔79H〕01111001+〔58H〕01011000————————————〔D1H〕11010001指令執(zhí)行后,A=D1H,最高位無進(jìn)位,故Cy=0;低半字節(jié)有進(jìn)位,AC=1;OV=C7⊕C6=0⊕1=1,發(fā)生溢出;A中1的個(gè)數(shù)為偶數(shù),故P=0。67(5)數(shù)據(jù)指針〔DPTR〕數(shù)據(jù)指針為16位存放器。DPTR通常在訪問外部存儲(chǔ)器時(shí)作地址指針使用,存放要訪問的片外RAM/ROM的地址。DPTR既可以按16位存放器使用,也可以按兩個(gè)8位存放器分開使用,即:DPHDPTR高位字節(jié)DPLDPTR低位字節(jié)68(5)數(shù)據(jù)指針〔DPTR〕訪問片外數(shù)據(jù)存儲(chǔ)器或I/O的指令為:MOVXA,@DPTR讀MOVX@DPTR,A寫DPTR存放器也可以作為訪問程序存儲(chǔ)器時(shí)的基址存放器。這時(shí)尋址程序存儲(chǔ)器中的表格、常數(shù)等單元,而不是尋址指令。MOVC A,@A+DPTRJMP@A+DPTR69堆棧是按“先進(jìn)后出〞的原那么存取數(shù)據(jù)的RAM區(qū)域。堆棧共有兩種操作:進(jìn)棧和出棧。圖2.8堆棧結(jié)構(gòu)圖棧頂棧底〔可用軟件設(shè)置〕35H34H33H32H31H30H數(shù)據(jù)壓入數(shù)據(jù)彈出70(6)堆棧指針〔SP—StackPointer〕:用來存放堆棧的棧頂?shù)刂返拇娣牌鳌D2.8堆棧結(jié)構(gòu)圖棧頂棧底〔可用軟件設(shè)置〕35H34H33H32H31H30H數(shù)據(jù)壓入數(shù)據(jù)彈出堆棧指針(SP)SP+1XXHXXHXXHXXHXXH棧頂PUSHPOP堆棧指針(SP)SP-1棧頂XXH棧底不存內(nèi)容71

SP是一個(gè)8位存放器。系統(tǒng)復(fù)位后,SP的內(nèi)容為07H,復(fù)位后堆棧實(shí)際上是從08H單元開始。08H~1FH單元分別屬于工作存放器1~3區(qū),如程序要用到這些區(qū),最好把SP值改為1FH或更大的值。72

一般在內(nèi)部RAM的30H~7FH單元中開辟堆棧。SP可初始化為不同值,因此堆棧位置是浮動(dòng)的。例:MOVSP,#70HMOVA,#XXHPUSHACCSP=70HA=XXHSP=SP+1=71H(71H)=XXH

棧底〔可用軟件設(shè)置〕71H70H數(shù)據(jù)壓入堆棧指針(SP)SP+1XXH棧頂PUSH堆棧指針(SP)73

此處,只集中講述了6個(gè)專用存放器,其余的專用存放器〔如TCON、TMOD、IE、IP、SCON、PCON、SBUF等〕將在以后章節(jié)中陸續(xù)介紹。

表2.5MCS-51特殊功能存放器一覽表SFR符號(hào)地址復(fù)位值功能名稱*ACC0E0H00000000B

累加器*B0F0H00000000BB寄存器*PSW0D0H00000000B

程序狀態(tài)字SP81H00000111B

堆棧指針DPL82H00000000B

數(shù)據(jù)寄存器指針(低8位)DPH83H00000000B

數(shù)據(jù)寄存器指針(高8位)*P080H11111111BP0口鎖存器*P190H11111111BP1口鎖存器*P20A0H11111111BP2口鎖存器*P30B0H11111111BP3口鎖存器*IP0B8HXXX00000B

中斷優(yōu)先級(jí)控制寄存器表2.5MCS-51特殊功能存放器一覽表〔續(xù)〕SFR符號(hào)地址復(fù)位值功能名稱*IE0A8HXXX00000H中斷允許控制寄存器TMOD89H000000000B定時(shí)/計(jì)數(shù)器方式控制寄存器*TCON88H00000000B定時(shí)/計(jì)數(shù)器控制寄存器TH08CH00000000B定時(shí)/計(jì)數(shù)器0高字節(jié)TL08AH00000000B定時(shí)/計(jì)數(shù)器0低字節(jié)TH18DH00000000B定時(shí)/計(jì)數(shù)器1高字節(jié)TL18BH00000000B定時(shí)/計(jì)數(shù)器1低字節(jié)*SCON98H00000000B串行控制寄存器SBUF99H不定串行數(shù)據(jù)緩沖器PCON87H0XXX0000B電源控制寄存器1、沒有被SFR占據(jù)的地址在片內(nèi)并不存在。2、特殊功能存放器通常用存放器尋址,但也可以用直接尋址方式進(jìn)行字節(jié)訪問。3、其中11個(gè)存放器還可進(jìn)行位尋址〔表2.5中帶*號(hào)的存放器〕操作。說明:表2.6SFR中的位地址分配寄存器符號(hào)位地址字節(jié)地址D7D6D5D4D3D2D1D0BF7F6F5F4F3F2F1F0F0HACCE7E6E5E4E3E2E1E0E0HPSWD7D6D5D4D3D2D1D0D0HIP

BCBBBAB9B8B8HP3B7B6B5B4B3B2B1B0B0HIEAF

ACABAAA9A8A8HP2A7A6A5A4A3A2A1A0A0HSCON9F9E9D9C9B9A999898HP1979695949392919090HTCON8F8E8D8C8B8A898888HP0878685848382818080H

MCS-51單片機(jī)可擴(kuò)展片外64KB空間的數(shù)據(jù)存儲(chǔ)器,地址范圍為0000H~FFFFH,它與程序存儲(chǔ)器的地址空間是重合的,但兩者的尋址指令和控制線不同。如表2.7所示。2.片外數(shù)據(jù)存儲(chǔ)器存儲(chǔ)器類別訪問指令控制線片外ROMMOVCPSEN片外RAMMOVXWR、RD表2.7存儲(chǔ)器的訪問指令及控制線ROM、RAM擴(kuò)展示意電路圖2.4MCS-51單片機(jī)的工作方式2.4.1復(fù)位方式2.4.2程序執(zhí)行方式 單步執(zhí)行 連續(xù)執(zhí)行2.4.3節(jié)電工作方式 掉電方式 空閑方式2.4.4編程和校驗(yàn)方式MCS-51系列單片機(jī)的復(fù)位引腳RST上只要出現(xiàn)10ms以上的高電平,單片機(jī)就實(shí)現(xiàn)復(fù)位。復(fù)位方式寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCON

00HA00HT2CON

00HB00HTH0

00HPSW00HTL0

00HSP07HTH1

00HDPTR0000HTL1

00HP0~P3FFHSCON

00H一、復(fù)位狀態(tài)與其它計(jì)算機(jī)一樣,MCS-51單片機(jī)系統(tǒng)常常有上電復(fù)位和按鈕復(fù)位兩種方法。所謂上電復(fù)位,是指計(jì)算機(jī)加電瞬間,要在RST引腳上出現(xiàn)大于10ms的正脈沖,使單片機(jī)進(jìn)入復(fù)位狀態(tài)。按鈕復(fù)位是指用戶按下"復(fù)位"按鈕,使單片機(jī)進(jìn)入復(fù)位狀態(tài)。二、復(fù)位電路83程序執(zhí)行方式是單片機(jī)根本工作方式,可分為連續(xù)執(zhí)行工作方式和單步執(zhí)行工作方式。1.連續(xù)執(zhí)行工作方式單片機(jī)復(fù)位后,PC值為0000H,因此單片機(jī)復(fù)位后立即轉(zhuǎn)到0000H處執(zhí)行程序,自動(dòng)連續(xù)地執(zhí)行下去。2.單步執(zhí)行工作方式這是用戶調(diào)試程序的一種工作方式,在單片機(jī)開發(fā)系統(tǒng)上有一專用的單步按鍵〔或軟件調(diào)試環(huán)境〕。

2.4.2程序執(zhí)行方式節(jié)電工作方式是減少單片機(jī)功耗的工作方式,通常分為空閑〔等待〕方式和掉電〔停機(jī)〕方式兩種。只有CHMOS型器件才有這種工作方式。正常工作電流:11~20mA空閑狀態(tài)電流:1.7~5mA掉電狀態(tài)電流:5~50μA節(jié)電工作方式由SFR中的PCON存放器進(jìn)行控制:PCON.7PCON.6PCON.5PCON.4PCON.3PCON.2PCON.1PCON.0SMOD---GF1GF0PDIDL2.4.3節(jié)電工作方式節(jié)電工作方式由SFR中的PCON存放器進(jìn)行控制:PCON.7PCON.6PCON.5PCON.4PCON.3PCON.2PCON.1PCON.0SMOD---GF1GF0PDIDLPD--掉電控制位IDL--空閑控制位Idle〔空閑〕PowerDown一、掉電方式執(zhí)行指令:MOVPCON,#02H進(jìn)入掉電方式:PCON.7PCON.6PCON.5PCON.4PCON.3PCON.2PCON.1PCON.0SMOD---GF1GF0PDIDL振蕩器時(shí)鐘發(fā)生器中斷、串行口和定時(shí)器等模塊/PD/IDLCPUM1M2PD=1→/PD=0→M1=1時(shí)鐘發(fā)生器停止工作,片內(nèi)所有功能部件停止工作,但RAM和SFR中的內(nèi)容保持不變。ALE和/PSEN信號(hào)為低電平。在掉電期間,VCC可以降為2V〔允許用電池供電〕,但必須待VCC恢復(fù)為5V后一段時(shí)間,才允許退出掉電模式。退出掉電方式:硬件復(fù)位。二、空閑方式執(zhí)行指令:MOVPCON,#01H進(jìn)入空閑方式:PCON.7PCON.6PCON.5PCON.4PCON.3PCON.2PCON.1PCON.0SMOD---GF1GF0PDIDL振蕩器時(shí)鐘發(fā)生器中斷、串行口和定時(shí)器等模塊/PD/IDLCPUM1M2IDL=1→/IDL=0→M2=0CPU停止工作,但中斷、串行口和定時(shí)模塊等可以繼續(xù)工作。此時(shí)、RAM和SFR中的內(nèi)容保持不變。ALE和/PSEN信號(hào)為高電平。CPU進(jìn)入空閑狀態(tài)后是不工作的,但各功能部件保持了進(jìn)入空閑狀態(tài)前的內(nèi)容,且功耗很少。退出空閑的方法:1、讓被允許中斷的中斷源發(fā)出中斷請求,當(dāng)CPU響應(yīng)中斷后會(huì)自動(dòng)使IDL=0。2、硬件復(fù)位,在RST引腳上送一個(gè)脈寬大于24個(gè)時(shí)鐘周期的脈沖??臻e狀態(tài)的應(yīng)用:自學(xué)。編程是指利用特殊手段對單片機(jī)片內(nèi)ROM進(jìn)行寫操作的過程。校驗(yàn)?zāi)敲词菍懭氲某绦虼a進(jìn)行讀出驗(yàn)證的過程。2.4.4編程和校驗(yàn)方式90內(nèi)部振蕩方式:在引腳XTAL1和XTAL2外接晶體振蕩器〔簡稱晶振〕如圖所示。XTAL1XTAL2GND8XX51C01C02

內(nèi)部振蕩方式2.5.1時(shí)鐘電路

單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作時(shí)間基準(zhǔn),8051單片機(jī)的時(shí)鐘信號(hào)通常有兩種電路形式:內(nèi)部振蕩方式和外部振蕩方式。2.5單片機(jī)的時(shí)鐘電路和時(shí)序918XX51外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)。外部振蕩方式如下圖。

對HMOS的單片機(jī)外部時(shí)鐘信號(hào)由XTAL2引入,對于CHMOS的單片機(jī),外部時(shí)鐘由XTAL1引入。外部時(shí)鐘XTAL1XTAL2GND8XX51懸空外部時(shí)鐘XTAL1XTAL2GNDCHMOSHMOS

外部振蕩方式8XX5192時(shí)序:CPU在執(zhí)行指令時(shí)所需控制信號(hào)的時(shí)間順序稱為時(shí)序。時(shí)序是用定時(shí)單位來描述的,MCS-51的時(shí)序單位有四個(gè),分別是時(shí)鐘周期〔節(jié)拍〕、狀態(tài)、機(jī)器周期和指令周期。2.5.2MCS-51的時(shí)序93時(shí)鐘周期:又稱為振蕩周期、節(jié)拍〔用P表示〕,定義為單片機(jī)提供時(shí)鐘信號(hào)的振蕩源〔OSC〕的周期。它是時(shí)序中的最小單位。2.狀態(tài)〔用S表示〕:每個(gè)狀態(tài)周期為時(shí)鐘周期的2倍,是振蕩源經(jīng)二分頻后得到。一個(gè)狀態(tài)有兩個(gè)節(jié)拍,前半周期對應(yīng)的節(jié)拍定義為P1,后半周期對應(yīng)的節(jié)拍定義為P2。943.機(jī)器周期:通常將完成一個(gè)根本操作所需的時(shí)間稱為機(jī)器周期。MCS-51中規(guī)定一個(gè)機(jī)器周期包含12個(gè)時(shí)鐘周期,即有6個(gè)狀態(tài),分別表示為S1~S6。假設(shè)晶振為6MHz,那么機(jī)器周期為2μs,假設(shè)晶振為12MHz,那么機(jī)器周期為1μs。4.指令周期:執(zhí)行一條指令所需要的時(shí)間稱為指令周期。它是時(shí)序中的最大單位。一機(jī)器周期數(shù)越少的指令,其執(zhí)行速度越快。以機(jī)器周期為單位,指令可分為單周期、雙周期和四周期指令。95例:單片機(jī)外接晶振頻率12MHZ時(shí)的各種時(shí)序單位:

振蕩周期=1/fosc=1/12MHZ=0.0833us

狀態(tài)周期=2/fosc=2/12MHZ=0.167us

機(jī)器周期=12/fosc=12/12MHZ=1us

指令周期=(1-4)機(jī)器周期=1-4usMCS—51系列單片機(jī)的一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期。我們用S1、S2、……、S6表示,每個(gè)狀態(tài)周期的2個(gè)振蕩節(jié)拍用P1、P2表示,那么一個(gè)機(jī)器周期包括12個(gè)時(shí)鐘周期,不同周期、不同字節(jié)數(shù)的指令時(shí)序不同。一個(gè)機(jī)器周期包括12個(gè)時(shí)鐘周期972.5.3MCS-51指令的取指/執(zhí)行時(shí)序

單片機(jī)執(zhí)行任何一條指令時(shí)都可以分為取指階段和執(zhí)行階段,

ALE信號(hào)每出現(xiàn)一次該信號(hào),單片機(jī)即進(jìn)行一次讀指令操作。

MCS-51共有111條指令。按其字節(jié)長度可分為:

單字節(jié)指令、雙字節(jié)指令、三字節(jié)指令。按其執(zhí)行指令時(shí)間可分為:

單周期指令、雙周期指令、四周期指令。

溫馨提示

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

評論

0/150

提交評論