單片機(jī)應(yīng)用技術(shù)課件_第1頁(yè)
單片機(jī)應(yīng)用技術(shù)課件_第2頁(yè)
單片機(jī)應(yīng)用技術(shù)課件_第3頁(yè)
單片機(jī)應(yīng)用技術(shù)課件_第4頁(yè)
單片機(jī)應(yīng)用技術(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩122頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)應(yīng)用技術(shù)1緒論 單片機(jī)系統(tǒng)開(kāi)發(fā)板簡(jiǎn)介上一頁(yè)下一頁(yè)單片機(jī)芯片電源模塊開(kāi)關(guān)輸入音樂(lè)輸出LED顯示數(shù)碼管顯示下載接口紅外遙控繼電控制串行模塊2緒論 主要內(nèi)容主要內(nèi)容MCS-51單片機(jī)結(jié)構(gòu)和原理MCS-51系列單片機(jī)指令系統(tǒng)匯編語(yǔ)言程序設(shè)計(jì)定時(shí)/計(jì)數(shù)、中斷和串行口上一頁(yè)下一頁(yè)3緒論 主要內(nèi)容本章首頁(yè)上一頁(yè)下一頁(yè)1.單片機(jī)指令的形式,意義和應(yīng)用2.單片機(jī)內(nèi)部各存儲(chǔ)器3.單片機(jī)程序設(shè)計(jì)4.單片機(jī)的中斷結(jié)構(gòu)及應(yīng)用本書(shū)重點(diǎn)內(nèi)容本書(shū)難點(diǎn)內(nèi)容1.指令多且雜,需要多加記憶和練習(xí)2.程序設(shè)計(jì)思路和具體實(shí)施,需要多讀,多看,多想,多做。4緒論上一頁(yè)下一頁(yè)主要內(nèi)容1.1 單片機(jī)概述1.2 51單片機(jī)結(jié)構(gòu)和引腳1.3

2、 51單片機(jī)存儲(chǔ)器結(jié)構(gòu)1.4 并行I/O、時(shí)序、復(fù)位第一章 MCS-51單片機(jī)結(jié)構(gòu)和原理5緒論上一頁(yè)下一頁(yè)1.單片機(jī)引腳結(jié)構(gòu)2.單片機(jī)CPU結(jié)構(gòu)3.I/O端口的作用本章重點(diǎn)內(nèi)容本章難點(diǎn)內(nèi)容1.單片機(jī)引腳排列2.單片機(jī)CPU存儲(chǔ)器第一章 MCS-51單片機(jī)結(jié)構(gòu)和原理6本章首頁(yè)上一頁(yè)下一頁(yè)1.1 單片機(jī)概述本節(jié)學(xué)習(xí)重點(diǎn)1.單片機(jī)的組成2.單片機(jī)的概念3.MCS-51系列單片機(jī)的型號(hào)及特點(diǎn)71)中央處理器CPU2)存儲(chǔ)器3)多輸入/輸出(I/O)接口電路1)性?xún)r(jià)比高 2)控制功能強(qiáng)3)集成度高、體積小、可靠性高4位-8位-16位-32位本章首頁(yè)上一頁(yè)下一頁(yè)1.1 單片機(jī)概述1.1.1 單片機(jī)概念 把

3、組成微型計(jì)算機(jī)的各功能部件等制作在一塊集成芯片中,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。相關(guān)概念1.組成2.特點(diǎn)3.發(fā)展8本章首頁(yè)上一頁(yè)下一頁(yè)1.1 單片機(jī)概述1.1.2 單片機(jī)的應(yīng)用數(shù)控線切割機(jī)床數(shù)控車(chē)床醫(yī)用呼吸機(jī)位移傳感器數(shù)據(jù)采集工業(yè)智能儀器醫(yī)用生活數(shù)字式測(cè)角儀9 工業(yè)控制中智能家用電器、智能儀器設(shè)備、數(shù)控機(jī)床、自動(dòng)生產(chǎn)線、智能玩具、相關(guān)的數(shù)據(jù)采集處理顯示等等。 日常生活中常見(jiàn)的霓虹燈顯示、比賽搶答器、報(bào)警器、電子時(shí)鐘、點(diǎn)陣和液晶顯示屏等等。應(yīng)用實(shí)例1.1 單片機(jī)概述本章首頁(yè)上一頁(yè)下一頁(yè)101.1 單片機(jī)概述1.1.3. MCS-51單片機(jī)系列產(chǎn)品型 號(hào)AT89C51AT89C52AT89C1051A

4、T89S8252Flash(KB)4818片內(nèi)RAM(B)12825664256I/O(條)32321532定時(shí)器(個(gè))2313中斷源(個(gè))6839串行接口(個(gè))1111AT89系列單片機(jī)介紹本章首頁(yè)上一頁(yè)下一頁(yè)111.2 51單片機(jī)結(jié)構(gòu)和引腳本節(jié)學(xué)習(xí)重點(diǎn)1.單片機(jī)的引腳及邏輯符號(hào)2.單片機(jī)的引腳說(shuō)明3.單片機(jī)的CPU本節(jié)學(xué)習(xí)難點(diǎn)1.引腳圖位置記憶本章首頁(yè)上一頁(yè)下一頁(yè)121.2.1 MCS-51的引腳及功能說(shuō)明1.2 51單片機(jī)結(jié)構(gòu)和引腳本章首頁(yè)上一頁(yè)下一頁(yè)13MCS-51 系列單片機(jī)外部引腳說(shuō)明 1. 主電源引腳Vcc(40):接+5V端。 Vss(20):接+5V電源地端。2. 外接晶體引

5、腳XTAL1(19腳):接外部石英晶體的一端。XTAL2(18腳):接外部石英晶體的另一端。1.2 51單片機(jī)結(jié)構(gòu)和引腳本章首頁(yè)上一頁(yè)下一頁(yè)143. 控制線 (1)ALE/PROG(30腳) (2)PSEN(29腳) (3)RST/VPD引腳(9腳) (4)EA/Vpp(31腳)1.2 51單片機(jī)結(jié)構(gòu)和引腳本章首頁(yè)上一頁(yè)下一頁(yè)MCS-51 系列單片機(jī)外部引腳說(shuō)明 154. 輸入/輸出引腳 P0、P1、P2、P31.2 51單片機(jī)結(jié)構(gòu)和引腳本章首頁(yè)上一頁(yè)下一頁(yè)MCS-51 系列單片機(jī)外部引腳說(shuō)明 161.2.2 MCS-51單片機(jī)內(nèi)部組成1.2 51單片機(jī)結(jié)構(gòu)和引腳本章首頁(yè)上一頁(yè)下一頁(yè)171.2

6、 51單片機(jī)結(jié)構(gòu)和引腳1.2.3 MCS-51的CPU相關(guān)內(nèi)容介紹運(yùn)算器CPU1.累加器ACC控制器1.指令寄存器和譯碼2.B寄存器3.程序狀態(tài)字PSWCy OV P2.程序計(jì)數(shù)器PC3.定時(shí)與控制電路本章首頁(yè)上一頁(yè)下一頁(yè)181.3 51單片機(jī)存儲(chǔ)器結(jié)構(gòu)本章首頁(yè)上一頁(yè)下一頁(yè)本節(jié)學(xué)習(xí)重點(diǎn)1.單片機(jī)存儲(chǔ)器的編址2.數(shù)據(jù)存儲(chǔ)器 工作存儲(chǔ)器、位尋址空間、堆棧和數(shù)據(jù)緩沖區(qū)191.3 51單片機(jī)存儲(chǔ)器結(jié)構(gòu) 存儲(chǔ)器是存放數(shù)據(jù)的地方。實(shí)際上是電平的高低。 內(nèi)部程序存儲(chǔ)器ROM內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM片內(nèi)有4KB的ROM地址范圍0000H-0FFFH片內(nèi)有128B的ROM地址范圍00H-7FH1.工作寄存器區(qū)00H

