第1章MCS-51單片機(jī)._第1頁
第1章MCS-51單片機(jī)._第2頁
第1章MCS-51單片機(jī)._第3頁
第1章MCS-51單片機(jī)._第4頁
第1章MCS-51單片機(jī)._第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、河北科技大學(xué)河北科技大學(xué)機(jī)電一體化教研室機(jī)電一體化教研室吳書迎吳書迎2第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理 l微型計(jì)算機(jī)主要由運(yùn)算器、控制器、存儲器和輸入輸出電路這四微型計(jì)算機(jī)主要由運(yùn)算器、控制器、存儲器和輸入輸出電路這四部分組成,其中運(yùn)算器與控制器集成于部分組成,其中運(yùn)算器與控制器集成于CPUCPU中。中。l80318031單片機(jī)除單片機(jī)除有有CPUCPU、存儲器和輸入輸出電路外,還包括定時(shí)器、存儲器和輸入輸出電路外,還包括定時(shí)器/ /計(jì)數(shù)器、中斷控制和時(shí)鐘振蕩電路計(jì)數(shù)器、中斷控制和時(shí)鐘振蕩電路等。等。l將這些部件集成在一塊芯片上,通過內(nèi)部總線連接構(gòu)成

2、完整的單將這些部件集成在一塊芯片上,通過內(nèi)部總線連接構(gòu)成完整的單片微型計(jì)算機(jī),簡稱單片機(jī)。片微型計(jì)算機(jī),簡稱單片機(jī)。3第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理80318031內(nèi)部結(jié)構(gòu)原理示意圖內(nèi)部結(jié)構(gòu)原理示意圖4第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理1.1 MCS51存儲器配置存儲器配置l微型計(jì)算機(jī)必須配置一定數(shù)量的存儲器,但不同的微型計(jì)算機(jī)存微型計(jì)算機(jī)必須配置一定數(shù)量的存儲器,但不同的微型計(jì)算機(jī)存儲器的配置不同。儲器的配置不同。l一種是程序與數(shù)據(jù)共用一個(gè)存儲器,一般的通用計(jì)算機(jī)都采用此一種是程序與數(shù)據(jù)共用一個(gè)存儲器,一

3、般的通用計(jì)算機(jī)都采用此種形式。種形式。l另一種是將程序與數(shù)據(jù)分別放在兩個(gè)存儲器內(nèi),一個(gè)稱另一種是將程序與數(shù)據(jù)分別放在兩個(gè)存儲器內(nèi),一個(gè)稱程序存儲程序存儲器器,另一個(gè)稱,另一個(gè)稱數(shù)據(jù)存儲器數(shù)據(jù)存儲器,MCSMCS5151單片機(jī)屬于此類。單片機(jī)屬于此類。5第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理1.1 MCS51存儲器配置存儲器配置 MCSMCS5151片內(nèi)集成有一定容量的片內(nèi)集成有一定容量的程序存儲器程序存儲器(8031/80C31/8032(8031/80C31/8032除外除外) )和和數(shù)據(jù)存儲器數(shù)據(jù)存儲器,并具有較大的外部存儲器擴(kuò)展能力。,并具有較大的外

4、部存儲器擴(kuò)展能力。lMCSMCS5151有有4 4個(gè)存儲器空間:個(gè)存儲器空間: 1.1.片內(nèi)程序存儲器片內(nèi)程序存儲器 2.2.片外程序存儲器片外程序存儲器 3.3.片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器 4.4.片外數(shù)據(jù)存儲器片外數(shù)據(jù)存儲器l從用戶角度(邏輯上),從用戶角度(邏輯上),MCSMCS5151分為分為3 3個(gè)存儲器空間:個(gè)存儲器空間:1)1)、片內(nèi)、外統(tǒng)一編址的、片內(nèi)、外統(tǒng)一編址的64KB64KB程序存儲器地址空間;程序存儲器地址空間;2)2)、256B256B內(nèi)部數(shù)據(jù)存儲器和特殊功能寄存器地址空間;內(nèi)部數(shù)據(jù)存儲器和特殊功能寄存器地址空間;3)3)、64KB64KB外部數(shù)據(jù)存儲器地址空間。外

5、部數(shù)據(jù)存儲器地址空間。6第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理1.1 MCS51存儲器配置存儲器配置l 71.1 MCS51存儲器配置存儲器配置 1.1.1 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器l數(shù)據(jù)存儲器在物理上和邏輯上分為二個(gè)地址空間:數(shù)據(jù)存儲器在物理上和邏輯上分為二個(gè)地址空間: 一個(gè)一個(gè)內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器和一個(gè)和一個(gè)外部數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器l訪問內(nèi)部數(shù)據(jù)存儲器,用訪問內(nèi)部數(shù)據(jù)存儲器,用MOVMOV指令;指令;l訪問外部數(shù)據(jù)存儲器,用訪問外部數(shù)據(jù)存儲器,用MOVXMOVX指令;指令;l80318031單片機(jī)內(nèi)部數(shù)據(jù)存儲器,由單片機(jī)內(nèi)部數(shù)據(jù)存儲器,

6、由128B128B的內(nèi)部數(shù)據(jù)存儲器的內(nèi)部數(shù)據(jù)存儲器和和128B128B的特的特殊功能寄存器殊功能寄存器組成,在特殊功能寄存器尋址空間中,離散地分布著組成,在特殊功能寄存器尋址空間中,離散地分布著1919個(gè)特殊功能寄存器個(gè)特殊功能寄存器。81.1 MCS51存儲器配置存儲器配置 1.1.1 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器 00H00H7FH7FH 內(nèi)部數(shù)據(jù)存儲器共有內(nèi)部數(shù)據(jù)存儲器共有128128個(gè)字節(jié),個(gè)字節(jié), 根據(jù)作用不同分為三個(gè)區(qū)。根據(jù)作用不同分為三個(gè)區(qū)。l寄存器區(qū)寄存器區(qū)00H00H1FH1FH(32(32個(gè)單元個(gè)單元) );l位尋址區(qū)位尋址區(qū)20H20H2FH

7、2FH(16(16個(gè)單元個(gè)單元) );l通用通用RAMRAM區(qū)區(qū)30H30H7FH7FH (80個(gè)單元)個(gè)單元) 。91.1 MCS51存儲器配置存儲器配置 1.1.1 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器 1 1、寄存器區(qū)、寄存器區(qū) 00H00H1FH(1FH(共共3232個(gè)單元個(gè)單元) )l有有4 4個(gè)寄存器組,每組個(gè)寄存器組,每組8 8個(gè)寄存器,均表示為個(gè)寄存器,均表示為 R0R0R7R7。l由于每個(gè)寄存器組的由于每個(gè)寄存器組的8 8個(gè)寄存器都標(biāo)記為個(gè)寄存器都標(biāo)記為 R0R0R7R7,因此每次只能,因此每次只能選擇一個(gè)工作寄存器組。選擇一個(gè)工作寄存器組。l通過狀態(tài)寄存器通過狀態(tài)寄存器 PSW P

