![第三章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/121978f8-2018-45e5-8ac3-5d3fa766f4b7/121978f8-2018-45e5-8ac3-5d3fa766f4b71.gif)
![第三章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/121978f8-2018-45e5-8ac3-5d3fa766f4b7/121978f8-2018-45e5-8ac3-5d3fa766f4b72.gif)
![第三章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/121978f8-2018-45e5-8ac3-5d3fa766f4b7/121978f8-2018-45e5-8ac3-5d3fa766f4b73.gif)
![第三章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/121978f8-2018-45e5-8ac3-5d3fa766f4b7/121978f8-2018-45e5-8ac3-5d3fa766f4b74.gif)
![第三章 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/12/121978f8-2018-45e5-8ac3-5d3fa766f4b7/121978f8-2018-45e5-8ac3-5d3fa766f4b75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第三章第三章 MCS-51MCS-51系列單片機(jī)的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計系列單片機(jī)的硬件結(jié)構(gòu)與系統(tǒng)設(shè)計3.1 MCS-51系列單片機(jī)硬件結(jié)構(gòu)系列單片機(jī)硬件結(jié)構(gòu)3.2 MCS-51系列單片機(jī)程序設(shè)計系列單片機(jī)程序設(shè)計 3.3 并行輸入輸出并行輸入輸出 3.4 定時器定時器/計數(shù)器計數(shù)器 3.5 中中 斷斷 3.6 串行輸入串行輸入/輸出輸出 數(shù)字電路與模擬電路數(shù)字電路與模擬電路 進(jìn)制與進(jìn)制之間的相互轉(zhuǎn)換進(jìn)制與進(jìn)制之間的相互轉(zhuǎn)換高電平、低電平與三態(tài)門高電平、低電平與三態(tài)門單片機(jī)的常用電路:單片機(jī)的常用電路:與門、或門、非門、編碼器、譯碼器、選碼器、分與門、或門、非門、編碼器、譯碼器、選碼器、分配器、鎖
2、存器、寄存器、存儲器、。配器、鎖存器、寄存器、存儲器、。3.1.1 MCS-51系列單片機(jī)的引腳描述系列單片機(jī)的引腳描述3.1.2 MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu)3.1.3 MCS-51 CPU構(gòu)成及工作原理構(gòu)成及工作原理3.1.4 MCS-51片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器3.1.5 MCS-51特殊功能寄存器特殊功能寄存器3.1.6 MCS-51片內(nèi)程序存儲器片內(nèi)程序存儲器3.1 MCS-513.1 MCS-51系列單片機(jī)的硬件結(jié)構(gòu)系列單片機(jī)的硬件結(jié)構(gòu)3.1.1 MCS-513.1.1 MCS-51系列單片機(jī)的引腳描述系列單片機(jī)的引腳描述(1)引腳分類主電源引腳VCC和VSS
3、(共2根) 外接晶振引腳XTAL1 (共2根) 和XTAL2控制或電源復(fù)用引腳(共4根) RST/ Vpd(復(fù)位備用電源)ALE/PROG(地址鎖存編程)EA/Vpp(片外程序存儲器/編程電源)PSEN (片外程序存儲器讀選通)輸入/輸出(I/O)引腳(共4組32根) P0、P1、P2、P3P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS1234567891011121314151617181920803180518
4、7514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0(2) 雙功能引腳P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS1234567891011121314151617181920803180518751403938
5、3736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2P3.3位線引腳第二功能P3.010RXD(串行輸入口)P3.111TXD(串行輸出口)12INT0(外部中斷0)13INT1(外部中斷1)P3.414T0(定時器0的計數(shù)輸入)P3.515T1(定時器1的計數(shù)輸入)16WR(外部數(shù)據(jù)存儲器寫脈沖)17RD(外部數(shù)據(jù)存儲器讀脈沖)P3.7 P3.6 (3) 三總線構(gòu)成 地址總線:P2、P0; 數(shù)據(jù)總線:
6、P0; 控制總線:(ALE、EA、PSEN、RST)+P3(4) 片外總線結(jié)構(gòu) 總線:CPU與各部件之間傳遞信息 的公共通道。數(shù)據(jù)總線(DB) 8位由P0提供地址總線(AB)16位由P2提供高8位由P0提供低8位控制總線(CB)控制線+P3DBAB地址鎖存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCC P0.0P0.1P0.2P0.3P0.5P0.6P0.7EAALEPSENP2.
7、7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2P0.4(1)一個8位微處理器CPU(2)數(shù)據(jù)存儲器RAM和特殊 功能寄存器SFR(3)內(nèi)部程序存儲器ROM(4)兩個定時/計數(shù)器.2 MCS-51MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu)(5)四個8位I/O并行端口(6)一個串行端口 (7)中斷控制系統(tǒng)(8)內(nèi)部時鐘電路時鐘電路SFR和RAM ROMCPU定時/計數(shù)器并行端口中斷系統(tǒng)串行端口系 統(tǒng) 總 線時鐘源 T0 T1 P0 P1 P2 P3TXD RXD INT0 INT1 MCS-51片內(nèi)總體結(jié)構(gòu)框圖(1)(1)構(gòu)成構(gòu)成微控制器運(yùn)算部件時序控制電路一
8、組特功能寄存器(2)(2)工作原理工作原理由PC地址取指令取指令通過IR、ID指令譯碼指令譯碼由微控制其控制指令執(zhí)行指令執(zhí)行例:Y=5+10求解過程ROM地址 機(jī)器代碼 指令代碼2000H 7405H MOV A, #05H2002H 240AH ADD A, #0AH2004H 80FEH SJMP $ 3.1.3 3.1.3 CPUCPU構(gòu)成及工作原理構(gòu)成及工作原理3.1.4 MCS-513.1.4 MCS-51片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器(Internal RAM)(Internal RAM) 低低128Byte128Byte:00H 00H 7FH7FH用途:用途: 供用戶管理、使用,
9、存放程序的變量、中間結(jié)果、堆棧等。特點(diǎn):特點(diǎn): 受集成度限制,容量非常有限,51系列僅為128B。注意合理分配、使用。擴(kuò)展:擴(kuò)展: 常通過擴(kuò)展片外RAM,提高數(shù)據(jù)存放量。按用途分三個區(qū):按用途分三個區(qū):通用寄存器區(qū)位尋址區(qū)堆棧/數(shù)據(jù)緩沖區(qū)30H2FH00H20H1FH7FH通用寄存器區(qū)(4組)位尋址區(qū)128bit00H7FH堆棧/數(shù)據(jù)緩沖區(qū)80Byte16Byte32Byte (1 1)通用寄存器區(qū)(通用寄存器區(qū)(32Byte32Byte):):地址范圍:地址范圍:00H 1FH,共4組,每組R0 R7。當(dāng)前寄存器組選擇:當(dāng)前寄存器組選擇:通過設(shè)置PSW中的位 RS1、RS0完成。僅當(dāng)前R組以
10、寄存器方式工作,其他組以存儲器方式功能:功能:存放常用變量,提高訪問速度;在中斷或程序調(diào)用時使用,可減少堆棧中的數(shù)據(jù)保護(hù)30H2FH07H00H20H1FH7FHR3組R2組R1組R0組位尋址區(qū)128bit00H7FH堆棧/數(shù)據(jù)緩沖區(qū)80Byte16ByteRS1 RS011100100工作寄存器組設(shè)置參數(shù) (2 2)位尋址區(qū)(位尋址區(qū)(16Byte16Byte):):地址范圍:地址范圍: 20H2FH對應(yīng)位地址:對應(yīng)位地址: 00H7FH功能:功能:可進(jìn)行位操作,設(shè)置用戶標(biāo)志;未作位操作單元,可進(jìn)行字節(jié)操作。30H2FH00H20H1FH7FH通用寄存器區(qū)(4組)位尋址區(qū)堆棧/數(shù)據(jù)緩沖區(qū)80
11、Byte16Byte(128bit)32Byte00H7FH (3 3)堆棧堆棧/ /用戶數(shù)據(jù)區(qū):用戶數(shù)據(jù)區(qū):地址范圍:地址范圍: 30H7FH功能:功能:程序堆棧區(qū),常選高端連續(xù)地址(如:50H7FH)用戶數(shù)據(jù)區(qū)30H2FH00H20H1FH7FH通用寄存器區(qū)(4組)位尋址區(qū)堆棧/數(shù)據(jù)緩沖區(qū)80Byte16Byte(128bit)32Byte00H7FH外部數(shù)據(jù)存儲器(b)特殊功能寄存器通用RAM區(qū)位尋址區(qū)00H20H1FH30H2FH80H7FHFFH外 部RAM(I/O口地址)0000HFFFFH內(nèi)部數(shù)據(jù)存儲器(a)工作寄存器區(qū)00FFH (4 4)內(nèi)外地址重疊,通過不同指令)內(nèi)外地址重
12、疊,通過不同指令訪問訪問 內(nèi)部RAM 128B + SFR外部擴(kuò)展RAM 64KB3.1.5 3.1.5 特殊功能寄存器特殊功能寄存器(Special Function Register)(Special Function Register) 高高128Byte128Byte: 80H 80H FFHFFH地址范圍:地址范圍: 物理地址分布在80HFFH中;未作定義單元,操作無效。數(shù)量:數(shù)量: 51系列共有SFR 21個;52系列SFR 26個。操作方式:操作方式:訪問時,可用寄存器符號或地址;字節(jié)操作位操作特殊功能寄存器通用RAM區(qū) 位尋址區(qū)00H20H1FH30H2FH80H7FHFFH內(nèi)
13、部數(shù)據(jù)存儲器工作寄存器區(qū)3.1.5 3.1.5 特殊功能寄存器特殊功能寄存器(Special Function Register)(Special Function Register) MCS-51有有21個特殊功能寄存?zhèn)€特殊功能寄存器(也稱為專用寄存器),器(也稱為專用寄存器),包括算術(shù)運(yùn)算寄存器、指針包括算術(shù)運(yùn)算寄存器、指針寄存器、寄存器、I/O口鎖存器、定口鎖存器、定時器時器/計數(shù)器、串行口、中計數(shù)器、串行口、中斷、狀態(tài)、控制寄存器等,斷、狀態(tài)、控制寄存器等,它們被離散地分布在內(nèi)部它們被離散地分布在內(nèi)部RAM的的80HFFH地址單元地址單元中(不包括中(不包括PC) ,共占據(jù),共占據(jù)了了
14、128個存儲單元,構(gòu)成了個存儲單元,構(gòu)成了SFR存儲塊。其字節(jié)地址可存儲塊。其字節(jié)地址可被被8整除的整除的SFR可位尋址??晌粚ぶ贰FR反映了反映了MCS-51單片機(jī)單片機(jī)的運(yùn)行狀態(tài)。特殊功能寄存的運(yùn)行狀態(tài)。特殊功能寄存器分布如右表所示。器分布如右表所示。(1 1)程序計數(shù)器)程序計數(shù)器PCPC(Program CounterProgram Counter) 程序計數(shù)器程序計數(shù)器PCPC在物理上是獨(dú)立的,它不屬于在物理上是獨(dú)立的,它不屬于SFRSFR存儲器塊。存儲器塊。PCPC是是一個一個1616位的計數(shù)器,專門用于存放位的計數(shù)器,專門用于存放CPUCPU將要執(zhí)行的指令地址(即下一條將要執(zhí)行
15、的指令地址(即下一條指令的地址),尋址范圍為指令的地址),尋址范圍為64KB64KB,PCPC有自動加有自動加1 1功能,不可尋址,用戶功能,不可尋址,用戶無法對它進(jìn)行讀寫,但是可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)無法對它進(jìn)行讀寫,但是可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以控制程序執(zhí)行的順序。容,以控制程序執(zhí)行的順序。(2 2)累加器)累加器A A (AccumulatorAccumulator) 累加器累加器A A是是8 8位寄存器,又記做位寄存器,又記做ACCACC,是一個最常用的專用寄存器。,是一個最常用的專用寄存器。在算術(shù)在算術(shù)/ /邏輯運(yùn)算中用于存放操作數(shù)或結(jié)果。邏輯運(yùn)算中用
16、于存放操作數(shù)或結(jié)果。(3 3)寄存器)寄存器B B 寄存器寄存器B B 是是8 8位寄存器,是專門為乘除法指令設(shè)計的,也作通用寄位寄存器,是專門為乘除法指令設(shè)計的,也作通用寄存器用。存器用。(4 4)工作寄存器)工作寄存器 內(nèi)部內(nèi)部RAMRAM的工作寄存器區(qū)的工作寄存器區(qū)00H00H1FH1FH共共3232個字節(jié)被均勻地分成四個字節(jié)被均勻地分成四個組(區(qū)),每個組(區(qū))有個組(區(qū)),每個組(區(qū))有8 8個寄存器,分別用個寄存器,分別用R0R0R7R7表示,稱表示,稱為工作寄存器或通用寄存器,其中,為工作寄存器或通用寄存器,其中,R0R0、R1R1還經(jīng)常用于間接尋址還經(jīng)常用于間接尋址的地址指針。
17、在程序中通過程序狀態(tài)字寄存器(的地址指針。在程序中通過程序狀態(tài)字寄存器(PSWPSW)第)第3 3、4 4位設(shè)位設(shè)置工作寄存器區(qū)。置工作寄存器區(qū)。(5 5)程序狀態(tài)字)程序狀態(tài)字PSW PSW (Program Status WordProgram Status Word) 程序狀態(tài)字程序狀態(tài)字PSWPSW是是8 8位寄存器,用于存放程序運(yùn)行的狀態(tài)信息,位寄存器,用于存放程序運(yùn)行的狀態(tài)信息,PSWPSW中各位狀態(tài)通常是在指令執(zhí)行的過程中自動形成的,但也可以由中各位狀態(tài)通常是在指令執(zhí)行的過程中自動形成的,但也可以由用戶根據(jù)需要采用傳送指令加以改變。其定義格式如下用戶根據(jù)需要采用傳送指令加以改變。
18、其定義格式如下: :(6 6)數(shù)據(jù)指針)數(shù)據(jù)指針DPTRDPTR(Data PointerData Pointer) 數(shù)據(jù)指針數(shù)據(jù)指針DPTRDPTR是是1616位的專用寄存器,即可作為位的專用寄存器,即可作為1616位寄存器使用,位寄存器使用,也可作為兩個獨(dú)立的也可作為兩個獨(dú)立的8 8位寄存器位寄存器DPH DPH (高(高8 8位)位) 、DPL DPL (低(低8 8位)使用。位)使用。 DPTRDPTR主要用作主要用作1616位間址寄存器,訪問程序存儲器和片外數(shù)據(jù)寄存器位間址寄存器,訪問程序存儲器和片外數(shù)據(jù)寄存器。 如:MOV DPTR,#2000HMOV DPTR,#2000H(7
19、7)堆棧指針)堆棧指針SPSP(Stack PointerStack Pointer) 堆棧是一種數(shù)據(jù)結(jié)構(gòu),是內(nèi)部堆棧是一種數(shù)據(jù)結(jié)構(gòu),是內(nèi)部RAMRAM的一段區(qū)域。堆棧存取數(shù)據(jù)的原的一段區(qū)域。堆棧存取數(shù)據(jù)的原則是則是“后進(jìn)先出后進(jìn)先出”。堆棧指針。堆棧指針SPSP是一個是一個8 8位寄存器,用于指示堆棧的棧位寄存器,用于指示堆棧的棧頂,它決定了堆棧在內(nèi)部頂,它決定了堆棧在內(nèi)部RAMRAM中的物理位置。中的物理位置。 MCS-51MCS-51單片機(jī)的堆棧地址向大的方向變化(與微機(jī)堆棧地址向小單片機(jī)的堆棧地址向大的方向變化(與微機(jī)堆棧地址向小的方向變化相反)。系統(tǒng)復(fù)位后,的方向變化相反)。系統(tǒng)復(fù)位
20、后,SPSP初值為初值為07H07H,使得堆棧事實(shí)上由,使得堆棧事實(shí)上由08H08H單元開始,占用單元開始,占用1-31-3工作寄存器區(qū),實(shí)際應(yīng)用中通常根據(jù)需要在主工作寄存器區(qū),實(shí)際應(yīng)用中通常根據(jù)需要在主程序開始處對堆棧指針程序開始處對堆棧指針SPSP進(jìn)行初始化,一般設(shè)置進(jìn)行初始化,一般設(shè)置SPSP為為60H60H。 設(shè)立堆棧的目的是用于數(shù)據(jù)的暫存,中斷、子程序調(diào)用時斷點(diǎn)和設(shè)立堆棧的目的是用于數(shù)據(jù)的暫存,中斷、子程序調(diào)用時斷點(diǎn)和現(xiàn)場的保護(hù)與恢復(fù)?,F(xiàn)場的保護(hù)與恢復(fù)。(8 8)I/OI/O口專用寄存器(口專用寄存器(P0, P1, P2, P3P0, P1, P2, P3) 80518051片內(nèi)有
21、片內(nèi)有4 4個個8 8位并行位并行I/OI/O接口接口P0, P1, P2P0, P1, P2和和P3P3,在,在SFRSFR中相應(yīng)有中相應(yīng)有4 4個個I/OI/O口寄存器口寄存器P0, P1, P2P0, P1, P2和和P3P3。(9 9)定時器)定時器/ /計數(shù)器(計數(shù)器(TL0, TH0, TL1TL0, TH0, TL1和和TH1TH1) MCS-51MCS-51單片機(jī)中有兩個單片機(jī)中有兩個1616位的定時器位的定時器/ /計數(shù)器計數(shù)器T0T0和和T1T1,它們由,它們由4 4個個8 8位位寄存器(寄存器(TL0, TH0, TL1TL0, TH0, TL1和和TH1TH1)組成,)
22、組成,2 2個個1616位定時器位定時器/ /計數(shù)器是完全獨(dú)立計數(shù)器是完全獨(dú)立的??梢詥为?dú)對這的??梢詥为?dú)對這4 4個寄存器進(jìn)行尋址,但不能把個寄存器進(jìn)行尋址,但不能把T0T0和和T1T1當(dāng)做當(dāng)做1616位寄存器位寄存器來使用。來使用。(1010)串行數(shù)據(jù)緩沖器()串行數(shù)據(jù)緩沖器(SBUFSBUF) 串行數(shù)據(jù)緩沖器串行數(shù)據(jù)緩沖器SBUFSBUF用于存放需要發(fā)送和接收的數(shù)據(jù),它由兩個獨(dú)立用于存放需要發(fā)送和接收的數(shù)據(jù),它由兩個獨(dú)立的寄存器組成(發(fā)送緩沖器和接收緩沖器),要發(fā)送和接收的操作其實(shí)都的寄存器組成(發(fā)送緩沖器和接收緩沖器),要發(fā)送和接收的操作其實(shí)都是對串行數(shù)據(jù)緩沖器是對串行數(shù)據(jù)緩沖器SBU
23、FSBUF進(jìn)行的。進(jìn)行的。(1111)其他控制寄存器)其他控制寄存器 除上述外,還有除上述外,還有IP, IE, TCON, SCONIP, IE, TCON, SCON和和PCONPCON等幾個寄存器,主要用于等幾個寄存器,主要用于中斷、定時和串行口的控制。中斷、定時和串行口的控制。3.1.6 MCS-513.1.6 MCS-51片內(nèi)程序存儲器片內(nèi)程序存儲器(Internal ROM)(Internal ROM) 類型:類型: 腌膜腌膜ROMROM、EPROMEPROM、EEPROMEEPROM、Flash ROMFlash ROM 片內(nèi)尋址范圍:片內(nèi)尋址范圍: EA=1 EA=1時:時:
24、(否則(否則64KB64KB全部限定在片外全部限定在片外) )5151系列,系列,4KB4KB,0000H 0000H 0FFFH 0FFFH5252系列,系列,8KB8KB,0000H 0000H 1FFFH 1FFFH 一組特殊單元:一組特殊單元:RESET RESET 地址:地址:0000H0000H中斷向量:中斷向量:0003H 0003H 000AH 000AH外部中斷外部中斷(INT0INT0)地址區(qū)地址區(qū) 000BH 000BH 0012H 0012H定時器定時器/ /計數(shù)器中斷計數(shù)器中斷(T0T0)地址區(qū)地址區(qū) 0013H 0013H 001AH 001AH外部中斷外部中斷(I
25、NT1INT1)地址區(qū)地址區(qū) 001BH 001BH 0022H 0022H定時器定時器/ /計數(shù)器中斷計數(shù)器中斷(T1T1)地址區(qū)地址區(qū)0023H 0023H 002AH 002AH串行中斷串行中斷(SerialSerial)地址區(qū)地址區(qū)外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH 單片機(jī)太難了,涉及的內(nèi)容也太多了,單片機(jī)太難了,涉及的內(nèi)容也太多了, 不太好理解,也不太容易掌握!不太好理解,也不太容易掌握! 確實(shí)如此,剛開始學(xué)都是如此!確實(shí)如此,剛開始學(xué)都是如此! 不要著急,不要著急, 隨著本課程的逐步深入,隨著本課程的逐
26、步深入, 你會逐步了解和掌握單片機(jī)的相關(guān)知識,你會逐步了解和掌握單片機(jī)的相關(guān)知識, 很快地你就會沉浸在單片機(jī)應(yīng)用系統(tǒng)開發(fā)的喜悅之中!很快地你就會沉浸在單片機(jī)應(yīng)用系統(tǒng)開發(fā)的喜悅之中!3.2 MCS-513.2 MCS-51系列單片機(jī)內(nèi)存結(jié)構(gòu)及程序設(shè)計系列單片機(jī)內(nèi)存結(jié)構(gòu)及程序設(shè)計3.2.1 MCS-51片內(nèi)程序存儲器片內(nèi)程序存儲器(Internal ROM)3.2.2 MCS-51片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器(Internal RAM)3.2.3 置位程序的設(shè)計置位程序的設(shè)計3.2.4 清零程序的設(shè)計清零程序的設(shè)計3.2.1 MCS-513.2.1 MCS-51片內(nèi)程序存儲器片內(nèi)程序存儲器(Int
27、ernal ROM)(Internal ROM) 片內(nèi)尋址范圍:片內(nèi)尋址范圍: EA=1 EA=1時:時: (否則(否則64KB64KB全部限定在片外全部限定在片外) )5151系列,系列,4KB4KB,0000H 0000H 0FFFH 0FFFH5252系列,系列,8KB8KB,0000H 0000H 1FFFH 1FFFH 一組特殊單元:一組特殊單元:RESET RESET 地址:地址:0000H0000H中斷向量:中斷向量:0003H 0003H 000AH 000AH外部中斷外部中斷(INT0INT0)地址區(qū)地址區(qū) 000BH 000BH 0012H 0012H定時器定時器/ /計數(shù)
28、器中斷計數(shù)器中斷(T0T0)地址區(qū)地址區(qū) 0013H 0013H 001AH 001AH外部中斷外部中斷(INT1INT1)地址區(qū)地址區(qū) 001BH 001BH 0022H 0022H定時器定時器/ /計數(shù)器中斷計數(shù)器中斷(T1T1)地址區(qū)地址區(qū)0023H 0023H 002AH 002AH串行中斷串行中斷(SerialSerial)地址區(qū)地址區(qū)外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH內(nèi)部地址:00H FFH內(nèi)部RAM:128B + SFR外部地址:0000H FFFFH外部擴(kuò)展:RAM 64KB內(nèi)外地址重疊,可通過不同
29、指令訪問; 避開堆棧區(qū)(60H 7FH)用戶數(shù)據(jù)區(qū)一般使用: 30H 50H 外部數(shù)據(jù)存儲器(b)特殊功能寄存器通用RAM區(qū) 位尋址區(qū)00H20H1FH30H2FH80H7FHFFH外 部RAM(I/O口地址)0000HFFFFH內(nèi)部數(shù)據(jù)存儲器(a)工作寄存器區(qū)00FFH 3.2.2 MCS-513.2.2 MCS-51片內(nèi)數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器(Internal RAM)(Internal RAM)1 1、設(shè)計要求、設(shè)計要求 將片內(nèi)20H開始的連續(xù)40個地址內(nèi)容設(shè)置為0FEH。2 2、設(shè)計分析、設(shè)計分析 將片內(nèi)連續(xù)地址內(nèi)容置位可首先設(shè)定起始地址并指定置位個數(shù), 然后,使用CJNE指令進(jìn)行循
30、環(huán)判斷。開始設(shè)定置位個數(shù)地址+1當(dāng)前內(nèi)容置位設(shè)置片內(nèi)起始地址是否已達(dá)置位次數(shù)?結(jié)束YN3 3、程序流程圖設(shè)計、程序流程圖設(shè)計 置位程序流程如右圖所示3.2.3 3.2.3 置位程序的設(shè)計置位程序的設(shè)計機(jī)器語言、高級語言與匯編語言 匯編語言(Assembly Language)是面向機(jī)器的程序設(shè)計語言。在匯編語言中,用助記符(Memoni)代替機(jī)器指令的操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替指令或操作數(shù)的地址,如此就增強(qiáng)了程序的可讀性和編寫難度,象這樣符號化的程序設(shè)計語言就是匯編語言,因此亦稱為符號語言。 使用匯編語言編寫的程序,機(jī)器不能直接識別,還要由匯編程序或者叫匯編語言
31、編譯器轉(zhuǎn)換成機(jī)器指令。匯編程序?qū)⒎柣牟僮鞔a組裝成處理器可以識別的機(jī)器指令,這個組裝的過程稱為組合或者匯編。因此,有時候人們也把匯編語言稱為組合語言。匯編語言偽指令匯編語言偽指令是為匯編語言提供某些信息的指令,不能命令CPU執(zhí)行某種操作,也沒有對應(yīng)的機(jī)器代碼。ORG:匯編程序起始;END:匯編程序結(jié)束;EQU(=):等值;DATA:數(shù)據(jù)地址賦值;DB:定義字節(jié);DW:定義字;DS:定義空間;BIT:位地址符。4 4、匯編源程序設(shè)計、匯編源程序設(shè)計 ORG 0030H MOV R0,#0D8H;置位次數(shù)設(shè)置(256-40=0D8H) MOV R1,#20H;指向置位開始地址SETD: MOV
32、 A,#0FEH;將累加器A置位 MOV R1,A;將累加器的內(nèi)容送入地址 INC R1;指向下一個地址 INC R0;次數(shù)加1 CJNE R0,#00H,SETD;是否達(dá)到置位次數(shù),否繼續(xù)置位 SJMP $ END 5 5、調(diào)試與仿真調(diào)試與仿真 點(diǎn)擊桌面圖標(biāo),啟動KeilKeil程序,執(zhí)行菜單命令 “ProjectProject” “New New Project.Project.創(chuàng)建“置位程序置位程序”項目,并選擇單片機(jī)型號為AT89C51AT89C51; 執(zhí)行菜單命令“FileFile” “NewNew”創(chuàng)建文件,輸入?yún)R編(或C語言)源程序,保存為“dpj置位程序k置位程序置位程序.AS
33、M.ASM” ; 在“ProjectProject” 欄的File項目管理窗口中右擊文件組,選擇“Add Files toSource Group1Add Files toSource Group1”將源程序“置位程序置位程序.ASM.ASM” 添加到項目中。 執(zhí)行菜單命令“Project” “Options for Target target 1 ”,在彈出的對話框中選擇“Output”選項卡,選中“Create HEX File”; 執(zhí)行菜單命令“Project” “Build Target”,編譯源程序。如果編譯成功,則在“Output Window”窗口中顯示沒有錯誤,并創(chuàng)建了“置位程
34、序置位程序.HEX6 6、原理圖的設(shè)計原理圖的設(shè)計 在桌面上雙擊圖表“isis”,isis”,打開ISIS 7.8Professional 窗口; 單擊菜單命令“File” “New Design”,新建一個DEFAULT 模板,保存文件名為“dpj置位程序p置位置位.DSN”.DSN”; 在器件選擇按鈕“DEVICES”中單擊“P”按鈕,或執(zhí)行菜單命令”Library” “Pick Devices/Symbol”,添加如下表所示的元件。注意:ISIS中的單片機(jī)的型號必須與在Keil中選擇的型號完全一致。單片機(jī)AT89C51瓷片電容CAP 30pF晶振CRYSTAL 12 MHz電阻 RES按
35、鈕BUTTON 在ISIS原理圖編輯窗口中放置元件,再單擊工具箱的“元件終端”,圖標(biāo),在對象選擇器中單擊“POWER”和“GROUND”放置電源和地。放置好元件后,布好線。在左鍵雙擊各元件,設(shè)置相應(yīng)元件參數(shù),完成電路圖的設(shè)計,如右圖 所示。 7 7、在在ProteusProteus中中調(diào)試程序調(diào)試程序左鍵雙AT89C51單片機(jī),在彈出的對話框中進(jìn)行設(shè)置,在“Program File”項中,必須選擇在Keil中生成的十六進(jìn)制文件“置位程序.HEX” 單擊按鈕“ ”進(jìn)入程序調(diào)試狀態(tài),并利用“Debug”菜單中打開“8051 CPU Registers”和“8051 CPU Internal Mem
36、ory”窗口; 執(zhí)行菜單命令“Debug” “Step Into”或按F11,單步運(yùn)行程序,可在這兩個窗口中看到各寄存器及存儲單元的變化。 若程序運(yùn)行完后,ACC中的內(nèi)容為FEH,R1的地址48H;由于源程序中R1的設(shè)置初值地址為20H,這說明執(zhí)行了40次(48H-20H=28H=40),20H40H的單元內(nèi)容均為FEH。.4 片內(nèi)清零程序的設(shè)計片內(nèi)清零程序的設(shè)計1 1、設(shè)計要求、設(shè)計要求 將片內(nèi)從40H開始的連續(xù)30地址內(nèi)容清零。2 2、設(shè)計分析、設(shè)計分析 將片內(nèi)連續(xù)地址內(nèi)容清零可首先設(shè)定起始地址并指定清零個數(shù),然后使用DJNZ指令進(jìn)行循環(huán)判斷。3 3、程序流程圖設(shè)計、程序流
37、程圖設(shè)計開始設(shè)置清零次數(shù)地址+1當(dāng)前地址內(nèi)容清零設(shè)置片內(nèi)起始地址是否已達(dá)次數(shù)?結(jié)束NY4 4、匯編程序設(shè)計、匯編程序設(shè)計 ORG 0030H MOV R0,#30;清零次數(shù)設(shè)置 MOV R1,#40H;指向清零開始地址CLEAR: CLR A;將累加器A清零 MOV R1,A;將累加器的內(nèi)容送入地址 INC R1;指向下一地址 DJNZ R0,CLR ;是否達(dá)到清零次數(shù),否,繼續(xù)清零 SJMP $ END5 5、調(diào)試與仿真調(diào)試與仿真 點(diǎn)擊桌面圖標(biāo),啟動KeilKeil程序,執(zhí)行菜單命令 “ProjectProject” “New New ProjectProject”創(chuàng)建“dpj片內(nèi)清零片內(nèi)清
38、零”項目,并選擇單片機(jī)型號為AT89C51AT89C51。 執(zhí)行菜單命令“FileFile” “NewNew”創(chuàng)建文件,輸入?yún)R編源程序,保存為“dpj片內(nèi)清零k片內(nèi)清零片內(nèi)清零.ASM.ASM” 。 在“ProjectProject” 欄的File項目管理窗口中右擊文件組,選擇“Add Add Files toSource Group1Files toSource Group1 ”將源程序“片內(nèi)清零片內(nèi)清零.ASM.ASM” 添加到項目中。執(zhí)行菜單命令“Project” “Options for Target target 1 ”,在彈出的中選擇“Output”選項卡,選中“Create HE
39、X File”。執(zhí)行菜單命令“Project” “Build Target”,編譯源程序。如果編譯成功,則在“Output Window”窗口中顯示沒有錯誤,并創(chuàng)建了“片內(nèi)清零片內(nèi)清零.HEX。如果如果ProteusProteus已進(jìn)入調(diào)試狀已進(jìn)入調(diào)試狀態(tài),可執(zhí)行菜單命令:態(tài),可執(zhí)行菜單命令:“Debug”“Start/Stop DebugSesson”,按F11鍵,單步運(yùn)行程序.在“Memory”窗口的“Adress”欄中鍵入“D:40H”可查看相應(yīng)地址內(nèi)容為零。6 6、原理圖的設(shè)計原理圖的設(shè)計 在桌面上雙擊圖表“isis”,isis”,打開ISIS 7 Professional 窗口; 單
40、擊菜單命令“File” “New Design”,新建一個DEFAULT 模板,保存文件名為“dpj片內(nèi)清零p片內(nèi)清零片內(nèi)清零.DSN”.DSN”. 在器件選擇按鈕“DEVICES”中單擊“P”按鈕,或執(zhí)行菜單命令“Library” “Pick Devices/Symbol”,添加如下表所示的元件。單片機(jī)AT89C51瓷片電容CAP 30pF晶振CRYSTAL 12 MHz電阻 RES按鈕BUTTON在ISIS原理圖編輯窗口中放置元件,再單擊工具箱的“元件終端”圖標(biāo),在對象選擇器中單擊“POWER”和“GROUND”放置電源和地。放置好元件后,布好線。再左鍵雙擊各元件,設(shè)置相應(yīng)元件參數(shù),完成電
41、路圖的設(shè)計。 7 7、在在ProteusProteus中中調(diào)試程序調(diào)試程序左鍵雙AT89C51單片機(jī),在彈出的對話框中進(jìn)行設(shè)置,在“Program File”項中,必須選擇在Keil中生成的十六進(jìn)制文件“片內(nèi)清片內(nèi)清零零.HEX”單擊按鈕“ ”進(jìn)入程序調(diào)試狀態(tài),并利用“Debug”菜單中打開“8051 CPU Registers”和“8051 CPU Internal Memory”窗口,執(zhí)行菜單命令“Debug” “Step Into”或按F11,單步運(yùn)行程序,可在這兩個窗口中看到各寄存器及存儲單元的變化。 單片機(jī)是有點(diǎn)意思,但還是有點(diǎn)難;單片機(jī)是有點(diǎn)意思,但還是有點(diǎn)難; 由于這一節(jié)講的程序
42、設(shè)計主要與內(nèi)存打交道還是有點(diǎn)抽象,不由于這一節(jié)講的程序設(shè)計主要與內(nèi)存打交道還是有點(diǎn)抽象,不太好理解,也不太容易掌握!太好理解,也不太容易掌握! 但也不要著急,但也不要著急, 隨著本課程的逐步深入,隨著本課程的逐步深入, 你會逐步了解和掌握單片機(jī)的相關(guān)知識,你會逐步了解和掌握單片機(jī)的相關(guān)知識, 很快地你就會沉浸在單片機(jī)應(yīng)用系統(tǒng)開發(fā)的喜悅之中!很快地你就會沉浸在單片機(jī)應(yīng)用系統(tǒng)開發(fā)的喜悅之中!3.3.1 I/O口在口在MCS-51單片機(jī)中的引腳位置單片機(jī)中的引腳位置3.3.2 I/O口在口在MCS-51單片機(jī)中的作用單片機(jī)中的作用3.3.3 I/O口內(nèi)部電路結(jié)構(gòu)及作用口內(nèi)部電路結(jié)構(gòu)及作用3.3.4
43、P1口的應(yīng)用口的應(yīng)用(1)3.3.5 P1口的應(yīng)用口的應(yīng)用(2)3.3 3.3 并行輸入輸出端口(并行輸入輸出端口(I/OI/O) I/O口: 單片機(jī)I/O(Input/Ouput)端口,稱為I/O接口(簡稱為I/O口)或稱為I/O通道或I/O通路。 MCS-51系列單片機(jī)有4個雙向8位I/O口(P0P3),共32根I/O引線。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS123456789101112131415
44、16171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0.1 I/OI/O口在口在MCS-51MCS-51單片機(jī)中的引腳位置單片機(jī)中的引腳位置 I/O端口是單片機(jī)與外圍器件或外部設(shè)備實(shí)現(xiàn)控制和信息交換的橋梁。數(shù)據(jù)總線(DB)8位,由P0提供;地址總線(AB)16位,由P2提供高8位,P0提供低8位;控制總線(CB)12位, 控制線+P3.DBA
45、B地址鎖存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCC P0.0P0.1P0.2P0.3P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2P0.43 3. .3 3.2 .2 I/OI/O口在口在MCS-51MCS-51單片機(jī)的作用單片機(jī)的作用3 3. .3.3 3.3 I/OI/O口內(nèi)部電路結(jié)構(gòu)及作用口內(nèi)部電路結(jié)構(gòu)
46、及作用(1)I/O(1)I/O口內(nèi)部電路結(jié)構(gòu)口內(nèi)部電路結(jié)構(gòu)組成:組成: 1個鎖存器(即特殊功能寄存器, 8個鎖存器構(gòu)成P0P3); 1個驅(qū)動器(P0口:2個); 2個三態(tài)緩沖器(P3口:3個)。P0P0口口: : 1個鎖存器(即8個鎖存器構(gòu)成特殊功能寄存器P0); 2個驅(qū)動器: 2個場效應(yīng)管組成驅(qū)動電路; 2個三態(tài)緩沖器; 1個與門; 1個反相器; 1個模擬轉(zhuǎn)換開關(guān):MUX。VCCP0.X鎖存器讀鎖存器地址/數(shù)據(jù)控制CBD讀引腳寫鎖存器內(nèi)部總線QQMUXT2P0.XT1CL&(2)(2)地址地址/ /數(shù)據(jù)數(shù)據(jù)(AB/DB)(AB/DB)分時復(fù)用功分時復(fù)用功能能: :當(dāng)PO口作為地址/數(shù)
47、據(jù)(AB/DB)分時復(fù)用總線時,分為兩種情況: 1 1)從)從P0P0口輸出地址或數(shù)據(jù)口輸出地址或數(shù)據(jù) 控制信號應(yīng)為高電平“1”( CB=1 ) 轉(zhuǎn)換開關(guān)MUX把反相器的輸出端與T2 接通,同時把與門打開: 輸入AB/DB=1,T1(+),T2(-), 輸出1; 輸入AB/DB=0 ,T1(-),T2(+),輸出0; 2 2)從)從P0P0口輸入數(shù)據(jù)口輸入數(shù)據(jù) 引腳信息通過“讀引腳”緩存器進(jìn)入內(nèi)部總線。VCCP0.X鎖存器讀鎖存器地址/數(shù)據(jù)控制CBD讀引腳寫鎖存器內(nèi)部總線QQM UXT2P0.XT1CL&(3)(3)通用通用I/OI/O接口功能接口功能: :當(dāng)PO口作為通用I/O接口時
48、,也分為兩種情況: 1 1)從)從P0P0口輸出數(shù)據(jù)口輸出數(shù)據(jù) 控制信號應(yīng)為低電平“0”( CB=0 ) 轉(zhuǎn)換開關(guān)MUX把輸出端與鎖存器 接通,同時與門輸出為0,使T1截止: 當(dāng)寫脈沖加在鎖存器時鐘端CLK時,與內(nèi)部 總線相連的D段數(shù)據(jù)取反后出現(xiàn)在Q端,又 經(jīng)T2反相,正好是內(nèi)部總線的數(shù)據(jù)。 CB=0,作I/O口線,T1(-),需外接上拉電阻 2 2)從)從P0P0口輸入數(shù)據(jù)口輸入數(shù)據(jù) 引腳信息通過“讀引腳”緩存器進(jìn)入內(nèi)部總線!輸入數(shù)據(jù)時,由于引腳狀態(tài)無法確定,應(yīng)先向口寫“1”,使T1、T2均截止,引腳處于高阻狀態(tài),才能正確輸入數(shù)據(jù)。VCCP0.X鎖存器讀鎖存器地址/數(shù)據(jù)控制CBD讀引腳寫鎖存
49、器內(nèi)部總線QQMUXT2P0.XT1CLK& (4 4) I/O I/O操作操作寫操作(作為輸出口使用):寫操作(作為輸出口使用): 指令:MOV P0, A ;P0(A) 實(shí)現(xiàn): D=1,T2(-),P0.X =1 D=0,T2(+),P0.X =0 讀操作(作為輸入口使用)讀操作(作為輸入口使用)讀鎖存器:讀鎖存器: P P為目的操作數(shù)為目的操作數(shù)的指令,如:ANL P0, #0FH; 指令執(zhí)行過程:讀 修改 寫; 避免鎖存器與引腳數(shù)據(jù)不同時(如負(fù)載為三極管),出現(xiàn)錯誤操作。讀引腳:讀引腳: 先寫先寫11,再讀,再讀 P P為源操作數(shù)為源操作數(shù)的指令,如:MOV P0, #0FFH
50、;先寫1MOV A, P0;再讀 避免鎖存器D=0時, 引腳信號嵌位在0VCCP0.X 鎖存器讀鎖存器地址/數(shù)據(jù)控制CBD讀引腳 寫鎖存器內(nèi)部總線QQMUXT2P0.XT1CL&VCCVCCP0.X鎖 存器DCLQQT2(+)10 (5 5)其它各)其它各I/OI/O口結(jié)構(gòu)及作用口結(jié)構(gòu)及作用I/OI/O口,準(zhǔn)雙向口口,準(zhǔn)雙向口,P0,P0需外接上拉電阻需外接上拉電阻外部總線擴(kuò)展外部總線擴(kuò)展P0:DB, AB(低8位)P2:AB(高8位)P3:CB VCCP1.X鎖存器讀鎖存器D讀引腳寫鎖存器內(nèi)部總線QQTP1.X內(nèi)部上拉電阻CLP1口VCCP2.X鎖存器 讀鎖存器地址控制D 讀引腳 寫
51、鎖存器內(nèi)部總線QQMUXT內(nèi)部上拉電阻CLP2.XP2口VCCP3.X鎖存器讀鎖存器第二輸出功能D 讀引腳 寫鎖存器內(nèi)部總線QQT內(nèi)部上拉電阻第二輸入功能CLP3.XP3口3.3.4 P13.3.4 P1口的應(yīng)用(口的應(yīng)用(1 1)1 1、設(shè)計要求、設(shè)計要求 P1口為準(zhǔn)雙向I/O,每一位口線都能獨(dú)立作為輸入、輸出線。設(shè)計程序,當(dāng)按下按鈕時,P1.1控制發(fā)光二級管點(diǎn)亮,否則,P1.0控制發(fā)光二極管點(diǎn)亮。2 2、設(shè)計分析、設(shè)計分析 最小的單片機(jī)系統(tǒng)+發(fā)光二極管(P1.0)+發(fā)光二級管( P1.1 )3 3、系統(tǒng)原理圖設(shè)計、系統(tǒng)原理圖設(shè)計 單片機(jī)AT89C51瓷片電容CAP 30pf晶振CRYSTA
52、L 12MHz電阻RES按鈕BUTTON發(fā)光二極管LED-BIBY(BLUE)發(fā)光二極管LED-BIGY(GREEN)4 4、程序流程圖設(shè)計、程序流程圖設(shè)計結(jié)束按鈕是否被按下P1口置為FFH開始P1.0效,控制藍(lán)色發(fā)光二極管亮P1.1有效,控制綠色發(fā)光二極管亮NY5 5、源程序設(shè)計(匯編)、源程序設(shè)計(匯編) ORG 0030H MOV A,#0FFH MOV P1,A ;將p1口全置1 JNB P1.2,LOOP1 ;p1.2是否為低電平LOOP: CLR P1.0 ;不是低電平,p1.0驅(qū)動藍(lán)色發(fā) 光二 極管點(diǎn)亮 LCALL EXITLOOP1: CLR P1.1 ;為低電平,p1.1驅(qū)動
53、綠色發(fā)光 二極管點(diǎn)亮EXIT: NOP END6 6、源程序設(shè)計(、源程序設(shè)計( C C語言)語言)#include reg51.h #define uint unsigned int#define uchar unsigned charsbit DIPswitch=P12;sbit blueLED=P10;sbit greenLED=P11;void main(void) P1=0XFF; while(1) if(DIPswitch=1) blueLED=0;greenLED=1; else greenLED=0;blueLED=1;7 7、系統(tǒng)調(diào)試與仿真、系統(tǒng)調(diào)試與仿真 (1)keil c
54、 調(diào)試; (2)proteus調(diào)試; (3)聯(lián)合調(diào)試; (4)調(diào)試結(jié)果。 3.3.5 P13.3.5 P1口的應(yīng)用(口的應(yīng)用(2 2)1 1、設(shè)計要求、設(shè)計要求 在某控制系統(tǒng)中,當(dāng)系統(tǒng)發(fā)生故障時,能產(chǎn)生聲光報警,直至技術(shù)人員將故障排除。使用單片機(jī)P1口實(shí)現(xiàn)該報警功能。2 2、設(shè)計分析、設(shè)計分析 最小的單片機(jī)系統(tǒng)+麥克風(fēng)(聲、P1口)+發(fā)光二級管( P1口)3 3、系統(tǒng)原理圖設(shè)計、系統(tǒng)原理圖設(shè)計單片機(jī)AT89C51瓷片電容CAP30pf晶振CRYSTAL12 MHz電解電容 CAP-ELEC電阻RES按鈕BUTTON發(fā)光二極管LED-BIRG三極管2N2905開關(guān)SWITCH麥克風(fēng)SOUNDER
55、4 4、程序流程圖設(shè)計、程序流程圖設(shè)計 是否產(chǎn)生報警?P1.1控制紅色發(fā)光二極管閃亮開始P1口置為FFHP1.7產(chǎn)生脈沖發(fā)出聲音結(jié)束YN5 5、源程序設(shè)計(匯編)、源程序設(shè)計(匯編) ORG 0030H MOV A,#0FFH ;將P1口全置1 MOV P1,A LOOP: JB P1.0,EXIT ; P1.0是否為高電平(1) CPL P1.1 ;P1.1閃爍(取反) CLR P1.7 ; P1.7控制麥克風(fēng)發(fā)生 LCALL DELAY SETB P1.7 LCALL DELAY AJMP LOOP DELAY: MOV R7,#200 ;延時子程序D1: MOV R6,#248D2: D
56、JNZ R6,$ DJNZ R7,D1 RETEXIT: NOP END6 6、源程序設(shè)計(、源程序設(shè)計( C C語言)語言)#include reg51.h#define uint unsigned int#define uchar unsigned charsbit DIPswitch=P10;sbit redLED=P11;sbit sounder=P17;void delay(void) /延時 unsigned char i; for(i=0;i125;i+) ; void main(void) P1=0XFF; while (1) if(DIPswitch=0) redLED=re
57、dLED;sounder=0;delay(); sounder=1;delay(); else ; 7 7、系統(tǒng)調(diào)試與仿真、系統(tǒng)調(diào)試與仿真 (1)keil c 調(diào)試; (2)proteus調(diào)試; (3)聯(lián)合調(diào)試; (4)調(diào)試結(jié)果分析: 系統(tǒng)發(fā)生故障時的運(yùn)行結(jié)果。 單片機(jī)還是很容易設(shè)計的,單片機(jī)還是很容易設(shè)計的, 隨著學(xué)習(xí)的逐步深入,隨著學(xué)習(xí)的逐步深入, 你會很快地沉浸在單片機(jī)應(yīng)用系統(tǒng)開發(fā)的樂趣之中!你會很快地沉浸在單片機(jī)應(yīng)用系統(tǒng)開發(fā)的樂趣之中!3.4 3.4 定時器定時器/ /計數(shù)器計數(shù)器3.4.1 定時器定時器/計數(shù)器概述計數(shù)器概述3.4.2 定時器定時器/計數(shù)器的構(gòu)成計數(shù)器的構(gòu)成3.4.3
58、 定時器定時器/計數(shù)器計數(shù)器的用法的用法3.4.4 定時器定時器/計數(shù)器計數(shù)器的控制的控制3.4.5 定時器定時器/計數(shù)器計數(shù)器的應(yīng)用的應(yīng)用(1)3.4.6 定時器定時器/計數(shù)器計數(shù)器的應(yīng)用的應(yīng)用(2)定時器/計數(shù)器是MCS-51單片機(jī)的重要功能模塊之一。在檢測、控制及智能儀器等應(yīng)用中,常用定時器作實(shí)時時鐘來實(shí)現(xiàn)定時檢測、定時控制。還可用定時器產(chǎn)生毫秒寬的脈沖驅(qū)動步進(jìn)電機(jī)。計數(shù)器主要用于外部事件的計數(shù)。MCS-51單片機(jī)內(nèi)部有兩個16位定時/計數(shù)器T0和T1,它們既可用作定時器,也可用作計數(shù)器,應(yīng)用哪種,可以通過編程來設(shè)定。定時器/計數(shù)器在MCS-51單片機(jī)中的引腳位置:T0:P3.4、T1:
59、P3.5P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.03 .1 定時
60、器定時器/ /計數(shù)器計數(shù)器概述概述3.4.2 3.4.2 定時器定時器/ /計數(shù)器計數(shù)器的構(gòu)成的構(gòu)成兩個定時器兩個定時器/計數(shù)器(計數(shù)器(T0和和T1)。每個定時器/計數(shù)器都是由兩個8位計數(shù)器構(gòu)成的16位計數(shù)器,分別由特殊功能寄存器TH0、TL0和TH1、TL1組成,最大計數(shù)值:216=65536 。寄存器寄存器TCON。TCON為控制寄存器,用來控制兩個定時器/計數(shù)器的啟動/停止。寄存器寄存器TMOD。TMOD為工作方式控制寄存器,用來設(shè)置定時器/計數(shù)器的工作方式。3.4.3 3.4.3 定時器定時器/ /計數(shù)器計數(shù)器的用法的用法 (1)定時器的用法)定時器的用法 定時器的功用是用來確定時定時器的功用是用來確定時間間。如
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黑白普通攝像機(jī)行業(yè)深度研究分析報告-20241226-203523
- 2025年度歷史文化遺址圍墻保護(hù)與修復(fù)合同
- 2025年強(qiáng)炭黑項目可行性研究報告
- 2025年度建筑企業(yè)施工人員勞動合同
- 2025年度個人創(chuàng)業(yè)貸款合同
- 2025年中國學(xué)生平板電腦行業(yè)市場全景監(jiān)測及投資前景展望報告
- 2025年度環(huán)保技術(shù)股權(quán)交易合同書
- 2025年度建筑綠化材料采購專項協(xié)議
- 2025年度健身行業(yè)市場調(diào)研與分析服務(wù)合同
- 2019-2025年中國中老年奶粉行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
- 2022屆“一本、二本臨界生”動員大會(2023.5)
- 國家行政機(jī)關(guān)公文格式課件
- 耐壓絕緣硅橡膠涂料噴涂作業(yè)指導(dǎo)書
- 小學(xué)《體育與健康》 人教版 三年級 乒乓球運(yùn)動 -乒乓球介紹與球性教學(xué) 第一節(jié)課PPT 課件
- 急性心梗的護(hù)理業(yè)務(wù)學(xué)習(xí)課件
- 導(dǎo)向標(biāo)識系統(tǒng)設(shè)計(二)課件
- 聚焦:如何推進(jìn)教育治理體系和治理能力現(xiàn)代化
- 化工儀表自動化【第四章】自動控制儀表
- 安全生產(chǎn)十大法則及安全管理十大定律
評論
0/150
提交評論