7、-1FH2.位尋址區(qū)20H-2FH3.堆棧區(qū)30H-7FH本章首頁(yè)上一頁(yè)下一頁(yè)201.4 并行I/O、時(shí)序、復(fù)位本節(jié)學(xué)習(xí)重點(diǎn)1.I/O端口的特點(diǎn)和功能2.時(shí)鐘、機(jī)器周期3.單片機(jī)復(fù)位的實(shí)現(xiàn)方法,復(fù)位后各存儲(chǔ)器的狀態(tài)。本節(jié)了解內(nèi)容:I/O端口的結(jié)構(gòu)單片機(jī)掉電處理和低功耗方式本章首頁(yè)上一頁(yè)下一頁(yè)211.4 并行I/O、時(shí)序、復(fù)位問(wèn)題:如何使實(shí)現(xiàn)單片機(jī)與外部硬件之間的數(shù)據(jù)傳輸?通過(guò)單片機(jī)的I/O口本章首頁(yè)上一頁(yè)下一頁(yè)221.4 并行I/O、時(shí)序、復(fù)位1.4.1 并行輸入/輸出口(I/O)1、I/O口的特點(diǎn) 4個(gè)并行I/O端口都是雙向的。P0口為漏極開(kāi)路驅(qū)動(dòng);P1,P2,P3口均具有內(nèi)部上拉電阻驅(qū)動(dòng),

8、它們有時(shí)被稱(chēng)為準(zhǔn)雙向口。 所有32條并行I/O線都能獨(dú)立地用做輸入或輸出,還可以進(jìn)行位操作。 注意:當(dāng)P0-P3做輸入使用,P3口做第二功能使用是,相應(yīng)鎖存器要置1。本章首頁(yè)上一頁(yè)下一頁(yè)231.4 并行I/O、時(shí)序、復(fù)位1.4.2 時(shí)鐘和CPU時(shí)序 基本時(shí)序單位: 單片機(jī)以晶體振蕩器的振蕩周期為最小的時(shí)序單位,片內(nèi)的各種微操作都以此周期為時(shí)序基準(zhǔn)。 振蕩頻率foscl2分頻后形成機(jī)器周期MC。所以,1個(gè)機(jī)器周期包含有12個(gè)振蕩周期。 振蕩周期和機(jī)器周期是單片機(jī)內(nèi)計(jì)算其它時(shí)間值(例如,波特率、定時(shí)器的定時(shí)時(shí)間等)的基本時(shí)序單位。下面是單片機(jī)外接晶振頻率12MHZ時(shí)的各種時(shí)序單位的大?。?振蕩周期

9、1/fosc=1/12MHZ=0.0833us 機(jī)器周期=1/(fosc/12)=1s本章首頁(yè)上一頁(yè)下一頁(yè)241.4 并行I/O、時(shí)序、復(fù)位1.4.3 復(fù)位、掉電處理部分特殊功能寄存器的復(fù)位狀態(tài) 說(shuō)明:表中符號(hào)狀為隨機(jī)態(tài)。寄存器 復(fù)位狀態(tài)寄存器 復(fù)位狀態(tài)PC 0000H ACC 00H B 00H PSW 00H SP 07H DPTR 0000H P0P3 0FFH IP 00000B IE 000000B TMOD 00H TCON 00H TL0,TL1 00H TH0,TH1 00H SCON 00H SBUF 不定 PCON 00000B 本章首頁(yè)上一頁(yè)下一頁(yè)25本章重點(diǎn)內(nèi)容小結(jié)1.

10、單片機(jī)引腳:四組,共40個(gè)2.CPU存儲(chǔ)器:ACC,B,PSW3.單片機(jī)存儲(chǔ)器分成程序和數(shù)據(jù)存儲(chǔ)器.程序存儲(chǔ)器的地址范圍從0000H-0FFFH,共4KB個(gè);數(shù)據(jù)存儲(chǔ)器共128B,分成工作寄存器區(qū),位地址區(qū)和堆棧區(qū)。第一章 MCS-51單片機(jī)結(jié)構(gòu)和原理本章首頁(yè)上一頁(yè)下一頁(yè)26緒論上一頁(yè)下一頁(yè)主要內(nèi)容2.1 單片機(jī)的指令系統(tǒng)基礎(chǔ)2.3 算術(shù)運(yùn)算類(lèi)指令 2.6 布爾變量操作指令2.4 邏輯運(yùn)算及移位指令2.2 數(shù)據(jù)傳送類(lèi)指令2.5 控制轉(zhuǎn)移指令第二章 MCS-51單片機(jī)結(jié)構(gòu)和原理271.單片機(jī)尋址方式2.單片機(jī)指令系統(tǒng)3.單片機(jī)指令應(yīng)用本章重點(diǎn)內(nèi)容本章難點(diǎn)內(nèi)容單片機(jī)指令系統(tǒng)多且雜,需要多看,多背,

11、多練,熟練掌握,為程序設(shè)計(jì)打下良好基礎(chǔ)第二章 MCS-51單片機(jī)結(jié)構(gòu)和原理28本章首頁(yè)上一頁(yè)下一頁(yè)問(wèn)題:如何使P1口所連接的8個(gè)發(fā)光二極管點(diǎn)亮?通過(guò)單片機(jī)的指令系統(tǒng)編程實(shí)現(xiàn)。第二章 MCS-51單片機(jī)結(jié)構(gòu)和原理29本章首頁(yè)上一頁(yè)下一頁(yè)2.1 單片機(jī)的指令系統(tǒng)基礎(chǔ)本節(jié)學(xué)習(xí)重點(diǎn)1.單片機(jī)指令格式2.七種尋址方式的名稱(chēng)及標(biāo)志3.單片機(jī)內(nèi)部常用符號(hào)30本章首頁(yè)上一頁(yè)下一頁(yè)2.1 單片機(jī)的指令系統(tǒng)基礎(chǔ)2.1.1 單片機(jī)匯編語(yǔ)言指令格式標(biāo)號(hào):操作碼助記符 目的操作數(shù),源操作數(shù);注釋標(biāo)號(hào):指令的符號(hào)地址操作碼:表示指令進(jìn)行何種操作操作數(shù):指令的操作對(duì)象注釋?zhuān)簩?duì)指令功能的說(shuō)明31本章首頁(yè)上一頁(yè)下一頁(yè)2.1 單

12、片機(jī)的指令系統(tǒng)基礎(chǔ)2.1.2 單片機(jī)的常用符號(hào) Rn 選定當(dāng)前工作寄存器區(qū)的寄存器,n=07 Ri :間接尋址前綴符號(hào) i=0,1 direct 直接地址(8位二進(jìn)制數(shù)) #data #:立即數(shù)前綴標(biāo)志,8位或16位立即數(shù) ADDr16 16位目的地址 ADDr11 11位目的地址 rel 8位帶符號(hào)偏移量 bit 位操作 / 該位內(nèi)容取反 MOV A,#00HMOV A, 00H注意:直接地址與立即數(shù)之間的區(qū)別32本章首頁(yè)上一頁(yè)下一頁(yè)2.1 單片機(jī)的指令系統(tǒng)基礎(chǔ) (X) 表示以X為地址單元中的內(nèi)容 (X) 表示以X地址單元中的內(nèi)容為地址的 單元中的內(nèi)容。 $ 當(dāng)前指令的地址 數(shù)據(jù)傳輸方向,用