8、SW 的第的第3 3、4 4位(即位(即RS1RS1、RS0RS0)選擇工作寄存器)選擇工作寄存器組,如表組,如表4 41 1 。l由于由于MCSMCS5151單片機(jī)對寄存器操作最靈活且響應(yīng)速度最快,一般情單片機(jī)對寄存器操作最靈活且響應(yīng)速度最快,一般情況下,總是首先選擇使用寄存器,因此有效地設(shè)置況下,總是首先選擇使用寄存器,因此有效地設(shè)置4 4個(gè)工作寄存器個(gè)工作寄存器組,可以提高現(xiàn)場保護(hù)能力和組,可以提高現(xiàn)場保護(hù)能力和 CPU CPU 實(shí)時(shí)響應(yīng)的速度。實(shí)時(shí)響應(yīng)的速度。 111.1 MCS51存儲器配置存儲器配置 1.1.1 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器 121.1 MCS51存儲器配置存儲器配

9、置 1.1.1 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器2 2、位尋址區(qū)、位尋址區(qū) 20H20H2FH(162FH(16個(gè)單元個(gè)單元) )l既可以按位直接尋址,進(jìn)行位操作;又可按字節(jié)尋址,作為一般既可以按位直接尋址,進(jìn)行位操作;又可按字節(jié)尋址,作為一般工作單元使用;工作單元使用;l這這1616個(gè)字節(jié),每字節(jié)個(gè)字節(jié),每字節(jié)8 8位,共有位,共有l(wèi)6l6* *8=1288=128位。占用地址為位。占用地址為00H00H7FH7FH(位地址),如表(位地址),如表4 42 2所示;所示;l應(yīng)用這些位單元,可以方便地進(jìn)行各種布爾邏輯操作。應(yīng)用這些位單元,可以方便地進(jìn)行各種布爾邏輯操作。 131.1 MCS51存儲

10、器配置存儲器配置 1.1.1 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器 141.1 MCS51存儲器配置存儲器配置 1.1.1 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器3 3、通用、通用RAMRAM區(qū)區(qū) 30H30H7FH7FHl內(nèi)部內(nèi)部RAMRAM中的中的30H30H7FH7FH構(gòu)成通用構(gòu)成通用RAMRAM區(qū),可用于存放運(yùn)算過成中的區(qū),可用于存放運(yùn)算過成中的中間數(shù)據(jù),也可作為堆棧存儲區(qū)域。中間數(shù)據(jù),也可作為堆棧存儲區(qū)域。151.1 MCS51存儲器配置存儲器配置 1.1.2 特殊功能寄存器特殊功能寄存器l80318031單片機(jī)共有單片機(jī)共有1919個(gè)(個(gè)(2121個(gè)字節(jié))特殊功能寄存器個(gè)字節(jié))特殊功能寄存器SFR

11、SFR ,用來設(shè),用來設(shè)置片內(nèi)電路的運(yùn)行方式,記錄電路運(yùn)行狀態(tài),并表示有關(guān)標(biāo)志等。置片內(nèi)電路的運(yùn)行方式,記錄電路運(yùn)行狀態(tài),并表示有關(guān)標(biāo)志等。l并行和串行端口映射在并行和串行端口映射在SFRSFR寄存器,對這些寄存器的讀寫,可實(shí)現(xiàn)寄存器,對這些寄存器的讀寫,可實(shí)現(xiàn)對相應(yīng)對相應(yīng)I/OI/O端口的輸入和輸出操作。端口的輸入和輸出操作。l2121個(gè)字節(jié)的特殊功能寄存器中,離散分布在個(gè)字節(jié)的特殊功能寄存器中,離散分布在128128字節(jié)的字節(jié)的SFRSFR(80H80HFFHFFH)存儲空間中。)存儲空間中。l有些有些SFRSFR具有位地址,在具有位地址,在SFRSFR(80H80HFFHFFH)存儲空間

12、包含有)存儲空間包含有128128個(gè)位個(gè)位地址空間,其地址也是地址空間,其地址也是80H80HFFHFFH,但僅有,但僅有8383個(gè)有效地址,可對個(gè)有效地址,可對1111個(gè)個(gè)SFRSFR進(jìn)行位尋址操作。進(jìn)行位尋址操作。 171.1 MCS51存儲器配置存儲器配置 1.1.2 特殊功能寄存器特殊功能寄存器lMCSMCS5151系列有系列有1919個(gè)特殊功能寄存器。個(gè)特殊功能寄存器。lA A 累加器累加器lB B 寄存器寄存器lPSW PSW 程序狀態(tài)字程序狀態(tài)字lSP SP 堆棧指針堆棧指針lPC PC 程序計(jì)數(shù)器程序計(jì)數(shù)器lDPTR DPTR 數(shù)據(jù)指針數(shù)據(jù)指針lP0P0P3 I/OP3 I/O

13、端口寄存器端口寄存器 lSBUF SBUF 串行數(shù)據(jù)緩沖器串行數(shù)據(jù)緩沖器lTH0TH0、TL0TL0、TH1TH1、TL1 TL1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器lIPIP、IEIE、TMODTMOD、TCONTCON、SCONSCON、PCON PCON 控制寄存器控制寄存器 181.1 MCS51存儲器配置存儲器配置 1.1.2 特殊功能寄存器特殊功能寄存器191.1 MCS51存儲器配置存儲器配置 1.1.2 特殊功能寄存器特殊功能寄存器201.1 MCS51存儲器配置存儲器配置 1.1.2 特殊功能寄存器特殊功能寄存器211.1 MCS51存儲器配置存儲器配置 1.1.3 程序存儲器程

14、序存儲器1 1、內(nèi)部程序存儲器、內(nèi)部程序存儲器l80518051有有4KB4KB的的ROMROM程序存儲器;程序存儲器;l87518751有有4KB4KB的的EPROMEPROM程序存儲器;程序存儲器;l80318031沒有內(nèi)部程序存儲器,必須外接程序存儲器。沒有內(nèi)部程序存儲器,必須外接程序存儲器。2 2、外部程序存儲器、外部程序存儲器lMCSMCS5l5l單片機(jī)有單片機(jī)有1616根地址線和根地址線和1616位的程序計(jì)數(shù)器位的程序計(jì)數(shù)器PCPC,因此可以尋,因此可以尋址(擴(kuò)展至)址(擴(kuò)展至)64KB64KB的程序存儲器。的程序存儲器。3 3、程序存儲器的作用、程序存儲器的作用l存放(固化)用戶

15、程序和常數(shù)表格,可通過存放(固化)用戶程序和常數(shù)表格,可通過MOVCMOVC指令訪問。指令訪問。l程序存儲器通常選用程序存儲器通常選用EPROMEPROM或或E E2 2PROMPROM芯片來固化程序。芯片來固化程序。221.1 MCS51存儲器配置存儲器配置 1.1.3 程序存儲器程序存儲器l 231.1 MCS51存儲器配置存儲器配置 1.1.3 程序存儲器程序存儲器 4 4、程序存儲器中特定程序的入口地址、程序存儲器中特定程序的入口地址程序存儲器中某些地址被固定用于特定程序的入口地址:程序存儲器中某些地址被固定用于特定程序的入口地址: 地址地址 用途用途241.1 MCS51存儲器配置存

