《單片機(jī)實(shí)習(xí)課題》課件_第1頁
《單片機(jī)實(shí)習(xí)課題》課件_第2頁
《單片機(jī)實(shí)習(xí)課題》課件_第3頁
《單片機(jī)實(shí)習(xí)課題》課件_第4頁
《單片機(jī)實(shí)習(xí)課題》課件_第5頁
已閱讀5頁,還剩147頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)實(shí)訓(xùn)課題南京技師學(xué)院電氣工程系電子信息二室單片機(jī)實(shí)訓(xùn)課題南京技師學(xué)院1單片機(jī)實(shí)訓(xùn)授課計劃

(四周)課題一:單片機(jī)的軟件仿真課題二:基于單片機(jī)的循環(huán)彩燈課題三:基于單片機(jī)的鍵盤應(yīng)用課題四:基于單片機(jī)的數(shù)碼顯示單片機(jī)實(shí)訓(xùn)授課計劃

(四周)課題一:單片機(jī)的軟件仿真2單片機(jī)理論知識一、51系列單片機(jī)概述二、MCS-51單片機(jī)的結(jié)構(gòu)

一、MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖

二、MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)

三、MCS-51的信號引腳

四、MCS-51單片機(jī)的內(nèi)部存儲器

五、MCS-51單片機(jī)時鐘電路與時序

六、MCS-51單片機(jī)復(fù)位電路三、程序講解單片機(jī)理論知識一、51系列單片機(jī)概述351系列單片機(jī)概述一、MCS-51系列(1)MCS-51是Intel公司生產(chǎn)的一個單片機(jī)系列名稱。屬于這一系列的單片機(jī)有多種,如:

﹡8051/8751/8031;﹡8052/8752/8032;﹡80C51/87C51/80C31﹡80C52/87C52/80C32等。51系列單片機(jī)概述一、MCS-51系列480C51系列概述(2)該系列生產(chǎn)工藝有兩種:

一是HMOS工藝(高密度短溝道MOS工藝)。二是CHMOS工藝(互補(bǔ)金屬氧化物的HMOS工藝)。CHMOS是CMOS和HMOS的結(jié)合,既保持了HMOS高速度和高密度的特點(diǎn),還具有CMOS的低功耗的特點(diǎn)。在產(chǎn)品型號中凡帶有字母“C”的即為CHMOS芯片,CHMOS芯片的電平既與TTL電平兼容,又與CMOS電平兼容。80C51系列概述(2)該系列生產(chǎn)工藝有兩種:580C51系列概述(3)在功能上,該系列單片機(jī)有基本型和增強(qiáng)型兩大類: 基本型: 8051/8751/8031 80C51/87C51/80C31 增強(qiáng)型: 8052/8752/8032 80C52/87C52/80C3280C51系列概述(3)在功能上,該系列單片機(jī)有基本型和增強(qiáng)680C51系列概述4)在片內(nèi)程序存儲器的配置上,該系列單片機(jī)有三種形式,即掩膜ROM、EPROM和ROMLess(無片內(nèi)程序存儲器)。如:﹡80C51有4K字節(jié)的掩膜ROM;﹡87C51有4K字節(jié)的EPROM;﹡80C31在芯片內(nèi)無程序存儲器。80C51系列概述4)在片內(nèi)程序存儲器的配置上,該系列單片機(jī)780C51系列概述二、80C51系列80C51是MCS-51系列中CHMOS工藝的一個典型品種;其它廠商以8051為基核開發(fā)出的CMOS工藝單片機(jī)產(chǎn)品統(tǒng)稱為80C51系列。當(dāng)前常用的80C51系列單片機(jī)主要產(chǎn)品有:

﹡Intel的:80C31、80C51、87C51,80C32、80C52、87C52等;

﹡ATMEL的:89C51、89C52、89C2051等;

﹡Philips、華邦、Dallas、Siemens(Infineon)等公司的許多產(chǎn)品。80C51系列概述二、80C51系列880C51系列概述三、

80C51典型產(chǎn)品資源配置80C51系列概述三、80C51典型產(chǎn)品資源配置98051單片機(jī)的結(jié)構(gòu)一、

MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖8051單片機(jī)的結(jié)構(gòu)一、MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖108051單片機(jī)的結(jié)構(gòu)二、

MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器(CPU)運(yùn)算器控制器:ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、程序狀態(tài)字、暫存寄存器:PC(程序計數(shù)器)、PC加1寄存器、指令寄存器、指令譯碼器8051單片機(jī)的結(jié)構(gòu)二、MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)118051單片機(jī)的結(jié)構(gòu)2.內(nèi)部數(shù)據(jù)寄存器RAM(128*8)、RAM地址寄存器3.內(nèi)部程序寄存器ROM(4K*8)、程序地址寄存器4.定時器/計數(shù)器2個16位的定時器/計數(shù)器5.并行I/O口4個8位的I/O口(P0、P1、P2、P3)8051單片機(jī)的結(jié)構(gòu)2.內(nèi)部數(shù)據(jù)寄存器RAM(128*8128051單片機(jī)的結(jié)構(gòu)6.串行口7.中斷控制系統(tǒng)5個中斷源:外中斷2個、定時/計數(shù)中斷2個、串行中斷1個。8.時鐘電路9.位處理器10.總線8051單片機(jī)的結(jié)構(gòu)6.串行口7.中斷控制系統(tǒng)138051單片機(jī)的結(jié)構(gòu)三、

MCS-51的信號引腳40引腳雙列直插式8051單片機(jī)的結(jié)構(gòu)三、MCS-51的信號引腳148051單片機(jī)的結(jié)構(gòu)1.信號引腳介紹輸入/輸出口線P0.0—P0.7

P0口8位雙向口線P1.0—P1.7

P1口8位雙向口線P2.0—P2.7

P2口8位雙向口線P3.0—P3.7

P3口8位雙向口線ALE地址鎖存控制信號(1)P0口輸出的低8位地址鎖存控制信號(2)作為外部時鐘或外部定時脈沖8051單片機(jī)的結(jié)構(gòu)1.信號引腳介紹輸入/輸出口線P0.158051單片機(jī)的結(jié)構(gòu)PSEN外部程序存儲器讀選通信號EA訪問程序存儲器控制信號0:僅訪問外部程序存儲器1:從內(nèi)部程序存儲器開始訪問,并可延續(xù)至外部程序存儲器。RST復(fù)位信號:連續(xù)2個周期以上的高電平。XTAL1、XTAL2外接晶體引線端VSS地線VCC+5V電源8051單片機(jī)的結(jié)構(gòu)PSEN外部程序存儲器讀選通信號168051單片機(jī)的結(jié)構(gòu)2.信號引腳的第二功能P3口線的第二功能外部RAM讀選通RDP3.7外部RAM寫選通WRP3.6定時器/計數(shù)器1計數(shù)輸入T1P3.5定時器/計數(shù)器0計數(shù)輸入T0P3.4外部中斷1申請INT1P3.3外部中斷0申請INT0P3.2串行數(shù)據(jù)發(fā)送TXDP3.1串行數(shù)據(jù)接受RXDP3.0信號名稱第二功能口線8051單片機(jī)的結(jié)構(gòu)2.信號引腳的第二功能P3口線的第二178051單片機(jī)的結(jié)構(gòu)四、

MCS-51單片機(jī)的內(nèi)部存儲器以80C51為例數(shù)據(jù)存儲器程序存儲器低128單元(單元地址00H-7FH)高128單元(單元地址80H-FFH)8051單片機(jī)的結(jié)構(gòu)四、MCS-51單片機(jī)的內(nèi)部存儲器以8188051單片機(jī)的結(jié)構(gòu)(一)內(nèi)部數(shù)據(jù)存儲器低128單元1.通用寄存器區(qū)(00H-1FH)(1)分成四組0,1,2,3,每組8個寄存器(R7-R0),每個寄存器為8位。(2)任意時刻,CPU只能使用其中的一組寄存器。(3)運(yùn)用通用寄存器,可以簡化程序設(shè)計,提高運(yùn)行速度。2.位尋址區(qū)(20H-2FH)3.用戶RAM區(qū)(30H-7FH)8051單片機(jī)的結(jié)構(gòu)(一)內(nèi)部數(shù)據(jù)存儲器低128單元1.198051單片機(jī)的結(jié)構(gòu)(二)內(nèi)部數(shù)據(jù)存儲器高128單元專用寄存器(SFR)、特殊功能寄存器1.專用寄存器簡介:22個,可尋址21個。(1)程序計數(shù)器(PC):16位,不可尋址。(2)累加器A(或ACC):8位,尋址地址0E0H。(3)B寄存器:8位,尋址地址0F0H。8051單片機(jī)的結(jié)構(gòu)(二)內(nèi)部數(shù)據(jù)存儲器高128單元專用寄存208051單片機(jī)的結(jié)構(gòu)(4)程序狀態(tài)字(PSW):8位,尋址地址0D0H。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/PCY:進(jìn)位標(biāo)志位。AC:輔助進(jìn)位標(biāo)志位。F0:用戶標(biāo)志位。RS1和RS0:寄存器組選擇位。OV:溢出標(biāo)志位。P:奇偶標(biāo)志位。(5)數(shù)據(jù)指針(DPTR):16位尋址地址:82H(DPL),83H(DPH)。8051單片機(jī)的結(jié)構(gòu)(4)程序狀態(tài)字(PSW):8位,尋址218051單片機(jī)的結(jié)構(gòu)2.專用寄存器的字節(jié)尋址(21個)3.專用寄存器的位尋址(1)21個專用寄存器不連續(xù)分布在內(nèi)部RAM的高128個單元,空余單元不能使用。(2)程序計數(shù)器(PC)不可尋址。(3)對專用寄存器采用直接尋址方式,指令中使用寄存器符號或寄存器地址。(1)11個專用寄存器可位尋址(83個尋址位)。(2)與內(nèi)部數(shù)據(jù)存儲器低128單元中的位尋址區(qū)(20H-2FH),共同組成數(shù)據(jù)位存儲區(qū)。8051單片機(jī)的結(jié)構(gòu)2.專用寄存器的字節(jié)尋址(21個)3.228051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲器3、堆棧指示器:SP(復(fù)位后為07H,初始化為30H)4、堆棧類型:向上生長型入棧SP30H或4AH或78H(1)SP←SP+18051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧238051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲器3、堆棧指示器:SP(復(fù)位后為07H,初始化為30H)4、堆棧類型:向上生長型入棧30H或4AH或78H(1)SP←SP+1SP(2)寫入數(shù)據(jù)出棧(1)讀出數(shù)據(jù)(2)SP←SP-18051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧248051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲器3、堆棧指示器:SP(復(fù)位后為07H,初始化為30H)4、堆棧類型:向上生長型入棧30H或4AH或78H(1)SP←SP+1SP(2)寫入數(shù)據(jù)出棧(1)讀出數(shù)據(jù)(2)SP←SP-1、向下生長型(8086)8051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧258051單片機(jī)的結(jié)構(gòu)(四)內(nèi)部程序存儲器80C51:4KROM程序存儲器,地址0000H-0FFFH80C52:8KROM程序存儲器,地址0000H-1FFFH啟動單元:0000H-0002H中斷地址區(qū):0003H-002AH8051單片機(jī)的結(jié)構(gòu)(四)內(nèi)部程序存儲器80C51:4K268051單片機(jī)的結(jié)構(gòu)(五)MCS-51單片機(jī)系統(tǒng)的存儲器結(jié)構(gòu)特點(diǎn)1.數(shù)據(jù)存儲器和程序存儲器分開3.存儲器擴(kuò)展16位地址線-尋址范圍64KB地址0000H-FFFFH2.內(nèi)部存儲器和外部存儲器分開8051單片機(jī)的結(jié)構(gòu)(五)MCS-51單片機(jī)系統(tǒng)的存儲器結(jié)27《單片機(jī)實(shí)習(xí)課題》課件288051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序1.時鐘信號的產(chǎn)生XTAL2XTAL1C2C1組成:晶體振蕩器、電容(2個)1.2MHz-12MHz一般取12M取30pF,起微調(diào)作用內(nèi)部時鐘電路2.引入外部脈沖信號(一)時鐘信號8051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序1298051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序(二)時序定時單位振蕩脈沖例:12M、6M2分頻時鐘脈沖6M、3M3分頻ALE6分頻機(jī)器周期1M、0.5M1.節(jié)拍與狀態(tài)一個時鐘脈沖一個拍節(jié)(S)兩個節(jié)拍(S)一個狀態(tài)(P)2.機(jī)器周期1M------1us0.5M

---2us3.指令周期一個指令周期包含若干個機(jī)器周期8051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序(308051單片機(jī)的結(jié)構(gòu)節(jié)拍:指振蕩脈沖的周期(有P表示);每二個節(jié)拍定義為一個狀態(tài)(用S表示);規(guī)定一個機(jī)器周期的寬度為6個狀態(tài),即12個節(jié)拍;即,一個機(jī)器周期就由12個振蕩周期組成。(當(dāng)振蕩頻率為12MHz時,一個機(jī)器周期為1us;當(dāng)振蕩頻率為6MHz時,一個機(jī)器周期為2us);指令周期:指執(zhí)行一條指令所需的時間。根據(jù)指令的不同,MCS-51的指令周期可分別包含有一、二、四個機(jī)器周期。五、MCS-51單片機(jī)時鐘電路與時序(二)時序定時單位8051單片機(jī)的結(jié)構(gòu)節(jié)拍:指振蕩脈沖的周期(有P表示);五、318051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路1、復(fù)位后,PC初始化作為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。所以單片機(jī)除了正常的初始化外,當(dāng)程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死循環(huán)時,也需要按復(fù)位鍵以重新啟動機(jī)器。復(fù)位不影響片內(nèi)RAM存放的內(nèi)容,而ALE和PSEN在復(fù)位期間將輸入高電平。

2、RST引腳是復(fù)位信號輸入端,復(fù)位信號為高電平有效。當(dāng)高電平持續(xù)24個振蕩脈沖周期(即二個機(jī)器周期)以上時,單片機(jī)完成復(fù)位。假如使用晶振頻率為6MHz,則復(fù)位信號持續(xù)時間應(yīng)不小于4us。

8051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路328051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路3、復(fù)位分為上點(diǎn)自動復(fù)位和按鍵手動復(fù)位兩種方式。復(fù)位電路中的電阻,電容數(shù)值是為了保證在RST端能夠保持2個機(jī)器周期以上的高電平以完成復(fù)位而設(shè)定的。8051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路33程序講解例1:51單片機(jī)延時時間的設(shè)計例2:廣告燈的左移右移例3:廣告燈(利用取表方式)例4:定時器與計數(shù)器的應(yīng)用程序講解例1:51單片機(jī)延時時間的設(shè)計34程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)注:(1)MOVRn,#data和nop指令的執(zhí)行時間都為1個機(jī)器周期。(2)DJNZRn,rel指令的執(zhí)行時間為2個機(jī)器周期。程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即35程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=497程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即36程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=4971+(497+2)×20=9981程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即37程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=4971+(497+2)×20=99811+(9981+2)×20=199661程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即38程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=4971+(497+2)×20=99811+(9981+2)×20=199661199661+2=199663程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即39程序講解例2:廣告燈的左移右移(電路圖)程序講解例2:廣告燈的左移右移(電路圖)40程序講解例2:廣告燈的左移右移(程序)

ORG00HSTART:MOVA,#0FFH CLRCMOVR2,#08HLOOP:RLCAMOVP2,ACALLDELAYDJNZR2,LOOPMOVR2,#07HLOOP1:RRCAMOVP2,ACALLDELAYDJNZR2,LOOP1JMPSTARTDELAY:MOVR3,#20D1:MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RETEND程序講解例2:廣告燈的左移右移(程序)DELAY:MOV41程序講解例2:廣告燈的左移右移(程序)

ORG00H;起始地址START:MOVA,#0FFH;ACC=FFH左移初值 CLRC;C=0MOVR2,#08H;設(shè)左移8次LOOP:RLCA;左移一位MOVP2,A;輸出至P2CALLDELAY;延時0。2秒DJNZR2,LOOP;左移8次?MOVR2,#07H;設(shè)右移7次LOOP1:RRCA;右移一位MOVP2,A;輸出至P2CALLDELAY;延時0。2秒DJNZR2,LOOP1;右移7次?JMPSTART;返回程序講解例2:廣告燈的左移右移(程序)42程序流程圖講解開始和結(jié)束框:表示程序的開始和結(jié)束處理框:表示某種處理工程或完成一定的功能判斷框:根據(jù)不同的判斷結(jié)果,執(zhí)行不同的分支程序、流向線:表示程序執(zhí)行的前進(jìn)方向程序流程圖講解開始和結(jié)束框:表示程序的開始和結(jié)束處理框:表示43程序流程圖講解二極管左移流程圖開始賦值P1=FFH熄來所有燈賦初值P1=FEH延時1S左移一位程序流程圖講解二極管左移流程圖開始賦值P1=FFH賦初值P144程序流程圖講解分支程序設(shè)計:條件成立?NY程序流程圖講解分支程序設(shè)計:條件成立?NY45程序流程圖講解分支程序設(shè)計:例題:求符號函數(shù)的值

1當(dāng)X>0 Y= 0當(dāng)X=0的值。 -1當(dāng)X<0編程說明:設(shè)變量X存放在40H單元中,函數(shù)Y存放在41H單元中。此程序為三分支程序。

程序流程圖講解分支程序設(shè)計:46程序流程圖講解程序流程圖如圖所示程序流程圖講解程序流程圖如圖所示47程序流程圖講解循環(huán)程序的結(jié)構(gòu)程序流程圖講解循環(huán)程序的結(jié)構(gòu)48程序講解例3:廣告燈(利用取表方式)功能說明:1、利用取表的方法,使端口P2做單一燈的變化:左移2次,右移2次,閃爍2次。(延時時間0.2秒)2、利用MOVDPTR,#data16指令來使數(shù)據(jù)指針寄存器指到表的開頭。3、利用MOVCA,@A+DPTR的指令,根據(jù)累加器的值再加上DPTR的值,就可以使程序計算器PC指到表格內(nèi)所要取出的數(shù)據(jù)。程序講解例3:廣告燈(利用取表方式)49程序講解例3:廣告燈(利用取表方式)電路圖程序講解例3:廣告燈(利用取表方式)50程序講解例3:廣告燈(利用取表方式)流程圖:開始數(shù)據(jù)指針DPTR指到TABLE表的開頭根據(jù)DPTR到表內(nèi)取碼取出的碼是結(jié)束碼01H?將取出的碼輸出至P2口將數(shù)據(jù)之中指針加1延時0.2秒YN程序講解例3:廣告燈(利用取表方式)開始數(shù)據(jù)指針DPTR指到51程序講解知識點(diǎn):MOVDPTR,#data16MOVCA,@A+DPTR程序講解知識點(diǎn):52程序講解例3:廣告燈(利用取表方式)程序

ORG00HSTART: MOVDPTR,#TABLELOOP: CLRA MOVCA,@A+DPTR CJNEA,#01,LOOP1 JMPSTARTLOOP1: MOVP2,A MOVR3,#20 CALLDELAY INCDPTR JMPLOOPDELAY: MOVR4,#20D1: MOVR5,#248 DJNZR5,$ DJNZR4,D1 DJNZR3,DELAY RETTABLE: DB0FEH,0FDH,0FBH,0F7H ;左移 DB0EFH,0DFH,0BFH,7FH DB0FEH,0FDH,0FBH,0F7H ;左移 DB0EFH,0DFH,0BFH,7FH DB7FH,0BFH,0DFH,0EFH ;右移 DB0F7H,0FBH,0FDH,0FEH DB7FH,0BFH,0DFH,0EFH ;右移 DB0F7H,0FBH,0FDH,0FEH DB00H,0FFH,00H,0FFH ;閃爍2次 DB01H ;結(jié)束碼 END程序講解例3:廣告燈(利用取表方式)程序 ORG53程序講解例3:廣告燈(利用取表方式)程序+注釋

ORG00HSTART: MOVDPTR,#TABLE ;TABLE表的地址存入數(shù)據(jù)指針LOOP: CLRA ;清除ACC MOVCA,@A+DPTR ;到數(shù)據(jù)指針?biāo)傅牡刂啡〈a CJNEA,#01,LOOP1 ;取出的碼是否為01H?不是則跳到LOOP1 JMPSTARTLOOP1: MOVP2,A ;將A輸出至P2口 MOVR3,#20 ;延時0.2秒 CALLDELAY INCDPTR ;數(shù)據(jù)指針加1,取下一個碼 JMPLOOPDELAY: MOVR4,#20 ;10毫秒D1: MOVR5,#248 DJNZR5,$ DJNZR4,D1 DJNZR3,DELAY RET程序講解例3:廣告燈(利用取表方式)程序+注釋 OR54程序講解例4:定時器與計數(shù)器的應(yīng)用知識點(diǎn):一、8051有兩個16位的定時器/計數(shù)器,即定時器0(TIMER0)和定時器1(TIMER1)。8052則有3個定時器,除8051具有的兩個外,再加上一個定時器2(TIMER2)。以上3個都可以當(dāng)成定時器或計數(shù)器使用。二、定時器0和定時器1其使用定時或計數(shù)器的功能是由特殊功能寄存器內(nèi)TMOD的C/T位所決定的。這兩個定時器/計數(shù)器共有4種工作方式,它是由TMOD內(nèi)的兩個位M1和M0加以選擇。程序講解例4:定時器與計數(shù)器的應(yīng)用55程序講解例4:定時器與計數(shù)器的應(yīng)用TMOD說明如下:TMOD:定時器模式控制寄存器(地址:89H)GATEM0C/TM1GATEM0C/TM1TIMER1TIMER0

GATE:當(dāng)TRX(在TCON內(nèi))=1且GATE=1時,定時器只在/INTX引腳為高電平時才會計時;當(dāng)GATE=0時,則定時器只在TRX=1時會計時。C/T:C/T=0時為定時器,C/T=1時為計數(shù)器。M1、M0:工作方式。程序講解例4:定時器與計數(shù)器的應(yīng)用GATEM0C/TM1GA56程序講解例4:定時器與計數(shù)器的應(yīng)用M1、M0工作方式的功能M1M0工作方式功能00MODE013位的定時/計數(shù)器01MODE116位的定時/計數(shù)器10MODE28位定時/計數(shù)自動載入11MODE3(TIMER0)TL0為8位定時/計數(shù)器,由T0控制;TH0為另一個8位定時器,由T1控制。11MODE3(TIMER1)定時/計數(shù)器1停止定時/計數(shù)程序講解例4:定時器與計數(shù)器的應(yīng)用M1M0工作方式功57程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器TF1TR1TF0TR0IE1IT1IE0IT0TR0:TIMER0的啟動位,TR0=1時為啟動,TR0=0時停止。TR1:TIMER1的啟動位,TR1=1時為啟動,TR1=0時停止。TF0:TIMER0的溢出標(biāo)志位,當(dāng)TIMER0溢出時,會設(shè)定為1;當(dāng)執(zhí)行中斷子程序時,會清除為0。TF1:TIMER1的溢出標(biāo)志位,當(dāng)TIMER1溢出時,會設(shè)定為1;當(dāng)執(zhí)行中斷子程序時,會清除為0。程序講解例4:定時器與計數(shù)器的應(yīng)用TF1TR1TF0TR0I58程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器(1)MODE0模式下的定時器MODE0是一個13位(高8位+低5位)的計算器,其最長的計數(shù)為213=8192個脈沖。若脈沖由內(nèi)部提供(C/T=0)且石英晶體為12MHZ時,進(jìn)入定時器時一個脈沖的時間為1us,其最長計時時間為8192us=8.192ms,最短時間則為1us。程序講解例4:定時器與計數(shù)器的應(yīng)用59程序講解MODE0模式下的定時器結(jié)構(gòu)程序講解MODE0模式下的定時器結(jié)構(gòu)60程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器MODE0的定時設(shè)定:因為TLX(5位)的值應(yīng)為計數(shù)值COUNT除以32的余數(shù),而THX的設(shè)定值為計數(shù)值COUNT除以32的商,即TLX=COUNTMOD32THX=COUNT/32例:以設(shè)計時間為8000微秒為例,每個計數(shù)脈沖1us,須計數(shù)8000個TLX=(8192-8000)MOD32=00THX=(8192-8000)/32=06注:X=0表示TIMER0,X=1表示TIMER1。程序講解例4:定時器與計數(shù)器的應(yīng)用注:X=0表示TIMER061程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器設(shè)定MODE0的步聚1、MOVTMOD,#00000000B;TIMER0設(shè)定計時工作方式(內(nèi)部輸入)MOVTMOD,#00000000B;TIMER1設(shè)定計時工作方式(內(nèi)部輸入)1、MOVTMOD,#00000100B;TIMER0設(shè)定計數(shù)工作方式(TO輸入)MOVTMOD,#01000000B;TIMER1設(shè)定計數(shù)工作方式(T1輸入)2、SETBTRX;啟動定時器3、MOVTLX,#(8192-COUNT)MOD32MOVTHX,#(8192-COUNT)/324、JBCTFX;檢查TFX是否溢出程序講解例4:定時器與計數(shù)器的應(yīng)用設(shè)定MODE0的步聚1、M62程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器(2)MODE1模式下的定時器MODE1為一個16位的計數(shù)器,其最大的計數(shù)脈沖數(shù)為65536。若脈沖周期為1us時,則其最長的計時時間為65536×1us=65536us=65.536ms,最短為1us。程序講解例4:定時器與計數(shù)器的應(yīng)用63程序講解MODE1模式下的定時器結(jié)構(gòu)程序講解MODE1模式下的定時器結(jié)構(gòu)64程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器設(shè)定MODE1的步驟1、MOVTMOD,#00000001B;TIMER0設(shè)定計時工作方式(內(nèi)部輸入)MOVTMOD,#00010000B;TIMER1設(shè)定計時工作方式(內(nèi)部輸入)1、MOVTMOD,#00000101B;TIMER0設(shè)定計數(shù)工作方式(T0輸入)MOVTMOD,#01010000B;TIMER1設(shè)定計數(shù)工作方式(T1輸入)2、SETBTRX;啟動定時器3、MOVTLX,#LOW(65536-COUNT)或#(65536-COUNT)MOD256MOVTHX,#HIGH(65536-COUNT)或#(65536-COUNT)/2564、JBCTFX;檢查TFX是否溢出程序講解例4:定時器與計數(shù)器的應(yīng)用設(shè)定MODE1的步驟1、M65程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器(3)MODE2模式下的定時器TIMER0、TIMER1工作在MODE2時,是一個具有自動重新載入設(shè)定值功能的8位定時器。TLX為真正計數(shù)脈沖的計數(shù)器,而THX則為存放重新載入的緩沖器。當(dāng)TLX計數(shù)溢出時,除了TFX=1外,也會將存放在THX的值載入TLX內(nèi),且不會改變THX的內(nèi)容。注:X=0表示TIMER0;X=1表示TIMER1。程序講解例4:定時器與計數(shù)器的應(yīng)用66程序講解MODE2模式下的定時器結(jié)構(gòu)程序講解MODE2模式下的定時器結(jié)構(gòu)67程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器設(shè)定MODE2的步驟1、MOVTMOD,#00000010B;TIMER0設(shè)定計時工作方式(內(nèi)部輸入)MOVTMOD,#00100000B;TIMER1設(shè)定計時工作方式(內(nèi)部輸入)1、MOVTMOD,#00000110B;TIMER0設(shè)定計數(shù)工作方式(T0輸入)MOVTMOD,#01100000B;TIMER1設(shè)定計數(shù)工作方式(T1輸入)2、SETBTRX;啟動定時器3、MOVTLX,#(256-COUNT)MOVTHX,#(256-COUNT)4、JBCTFX;檢查TFX是否溢出程序講解例4:定時器與計數(shù)器的應(yīng)用設(shè)定MODE2的步驟1、M68程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器(4)MODE3模式下的定時器TIMER0和TIMER1工作在MODE3時的動作不同,TIMER0工作在MODE3時會分成兩個獨(dú)立的8位定時器,TL0為一個獨(dú)立的8位的定時器,由TIMER0所控制。而TH0則為另一個8位的定時器,由TIMER1的TR1所控制,且TH0控制了TIMER1的中斷TF1。若TIMER1工作在MODE3時,會使TIMER1停止計時。程序講解例4:定時器與計數(shù)器的應(yīng)用69程序講解程序講解70程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器設(shè)定MODE3的步驟設(shè)定MODE3的步驟(TL0)設(shè)定MODE3的步驟(TH0)1、MOVTMOD,#00000011B設(shè)定計時工作方式(內(nèi)部輸入)1、MOVTMOD,#00000111B設(shè)定計數(shù)工作方式(T0輸入)1、MOVTMOD,#00000011B設(shè)定計時工作方式(內(nèi)部輸入)2、SETBTR0;啟動定時器TIMER02、SETBTR1;啟動定時器TIMER13、MOVTL0,#(256-COUNT)3、MOVTH0,#(256-COUNT)4、JBCTF0;檢查TF0是否溢出4、JBCTF1;檢查TF1是否溢出程序講解例4:定時器與計數(shù)器的應(yīng)用設(shè)定MODE3的步驟設(shè)定M71程序講解程序講解:廣告燈的左移右移(延時時間使用TIMER0在MODE0下工作)功能說明:1、開始時P20亮,延時0.2秒后左移至P21亮,如此左移7次后至P27亮,再延時0.2秒右移至P26亮,如此右移7次后至P20亮。2、延時時間0.2秒,使用TIMER0在MODE0下工作。程序講解程序講解:72廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工作)電路圖廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工73廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工作)

ORG00H MOVTMOD,#00HSTART: CLRC MOVA,#0FFH MOVR2,#08LOOP: RLCA MOVP2,A MOVR3,#100 CALLDELAY DJNZR2,LOOP MOVR2,#07LOOP1: RRCA MOVP2,A MOVR3,#100 CALLDELAY DJNZR2,LOOP1 JMPSTARTDELAY: SETBTR0AGAIN: MOVTL0,#(8192-2000)MOD32 MOVTH0,#(8192-2000)/32LOOP2: JBCTF0,LOOP3 JMPLOOP2LOOP3: DJNZR3,AGAIN CLRTR0 RET END廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工74廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工作)

ORG00H ;起始地址 MOVTMOD,#00H ;設(shè)定TIMER0工作在MODE0START: CLRC ;C=0 MOVA,#0FFH ;ACC=FFH,左移初值 MOVR2,#08 ;R2=08,設(shè)左移8次LOOP: RLCA ;左移一位 MOVP2,A ;輸出至P2 MOVR3,#100 ;0.2秒 CALLDELAY ;2000微秒 DJNZR2,LOOP ;左移8次 MOVR2,#07 ;R2=07,設(shè)右移7次LOOP1: RRCA ;右移一位 MOVP2,A ;輸出至P2 MOVR3,#100 ;0.2秒 CALLDELAY ;2000微秒 DJNZR2,LOOP1 ;右移7次 JMPSTART廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工75廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工作)DELAY: SETBTR0AGAIN: MOVTL0,#(8192-2000)MOD32 MOVTH0,#(8192-2000)/32LOOP2: JBCTF0,LOOP3 JMPLOOP2LOOP3: DJNZR3,AGAIN CLRTR0 RET END;啟動TIMER0開始計時;設(shè)定TL0的值;設(shè)定TH0的值;TF0是否為1,是則跳至LOOP3,并清除TF0;不是則跳到LOOP2;R3是否為0?不是則跳到AGAIN;是則停止TIMR0計數(shù)廣告燈的左移右移

(延時時間使用TIMER0在MODE0下工76

單片機(jī)實(shí)訓(xùn)課題南京技師學(xué)院電氣工程系電子信息二室單片機(jī)實(shí)訓(xùn)課題南京技師學(xué)院77單片機(jī)實(shí)訓(xùn)授課計劃

(四周)課題一:單片機(jī)的軟件仿真課題二:基于單片機(jī)的循環(huán)彩燈課題三:基于單片機(jī)的鍵盤應(yīng)用課題四:基于單片機(jī)的數(shù)碼顯示單片機(jī)實(shí)訓(xùn)授課計劃

(四周)課題一:單片機(jī)的軟件仿真78單片機(jī)理論知識一、51系列單片機(jī)概述二、MCS-51單片機(jī)的結(jié)構(gòu)

一、MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖

二、MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)

三、MCS-51的信號引腳

四、MCS-51單片機(jī)的內(nèi)部存儲器

五、MCS-51單片機(jī)時鐘電路與時序

六、MCS-51單片機(jī)復(fù)位電路三、程序講解單片機(jī)理論知識一、51系列單片機(jī)概述7951系列單片機(jī)概述一、MCS-51系列(1)MCS-51是Intel公司生產(chǎn)的一個單片機(jī)系列名稱。屬于這一系列的單片機(jī)有多種,如:

﹡8051/8751/8031;﹡8052/8752/8032;﹡80C51/87C51/80C31﹡80C52/87C52/80C32等。51系列單片機(jī)概述一、MCS-51系列8080C51系列概述(2)該系列生產(chǎn)工藝有兩種:

一是HMOS工藝(高密度短溝道MOS工藝)。二是CHMOS工藝(互補(bǔ)金屬氧化物的HMOS工藝)。CHMOS是CMOS和HMOS的結(jié)合,既保持了HMOS高速度和高密度的特點(diǎn),還具有CMOS的低功耗的特點(diǎn)。在產(chǎn)品型號中凡帶有字母“C”的即為CHMOS芯片,CHMOS芯片的電平既與TTL電平兼容,又與CMOS電平兼容。80C51系列概述(2)該系列生產(chǎn)工藝有兩種:8180C51系列概述(3)在功能上,該系列單片機(jī)有基本型和增強(qiáng)型兩大類: 基本型: 8051/8751/8031 80C51/87C51/80C31 增強(qiáng)型: 8052/8752/8032 80C52/87C52/80C3280C51系列概述(3)在功能上,該系列單片機(jī)有基本型和增強(qiáng)8280C51系列概述4)在片內(nèi)程序存儲器的配置上,該系列單片機(jī)有三種形式,即掩膜ROM、EPROM和ROMLess(無片內(nèi)程序存儲器)。如:﹡80C51有4K字節(jié)的掩膜ROM;﹡87C51有4K字節(jié)的EPROM;﹡80C31在芯片內(nèi)無程序存儲器。80C51系列概述4)在片內(nèi)程序存儲器的配置上,該系列單片機(jī)8380C51系列概述二、80C51系列80C51是MCS-51系列中CHMOS工藝的一個典型品種;其它廠商以8051為基核開發(fā)出的CMOS工藝單片機(jī)產(chǎn)品統(tǒng)稱為80C51系列。當(dāng)前常用的80C51系列單片機(jī)主要產(chǎn)品有:

﹡Intel的:80C31、80C51、87C51,80C32、80C52、87C52等;

﹡ATMEL的:89C51、89C52、89C2051等;

﹡Philips、華邦、Dallas、Siemens(Infineon)等公司的許多產(chǎn)品。80C51系列概述二、80C51系列8480C51系列概述三、

80C51典型產(chǎn)品資源配置80C51系列概述三、80C51典型產(chǎn)品資源配置858051單片機(jī)的結(jié)構(gòu)一、

MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖8051單片機(jī)的結(jié)構(gòu)一、MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)框圖868051單片機(jī)的結(jié)構(gòu)二、

MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器(CPU)運(yùn)算器控制器:ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、程序狀態(tài)字、暫存寄存器:PC(程序計數(shù)器)、PC加1寄存器、指令寄存器、指令譯碼器8051單片機(jī)的結(jié)構(gòu)二、MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)878051單片機(jī)的結(jié)構(gòu)2.內(nèi)部數(shù)據(jù)寄存器RAM(128*8)、RAM地址寄存器3.內(nèi)部程序寄存器ROM(4K*8)、程序地址寄存器4.定時器/計數(shù)器2個16位的定時器/計數(shù)器5.并行I/O口4個8位的I/O口(P0、P1、P2、P3)8051單片機(jī)的結(jié)構(gòu)2.內(nèi)部數(shù)據(jù)寄存器RAM(128*8888051單片機(jī)的結(jié)構(gòu)6.串行口7.中斷控制系統(tǒng)5個中斷源:外中斷2個、定時/計數(shù)中斷2個、串行中斷1個。8.時鐘電路9.位處理器10.總線8051單片機(jī)的結(jié)構(gòu)6.串行口7.中斷控制系統(tǒng)898051單片機(jī)的結(jié)構(gòu)三、

MCS-51的信號引腳40引腳雙列直插式8051單片機(jī)的結(jié)構(gòu)三、MCS-51的信號引腳908051單片機(jī)的結(jié)構(gòu)1.信號引腳介紹輸入/輸出口線P0.0—P0.7

P0口8位雙向口線P1.0—P1.7

P1口8位雙向口線P2.0—P2.7

P2口8位雙向口線P3.0—P3.7

P3口8位雙向口線ALE地址鎖存控制信號(1)P0口輸出的低8位地址鎖存控制信號(2)作為外部時鐘或外部定時脈沖8051單片機(jī)的結(jié)構(gòu)1.信號引腳介紹輸入/輸出口線P0.918051單片機(jī)的結(jié)構(gòu)PSEN外部程序存儲器讀選通信號EA訪問程序存儲器控制信號0:僅訪問外部程序存儲器1:從內(nèi)部程序存儲器開始訪問,并可延續(xù)至外部程序存儲器。RST復(fù)位信號:連續(xù)2個周期以上的高電平。XTAL1、XTAL2外接晶體引線端VSS地線VCC+5V電源8051單片機(jī)的結(jié)構(gòu)PSEN外部程序存儲器讀選通信號928051單片機(jī)的結(jié)構(gòu)2.信號引腳的第二功能P3口線的第二功能外部RAM讀選通RDP3.7外部RAM寫選通WRP3.6定時器/計數(shù)器1計數(shù)輸入T1P3.5定時器/計數(shù)器0計數(shù)輸入T0P3.4外部中斷1申請INT1P3.3外部中斷0申請INT0P3.2串行數(shù)據(jù)發(fā)送TXDP3.1串行數(shù)據(jù)接受RXDP3.0信號名稱第二功能口線8051單片機(jī)的結(jié)構(gòu)2.信號引腳的第二功能P3口線的第二938051單片機(jī)的結(jié)構(gòu)四、

MCS-51單片機(jī)的內(nèi)部存儲器以80C51為例數(shù)據(jù)存儲器程序存儲器低128單元(單元地址00H-7FH)高128單元(單元地址80H-FFH)8051單片機(jī)的結(jié)構(gòu)四、MCS-51單片機(jī)的內(nèi)部存儲器以8948051單片機(jī)的結(jié)構(gòu)(一)內(nèi)部數(shù)據(jù)存儲器低128單元1.通用寄存器區(qū)(00H-1FH)(1)分成四組0,1,2,3,每組8個寄存器(R7-R0),每個寄存器為8位。(2)任意時刻,CPU只能使用其中的一組寄存器。(3)運(yùn)用通用寄存器,可以簡化程序設(shè)計,提高運(yùn)行速度。2.位尋址區(qū)(20H-2FH)3.用戶RAM區(qū)(30H-7FH)8051單片機(jī)的結(jié)構(gòu)(一)內(nèi)部數(shù)據(jù)存儲器低128單元1.958051單片機(jī)的結(jié)構(gòu)(二)內(nèi)部數(shù)據(jù)存儲器高128單元專用寄存器(SFR)、特殊功能寄存器1.專用寄存器簡介:22個,可尋址21個。(1)程序計數(shù)器(PC):16位,不可尋址。(2)累加器A(或ACC):8位,尋址地址0E0H。(3)B寄存器:8位,尋址地址0F0H。8051單片機(jī)的結(jié)構(gòu)(二)內(nèi)部數(shù)據(jù)存儲器高128單元專用寄存968051單片機(jī)的結(jié)構(gòu)(4)程序狀態(tài)字(PSW):8位,尋址地址0D0H。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/PCY:進(jìn)位標(biāo)志位。AC:輔助進(jìn)位標(biāo)志位。F0:用戶標(biāo)志位。RS1和RS0:寄存器組選擇位。OV:溢出標(biāo)志位。P:奇偶標(biāo)志位。(5)數(shù)據(jù)指針(DPTR):16位尋址地址:82H(DPL),83H(DPH)。8051單片機(jī)的結(jié)構(gòu)(4)程序狀態(tài)字(PSW):8位,尋址978051單片機(jī)的結(jié)構(gòu)2.專用寄存器的字節(jié)尋址(21個)3.專用寄存器的位尋址(1)21個專用寄存器不連續(xù)分布在內(nèi)部RAM的高128個單元,空余單元不能使用。(2)程序計數(shù)器(PC)不可尋址。(3)對專用寄存器采用直接尋址方式,指令中使用寄存器符號或寄存器地址。(1)11個專用寄存器可位尋址(83個尋址位)。(2)與內(nèi)部數(shù)據(jù)存儲器低128單元中的位尋址區(qū)(20H-2FH),共同組成數(shù)據(jù)位存儲區(qū)。8051單片機(jī)的結(jié)構(gòu)2.專用寄存器的字節(jié)尋址(21個)3.988051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲器3、堆棧指示器:SP(復(fù)位后為07H,初始化為30H)4、堆棧類型:向上生長型入棧SP30H或4AH或78H(1)SP←SP+18051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧998051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲器3、堆棧指示器:SP(復(fù)位后為07H,初始化為30H)4、堆棧類型:向上生長型入棧30H或4AH或78H(1)SP←SP+1SP(2)寫入數(shù)據(jù)出棧(1)讀出數(shù)據(jù)(2)SP←SP-18051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧1008051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧、入棧、棧底、棧頂、后入先出1、堆棧的功能:保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場2、堆棧的開辟:內(nèi)部數(shù)據(jù)存儲器3、堆棧指示器:SP(復(fù)位后為07H,初始化為30H)4、堆棧類型:向上生長型入棧30H或4AH或78H(1)SP←SP+1SP(2)寫入數(shù)據(jù)出棧(1)讀出數(shù)據(jù)(2)SP←SP-1、向下生長型(8086)8051單片機(jī)的結(jié)構(gòu)(三)MCS-51的堆棧操作術(shù)語:出棧1018051單片機(jī)的結(jié)構(gòu)(四)內(nèi)部程序存儲器80C51:4KROM程序存儲器,地址0000H-0FFFH80C52:8KROM程序存儲器,地址0000H-1FFFH啟動單元:0000H-0002H中斷地址區(qū):0003H-002AH8051單片機(jī)的結(jié)構(gòu)(四)內(nèi)部程序存儲器80C51:4K1028051單片機(jī)的結(jié)構(gòu)(五)MCS-51單片機(jī)系統(tǒng)的存儲器結(jié)構(gòu)特點(diǎn)1.數(shù)據(jù)存儲器和程序存儲器分開3.存儲器擴(kuò)展16位地址線-尋址范圍64KB地址0000H-FFFFH2.內(nèi)部存儲器和外部存儲器分開8051單片機(jī)的結(jié)構(gòu)(五)MCS-51單片機(jī)系統(tǒng)的存儲器結(jié)103《單片機(jī)實(shí)習(xí)課題》課件1048051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序1.時鐘信號的產(chǎn)生XTAL2XTAL1C2C1組成:晶體振蕩器、電容(2個)1.2MHz-12MHz一般取12M取30pF,起微調(diào)作用內(nèi)部時鐘電路2.引入外部脈沖信號(一)時鐘信號8051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序11058051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序(二)時序定時單位振蕩脈沖例:12M、6M2分頻時鐘脈沖6M、3M3分頻ALE6分頻機(jī)器周期1M、0.5M1.節(jié)拍與狀態(tài)一個時鐘脈沖一個拍節(jié)(S)兩個節(jié)拍(S)一個狀態(tài)(P)2.機(jī)器周期1M------1us0.5M

---2us3.指令周期一個指令周期包含若干個機(jī)器周期8051單片機(jī)的結(jié)構(gòu)五、MCS-51單片機(jī)時鐘電路與時序(1068051單片機(jī)的結(jié)構(gòu)節(jié)拍:指振蕩脈沖的周期(有P表示);每二個節(jié)拍定義為一個狀態(tài)(用S表示);規(guī)定一個機(jī)器周期的寬度為6個狀態(tài),即12個節(jié)拍;即,一個機(jī)器周期就由12個振蕩周期組成。(當(dāng)振蕩頻率為12MHz時,一個機(jī)器周期為1us;當(dāng)振蕩頻率為6MHz時,一個機(jī)器周期為2us);指令周期:指執(zhí)行一條指令所需的時間。根據(jù)指令的不同,MCS-51的指令周期可分別包含有一、二、四個機(jī)器周期。五、MCS-51單片機(jī)時鐘電路與時序(二)時序定時單位8051單片機(jī)的結(jié)構(gòu)節(jié)拍:指振蕩脈沖的周期(有P表示);五、1078051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路1、復(fù)位后,PC初始化作為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。所以單片機(jī)除了正常的初始化外,當(dāng)程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死循環(huán)時,也需要按復(fù)位鍵以重新啟動機(jī)器。復(fù)位不影響片內(nèi)RAM存放的內(nèi)容,而ALE和PSEN在復(fù)位期間將輸入高電平。

2、RST引腳是復(fù)位信號輸入端,復(fù)位信號為高電平有效。當(dāng)高電平持續(xù)24個振蕩脈沖周期(即二個機(jī)器周期)以上時,單片機(jī)完成復(fù)位。假如使用晶振頻率為6MHz,則復(fù)位信號持續(xù)時間應(yīng)不小于4us。

8051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路1088051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路3、復(fù)位分為上點(diǎn)自動復(fù)位和按鍵手動復(fù)位兩種方式。復(fù)位電路中的電阻,電容數(shù)值是為了保證在RST端能夠保持2個機(jī)器周期以上的高電平以完成復(fù)位而設(shè)定的。8051單片機(jī)的結(jié)構(gòu)六、MCS-51單片機(jī)復(fù)位電路109程序講解例1:51單片機(jī)延時時間的設(shè)計例2:廣告燈的左移右移例3:廣告燈(利用取表方式)例4:定時器與計數(shù)器的應(yīng)用程序講解例1:51單片機(jī)延時時間的設(shè)計110程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)注:(1)MOVRn,#data和nop指令的執(zhí)行時間都為1個機(jī)器周期。(2)DJNZRn,rel指令的執(zhí)行時間為2個機(jī)器周期。程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即111程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=497程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即112程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=4971+(497+2)×20=9981程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即113程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=4971+(497+2)×20=99811+(9981+2)×20=199661程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即114程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即1個機(jī)器周期為1us)DELAY:MOVR3,#20D1: MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RET1+2×248=4971+(497+2)×20=99811+(9981+2)×20=199661199661+2=199663程序講解例1:51單片機(jī)延時時間的設(shè)計(晶振為12MHz,即115程序講解例2:廣告燈的左移右移(電路圖)程序講解例2:廣告燈的左移右移(電路圖)116程序講解例2:廣告燈的左移右移(程序)

ORG00HSTART:MOVA,#0FFH CLRCMOVR2,#08HLOOP:RLCAMOVP2,ACALLDELAYDJNZR2,LOOPMOVR2,#07HLOOP1:RRCAMOVP2,ACALLDELAYDJNZR2,LOOP1JMPSTARTDELAY:MOVR3,#20D1:MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2DJNZR3,D1RETEND程序講解例2:廣告燈的左移右移(程序)DELAY:MOV117程序講解例2:廣告燈的左移右移(程序)

ORG00H;起始地址START:MOVA,#0FFH;ACC=FFH左移初值 CLRC;C=0MOVR2,#08H;設(shè)左移8次LOOP:RLCA;左移一位MOVP2,A;輸出至P2CALLDELAY;延時0。2秒DJNZR2,LOOP;左移8次?MOVR2,#07H;設(shè)右移7次LOOP1:RRCA;右移一位MOVP2,A;輸出至P2CALLDELAY;延時0。2秒DJNZR2,LOOP1;右移7次?JMPSTART;返回程序講解例2:廣告燈的左移右移(程序)118程序流程圖講解開始和結(jié)束框:表示程序的開始和結(jié)束處理框:表示某種處理工程或完成一定的功能判斷框:根據(jù)不同的判斷結(jié)果,執(zhí)行不同的分支程序、流向線:表示程序執(zhí)行的前進(jìn)方向程序流程圖講解開始和結(jié)束框:表示程序的開始和結(jié)束處理框:表示119程序流程圖講解二極管左移流程圖開始賦值P1=FFH熄來所有燈賦初值P1=FEH延時1S左移一位程序流程圖講解二極管左移流程圖開始賦值P1=FFH賦初值P1120程序流程圖講解分支程序設(shè)計:條件成立?NY程序流程圖講解分支程序設(shè)計:條件成立?NY121程序流程圖講解分支程序設(shè)計:例題:求符號函數(shù)的值

1當(dāng)X>0 Y= 0當(dāng)X=0的值。 -1當(dāng)X<0編程說明:設(shè)變量X存放在40H單元中,函數(shù)Y存放在41H單元中。此程序為三分支程序。

程序流程圖講解分支程序設(shè)計:122程序流程圖講解程序流程圖如圖所示程序流程圖講解程序流程圖如圖所示123程序流程圖講解循環(huán)程序的結(jié)構(gòu)程序流程圖講解循環(huán)程序的結(jié)構(gòu)124程序講解例3:廣告燈(利用取表方式)功能說明:1、利用取表的方法,使端口P2做單一燈的變化:左移2次,右移2次,閃爍2次。(延時時間0.2秒)2、利用MOVDPTR,#data16指令來使數(shù)據(jù)指針寄存器指到表的開頭。3、利用MOVCA,@A+DPTR的指令,根據(jù)累加器的值再加上DPTR的值,就可以使程序計算器PC指到表格內(nèi)所要取出的數(shù)據(jù)。程序講解例3:廣告燈(利用取表方式)125程序講解例3:廣告燈(利用取表方式)電路圖程序講解例3:廣告燈(利用取表方式)126程序講解例3:廣告燈(利用取表方式)流程圖:開始數(shù)據(jù)指針DPTR指到TABLE表的開頭根據(jù)DPTR到表內(nèi)取碼取出的碼是結(jié)束碼01H?將取出的碼輸出至P2口將數(shù)據(jù)之中指針加1延時0.2秒YN程序講解例3:廣告燈(利用取表方式)開始數(shù)據(jù)指針DPTR指到127程序講解知識點(diǎn):MOVDPTR,#data16MOVCA,@A+DPTR程序講解知識點(diǎn):128程序講解例3:廣告燈(利用取表方式)程序

ORG00HSTART: MOVDPTR,#TABLELOOP: CLRA MOVCA,@A+DPTR CJNEA,#01,LOOP1 JMPSTARTLOOP1: MOVP2,A MOVR3,#20 CALLDELAY INCDPTR JMPLOOPDELAY: MOVR4,#20D1: MOVR5,#248 DJNZR5,$ DJNZR4,D1 DJNZR3,DELAY RETTABLE: DB0FEH,0FDH,0FBH,0F7H ;左移 DB0EFH,0DFH,0BFH,7FH DB0FEH,0FDH,0FBH,0F7H ;左移 DB0EFH,0DFH,0BFH,7FH DB7FH,0BFH,0DFH,0EFH ;右移 DB0F7H,0FBH,0FDH,0FEH DB7FH,0BFH,0DFH,0EFH ;右移 DB0F7H,0FBH,0FDH,0FEH DB00H,0FFH,00H,0FFH ;閃爍2次 DB01H ;結(jié)束碼 END程序講解例3:廣告燈(利用取表方式)程序 ORG129程序講解例3:廣告燈(利用取表方式)程序+注釋

ORG00HSTART: MOVDPTR,#TABLE ;TABLE表的地址存入數(shù)據(jù)指針LOOP: CLRA ;清除ACC MOVCA,@A+DPTR ;到數(shù)據(jù)指針?biāo)傅牡刂啡〈a CJNEA,#01,LOOP1 ;取出的碼是否為01H?不是則跳到LOOP1 JMPSTARTLOOP1: MOVP2,A ;將A輸出至P2口 MOVR3,#20 ;延時0.2秒 CALLDELAY INCDPTR ;數(shù)據(jù)指針加1,取下一個碼 JMPLOOPDELAY: MOVR4,#20 ;10毫秒D1: MOVR5,#248 DJNZR5,$ DJNZR4,D1 DJNZR3,DELAY RET程序講解例3:廣告燈(利用取表方式)程序+注釋 OR130程序講解例4:定時器與計數(shù)器的應(yīng)用知識點(diǎn):一、8051有兩個16位的定時器/計數(shù)器,即定時器0(TIMER0)和定時器1(TIMER1)。8052則有3個定時器,除8051具有的兩個外,再加上一個定時器2(TIMER2)。以上3個都可以當(dāng)成定時器或計數(shù)器使用。二、定時器0和定時器1其使用定時或計數(shù)器的功能是由特殊功能寄存器內(nèi)TMOD的C/T位所決定的。這兩個定時器/計數(shù)器共有4種工作方式,它是由TMOD內(nèi)的兩個位M1和M0加以選擇。程序講解例4:定時器與計數(shù)器的應(yīng)用131程序講解例4:定時器與計數(shù)器的應(yīng)用TMOD說明如下:TMOD:定時器模式控制寄存器(地址:89H)GATEM0C/TM1GATEM0C/TM1TIMER1TIMER0

GATE:當(dāng)TRX(在TCON內(nèi))=1且GATE=1時,定時器只在/INTX引腳為高電平時才會計時;當(dāng)GATE=0時,則定時器只在TRX=1時會計時。C/T:C/T=0時為定時器,C/T=1時為計數(shù)器。M1、M0:工作方式。程序講解例4:定時器與計數(shù)器的應(yīng)用GATEM0C/TM1GA132程序講解例4:定時器與計數(shù)器的應(yīng)用M1、M0工作方式的功能M1M0工作方式功能00MODE013位的定時/計數(shù)器01MODE116位的定時/計數(shù)器10MODE28位定時/計數(shù)自動載入11MODE3(TIMER0)TL0為8位定時/計數(shù)器,由T0控制;TH0為另一個8位定時器,由T1控制。11MODE3(TIMER1)定時/計數(shù)器1停止定時/計數(shù)程序講解例4:定時器與計數(shù)器的應(yīng)用M1M0工作方式功133程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器TF1TR1TF0TR0IE1IT1IE0IT0TR0:TIMER0的啟動位,TR0=1時為啟動,TR0=0時停止。TR1:TIMER1的啟動位,TR1=1時為啟動,TR1=0時停止。TF0:TIMER0的溢出標(biāo)志位,當(dāng)TIMER0溢出時,會設(shè)定為1;當(dāng)執(zhí)行中斷子程序時,會清除為0。TF1:TIMER1的溢出標(biāo)志位,當(dāng)TIMER1溢出時,會設(shè)定為1;當(dāng)執(zhí)行中斷子程序時,會清除為0。程序講解例4:定時器與計數(shù)器的應(yīng)用TF1TR1TF0TR0I134程序講解例4:定時器與計數(shù)器的應(yīng)用三、TCON:定時器控制寄存器(1)MODE0模式下的定時器MODE0是一個13位(高8位+低5位)的計算器,其最長的計數(shù)為213=8192個脈沖。若脈沖由內(nèi)部提供(C/T=0)且石英晶體為12MHZ時,進(jìn)入定時器時一個脈沖的時間為1us,其最長計時時間為8192us=8.192ms,最短時間則為1us。程序講解例4:定時器與計數(shù)器的應(yīng)用135程序講解MODE0模式下的定時器結(jié)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論