13、于指向目的操作數(shù) ; 注釋 (30H) (30H) 30H31H32H36H35H33H34H35H33H30H34H32H31H36H=35H=(35H)=32H33本章首頁(yè)上一頁(yè)下一頁(yè)2.1 單片機(jī)的指令系統(tǒng)基礎(chǔ)單片機(jī)的尋址方式例如:1000H:JC ,93H 分析:當(dāng)CY=1時(shí),轉(zhuǎn)移,過(guò)程如右圖所示:尋址方式標(biāo)志位立即尋址#data寄存器尋址Rn間接尋址Ri/DPTR直接尋址Direct基址加變址尋址A+PCA+DPTR相對(duì)尋址rel特定寄存器尋址A/DPTR34本章首頁(yè)上一頁(yè)下一頁(yè)本節(jié)學(xué)習(xí)重點(diǎn)1.指令的格式2.指令的形式(目的操作數(shù),源操作數(shù))3.指令的注意事項(xiàng)2.2 數(shù)據(jù)傳送類(lèi)指令3

14、5本章首頁(yè)上一頁(yè)下一頁(yè)2.2 數(shù)據(jù)傳送類(lèi)指令2.2.1 內(nèi)部RAM數(shù)據(jù)傳送指令1.指令格式指令格式:MOV 目的操作數(shù),源操作數(shù)功能:把源操作數(shù)傳送到目的操作數(shù)中,源操作數(shù)內(nèi)容不變。2.操作數(shù) 目的操作數(shù),源操作數(shù)注意:沒(méi)有MOV Rn,Ri、 MOV Rn,Rn和MOV Ri,Ri指令36本章首頁(yè)上一頁(yè)下一頁(yè)2.2 數(shù)據(jù)傳送類(lèi)指令指令含義目的操作數(shù)源操作數(shù)MOV內(nèi)部RAM傳送A#data direct Rn RiRn A #data direct RiA #data directdirectA #data direct Rn RiDPTR16位數(shù)據(jù)Acc 累加器Direct 直接尋址Ri 間

15、接尋址Rn 寄存器#data 立即數(shù)DPTR37本章首頁(yè)上一頁(yè)下一頁(yè)2.2 數(shù)據(jù)傳送類(lèi)指令vccORG 0000H;開(kāi)始偽指令MOV P1,#0FEHMOV P1,#0FDHMOV P1,#0FBHMOV P1,#00HEND;結(jié)束尾指令P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7指令效果演示38本章首頁(yè)上一頁(yè)下一頁(yè)2.2 數(shù)據(jù)傳送類(lèi)指令2.2.2 數(shù)據(jù)交換指令1.整字節(jié)交換:XCH A,Rn ;(A)(Rn)XCH A,direct ;(A)(direct)XCH A,Ri ;(A)(Ri)2.半字節(jié)交換:XCHD A,Ri ;(A)0-3(Ri)0-33.累加器自身高低

16、4位交換SWAP A ;(A)7-4(A)3-0392.2 數(shù)據(jù)傳送類(lèi)指令例:(A)=01101101B,執(zhí)行: SWAP A本章首頁(yè)上一頁(yè)下一頁(yè)40本節(jié)學(xué)習(xí)重點(diǎn)1.指令的格式,類(lèi)似記憶2.指令的形式3.指令的注意事項(xiàng)本節(jié)學(xué)習(xí)難點(diǎn)1.注意運(yùn)算標(biāo)志位的變化2.乘除指令的應(yīng)用2.3 算術(shù)運(yùn)算類(lèi)指令 本章首頁(yè)上一頁(yè)下一頁(yè)412.3 算術(shù)運(yùn)算類(lèi)指令 2.3.1 加減指令1.加法ADD:2.帶進(jìn)位加法指令A(yù)DDC:3.帶進(jìn)位加法指令SUBB:ADDA,Rn ;A(A)+(Rn)ADDCA,Rn;A(A)+(Rn)+(C)SUBBA,Rn ;A(A)-(Rn)-(C)注意:減法只有帶進(jìn)位的減法指令。計(jì)算兩

17、數(shù)相減,先令(C)=0,再執(zhí)行SUBB 目的操作數(shù):A 源操作數(shù):Rn/Ri/direct/#data本章首頁(yè)上一頁(yè)下一頁(yè)422.3 算術(shù)運(yùn)算類(lèi)指令 2.3.2 加/減1指令 INC/DEC 1.助記符:INCDEC2.操作數(shù):A,direct,Ri,Rn,DPTR只用于INC3.指令描述:不影響PSW,即使有進(jìn)位或借位,CY也不變,除A影響P標(biāo)志本章首頁(yè)上一頁(yè)下一頁(yè)43P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.72.3 算術(shù)運(yùn)算類(lèi)指令 vccORG 0000H;開(kāi)始偽指令MOV P1,#0FEHDEC P1MOV A,P1ADD A,#3MOV P1,AEND;結(jié)束尾指令

18、指令效果演示本章首頁(yè)上一頁(yè)下一頁(yè)442.3 算術(shù)運(yùn)算類(lèi)指令 2.3.4. 乘除指令 1.8位無(wú)符號(hào)數(shù)乘法指令MULAB ;(B 15-8 )( A7-0)(A)(B)PSW:1)若乘積大于256,OV=1 2)CY總是清“0”。例如:(A)=50H,(B)=A0H,執(zhí)行MUL AB后結(jié)果:(B)=32H,(A)=00H,(OV)=1 2.8位無(wú)符號(hào)除法指令DIVAB ; (A)(A/B)的(商) (B)(A/B)的(余數(shù))PSW: 1)CY、OV,清“0” 2)若(B)=0,OV=1。例如:(A)=2AH,(B)=05H,執(zhí)行DIV AB后結(jié)果:(A)=08H,(B)=02H,(OV)=0本章

19、首頁(yè)上一頁(yè)下一頁(yè)45本節(jié)學(xué)習(xí)重點(diǎn)1.指令的格式2.指令的形式,注意目的操作數(shù)3.指令的注意事項(xiàng)本節(jié)學(xué)習(xí)難點(diǎn)1.注意很多指令的目的操作數(shù)只能是A2.與、或和異或指令的應(yīng)用2.4 邏輯運(yùn)算及移位指令本章首頁(yè)上一頁(yè)下一頁(yè)462.4 邏輯運(yùn)算及移位指令2.4.1 累加器的邏輯操作指令1. 累加器清零、取反指令累加器清零指令1條,它是將A的內(nèi)容清“0”。 CLRA ;A0累加器取反指令1條,它是將A的內(nèi)容按位取反。 CPLA;A(A)例如(A)=27H。(A)=00100111B CPL A (A)=11011000B CLR A (A)=00000000B本章首頁(yè)上一頁(yè)下一頁(yè)472.4 邏輯運(yùn)算及移位

20、指令2.累加器移位操作:(RL,RLC,RR,RRC4條)RL A 左環(huán)移累加器 A累加器 ACyRRC A 帶進(jìn)位位右環(huán)移累加器 ARR A 右環(huán)移累加器 ACyRLC A 帶進(jìn)位位左環(huán)移本章首頁(yè)上一頁(yè)下一頁(yè)48 2.4.2 邏輯運(yùn)算指令 包括邏輯與、或、異或運(yùn)算指令 目的操作數(shù)為A/direct, 源操作數(shù)為A/Rn/Ri/direct/#data 2.4 邏輯運(yùn)算及移位指令指 令 形 式ByteTmANL(ORL,XRL) direct, A21ANL(ORL,XRL) direct, #data32ANL(ORL,XRL) A, #data21ANL(ORL,XRL) A, direc

21、t21ANL(ORL,XRL) A, Ri11ANL(ORL,XRL) A, Rn11本章首頁(yè)上一頁(yè)下一頁(yè)492.4 邏輯運(yùn)算及移位指令P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vccORG 0000H;開(kāi)始偽指令MOV P1,#00HORL P1,#0FFHORL P1,#00HANL P1,#00HANL P1,#0FFHXRL P1,#00HXRL P1,#0FFHEND;結(jié)束尾指令指令和1操作和0操作與不變清0或置1不變異或取反不變指令效果演示本章首頁(yè)上一頁(yè)下一頁(yè)50本節(jié)學(xué)習(xí)重點(diǎn)1.指令的格式2.指令的形式3.指令的注意事項(xiàng)4.下一條指令的執(zhí)行位置本節(jié)學(xué)習(xí)難點(diǎn):1