16、儲器配置 1.1.4 外部數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器l外部數(shù)據(jù)存儲器(外部數(shù)據(jù)外部數(shù)據(jù)存儲器(外部數(shù)據(jù)RAMRAM),可通過總線端口擴(kuò)展外部數(shù)據(jù)),可通過總線端口擴(kuò)展外部數(shù)據(jù)RAMRAM,最大可擴(kuò)至,最大可擴(kuò)至64K64K字節(jié)。字節(jié)。l外部外部RAMRAM和內(nèi)部和內(nèi)部RAMRAM的功能基本相同,外部的功能基本相同,外部RAMRAM不能進(jìn)行堆棧操作。不能進(jìn)行堆棧操作。l訪問內(nèi)部數(shù)據(jù)訪問內(nèi)部數(shù)據(jù)RAMRAM,用,用MOVMOV指令;訪問外部數(shù)據(jù)指令;訪問外部數(shù)據(jù)RAMRAM,用,用MOVXMOVX指令。指令。251.1 MCS51存儲器配置存儲器配置 1.1.4 外部數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器l 26

17、1.1 MCS51存儲器配置存儲器配置 1.1.5 存儲器的特點(diǎn)和數(shù)據(jù)操作存儲器的特點(diǎn)和數(shù)據(jù)操作27第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理1.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器28第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理1.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器l設(shè)置為定時(shí)工作方式時(shí),定時(shí)器對設(shè)置為定時(shí)工作方式時(shí),定時(shí)器對80318031機(jī)器周期信號計(jì)數(shù)。即每機(jī)器周期信號計(jì)數(shù)。即每個(gè)機(jī)器周期使定時(shí)器的數(shù)值加個(gè)機(jī)器周期使定時(shí)器的數(shù)值加1 1直至計(jì)滿溢出。直至計(jì)滿溢出。l設(shè)置為計(jì)數(shù)工作方式時(shí),通過引腳設(shè)置為計(jì)數(shù)工作方式時(shí),通過引腳T0(

18、P3.4)T0(P3.4)和和T1(P3.5)T1(P3.5)對外部脈對外部脈沖信號計(jì)數(shù)。沖信號計(jì)數(shù)。l定時(shí)器計(jì)數(shù)器有四種工作方式。定時(shí)器計(jì)數(shù)器有四種工作方式。291.2.1 控制寄存器控制寄存器 1 1、工作方式寄存器、工作方式寄存器TMOD(89H)TMOD(89H)TMODTMOD用于控制用于控制T0T0和和T1T1的工作方式,其各位的定義如下:的工作方式,其各位的定義如下:301.2.1 控制寄存器控制寄存器 1 1、工作方式寄存器、工作方式寄存器TMOD(89H)TMOD(89H)M1M1和和M0M0:操作方式控制位:操作方式控制位311.2.1 控制寄存器控制寄存器 2 2、控制寄

19、存器、控制寄存器 TCON(88H)TCON(88H) 控制定時(shí)器啟動停止及狀態(tài)的標(biāo)志,控制寄存器控制定時(shí)器啟動停止及狀態(tài)的標(biāo)志,控制寄存器TCONTCON除可字節(jié)尋址除可字節(jié)尋址外,各位還可位尋址:外,各位還可位尋址:321.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式l定時(shí)器定時(shí)器/ /計(jì)數(shù)器有計(jì)數(shù)器有4 4種工作方式;由軟件對種工作方式;由軟件對TMODTMOD中中T/T/C C位設(shè)置,來選位設(shè)置,來選擇定時(shí)或計(jì)數(shù)功能。擇定時(shí)或計(jì)數(shù)功能。l由由MlMl和和M0M0位的設(shè)置工作方式:即方式位的設(shè)置工作方式:即方式0 0、方式、方式1 1、方式、方式2 2和方式和

20、方式3 3。l對于方式對于方式0 0、1 1、2 2,T0T0與與T1T1的工作模式相同;對于方式的工作模式相同;對于方式3 3只有只有T0T0才才能設(shè)置。能設(shè)置。331.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式1 1、方式、方式0 130 13位計(jì)數(shù)方式位計(jì)數(shù)方式 是將定時(shí)器是將定時(shí)器(T0(T0或或T1)T1)高高8 8位和低位和低5 5位組成一個(gè)位組成一個(gè)1313位的計(jì)數(shù)器,其邏輯位的計(jì)數(shù)器,其邏輯電路結(jié)構(gòu)如圖所示。電路結(jié)構(gòu)如圖所示。341.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式l用于定時(shí)工作方式時(shí)用于定時(shí)工作方式時(shí) 定時(shí)

21、時(shí)間為:定時(shí)時(shí)間為:t t(2(21313-T0-T0初值初值) )機(jī)器周期機(jī)器周期l用于計(jì)數(shù)工作方式時(shí)用于計(jì)數(shù)工作方式時(shí) 計(jì)數(shù)長度為:計(jì)數(shù)長度為:2 213138192(8192(個(gè)外部脈沖個(gè)外部脈沖) )。l當(dāng)當(dāng)TL0TL0的低的低5 5位溢出時(shí),向位溢出時(shí),向TH0TH0進(jìn)位,而進(jìn)位,而TH0TH0溢出時(shí)向中斷標(biāo)志位溢出時(shí)向中斷標(biāo)志位TF0TF0進(jìn)位進(jìn)位( (硬件置位硬件置位TF0)TF0),并申請中斷。,并申請中斷。351.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式lGATE=0GATE=0時(shí),或門時(shí),或門A A點(diǎn)電位為點(diǎn)電位為 “ “1”1”,引腳,引腳

22、INT0INT0輸入無效。與門輸入無效。與門B B點(diǎn)電點(diǎn)電位取決于位取決于TR0TR0狀態(tài),即由狀態(tài),即由TR0TR0控制控制T0T0開啟或關(guān)斷開啟或關(guān)斷。若軟件使若軟件使TR0=1TR0=1,啟動,啟動T0T0加加1 1計(jì)數(shù),直至溢出。計(jì)數(shù),直至溢出。計(jì)數(shù)器計(jì)滿溢出時(shí),計(jì)數(shù)器計(jì)滿溢出時(shí),1313位寄存器清位寄存器清0 0,TF0TF0置位,并申請中斷。置位,并申請中斷。若軟件使若軟件使TR0=0TR0=0,停止計(jì)數(shù)。,停止計(jì)數(shù)。361.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式l當(dāng)當(dāng)GATE=lGATE=l時(shí),時(shí),A A點(diǎn)電位取決于點(diǎn)電位取決于INT0INT0(

23、P3.4)(P3.4)引腳的輸入電平。引腳的輸入電平。INT0INT0為為高電平且高電平且TR0=1TR0=1時(shí),時(shí),B B點(diǎn)才是高電平,點(diǎn)才是高電平,T0T0開始計(jì)數(shù)。開始計(jì)數(shù)。當(dāng)當(dāng)INT0INT0由由1 1變變0 0時(shí),時(shí),T0T0停止計(jì)數(shù)。這一特性可以用來測量在停止計(jì)數(shù)。這一特性可以用來測量在INT0INT0端端出現(xiàn)的正脈沖的寬度。出現(xiàn)的正脈沖的寬度。371.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式 例:利用定時(shí)器計(jì)數(shù)器每隔例:利用定時(shí)器計(jì)數(shù)器每隔1ms1ms控制產(chǎn)生寬度為二個(gè)機(jī)器周期的控制產(chǎn)生寬度為二個(gè)機(jī)器周期的負(fù)脈沖,由負(fù)脈沖,由P1.0P1.0送出。

24、送出。 設(shè)時(shí)鐘頻率為設(shè)時(shí)鐘頻率為12MHz12MHz,機(jī)器周期為,機(jī)器周期為1s1s,采用中斷工作方式。,采用中斷工作方式。l首先求定時(shí)器初值,首先求定時(shí)器初值,t t(2(21313-T0-T0初值初值) ) 機(jī)器周期機(jī)器周期, ,設(shè)定時(shí)器初值設(shè)定時(shí)器初值為為X X,則定時(shí),則定時(shí)1ms1ms時(shí),應(yīng)有時(shí),應(yīng)有 1 11010-3 -3 (2(21313-X)-X)1010-6-6,可求得,可求得X X7192719211100000 11000B11100000 11000B,其中高,其中高8 8位位E0HE0H賦給賦給TH0TH0,低,低5 5值值18H18H賦給賦給TL0TL0。l由于系

25、統(tǒng)復(fù)位后,由于系統(tǒng)復(fù)位后,TMODTMOD被清被清0 0,正好處于定時(shí)器方式,正好處于定時(shí)器方式0 0狀態(tài),且狀態(tài),且GATEGATE0 0,也可不設(shè)置,也可不設(shè)置TMODTMOD。381.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式 程序如下:程序如下: ORG 0000HORG 0000H AJMP MAIN AJMP MAIN391.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式2 2、方式、方式1 1 16 16位計(jì)數(shù)方式位計(jì)數(shù)方式 T0T0與與T1T1的相同,寄存器的相同,寄存器TH0TH0和和TL0TL0組成組成1616位計(jì)數(shù)器

26、,位計(jì)數(shù)器,其邏輯電路結(jié)構(gòu)如圖所示。其邏輯電路結(jié)構(gòu)如圖所示。401.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式l用于定時(shí)工作方式時(shí)用于定時(shí)工作方式時(shí) 定時(shí)時(shí)間為:定時(shí)時(shí)間為:t t(2(21616-T0-T0初值初值) )機(jī)器周期機(jī)器周期l用于計(jì)數(shù)工作方式時(shí)用于計(jì)數(shù)工作方式時(shí) 計(jì)數(shù)長度為計(jì)數(shù)長度為2 2161665536(65536(個(gè)外部脈沖個(gè)外部脈沖) )。l方式方式1 1與方式與方式0 0基本相同,只是方式基本相同,只是方式1 1改用了改用了1616位計(jì)數(shù)器。位計(jì)數(shù)器。411.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式 3 3、

27、方式、方式2 2 8 8位自動重裝時(shí)間常數(shù)方式。位自動重裝時(shí)間常數(shù)方式。 方式方式2 2把把TL0(TL1)TL0(TL1)配置成一個(gè)可以自動重裝載的配置成一個(gè)可以自動重裝載的8 8位定時(shí)計(jì)數(shù)器,位定時(shí)計(jì)數(shù)器,TH0(TH1)TH0(TH1)僅用來存放時(shí)間常數(shù)。僅用來存放時(shí)間常數(shù)。421.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式lTL0TL0計(jì)算溢出時(shí),不僅使溢出中斷標(biāo)志位計(jì)算溢出時(shí),不僅使溢出中斷標(biāo)志位TF0TF0置置l l,而且還自動把,而且還自動把TH0TH0中的內(nèi)容重裝載到中的內(nèi)容重裝載到TL0TL0中。中。l在程序初始化時(shí),在程序初始化時(shí),TL0TL0

28、和和TH0TH0由軟件賦于相同的初值。由軟件賦于相同的初值。l用于定時(shí)器工作方式時(shí),其定時(shí)時(shí)間用于定時(shí)器工作方式時(shí),其定時(shí)時(shí)間(TF0(TF0溢出周期溢出周期) )為:為: t = (2t = (28 8-TH0-TH0初值初值) )機(jī)器周期機(jī)器周期l用于計(jì)數(shù)器工作方式時(shí),最大計(jì)數(shù)值用于計(jì)數(shù)器工作方式時(shí),最大計(jì)數(shù)值(TH0(TH0初值為初值為0)0)為:為: 2 28 8 = = 256(256(個(gè)外部脈沖個(gè)外部脈沖) )。431.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式4 4、工作方式、工作方式3 3 2 2個(gè)個(gè)8 8位方式,工作方式位方式,工作方式3 3只適

29、用于定時(shí)器只適用于定時(shí)器T0T0。l若將若將T0T0設(shè)置為方式設(shè)置為方式3 3,TH0TH0和和TL0TL0被分成為兩個(gè)互相獨(dú)立的被分成為兩個(gè)互相獨(dú)立的8 8位計(jì)數(shù)位計(jì)數(shù)器。器。441.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2 定時(shí)器工作方式定時(shí)器工作方式lTL0TL0既可用作定時(shí)器,又可用作計(jì)數(shù)器,并使用原既可用作定時(shí)器,又可用作計(jì)數(shù)器,并使用原T0T0的所有控制位的所有控制位及其定時(shí)器回零標(biāo)志和中斷源。即及其定時(shí)器回零標(biāo)志和中斷源。即C/C/T T、GATEGATE、TR0TR0、TF0TF0和和T0(P3.4)T0(P3.4)引腳、引腳、INT0INT0(P3.2)(P3.2)引腳。引

30、腳。lTH0TH0只有簡單的內(nèi)部定時(shí)功能,它使用定時(shí)器只有簡單的內(nèi)部定時(shí)功能,它使用定時(shí)器T1T1的控制位的控制位TR1TR1、中、中斷標(biāo)志位斷標(biāo)志位TF1TF1及中斷源,其啟動和關(guān)閉僅受及中斷源,其啟動和關(guān)閉僅受TR1TR1的控制。的控制。451.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2定時(shí)定時(shí)/計(jì)數(shù)初值的求取方法計(jì)數(shù)初值的求取方法461.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2定時(shí)定時(shí)/計(jì)數(shù)初值的求取方法計(jì)數(shù)初值的求取方法471.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.2定時(shí)定時(shí)/計(jì)數(shù)初值的求取方法計(jì)數(shù)初值的求取方法481.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.3定時(shí)定時(shí)/計(jì)數(shù)器應(yīng)用

31、舉例計(jì)數(shù)器應(yīng)用舉例例例 已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送, 產(chǎn)產(chǎn)品之間有較大間隔。品之間有較大間隔。使用光電開關(guān)統(tǒng)計(jì)一定時(shí)間內(nèi)的產(chǎn)品個(gè)數(shù),使用光電開關(guān)統(tǒng)計(jì)一定時(shí)間內(nèi)的產(chǎn)品個(gè)數(shù), 假定紅燈假定紅燈亮?xí)r停止統(tǒng)計(jì)亮?xí)r停止統(tǒng)計(jì), 紅燈滅時(shí)才在上次統(tǒng)計(jì)結(jié)果的基礎(chǔ)上繼續(xù)紅燈滅時(shí)才在上次統(tǒng)計(jì)結(jié)果的基礎(chǔ)上繼續(xù)統(tǒng)計(jì)。統(tǒng)計(jì)。試用單片機(jī)定時(shí)器試用單片機(jī)定時(shí)器 /計(jì)數(shù)器計(jì)數(shù)器T1的方式的方式 1 完成該項(xiàng)產(chǎn)品的完成該項(xiàng)產(chǎn)品的計(jì)數(shù)任務(wù)。計(jì)數(shù)任務(wù)。 491.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.3定時(shí)定時(shí)/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例501.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)