22、.CJNE DJNZ指令用法2.指令轉(zhuǎn)移方向2.5 控制轉(zhuǎn)移指令本章首頁(yè)上一頁(yè)下一頁(yè)512.5 控制轉(zhuǎn)移指令2.5.1 無(wú)條件轉(zhuǎn)移: LJMP,AJMP,SJMP,JMP4條LJMP addr16 長(zhǎng)跳轉(zhuǎn)指令 可在64K范圍內(nèi)跳轉(zhuǎn)AJMP addr11 絕對(duì)跳轉(zhuǎn)指令 可在指令所在的2K范圍內(nèi)跳轉(zhuǎn)SJMP rel 相對(duì)跳轉(zhuǎn)指令 可在當(dāng)前PC-128與+127范圍內(nèi)跳轉(zhuǎn)本章首頁(yè)上一頁(yè)下一頁(yè)521.短調(diào)用指令 ACALL addr112.長(zhǎng)調(diào)用指令 LCALL addr16 編程時(shí),可用標(biāo)號(hào)代替轉(zhuǎn)移目的地址,addr11,addr16交給編譯程序計(jì)算。 注意:調(diào)用指令A(yù)CALL LCALL必須與RE

23、T相對(duì)應(yīng)。3.返回指令RET和中斷返回指令RETI4.空操作指令NOP2.5 控制轉(zhuǎn)移指令2.5.2 調(diào)用指令斷點(diǎn)主程序主程序調(diào)用子程序返回本章首頁(yè)上一頁(yè)下一頁(yè)532.5 控制轉(zhuǎn)移指令例 分析下列程序的執(zhí)行過(guò)程,并說(shuō)明程序執(zhí)行后P1中的值。 MOV A,#0FFHA1:CPL AJZ A0 A2:ADD A,#0FHRETJNZ A0A0:MOV P1,A JNB ACC.7,A2 CALL A1本章首頁(yè)上一頁(yè)下一頁(yè)542.5 控制轉(zhuǎn)移指令條件不滿(mǎn)足時(shí),順序執(zhí)行;條件滿(mǎn)足時(shí),轉(zhuǎn)移執(zhí)行。1.判A轉(zhuǎn)移,2字節(jié)JZ rel ;條件:(A)= 0JNZ rel ;條件:(A)02.判Bit轉(zhuǎn)移,3字節(jié)

24、 JB bit, rel ;條件:(bit)= 1 JNB bit, rel ;條件:(bit)= 0 JBC bit, rel ;條件:(bit)= 1轉(zhuǎn)移,并清bit位3.判C轉(zhuǎn)移,2字節(jié)JC rel ;條件:(C)= 1JNC rel ;條件:(C)= 02.5.3 條件轉(zhuǎn)移指令本章首頁(yè)上一頁(yè)下一頁(yè)552.5 控制轉(zhuǎn)移指令2.5.3、條件轉(zhuǎn)移指令4.比較不相等轉(zhuǎn)移指令CJNE A,#data,relCJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel(A)=#data,繼續(xù) C0(A)#data, 轉(zhuǎn) C0(A)#data, 轉(zhuǎn) C1本章

25、首頁(yè)上一頁(yè)下一頁(yè)562.5 控制轉(zhuǎn)移指令 5.減“1”不為0轉(zhuǎn)移指令DJNZ又稱(chēng)循環(huán)轉(zhuǎn)移指令,主要用來(lái)構(gòu)成循環(huán)結(jié)構(gòu),有2條:DJNZRn, rel ;2字節(jié)指令,2周期指令DJNZdirect,rel ;3字節(jié)指令,2周期指令目的地址:(PC)=(PC)+ 指令字節(jié)數(shù)2或3 + rel 分析下面程序的執(zhí)行過(guò)程: MOV R7,#3 MOV A,#00H LOOP:INC A DJNZ R7,LOOP ENDLOOP執(zhí)行次數(shù)(A)DJNZ執(zhí)行后(R7)DJNZ執(zhí)行前(R7)112221330321本章首頁(yè)上一頁(yè)下一頁(yè)57本節(jié)學(xué)習(xí)重點(diǎn)1.指令的格式2.指令的形式3.指令的注意事項(xiàng)本節(jié)學(xué)習(xí)難點(diǎn)1.區(qū)

26、分位與字節(jié)的含義及用法2.6 布爾變量操作指令本章首頁(yè)上一頁(yè)下一頁(yè)582.6.1 概述1.布爾處理器C:可尋址內(nèi)部RAM中的可尋址位: bit = 00FFH,和SFR中的可尋址位。2.位地址的描述形式: 1)直接位地址,如MOV C, 70H 2)字節(jié)地址+位地址,如20H.1,ACC.4,PSW.4等 3)位寄存器名稱(chēng),如F0,C,RS1,RS0等 4)偽指令定義過(guò)的位名稱(chēng)2.6 布爾變量操作指令本章首頁(yè)上一頁(yè)下一頁(yè)592.6 布爾變量操作指令指令用法MOVC,BITBIT,CCLRC/BITSETBCPLANLC,BITC,/BITORL位指令參考字節(jié)指令本章首頁(yè)上一頁(yè)下一頁(yè)602.6

27、布爾變量操作指令P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vccORG 0000H;開(kāi)始偽指令CLR P1.0CPL P1.0CLR P1.1SETB P1.1END;結(jié)束尾指令指令效果演示本章首頁(yè)上一頁(yè)下一頁(yè)61本章重點(diǎn)內(nèi)容小結(jié)1.匯編指令2.指令格式標(biāo)號(hào):操作碼助記符 目的操作數(shù),源操作數(shù);注釋3.7種尋址方式立即尋址、寄存器尋址、間接尋址、直接尋址、變址尋址、相對(duì)尋址和特定寄存器尋址。4.51單片機(jī)指令系統(tǒng)數(shù)據(jù)傳送類(lèi)指令: (29條)算術(shù)運(yùn)算類(lèi)指令: (24條)邏輯運(yùn)算及移位類(lèi)指令: (24條)控制轉(zhuǎn)移類(lèi)指令: (17條)位操作(布爾操作)類(lèi)指令:(17條)第二章

28、MCS-51單片機(jī)結(jié)構(gòu)和原理本章首頁(yè)上一頁(yè)下一頁(yè)62指令含義目的操作數(shù)源操作數(shù)結(jié)果MOV傳送A direct Rn Ri DPTR#data A direct Rn Ri(目的操作數(shù))=(源操作數(shù))XCH交換Adirect Rn RiA 源操作數(shù)PUSHPOP入棧出棧directdirectADDADDCSUBB加帶進(jìn)位加帶進(jìn)位減A#data direct Rn Ri(A)=(A)+(源)(A)=(A)+(源)+(C)(A)=(A)-(源)-(C)INC加1A direct Rn Ri DPTR(目)=(目)+1DEC減1A direct Rn Ri(目)=(目)-11)指令系統(tǒng)總結(jié)1本章首頁(yè)

29、上一頁(yè)下一頁(yè)第二章 MCS-51單片機(jī)結(jié)構(gòu)和原理63指令含義目的操作數(shù)源操作數(shù)CJNE比較不相等轉(zhuǎn)移A#data direct Rn RiRn Ri#dataDJNZ減1不為0跳轉(zhuǎn)Rn direct relANLORLXRL與或異或A#data direct Rn Ridirect#data A ANLORL與或Cbit /bitMOV傳送 CBITBIT C1)指令系統(tǒng)總結(jié)2本章首頁(yè)上一頁(yè)下一頁(yè)第二章 MCS-51單片機(jī)結(jié)構(gòu)和原理64本章首頁(yè)上一頁(yè)下一頁(yè)固定用法:SWAP AMOVC A,A+DPTRMOVC A,A+PCMOVX A,DPTRMOVX A,RiMOVX DPTR,AMOVX