32、數(shù)器 1.2.3定時(shí)定時(shí)/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例(1) 初始化初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H(2) T1在方式在方式1時(shí)時(shí), 溢出產(chǎn)生中斷溢出產(chǎn)生中斷, 且計(jì)數(shù)器回零且計(jì)數(shù)器回零, 故在故在中斷服務(wù)程序中中斷服務(wù)程序中, 需用需用R0計(jì)數(shù)中斷次數(shù)計(jì)數(shù)中斷次數(shù), 以保護(hù)累積計(jì)數(shù)以保護(hù)累積計(jì)數(shù)結(jié)果。結(jié)果。 (3) 啟動啟動T1計(jì)數(shù)計(jì)數(shù), 開開T1中斷。中斷。 程序清單如下程序清單如下: 511.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.3定時(shí)定時(shí)/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例ORG 0000H AJMP ST

33、ART ; 復(fù)位入口復(fù)位入口 ORG 001BH AJMP T1INT ; T1中斷入口中斷入口 ORG 0100H START: MOV SP, 60H ; 初始化程序初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H 521.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1.2.3定時(shí)定時(shí)/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例 MOV TL1, 00H MOV R0, 00H ; 清中斷次數(shù)計(jì)數(shù)單元清中斷次數(shù)計(jì)數(shù)單元 MOV P3, 28H ; 設(shè)置設(shè)置P3.5第二功能第二功能 SETB TR1 ; 啟動啟動T1 SETB ET1 ; 開開T1中斷中斷 SETB EA

34、 ; 開總中斷開總中斷 MAIN: ACALL DISP ; 主程序主程序, 調(diào)顯示子程序調(diào)顯示子程序 ORG 0A00H T1INT: INC R0 ; 中斷服務(wù)子程序中斷服務(wù)子程序 RETI DISP: ; 顯示子程序顯示子程序 RET53第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理1.3 中斷系統(tǒng)中斷系統(tǒng) 80318031單片機(jī)有單片機(jī)有5 5個(gè)中斷源,個(gè)中斷源,4 4個(gè)中斷控制寄存器:個(gè)中斷控制寄存器:l5 5個(gè)中斷源個(gè)中斷源 2 2個(gè)外部中斷:個(gè)外部中斷:INT0INT0、INT1INT1引腳輸入的中斷源;引腳輸入的中斷源; 3 3個(gè)內(nèi)部中斷源:定時(shí)器

35、個(gè)內(nèi)部中斷源:定時(shí)器T0T0、T1T1溢出中斷和串行口發(fā)送接收中斷。溢出中斷和串行口發(fā)送接收中斷。l4 4個(gè)用于中斷的控制寄存器個(gè)用于中斷的控制寄存器 IEIE、IPIP、TCON(TCON(用用6 6位位) )和和SCON(SCON(用用2 2位位) ):用于控制中斷的類型、中:用于控制中斷的類型、中斷的開(閉)及中斷源的優(yōu)先級。斷的開(閉)及中斷源的優(yōu)先級。l2 2個(gè)中斷優(yōu)先級,每個(gè)中斷源可以編程為高優(yōu)先級或低優(yōu)先級中斷,個(gè)中斷優(yōu)先級,每個(gè)中斷源可以編程為高優(yōu)先級或低優(yōu)先級中斷,可以實(shí)現(xiàn)可以實(shí)現(xiàn)2 2級中斷服務(wù)程序的嵌套。級中斷服務(wù)程序的嵌套。541.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.1 1.

36、3.1 中斷的概念中斷的概念l早期的計(jì)算機(jī)沒有中斷功能,主機(jī)和外設(shè)交換信息早期的計(jì)算機(jī)沒有中斷功能,主機(jī)和外設(shè)交換信息( (數(shù)據(jù)數(shù)據(jù)) )只能采只能采用程序控制傳送方式。用程序控制傳送方式。 如:查詢方式交換信息時(shí),由于是如:查詢方式交換信息時(shí),由于是CPUCPU主動要求傳送數(shù)據(jù),而它又主動要求傳送數(shù)據(jù),而它又不能控制外設(shè)的工作速度,因此只能用等待的方式來解決速度的不能控制外設(shè)的工作速度,因此只能用等待的方式來解決速度的匹配問題,即匹配問題,即CPUCPU不能再做別的事,而大部分時(shí)間處于等待不能再做別的事,而大部分時(shí)間處于等待I IO)O)接口準(zhǔn)備好接口準(zhǔn)備好( (就緒就緒) )狀態(tài)。狀態(tài)。l

37、現(xiàn)代的計(jì)算機(jī)都具有實(shí)時(shí)處理功能,能對外界異常發(fā)生的事件作現(xiàn)代的計(jì)算機(jī)都具有實(shí)時(shí)處理功能,能對外界異常發(fā)生的事件作出及時(shí)的處理,這是靠中斷技術(shù)來實(shí)現(xiàn)的。出及時(shí)的處理,這是靠中斷技術(shù)來實(shí)現(xiàn)的。551.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.1 1.3.1 中斷的概念中斷的概念l所謂中斷:是指所謂中斷:是指CPUCPU正在處理某事件時(shí),外部又發(fā)生了事件正在處理某事件時(shí),外部又發(fā)生了事件( (如電如電平的變化等平的變化等) ),請求,請求CPUCPU迅速處理,于是迅速處理,于是CPUCPU暫時(shí)中斷當(dāng)前的工作,暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理新發(fā)生的事件;處理完以后,再回到被中斷的地方,繼轉(zhuǎn)入處理新發(fā)生的事件;處理完

38、以后,再回到被中斷的地方,繼續(xù)原來的工作,這個(gè)過程稱為中斷。續(xù)原來的工作,這個(gè)過程稱為中斷。l實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng),產(chǎn)生中斷的請求源稱為中斷實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng),產(chǎn)生中斷的請求源稱為中斷源。源。l對于數(shù)據(jù)傳送,是外設(shè)主動提出,對于數(shù)據(jù)傳送,是外設(shè)主動提出,CPUCPU在收到這個(gè)要求中斷原主程在收到這個(gè)要求中斷原主程序的執(zhí)行,暫時(shí)進(jìn)行與外設(shè)的數(shù)據(jù)交換。序的執(zhí)行,暫時(shí)進(jìn)行與外設(shè)的數(shù)據(jù)交換。561.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.1 1.3.1 中斷的概念中斷的概念571.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.2 1.3.2 中斷系統(tǒng)結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)581.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.3

39、 1.3.3 中斷源中斷源1 1、外部中斷源外部中斷源l由由INT0INT0、INT1INT1引腳輸入引腳輸入2 2個(gè)外部中斷源個(gè)外部中斷源lTCONTCON的低的低4 4位,用于外部中斷控制位,用于外部中斷控制IE1(TCON.3)IE1(TCON.3):INT1INT1(P3.3)(P3.3)請求標(biāo)志位請求標(biāo)志位 有中斷請求,有中斷請求,IE1IE11 1IT1(TCON.2)IT1(TCON.2):INT1INT1觸發(fā)方式控制位觸發(fā)方式控制位 IT1=1IT1=1下跳沿觸發(fā),下跳沿觸發(fā),IT1=0IT1=0低電平觸發(fā)。低電平觸發(fā)。IE0(TCON.1)IE0(TCON.1):INT0IN