30、 Ri,AMUL ABDIV ABDA ACPL ACLR ARL ARRC ARR ARRC ALJMP addr16AJMP addr11SJMP relLCALL addr16ACALL addr11JZ relJNZ relCLR C/BITSETB C/BITCPL C/BITJC RELJNC RELJB BIT,RELJNB BIT,RELJBC BIT,REL指令系統(tǒng)總結(jié)3第二章 MCS-51單片機(jī)結(jié)構(gòu)和原理65第三章 匯編語(yǔ)言程序設(shè)計(jì)主要內(nèi)容3.1 程序設(shè)計(jì)一般過(guò)程和注意事項(xiàng)3.2 發(fā)光二極管的程序設(shè)計(jì)3.3 七段碼顯示器的程序設(shè)計(jì)3.4 鍵盤(pán)程序設(shè)計(jì)緒論上一頁(yè)下一頁(yè)66本章

31、首頁(yè)上一頁(yè)下一頁(yè)1.單片機(jī)程序設(shè)計(jì)方法2.硬件電路分析本章重點(diǎn)內(nèi)容本章難點(diǎn)內(nèi)容1.單片機(jī)指令系統(tǒng)是程序設(shè)計(jì)的基礎(chǔ),要熟記2.硬件電路與軟件設(shè)計(jì)相結(jié)合進(jìn)行程序設(shè)計(jì)第三章 匯編語(yǔ)言程序設(shè)計(jì)67本章首頁(yè)上一頁(yè)下一頁(yè)3.1 程序設(shè)計(jì)一般過(guò)程和注意事項(xiàng)本節(jié)學(xué)習(xí)重點(diǎn)1.偽指令的含義及用法2.流程圖的形式683.1 程序設(shè)計(jì)一般過(guò)程和注意事項(xiàng)3.1.1 匯編語(yǔ)言設(shè)計(jì)步驟設(shè)計(jì)步驟編程前多思考設(shè)計(jì)課題設(shè)計(jì)規(guī)劃模型算法繪制流程程序設(shè)計(jì)調(diào)試修正編程中多檢查本章首頁(yè)上一頁(yè)下一頁(yè)693.1 程序設(shè)計(jì)一般過(guò)程和注意事項(xiàng)3.1.2 編制程序的流程圖開(kāi)始 起點(diǎn)處理框判斷框處理框結(jié)束子程序框本章首頁(yè)上一頁(yè)下一頁(yè)703.1 程序

32、設(shè)計(jì)一般過(guò)程和注意事項(xiàng)流程圖練習(xí)例:要使內(nèi)部RAM的R0-R3的內(nèi)容為05H,畫(huà)出流程圖。開(kāi)始R0變?yōu)?5HR1變?yōu)?5H結(jié)束R2變?yōu)?5HR3變?yōu)?5H本章首頁(yè)上一頁(yè)下一頁(yè)713.1 程序設(shè)計(jì)一般過(guò)程和注意事項(xiàng)3.1.3 單片機(jī)51系列的偽指令 偽指令是指令系統(tǒng)之外的,是程序源發(fā)給匯編程序的指令。不執(zhí)行也不占用字節(jié)。下面介紹MCS-51匯編語(yǔ)言程序中常用的偽指令。 1. ORG匯編起始地址命令標(biāo)號(hào): ORG 地址 2. END匯編終止命令 END 表達(dá)式 3. DB定義字節(jié)命令 標(biāo)號(hào): DB 數(shù)據(jù)表 4. DW 定義字命令 標(biāo)號(hào): DW 字?jǐn)?shù)據(jù)表本章首頁(yè)上一頁(yè)下一頁(yè)723.2 發(fā)光二極管的程

33、序設(shè)計(jì)本節(jié)學(xué)習(xí)重點(diǎn)1.掌握順序程序的設(shè)計(jì)方法2.可以通過(guò)硬件連接轉(zhuǎn)化成單片機(jī)的輸入輸出值3.掌握循環(huán)程序的設(shè)計(jì)方法本節(jié)學(xué)習(xí)難點(diǎn)1.延時(shí)程序的分析2.循環(huán)程序中的初始化,控制轉(zhuǎn)移本章首頁(yè)上一頁(yè)下一頁(yè)733.2 發(fā)光二極管的程序設(shè)計(jì)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc1.根據(jù)硬件連接判定LED的連接方式2.將設(shè)計(jì)要求轉(zhuǎn)化成單片機(jī)I/O口輸出的高低電平的變化3.將高低電平的變化用程序設(shè)計(jì)出來(lái)。設(shè)計(jì)步驟1.LED共陽(yáng)和共陰的接法2.信號(hào)的變化要通過(guò)單片機(jī)的I/O口輸出3.注意A中存的值,是否需要暫存4.信號(hào)的變化需要加延時(shí)程序注意事項(xiàng)本章首頁(yè)上一頁(yè)下一頁(yè)743.2 發(fā)

34、光二極管的程序設(shè)計(jì)3.2.1 編程實(shí)現(xiàn)P0.0所連接的燈閃爍,間隔為1S。設(shè)計(jì)思路:1.燈亮一秒,滅一秒,再重復(fù)上述過(guò)程。2.亮一秒,滅一秒可用順序程序設(shè)計(jì)方法3.重復(fù)的過(guò)程可用無(wú)條件轉(zhuǎn)移指令完成P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc動(dòng)畫(huà)播放動(dòng)畫(huà)播放本章首頁(yè)上一頁(yè)下一頁(yè)753.2 發(fā)光二極管的程序設(shè)計(jì)程序設(shè)計(jì)流程圖開(kāi)始燈亮一秒燈滅一秒結(jié)束ORG 0000HLOOP:CLR P0.0;燈亮 LCALL DELL ;延時(shí)1秒 SETB P0.0 LCALL DELL AJMP LOOPDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#

35、2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END位指令CPL P0.0LCALL DELL本章首頁(yè)上一頁(yè)下一頁(yè)763.2 發(fā)光二極管的程序設(shè)計(jì)程序設(shè)計(jì)流程圖開(kāi)始燈亮一秒燈滅一秒結(jié)束ORG 0000HLOOP:MOV P0,#0FEH;燈亮LCALL DELL;延時(shí)1秒MOV P0,#0FFH;燈滅LCALL DELLAJMP LOOPDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END字節(jié)指令MOV P0,

36、#0FEHLOOP:LCALL DELL;延時(shí)1秒XRL P0,#01H;燈變換狀態(tài)同一程序可以用多種不同的方法實(shí)現(xiàn),需要多加練習(xí)本章首頁(yè)上一頁(yè)下一頁(yè)773.2 發(fā)光二極管的程序設(shè)計(jì)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc3.2.2 編程實(shí)現(xiàn)P1所連接的燈一個(gè)一個(gè)的循環(huán)點(diǎn)亮,時(shí)間間隔為1S。動(dòng)畫(huà)播放動(dòng)畫(huà)播放本章首頁(yè)上一頁(yè)下一頁(yè)783.2 發(fā)光二極管的程序設(shè)計(jì)設(shè)計(jì)思路:1.燈每次亮一個(gè),數(shù)值分別為11111110B,11111101B,11111011B,11110111B,11101111B,11011111B,10111111B,01111111B。從上面的數(shù)值

37、分析,可以直接用賦值的方法也可以用數(shù)據(jù)移位的方法。2.從第一個(gè)燈到最后一個(gè)燈,可用順序程序設(shè)計(jì)方法3.重復(fù)的過(guò)程可用無(wú)條件轉(zhuǎn)移指令完成3.2.2 編程實(shí)現(xiàn)P1所連接的燈一個(gè)一個(gè)的循環(huán)點(diǎn)亮,時(shí)間間隔為1S。本章首頁(yè)上一頁(yè)下一頁(yè)793.2 發(fā)光二極管的程序設(shè)計(jì)3.2.2 編程實(shí)現(xiàn)P1所連接的燈一個(gè)一個(gè)的循環(huán)點(diǎn)亮,時(shí)間間隔為1S。方法 1程序設(shè)計(jì)流程圖開(kāi)始第一個(gè)燈亮一秒第二個(gè)燈亮一秒結(jié)束第八個(gè)燈亮一秒ORG 0000HLOOP:MOV P1,#0FEH;燈1亮LCALL DELL;延時(shí)1秒MOV P1,#0FDH;燈2亮LCALL DELL.MOV P1,#07FH;燈8亮LCALL DELLAJM

38、P LOOPDELL:MOV R7,#0;延時(shí)1秒子程序. RET END賦值法本章首頁(yè)上一頁(yè)下一頁(yè)803.2 發(fā)光二極管的程序設(shè)計(jì)開(kāi)始燈亮的初值相應(yīng)燈亮一秒結(jié)束燈亮數(shù)值移位3.2.2 編程實(shí)現(xiàn)P1所連接的燈一個(gè)一個(gè)的循環(huán)點(diǎn)亮,時(shí)間間隔為1S。方法 2程序設(shè)計(jì)流程圖ORG 0000HMOV A,#0FEH;初值LOOP:MOV P0,A RL A;間接移位 LCALL DELL AJMP LOOPDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END移位法單片機(jī)指

39、令系統(tǒng)中有很多指令只依靠累加器A才能完成,因此很多程序需要借助A進(jìn)行數(shù)據(jù)處理,即間接本章首頁(yè)上一頁(yè)下一頁(yè)813.2 發(fā)光二極管的程序設(shè)計(jì)3.2.3 編程實(shí)現(xiàn)P0所連接的8個(gè)燈以下表的形式循環(huán)點(diǎn)亮。P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮本章首頁(yè)上一頁(yè)下一頁(yè)823.2 發(fā)光二極管的程序設(shè)計(jì)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc動(dòng)畫(huà)播放動(dòng)畫(huà)播放3.2.3 編程實(shí)現(xiàn)P0所連接的8個(gè)燈以下表的形式循環(huán)點(diǎn)亮。本章首頁(yè)上一頁(yè)下一頁(yè)833.2 發(fā)光二極管的程序設(shè)計(jì)設(shè)計(jì)思路:1.燈每

40、次亮一個(gè),數(shù)值分別為11111110B,11111100B,11111000B,11110000B,11100000B,11000000B,10000000B,00000000B.從上面的數(shù)值分析,可以直接用賦值的方法也可以用數(shù)據(jù)移位的方法。2.從第一個(gè)燈到最后一個(gè)燈,可用順序程序設(shè)計(jì)方法3.重復(fù)的過(guò)程可用無(wú)條件轉(zhuǎn)移指令無(wú)法完成循環(huán)程序設(shè)計(jì)方法3.2.3 編程實(shí)現(xiàn)P0所連接的8個(gè)燈以下表的形式循環(huán)點(diǎn)亮。本章首頁(yè)上一頁(yè)下一頁(yè)843.2 發(fā)光二極管的程序設(shè)計(jì) 循環(huán)結(jié)構(gòu)地址指針計(jì)數(shù)初值循環(huán)保障單次循環(huán)的順序程序設(shè)計(jì)修改地址指針修改變量循環(huán)結(jié)束條件結(jié)果分析、處理和存放1. 初始化2. 循環(huán)處理3. 循

41、環(huán)控制4. 循環(huán)結(jié)束*循環(huán)主體部分本章首頁(yè)上一頁(yè)下一頁(yè)85移位法3.2 發(fā)光二極管的程序設(shè)計(jì)開(kāi)始燈亮的初值,循環(huán)次數(shù)相應(yīng)燈亮一秒結(jié)束燈亮數(shù)值帶進(jìn)位移位程序設(shè)計(jì)流程圖ORG 0000HLOP0:MOV A,#0FEH;初值 MOV R0,#8LOOP:MOV P0,A CLR C RLC A;間接移位 LCALL DELL DJNZ R0,LOOP AJMP LOP0DELL:MOV R7,#0 . RET END循環(huán)是否結(jié)束是否注意:循環(huán)程序設(shè)計(jì)中循環(huán)次數(shù)寄存器不要與延時(shí)程序中的寄存器復(fù)用,否則會(huì)造成循環(huán)無(wú)法停止3.2.3 編程實(shí)現(xiàn)P0所連接的8個(gè)燈以下表的形式循環(huán)點(diǎn)亮。本章首頁(yè)上一頁(yè)下一頁(yè)8

42、63.3 七段碼顯示器的程序設(shè)計(jì)本節(jié)學(xué)習(xí)重點(diǎn)1.掌握查表程序的設(shè)計(jì)方法2.可以通過(guò)硬件連接轉(zhuǎn)化成單片機(jī)的輸入輸出值3.掌握循環(huán)程序的設(shè)計(jì)方法本節(jié)學(xué)習(xí)難點(diǎn)1.查表程序設(shè)計(jì)方法2.循環(huán)程序中的控制轉(zhuǎn)移本章首頁(yè)上一頁(yè)下一頁(yè)87COM:顯示器位選線 adp:顯示器段選線3.3 七段碼顯示器的程序設(shè)計(jì)3.3.1 七段碼顯示數(shù)碼管結(jié)構(gòu)本章首頁(yè)上一頁(yè)下一頁(yè)883.3 七段碼顯示器的程序設(shè)計(jì)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc動(dòng)畫(huà)播放動(dòng)畫(huà)播放3.3.2 七段碼顯示器從0-9循環(huán)點(diǎn)亮。本章首頁(yè)上一頁(yè)下一頁(yè)893.3 七段碼顯示器的程序設(shè)計(jì)設(shè)計(jì)思路:燈亮0-9,數(shù)值分別為共陽(yáng)順序

43、段碼:C0H,F(xiàn)9H,A4H,B0H,99H,92H,82H,F(xiàn)8H,80H,90H共陰順序段碼:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dpa)從上面的數(shù)值分析,可以直接用賦值的方法也可以用查表的方法。3.3.2 七段碼顯示器從0-9循環(huán)點(diǎn)亮。本章首頁(yè)上一頁(yè)下一頁(yè)903.3 七段碼顯示器的程序設(shè)計(jì)3.3.3 查表指令匯編指令格式 MOVC A,A+DPTR A (A)+(DPTR) MOVC A,A+PC PC (PC)+1, A (A)+(PC) AA+DPTR變址遠(yuǎn)程查表ROM64KBA+PC變址近程查表ROM指令附近256B本章首頁(yè)上一頁(yè)下一頁(yè)9

44、13.3 七段碼顯示器的程序設(shè)計(jì)0200H0201H0202H0203H0204H0205H0206H0207H0208H0209H020AH020BHC0HF9HA4HB0H99H92H82HF8H80H90H00H00HTAB:3.3.4 查表程序設(shè)計(jì)MOV DPTR ,#TABMOV A,#0MOVC A,A+DPTR MOV P1 ,ATAB:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H,82H DB 0F8H,80H,90HMOV A,#1DPTRTAB:(A )=(dptr)+(A)C0HF9H本章首頁(yè)上一頁(yè)下一頁(yè)923.3 七段碼顯示器的程序設(shè)計(jì)3.3.4