40、T0 (P3.2) (P3.2)請求標(biāo)志位。請求標(biāo)志位。 有中斷請求,有中斷請求,IE0IE01 1。IT0(TCON.0)IT0(TCON.0):INT0INT0觸發(fā)方式控制位觸發(fā)方式控制位 IT0=1IT0=1下跳沿觸發(fā),下跳沿觸發(fā),IT0=0IT0=0低電平觸發(fā)。低電平觸發(fā)。591.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.3 1.3.3 中斷源中斷源2 2、內(nèi)部中斷源、內(nèi)部中斷源lTF0(TCON.5)TF0(TCON.5):定時(shí)器:定時(shí)器T0T0的溢出中斷申請標(biāo)志的溢出中斷申請標(biāo)志 T0T0被允許計(jì)數(shù)以后,從初值開始加被允許計(jì)數(shù)以后,從初值開始加1 1計(jì)數(shù),當(dāng)產(chǎn)生溢出時(shí)置計(jì)數(shù),當(dāng)產(chǎn)生溢出時(shí)置TF

41、0=1TF0=1,向向CPUCPU請求中斷,直到請求中斷,直到CPUCPU響應(yīng)該中斷時(shí)才由硬件清響應(yīng)該中斷時(shí)才由硬件清0(0(也可由查詢也可由查詢程序清程序清0)0)。lTF1(TCON.7)TF1(TCON.7):定時(shí)器:定時(shí)器T1T1的溢出中斷申請標(biāo)志的溢出中斷申請標(biāo)志 T1T1被允許計(jì)數(shù)以后,從初值開始加被允許計(jì)數(shù)以后,從初值開始加1 1計(jì)數(shù),當(dāng)產(chǎn)生溢出時(shí)置計(jì)數(shù),當(dāng)產(chǎn)生溢出時(shí)置TF1=1TF1=1,向向CPUCPU請求中斷,直到請求中斷,直到CPUCPU咱應(yīng)該中斷時(shí)才由硬件清咱應(yīng)該中斷時(shí)才由硬件清0(0(也可由查詢也可由查詢程序清程序清0)0)。lSCON(98H)SCON(98H)為串

42、行口控制寄存器,為串行口控制寄存器,SCONSCON的低兩位是串行口接收和發(fā)的低兩位是串行口接收和發(fā)送中斷標(biāo)志送中斷標(biāo)志RIRI和和TITI,其格式如下:,其格式如下:601.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.4 中斷系統(tǒng)控制寄存器中斷系統(tǒng)控制寄存器1 1、中斷允許寄存器、中斷允許寄存器IE (A8H)IE (A8H) 中斷允許寄存器中斷允許寄存器IEIE,控制各中斷源的打開或關(guān)閉,其格式為:,控制各中斷源的打開或關(guān)閉,其格式為:611.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.4 中斷系統(tǒng)控制寄存器中斷系統(tǒng)控制寄存器2 2、中斷優(yōu)先寄存器、中斷優(yōu)先寄存器IPIP(B8H)(B8H)l80318031有有2

43、2個(gè)中斷優(yōu)先級,每個(gè)中斷源可編程為高個(gè)中斷優(yōu)先級,每個(gè)中斷源可編程為高/ /低優(yōu)先級中斷,低優(yōu)先級中斷,并可實(shí)現(xiàn)并可實(shí)現(xiàn)2 2級中斷嵌套。級中斷嵌套。lIPIP中斷優(yōu)先級控制寄存器,用戶用軟件設(shè)定,格式如下:中斷優(yōu)先級控制寄存器,用戶用軟件設(shè)定,格式如下:621.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.4 中斷系統(tǒng)控制寄存器中斷系統(tǒng)控制寄存器l同級中斷源,按硬件確定的優(yōu)先級順序響應(yīng)中斷請求同級中斷源,按硬件確定的優(yōu)先級順序響應(yīng)中斷請求631.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.2 中斷系統(tǒng)響應(yīng)過程中斷系統(tǒng)響應(yīng)過程l8031 CPU8031 CPU在每個(gè)機(jī)器周期,順序采樣各中斷源,在下一機(jī)器周在每個(gè)機(jī)器周期,順

44、序采樣各中斷源,在下一機(jī)器周期按優(yōu)先級查詢中斷標(biāo)志,在再下一個(gè)機(jī)器周期進(jìn)行中斷處理。期按優(yōu)先級查詢中斷標(biāo)志,在再下一個(gè)機(jī)器周期進(jìn)行中斷處理。l在下列任一情況時(shí),中斷申請被封鎖。在下列任一情況時(shí),中斷申請被封鎖。 (1)(1)、CPUCPU正在執(zhí)行同級或高級的中斷服務(wù)程序。正在執(zhí)行同級或高級的中斷服務(wù)程序。 (2)(2)、不是執(zhí)行當(dāng)前指令的最后一個(gè)周期,即要保證把當(dāng)前指令、不是執(zhí)行當(dāng)前指令的最后一個(gè)周期,即要保證把當(dāng)前指令執(zhí)行完。執(zhí)行完。 (3)(3)、當(dāng)前正在執(zhí)行的指令是返回、當(dāng)前正在執(zhí)行的指令是返回(RETI)(RETI)指令或是對指令或是對IEIE、IPIP寄存寄存器進(jìn)行讀寫指令。器進(jìn)行讀

45、寫指令。 641.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.2 中斷系統(tǒng)響應(yīng)過程中斷系統(tǒng)響應(yīng)過程中斷響應(yīng)的過程中斷響應(yīng)的過程(1) 在每條指令結(jié)束后在每條指令結(jié)束后, 系統(tǒng)都自動檢測中斷請求信號系統(tǒng)都自動檢測中斷請求信號, 如果有如果有中斷請求,且中斷請求,且CPU處于開中斷狀態(tài)下處于開中斷狀態(tài)下, 則響應(yīng)中斷。則響應(yīng)中斷。 (2) 保護(hù)現(xiàn)場保護(hù)現(xiàn)場, 在保護(hù)現(xiàn)場前在保護(hù)現(xiàn)場前, 一般要關(guān)中斷一般要關(guān)中斷, 以防止現(xiàn)場被破以防止現(xiàn)場被破壞。保護(hù)現(xiàn)場一般是用堆棧指令將原程序中用到的寄存器推入堆壞。保護(hù)現(xiàn)場一般是用堆棧指令將原程序中用到的寄存器推入堆棧。棧。 (3) 中斷服務(wù)中斷服務(wù), 即為相應(yīng)的中斷源服務(wù)。

46、即為相應(yīng)的中斷源服務(wù)。 (4) 恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場, 用堆棧指令將保護(hù)在堆棧中的數(shù)據(jù)彈出來用堆棧指令將保護(hù)在堆棧中的數(shù)據(jù)彈出來, 在恢在恢復(fù)現(xiàn)場前要關(guān)中斷復(fù)現(xiàn)場前要關(guān)中斷, 以防止現(xiàn)場被破壞。在恢復(fù)現(xiàn)場后應(yīng)及時(shí)開以防止現(xiàn)場被破壞。在恢復(fù)現(xiàn)場后應(yīng)及時(shí)開中斷。中斷。 (5) 返回返回, 此時(shí)此時(shí) CPU將推入到堆棧的斷點(diǎn)地址彈回到程序計(jì)數(shù)將推入到堆棧的斷點(diǎn)地址彈回到程序計(jì)數(shù)器器, 從而使從而使CPU繼續(xù)執(zhí)行剛才被中斷的程序。繼續(xù)執(zhí)行剛才被中斷的程序。 651.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.2 中斷系統(tǒng)響應(yīng)過程中斷系統(tǒng)響應(yīng)過程l中斷入口地址:中斷入口地址:661.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.2 中斷