45、查表程序設(shè)計(jì)具體程序設(shè)計(jì) ORG 0000H MOV DPTR,#TABLOOP0:MOV R4,#10 MOV R3,#0 LOOP1:MOV A,R3 MOVC A,A+DPTR MOV P0,A INC R3 LCALL DELL DJNZ R4,LOOP1 AJMP LOOP0TAB:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H,82H DB 0F8H,80H,90HDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END本章首頁(yè)上一頁(yè)

46、下一頁(yè)933.4 鍵盤(pán)程序設(shè)計(jì)本節(jié)學(xué)習(xí)重點(diǎn)1.單片機(jī)I/O口做為數(shù)據(jù)輸入時(shí)的方法2.矩陣式鍵盤(pán)的工作原理3.理解鍵盤(pán)程序設(shè)計(jì)方法本節(jié)學(xué)習(xí)難點(diǎn)1.矩陣式鍵盤(pán)的工作原理2.鍵盤(pán)程序設(shè)計(jì)方法本章首頁(yè)上一頁(yè)下一頁(yè)941.按鍵開(kāi)關(guān)抖動(dòng)問(wèn)題按鍵開(kāi)關(guān)在電路中的連接如圖所示:3.4 鍵盤(pán)程序設(shè)計(jì)3.4.1 鍵盤(pán)工作原理由于按鍵是機(jī)械的彈性開(kāi)關(guān),在按下和斷開(kāi)時(shí),觸點(diǎn)在閉合和斷開(kāi)時(shí),會(huì)引起A點(diǎn)電位的不穩(wěn)定,一般有510ms的抖動(dòng),導(dǎo)致誤信號(hào),使CPU產(chǎn)生錯(cuò)誤的處理。本章首頁(yè)上一頁(yè)下一頁(yè)953.4 鍵盤(pán)程序設(shè)計(jì)3.4.2 獨(dú)立式按鍵及其接口特點(diǎn):每個(gè)按鍵占用一根I/O線,相互之間沒(méi)有影響。鍵1按下子程序是否有鍵按下

47、是否判斷鍵值鍵盤(pán)程序設(shè)計(jì)的一般思路鍵2按下子程序鍵n按下子程序本章首頁(yè)上一頁(yè)下一頁(yè)963.4 鍵盤(pán)程序設(shè)計(jì)KEY:MOV P1,#07H MOV A,P1 CPL A ANL A,#07H JZ GRET JB ACC.0,KEY1 JB ACC.1,KEY2 JB ACC.2,KEY3 GRET:RETKEY1:LCALL WORK1KEY2:LCALL WORK2KEY3:LCALL WORK3 RET本章首頁(yè)上一頁(yè)下一頁(yè)973.4 鍵盤(pán)程序設(shè)計(jì)3.4.2 矩陣式按鍵及其接口特點(diǎn):也稱(chēng)行列式鍵盤(pán)。44行列結(jié)構(gòu),可安裝16個(gè)按鍵, 形成一個(gè)鍵盤(pán)。本章首頁(yè)上一頁(yè)下一頁(yè)98 匯編語(yǔ)言程序具有順序

48、結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)和子程序結(jié)構(gòu)四種結(jié)構(gòu)形式。實(shí)際的應(yīng)用程序一般都由一個(gè)主程序和多個(gè)子程序構(gòu)成,即采用模塊化的程序設(shè)計(jì)方法。 程序設(shè)計(jì)的原則是盡可能使程序簡(jiǎn)短和縮短運(yùn)行時(shí)間,設(shè)計(jì)的關(guān)鍵首先是根據(jù)實(shí)際問(wèn)題和所選用的單片機(jī)的特點(diǎn)來(lái)合理地確定解決問(wèn)題的算法,然后是將工作任務(wù)細(xì)分成易于理解和實(shí)現(xiàn)的小模塊。 在程序設(shè)計(jì)時(shí),要注意順序程序、循環(huán)程序、分支程序、查表程序和子程序的特點(diǎn)和設(shè)計(jì)方法。要設(shè)計(jì)出高質(zhì)量的程序還需要掌握一定的技巧,通過(guò)多讀、多看一些實(shí)用程序可以積累一定的設(shè)計(jì)經(jīng)驗(yàn)。 第三章 匯編語(yǔ)言程序設(shè)計(jì)本章首頁(yè)上一頁(yè)下一頁(yè)99第四章 單片機(jī)定時(shí)器/計(jì)數(shù)器、中斷和串行口主要內(nèi)容4.1 MCS-51

49、的定時(shí)器/計(jì)數(shù)器4.2 單片機(jī)中斷系統(tǒng)4.3 單片機(jī)串行口緒論上一頁(yè)下一頁(yè)1001.中斷系統(tǒng)組成與結(jié)構(gòu)2.中斷相關(guān)存儲(chǔ)器3.中斷程序設(shè)計(jì)本章重點(diǎn)內(nèi)容本章難點(diǎn)內(nèi)容中斷程序的設(shè)計(jì)相對(duì)復(fù)雜,但有一些固定的格式可以參考。第四章 單片機(jī)定時(shí)器/計(jì)數(shù)器、中斷和串行口本章首頁(yè)上一頁(yè)下一頁(yè)1014.1 MCS-51的定時(shí)器/計(jì)數(shù)器本節(jié)學(xué)習(xí)重點(diǎn)1.單片機(jī)定時(shí)器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)2.單片機(jī)定時(shí)器/計(jì)數(shù)器的相關(guān)存儲(chǔ)器3.輸出方波程序的設(shè)計(jì)方法本節(jié)學(xué)習(xí)難點(diǎn)1.定時(shí)器/計(jì)數(shù)器初值的設(shè)定方法2.輸出方波程序的控制轉(zhuǎn)移部分分析方法本章首頁(yè)上一頁(yè)下一頁(yè)1024.1 MCS-51的定時(shí)器/計(jì)數(shù)器4.1.1 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)

50、 51子系列單片機(jī)共有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,分別用T0和T1表示。定時(shí)功能計(jì)數(shù)功能計(jì)數(shù)外部信號(hào)下降沿的個(gè)數(shù)。計(jì)數(shù)內(nèi)部機(jī)器周期的個(gè)數(shù)。計(jì)數(shù)初值=2 -Nx定時(shí)時(shí)間=(2 -N)T機(jī)x在不同的工作方式下,X可取8,13,16本章首頁(yè)上一頁(yè)下一頁(yè)103M1 M04.1 MCS-51的定時(shí)器/計(jì)數(shù)器4.1.2 定時(shí)器/計(jì)數(shù)器的內(nèi)部寄存器1. 方式控制寄存器TMOD 定時(shí)器1 C/TGATEGATEC/TM1M0GATEC/TM1M0GATE:門(mén)控位 GATE=0 直接控制定時(shí)器啟動(dòng)。 GATE=1 外中斷請(qǐng)求信號(hào)和運(yùn)行控制位TR0(TR1)同時(shí)控制定時(shí)器啟動(dòng)。C/T:定時(shí)方式或計(jì)數(shù)方式選擇位。

51、C/T=0 定時(shí)工作方式。 C/T=1 計(jì)數(shù)工作方式。M1M0:工作方式選擇 M1M0=00 方式013位定時(shí)器/計(jì)數(shù)器。 M1M0=01 方式116位定時(shí)器/計(jì)數(shù)器。 M1M0=10 方式2自動(dòng)重計(jì)數(shù)初值的8位定時(shí)器/計(jì)數(shù)器。 M1M0=11 方式3定時(shí)器0為兩個(gè)獨(dú)立的8位定時(shí)器/計(jì)數(shù)器。定時(shí)器0 本章首頁(yè)上一頁(yè)下一頁(yè)1044.1 MCS-51的定時(shí)器/計(jì)數(shù)器2. 定時(shí)器/計(jì)數(shù)器控制寄存器TCON TF1 TF0 IE1 IT1 IE0 IT0TCON88HT1溢出中斷標(biāo)志(TCON.7): T1啟動(dòng)計(jì)數(shù)后,計(jì)滿(mǎn)溢出由硬件置位TF1=1,向CPU請(qǐng)求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才