47、系統(tǒng)響應(yīng)過程中斷系統(tǒng)響應(yīng)過程l編寫中斷服務(wù)程序時(shí)注意:編寫中斷服務(wù)程序時(shí)注意:在中斷入口地址單元處放在中斷入口地址單元處放一條無條件轉(zhuǎn)移指令一條無條件轉(zhuǎn)移指令( (如如JMP JMP H) H) 。在中斷服務(wù)程序中,用戶在中斷服務(wù)程序中,用戶應(yīng)注意用軟件保護(hù)現(xiàn)場。應(yīng)注意用軟件保護(hù)現(xiàn)場。若在執(zhí)行中斷程序時(shí)禁止若在執(zhí)行中斷程序時(shí)禁止更高級中斷,可用軟件關(guān)更高級中斷,可用軟件關(guān)閉閉CPUCPU中斷中斷(CLR EA)(CLR EA),或,或禁止某中斷源中斷,在中禁止某中斷源中斷,在中斷返回前再開放中斷。斷返回前再開放中斷。671.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.2 中斷系統(tǒng)響應(yīng)過程中斷系統(tǒng)響應(yīng)過程69

48、1.3 中斷系統(tǒng)中斷系統(tǒng) 1.3.2 中斷系統(tǒng)響應(yīng)過程中斷系統(tǒng)響應(yīng)過程70第一章第一章 MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理單片機(jī)的硬件結(jié)構(gòu)與工作原理1.4 1.4 輸入輸入/ /輸出端口輸出端口 MCS MCS5151單片機(jī)有單片機(jī)有4 4個(gè)個(gè)I/OI/O端口,共端口,共3232根根I/OI/O線。線。l4 4個(gè)個(gè)I/OI/O端口都是雙向口包含端口都是雙向口包含一個(gè)鎖存器(一個(gè)鎖存器(P0P0P3P3););一個(gè)輸出驅(qū)動器;一個(gè)輸出驅(qū)動器;一個(gè)輸入緩沖器。一個(gè)輸入緩沖器。lMCSMCS5151在訪問外部存儲器時(shí)在訪問外部存儲器時(shí)地址由地址由P0P0、P2P2口送出;口送出;數(shù)據(jù)則通過數(shù)據(jù)則通

49、過P0P0口傳送,這時(shí)口傳送,這時(shí)P0P0口是分時(shí)復(fù)用的雙向總線??谑欠謺r(shí)復(fù)用的雙向總線。l無外部存儲器的系統(tǒng),無外部存儲器的系統(tǒng),4 4個(gè)端口都可以作為準(zhǔn)雙向口使用。個(gè)端口都可以作為準(zhǔn)雙向口使用。711.4.1 1.4.1 并行端口并行端口 1 1、P0P0端口端口總線總線I/OI/O端口、雙向、三態(tài)、數(shù)據(jù)端口、雙向、三態(tài)、數(shù)據(jù)/ /地址分時(shí)復(fù)用總線。地址分時(shí)復(fù)用總線。721.4.1 1.4.1 并行端口并行端口 1 1、P0P0端口端口1)1) 在總線狀態(tài)下,在總線狀態(tài)下,P0P0口分時(shí)出現(xiàn)數(shù)據(jù)口分時(shí)出現(xiàn)數(shù)據(jù)D0D0D7D7、低、低8 8位地址位地址A0A0A7A7及高及高阻狀態(tài)。阻狀態(tài)。

50、731.4.1 1.4.1 并行端口并行端口 1 1、P0P0端口端口2)2) 在輸出狀態(tài)下(切換開關(guān)在輸出狀態(tài)下(切換開關(guān)MUXMUX向下),從內(nèi)部總線來的數(shù)據(jù)經(jīng)鎖存向下),從內(nèi)部總線來的數(shù)據(jù)經(jīng)鎖存器反向端和場效應(yīng)管器反向端和場效應(yīng)管T2T2反向后,輸出到端口線。場效應(yīng)管反向后,輸出到端口線。場效應(yīng)管T1T1關(guān)斷,關(guān)斷,T2T2漏極開路應(yīng)漏極開路應(yīng)外接上拉電阻外接上拉電阻。741.4.1 1.4.1 并行端口并行端口 1 1、P0P0端口端口3)3) 在輸入狀態(tài)下,應(yīng)在輸入狀態(tài)下,應(yīng)先向鎖存器寫先向鎖存器寫1 1,使兩個(gè)場效應(yīng)管均關(guān)斷,引腳,使兩個(gè)場效應(yīng)管均關(guān)斷,引腳處于處于“浮空浮空”狀態(tài)

51、(呈高阻輸入狀態(tài)),以保證輸入數(shù)據(jù)的正確性。狀態(tài)(呈高阻輸入狀態(tài)),以保證輸入數(shù)據(jù)的正確性。4)4) 由于該端口用作輸入時(shí)應(yīng)先寫由于該端口用作輸入時(shí)應(yīng)先寫l l,故稱為準(zhǔn)雙向口。,故稱為準(zhǔn)雙向口。751.4.1 1.4.1 并行端口并行端口 1 1、P0P0端口端口lI/OI/O口的讀修改寫特性,每個(gè)口的讀修改寫特性,每個(gè)I/OI/O端端口均有兩種讀入方法,即有讀鎖存器和口均有兩種讀入方法,即有讀鎖存器和讀引腳之分,并有相應(yīng)的指令。讀引腳之分,并有相應(yīng)的指令。l讀鎖存器指令是從鎖存器中讀取數(shù)據(jù),讀鎖存器指令是從鎖存器中讀取數(shù)據(jù),進(jìn)行處理,并把處理后的數(shù)據(jù)重新寫人進(jìn)行處理,并把處理后的數(shù)據(jù)重新寫

52、人鎖存器,這類指令稱為鎖存器,這類指令稱為“讀修改寫讀修改寫”指令。指令。l那么如何區(qū)分讀端口的指令是讀鎖存器那么如何區(qū)分讀端口的指令是讀鎖存器還是讀引腳呢還是讀引腳呢? ? 當(dāng)目的操作數(shù)是當(dāng)目的操作數(shù)是I/OI/O端口或端口或I/OI/O端口的某一端口的某一位時(shí),這些指令是讀鎖存器而不是讀引位時(shí),這些指令是讀鎖存器而不是讀引腳,即為腳,即為“讀修改寫讀修改寫”指令。指令。761.4.1 1.4.1 并行端口并行端口 1 1、P0P0端口端口l“讀修改寫讀修改寫”指令指令771.4.1 1.4.1 并行端口并行端口 2 2、P1P1端口端口P1P1端口端口通用通用I/OI/O端口,端口,8 8