52、由硬件自動(dòng)清0。也可用軟件查詢(xún)?cè)摌?biāo)志,并由軟件清0。外部中斷INT1中斷標(biāo)志位(TCON.3) : IE11,外部中斷1向CPU申請(qǐng)中斷 外部中斷INT1觸發(fā)方式控制位(TCON.2): IT1=0,電平觸發(fā)方式 IT1=1, 下降沿觸發(fā)方式本章首頁(yè)上一頁(yè)下一頁(yè)1054.1 MCS-51的定時(shí)器/計(jì)數(shù)器P1.0示波器4.1.3 定時(shí)器/計(jì)數(shù)器的應(yīng)用動(dòng)畫(huà)播放動(dòng)畫(huà)播放本章首頁(yè)上一頁(yè)下一頁(yè)1064.1 MCS-51的定時(shí)器/計(jì)數(shù)器4.1.3 定時(shí)器/計(jì)數(shù)器的應(yīng)用 設(shè)單片機(jī)晶振頻率fosc=6MHz,選用定時(shí)器1以方式0產(chǎn)生周期為1ms的方波,并由P1.0輸出。1.計(jì)算計(jì)數(shù)初值:產(chǎn)生周期為1ms寬的方

53、波,只需在P1.0端以500s為周期交替輸出高低電平即可實(shí)現(xiàn)設(shè)待求的計(jì)數(shù)初值為X,得(TH1)=F8H,(TL1)=06H。2. TMOD寄存器的初始化:方式0,M1M0=00;定時(shí),C/T=0;運(yùn)行控制,則GATE=0。定時(shí)器0不用,有關(guān)位設(shè)定為0。因此(TMOD)=00H。3.TR1=1啟動(dòng)。本章首頁(yè)上一頁(yè)下一頁(yè)1074.1 MCS-51的定時(shí)器/計(jì)數(shù)器具體程序設(shè)計(jì) ORG0000HMOVTMOD,#00H ;設(shè)置T1工作方式MOVTH1,#0F8H ;設(shè)置計(jì)數(shù)初值MOVTL1,#06H SETBTR1;啟動(dòng)定時(shí)LOOP:JBCTF1,LOOP1;查詢(xún)計(jì)數(shù)溢出,溢出位清0AJMPLOOPL

54、OOP1:MOVTH1,#0F8H;重新設(shè)置計(jì)數(shù)初值 MOVTL1,#06H CPLP1.0;輸出取反AJMPLOOP;重復(fù)循環(huán) END 本章首頁(yè)上一頁(yè)下一頁(yè)108本節(jié)學(xué)習(xí)重點(diǎn)1.中斷的相關(guān)存儲(chǔ)器2.中斷的工作過(guò)程3.中斷程序的設(shè)計(jì)方法本節(jié)學(xué)習(xí)難點(diǎn)1.中斷初始化2.中斷子程序設(shè)計(jì)4.2 單片機(jī)中斷系統(tǒng)本章首頁(yè)上一頁(yè)下一頁(yè)1094.2 單片機(jī)中斷系統(tǒng)4.2.1 中斷的基本概念 當(dāng)CPU在執(zhí)行程序時(shí),由某些原因使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)向執(zhí)行隨機(jī)事件,處理完后又返回被中止的程序斷點(diǎn)處繼續(xù)執(zhí)行,這一過(guò)程就稱(chēng)為中斷。 單片機(jī)處理中斷的4個(gè)步驟:中斷請(qǐng)求、中斷響應(yīng)、中斷處理和中斷返回。本章首頁(yè)上一頁(yè)

55、下一頁(yè)1104.2 單片機(jī)中斷系統(tǒng)4.2.1 中斷的相關(guān)寄存器 IE EA ESET1EX1ET0EX01. 中斷允許控制IEEA:總中斷允許控制位。ES:串行口中斷允許位。ET1:定時(shí)器1中斷允許位。EX1:外部中斷1中斷允許位。ET0:定時(shí)器0中斷允許位。EX0: 外部中斷0中斷允許位。 當(dāng)相應(yīng)位設(shè)為 1時(shí),相應(yīng)位中斷允許。本章首頁(yè)上一頁(yè)下一頁(yè)1114.2 單片機(jī)中斷系統(tǒng)4.2.2 中斷處理過(guò)程程序存儲(chǔ)器ROM0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001BH:定時(shí)器1溢出中斷入口002AH使用時(shí),通常在這些入口地址處存

56、放一條跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶(hù)安排的中斷服務(wù)程序起始地址上去!本章首頁(yè)上一頁(yè)下一頁(yè)1124.2 單片機(jī)中斷系統(tǒng)4.2.2 中斷處理過(guò)程中斷源發(fā)中斷請(qǐng)求中斷響應(yīng)條件 是否滿(mǎn)足?中斷是否受阻? 把PC斷點(diǎn)地址壓入堆棧 相應(yīng)中斷源的中斷入口地址送入PC,轉(zhuǎn)向中斷服務(wù)程序NYYN 由硬件自動(dòng)完成本章首頁(yè)上一頁(yè)下一頁(yè)1134.2 單片機(jī)中斷系統(tǒng)4.2.2 中斷處理過(guò)程 關(guān)中斷保護(hù)現(xiàn)場(chǎng)中斷服務(wù) 開(kāi)中斷 關(guān)中斷恢復(fù)現(xiàn)場(chǎng) 開(kāi)中斷中斷返回?cái)帱c(diǎn)地址由堆棧彈入PC保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的過(guò)程中不允許中斷,以免現(xiàn)場(chǎng)遭到破壞。保護(hù)和恢復(fù)現(xiàn)場(chǎng)之后的開(kāi)中斷是為了允許有更高級(jí)中斷打斷此中斷服務(wù)程序。 硬件自動(dòng)完成本章首頁(yè)上一頁(yè)

57、下一頁(yè)1144.2.3 中斷程序設(shè)計(jì)實(shí)例P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc動(dòng)畫(huà)播放動(dòng)畫(huà)播放INT0INT1按下松開(kāi)按下松開(kāi)4.2 單片機(jī)中斷系統(tǒng)本章首頁(yè)上一頁(yè)下一頁(yè)1154.2 單片機(jī)中斷系統(tǒng)具體程序設(shè)計(jì) ORG 0000H AJMP MAIN ORG 0003H AJMP IINTO ORG 0013H AJMP IINTIORG 0030HMAIN:CLR IT0 CLR IT1 SETB EA SETB EX0 SETB EX1 MOV A,#0FEHLOOP:MOV P0,A RL A LCALL DELL AJMP LOOPDELL:MOV R7,#0DELL1:MOV R6,#0DELL2:MOV R5,#2DELL3:DJNZ R5,DELL3 DJNZ R6,DELL2 DJNZ R7,DELL1 RETIINTO:MOV P0,#00H LCALL DELL RETIIINTI:MOV P0,#0AAH LCALL DELL RETI END本章首頁(yè)上一頁(yè)下一頁(yè)1164.3 單片機(jī)串行口本節(jié)學(xué)習(xí)重點(diǎn)1.串行口的相關(guān)存儲(chǔ)器2.串行口的工作過(guò)程3.理解發(fā)送數(shù)據(jù)與接收數(shù)據(jù)程序本節(jié)學(xué)習(xí)難點(diǎn)1.串口初始化2.理解發(fā)送數(shù)據(jù)與接收數(shù)據(jù)程序本章首頁(yè)上一頁(yè)下一頁(yè)1174.3 單片機(jī)串行口4.3.1 串行口的基本概念1.串行通信

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論