53、位準(zhǔn)雙向端口位準(zhǔn)雙向端口作通用輸入輸出口使用,有讀鎖存器和讀引腳之分。作通用輸入輸出口使用,有讀鎖存器和讀引腳之分。781.4.1 1.4.1 并行端口并行端口 2 2、P1P1端口端口lP1端口與端口與P0端口的主要區(qū)別在于輸出驅(qū)動器部分,端口的主要區(qū)別在于輸出驅(qū)動器部分,P1端口用內(nèi)部端口用內(nèi)部上拉電阻代替了上拉電阻代替了P0端口的場效應(yīng)管端口的場效應(yīng)管T1。lCPU既可以對既可以對Pl口進(jìn)行字節(jié)操作,又可以進(jìn)行位操作??谶M(jìn)行字節(jié)操作,又可以進(jìn)行位操作。l當(dāng)作輸入方式時(shí),鎖存器必須當(dāng)作輸入方式時(shí),鎖存器必須預(yù)寫預(yù)寫1 1,準(zhǔn)雙向端口準(zhǔn)雙向端口。791.4.1 1.4.1 并行端口并行端口

54、3 3、P2P2端口端口P2P2端口端口是是8 8位準(zhǔn)雙向輸入位準(zhǔn)雙向輸入/ /輸出端口。輸出端口。輸出地址的高輸出地址的高8 8位;位;輸入有讀鎖存器和讀引腳之分。輸入有讀鎖存器和讀引腳之分。 801.4.1 1.4.1 并行端口并行端口 3 3、P2P2端口端口l在輸入輸出功能方面,在輸入輸出功能方面,P2P2端口與端口與POPO和和P1P1端口相同,有讀引腳和讀端口相同,有讀引腳和讀鎖存器之分,并且鎖存器之分,并且P2P2端口也是準(zhǔn)雙向口。端口也是準(zhǔn)雙向口。l當(dāng)外接程序存儲器時(shí),當(dāng)外接程序存儲器時(shí),P2P2口給出地址的高口給出地址的高8 8位,此時(shí)不能用作通用位,此時(shí)不能用作通用I/OI

55、/O口。口。l當(dāng)外接數(shù)據(jù)存儲器時(shí):當(dāng)外接數(shù)據(jù)存儲器時(shí):若若RAMRAM小于小于256B256B,用,用R0R0、R1R1作間址寄存器,只需作間址寄存器,只需P0P0口送出地址口送出地址低低8 8位,位,P2P2口可以用作通用口可以用作通用I/OI/O口???。若若RAMRAM大于大于256B256B,必須用,必須用1616位寄存器位寄存器DPTRDPTR作間址寄存器則作間址寄存器則P2P2口只能在一定限度內(nèi)作一般口只能在一定限度內(nèi)作一般I/OI/O口使用??谑褂谩?11.4.1 1.4.1 并行端口并行端口 4 4、P3P3端口端口P3P3口雙功能輸入口雙功能輸入/ /輸出接口輸出接口821.4

56、.1 1.4.1 并行端口并行端口 4 4、P3P3端口端口l具有第二功能具有第二功能l第一功能與第一功能與P1P1口一樣作為一般準(zhǔn)雙向輸入口一樣作為一般準(zhǔn)雙向輸入/ /輸出接口,具有字節(jié)操輸出接口,具有字節(jié)操作和位操作。作和位操作。l第二種功能時(shí),第二種功能時(shí), 輸出鎖存器輸出輸出鎖存器輸出1 1, 通過第二功能線通過第二功能線 輸出特定信號。輸出特定信號。831.4.1 1.4.1 并行端口并行端口 4 4、P3P3端口端口lP3P3端口各線處于第二功能的條件是:端口各線處于第二功能的條件是:串行串行 I IO O口處于運(yùn)行狀態(tài)(口處于運(yùn)行狀態(tài)(RXDRXD,TXDTXD););打開了外部

57、中斷(打開了外部中斷(INT0INT0,INT1INT1) );定時(shí)器計(jì)數(shù)器處于外部計(jì)數(shù)狀態(tài)(定時(shí)器計(jì)數(shù)器處于外部計(jì)數(shù)狀態(tài)(T0T0,T1T1););執(zhí)行讀寫外部執(zhí)行讀寫外部RAMRAM的指令的指令(RDRD,WRWR)。)。l不設(shè)定不設(shè)定P3P3端口各位的第二功能(端口各位的第二功能(WRWR,RDRD信號的產(chǎn)生不用設(shè)置),信號的產(chǎn)生不用設(shè)置),則則P3P3端口線自動處于第一功能狀態(tài),也就是靜態(tài)端口線自動處于第一功能狀態(tài),也就是靜態(tài)I IO O端口的工作端口的工作狀態(tài)。狀態(tài)。841.4.1 1.4.1 并行端口并行端口 5 5、P0P0P3P3端口的負(fù)載能力及接口要求端口的負(fù)載能力及接口要求

58、lP0P0口的輸出級與口的輸出級與P1P1P3P3口的輸出級的結(jié)構(gòu)不同,因此它們的負(fù)載口的輸出級的結(jié)構(gòu)不同,因此它們的負(fù)載能力和接口要求也不同。能力和接口要求也不同。lP0P0口口每一位輸出可驅(qū)動每一位輸出可驅(qū)動8 8個(gè)個(gè)LS TTLLS TTL負(fù)載;負(fù)載;做通用口使用時(shí),輸出級是開漏電路,故需外接上拉電阻;做通用口使用時(shí),輸出級是開漏電路,故需外接上拉電阻;做地址做地址/ /數(shù)據(jù)總線時(shí),則無需接外部上拉電阻。數(shù)據(jù)總線時(shí),則無需接外部上拉電阻。lP1P1P3P3口口輸出級接有內(nèi)部上拉電阻;輸出級接有內(nèi)部上拉電阻;每一位輸出可驅(qū)動每一位輸出可驅(qū)動4 4個(gè)個(gè)LS TTLLS TTL負(fù)載。負(fù)載。 8

59、51.4.1 1.4.1 并行端口并行端口 5 5、P0P0P3P3端口的負(fù)載能力及接口要求端口的負(fù)載能力及接口要求lP0P0P3P3端口已映射到特殊功能寄存器中。端口已映射到特殊功能寄存器中。l對這些端口寄存器的讀寫就實(shí)現(xiàn)了對相應(yīng)端口的輸入輸出操對這些端口寄存器的讀寫就實(shí)現(xiàn)了對相應(yīng)端口的輸入輸出操作。作。l例如:例如:MOV A MOV A ,P1 P1 ;把;把P1P1端口線上的信息輸入到端口線上的信息輸入到 A AMOV P1MOV P1,A A ;把;把A A的內(nèi)容由的內(nèi)容由P1P1端口輸出端口輸出MOV P3MOV P3, OFFH OFFH ;使;使P3P3端口線各位置端口線各位置

60、 1 1861.4 1.4 輸入輸入/ /輸出端口輸出端口 1.4.2 1.4.2 串行端口串行端口l數(shù)據(jù)通信的概念數(shù)據(jù)通信的概念計(jì)算機(jī)的計(jì)算機(jī)的CPUCPU與外部設(shè)備之間要進(jìn)行信息交換,計(jì)算機(jī)之間也與外部設(shè)備之間要進(jìn)行信息交換,計(jì)算機(jī)之間也要求交換信息,所有信息的交換均可稱為通信。要求交換信息,所有信息的交換均可稱為通信。通信方式有兩種:即并行通信和串行通信;通信方式有兩種:即并行通信和串行通信;通常根據(jù)信息傳送的距離決定采用哪種通信方式。通常根據(jù)信息傳送的距離決定采用哪種通信方式。 例如:在例如:在IBM-PCIBM-PC機(jī)與外部設(shè)備機(jī)與外部設(shè)備( (如打印機(jī)等如打印機(jī)等) )通信時(shí),如果

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論