




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)應(yīng)用技術(shù)第一頁(yè),共八十三頁(yè),2022年,8月28日項(xiàng)目二定制器控制任務(wù)一數(shù)碼顯示
任務(wù)二按鍵識(shí)別
任務(wù)三定時(shí)時(shí)間的設(shè)定
任務(wù)四定時(shí)器
單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第二頁(yè),共八十三頁(yè),2022年,8月28日任務(wù)一數(shù)碼顯示任務(wù)要求本任務(wù)要求應(yīng)用4位數(shù)碼管分別顯示片內(nèi)存儲(chǔ)器30H~33H單元的數(shù)值(假設(shè)存儲(chǔ)單元的內(nèi)容為1~4)。
知識(shí)目標(biāo):(1)認(rèn)識(shí)8段數(shù)碼管的外形和內(nèi)部結(jié)構(gòu)。
(2)知道8段數(shù)碼管的顯示原理。
(3)了解單片機(jī)對(duì)數(shù)碼管的控制方式。
技能目標(biāo):
(1)會(huì)設(shè)計(jì)單片機(jī)與數(shù)碼管靜態(tài)顯示的接口電路和控制程序。
(2)會(huì)設(shè)計(jì)單片機(jī)與數(shù)碼管動(dòng)態(tài)顯示的接口電路和控制程序。單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第三頁(yè),共八十三頁(yè),2022年,8月28日任務(wù)一數(shù)碼顯示知識(shí)鏈接1.數(shù)碼管簡(jiǎn)介(1)數(shù)碼管的結(jié)構(gòu)單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第四頁(yè),共八十三頁(yè),2022年,8月28日(2)數(shù)碼管的顯示原理(共陽(yáng)極數(shù)碼管)字型碼位碼知識(shí)鏈接單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第五頁(yè),共八十三頁(yè),2022年,8月28日(3)數(shù)碼管的字形編碼顯示字形共陽(yáng)極共陰極dpgfedCba段碼dpgfedcba段碼011000000C0H001111113FH111111001F9H0000011006H210100100A4H010110115BH310110000B0H010011114FH41001100199H0110011066H51001001092H011011016DH61000001082H011111017DH711111000F8H0000011107H81000000080H011111117FH91001000090H011011116FHA1000100088H0111011177HB1000001183H011111007CHC11000110C6H0011100139HD10100001A1H010111105EHE1000011086H0111100179HF100011108EH0111000171HP100011008CH0111001173HU11000001C1H001111103EHY1001000191H011011106EH.011111117FH1000000080H滅11111111FFH0000000000H單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第六頁(yè),共八十三頁(yè),2022年,8月28日任務(wù)一數(shù)碼顯示知識(shí)鏈接2.數(shù)碼管顯示方式(1)靜態(tài)顯示靜態(tài)顯示是指數(shù)碼管顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止,顯示字形點(diǎn)亮的各段是持續(xù)點(diǎn)亮的,沒(méi)有閃爍,此時(shí)的顯示亮度主要取決于各段的驅(qū)動(dòng)電流。
例2-1
應(yīng)用單片機(jī)控制2位數(shù)碼管分別顯示“1”和“2”。試設(shè)計(jì)電路并編寫(xiě)程序。單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第七頁(yè),共八十三頁(yè),2022年,8月28日任務(wù)一數(shù)碼管顯示知識(shí)鏈接1)電路設(shè)計(jì)。圖2-274HC245引腳圖表2-274HC245邏輯功能表AB/輸入輸入/輸出AnBnLLA=B輸入LH輸入B=AHX高阻高阻單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第八頁(yè),共八十三頁(yè),2022年,8月28日?qǐng)D2-3兩位數(shù)碼管靜態(tài)顯示電路圖知識(shí)鏈接單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第九頁(yè),共八十三頁(yè),2022年,8月28日2)程序清單(LI2_1.ASM):
ORG0000hJMPSTARTORG0100HSTART:MOVP1,#0F9HMOVP2,#0A4HSJMP$END知識(shí)鏈接單片機(jī)應(yīng)用技術(shù)高職高專(zhuān)ppt課件第十頁(yè),共八十三頁(yè),2022年,8月28日(2)動(dòng)態(tài)顯示方式知識(shí)鏈接選用動(dòng)態(tài)顯示的系統(tǒng)中一般有多位數(shù)碼管,各位數(shù)碼管不是同時(shí)點(diǎn)亮顯示,而是逐位輪流的點(diǎn)亮(也稱(chēng)逐位掃描)。對(duì)每一位數(shù)碼管而言,每隔一段時(shí)間點(diǎn)亮一次,每次點(diǎn)亮一定時(shí)間。這樣,雖然每個(gè)數(shù)碼管都是亮滅變化的,但只要選擇合適的點(diǎn)亮?xí)r間和間隔時(shí)間,由于人的視覺(jué)暫留作用和發(fā)光二極管的余輝效應(yīng),使人肉眼看到的每個(gè)數(shù)碼管都是穩(wěn)定顯示。一位接一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的過(guò)程稱(chēng)為位掃描。第十一頁(yè),共八十三頁(yè),2022年,8月28日3.堆棧指令介紹PUSHdirect;(SP)+1→(SP),(direct)→(SPPOPdirect;(SP)→(direct),(SP)-1→(SP)例2-2
試分析下面指令序列的執(zhí)行結(jié)果。①M(fèi)OVSP,#60H②MOVDPTR,#1234H③PUSHDPL④PUSHDPH指令序列執(zhí)行的最終結(jié)果:(61H)=34H,(62H)=12H,(SP)=62H。知識(shí)鏈接第十二頁(yè),共八十三頁(yè),2022年,8月28日電路設(shè)計(jì)任務(wù)一數(shù)碼管顯示第十三頁(yè),共八十三頁(yè),2022年,8月28日程序設(shè)計(jì)任務(wù)一數(shù)碼管顯示
ORG0000HLJMPMAINORG0100HMAIN:MOV SP,#60H MOVR0,#30H ;設(shè)置顯示數(shù)值30H~34H是1~4 MOVR1,#4 MOVA,#01HLOOP1:MOV@R0,AINCAINCR0 DJNZR1,LOOP1LOOP: MOV R3,#4 ;共4位數(shù)碼管動(dòng)態(tài)顯示
ACALLDISPLAY AJMPLOOP第十四頁(yè),共八十三頁(yè),2022年,8月28日程序設(shè)計(jì)MOVA,@R0 MOVCA,@A+DPTR MOVP0,A SETBP2.0 CLR P2.0 ;查表求段碼并鎖存輸出
MOVA,R2 ;位碼左移,準(zhǔn)備點(diǎn)亮下一個(gè)數(shù)碼管
RLA MOVR2,A INCR0 ACALLDELAY MOVP0,#0FFH ;關(guān)顯示
SETB P2.0 CLRP2.0 DJNZR3,DIS1 ;循環(huán)點(diǎn)亮下一個(gè)數(shù)碼管POPACCRET;數(shù)碼管動(dòng)態(tài)顯示子程序;R3是入口參數(shù),存放顯示位數(shù)DISPLAY:PUSHACC CLRP3.6SETBP2.7 MOVR2,#0FEH;R2單元存放位碼值
MOVR0,#30H;30H單元存放顯示數(shù)值
MOVDPTR,#SEGADIS1:MOVA,R2MOVP0,A SETBP2.1 CLRP2.1;鎖存輸出位碼
第十五頁(yè),共八十三頁(yè),2022年,8月28日;延時(shí)1ms子程序DELAY:MOVR7,#02HD1EL2:MOV R6,#70HD1EL1:DJNZ R6,D1EL1DJNZR7,D1EL2RET;共陽(yáng)極數(shù)碼管段碼表SEGA:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND程序設(shè)計(jì)任務(wù)一數(shù)碼管顯示第十六頁(yè),共八十三頁(yè),2022年,8月28日1.技能訓(xùn)練(1)在學(xué)習(xí)板上實(shí)現(xiàn)一個(gè)數(shù)碼管靜態(tài)顯示字形“3”。(2)在學(xué)習(xí)板上實(shí)現(xiàn)8個(gè)數(shù)碼管分別顯示數(shù)字1~8。(3)增加任務(wù)中的延時(shí)時(shí)間,觀察數(shù)碼管的顯示情況。2.知識(shí)思考(1)什么是數(shù)碼管的靜態(tài)顯示?(2)簡(jiǎn)述數(shù)碼管動(dòng)態(tài)顯示過(guò)程。(3)什么情況下數(shù)據(jù)需要保護(hù)?本任務(wù)程序中可以將“PUSH”和“POP”兩條指令去掉嗎?拓展訓(xùn)練任務(wù)一數(shù)碼管顯示第十七頁(yè),共八十三頁(yè),2022年,8月28日任務(wù)二按鍵識(shí)別任務(wù)要求選用4個(gè)按鍵,編號(hào)分別是“1~4”,當(dāng)某個(gè)鍵按下后,應(yīng)用數(shù)碼管顯示按鍵編號(hào)。知識(shí)目標(biāo):(1)看懂單片機(jī)和獨(dú)立式按鍵的接口電路。(2)了解獨(dú)立式按鍵的工作原理。(3)掌握按鍵消抖的方法。(4)看懂單片機(jī)和矩陣式按鍵的接口電路。(5)了解矩陣式按鍵的工作原理。技能目標(biāo):(1)會(huì)設(shè)計(jì)單片機(jī)與數(shù)碼管靜態(tài)顯示的接口電路和控制程序。
(2)會(huì)設(shè)計(jì)單片機(jī)與數(shù)碼管動(dòng)態(tài)顯示的接口電路和控制程序。(3)知道矩陣式按鍵的識(shí)別及控制方法。第十八頁(yè),共八十三頁(yè),2022年,8月28日知識(shí)鏈接任務(wù)二按鍵識(shí)別1.按鍵的分類(lèi)根據(jù)結(jié)構(gòu),按鍵可分為兩類(lèi)觸點(diǎn)式開(kāi)關(guān)按鍵無(wú)觸點(diǎn)式開(kāi)關(guān)按鍵根據(jù)接口原理按鍵可分為兩類(lèi)編碼鍵盤(pán)非編碼鍵盤(pán)第十九頁(yè),共八十三頁(yè),2022年,8月28日2.單片機(jī)對(duì)鍵盤(pán)的控制方式知識(shí)鏈接(1)查詢(xún)方式:指在程序中用一段專(zhuān)門(mén)的掃描和讀按鍵程序不停查詢(xún)有無(wú)按鍵按下,確定鍵值。特點(diǎn):電路簡(jiǎn)單,但需要占用單片機(jī)的機(jī)器時(shí)間。(2)定時(shí)掃描方式:指利用單片機(jī)內(nèi)的定時(shí)器來(lái)產(chǎn)生定時(shí)中斷,然后在定時(shí)中斷的服務(wù)程序中掃描,檢查有無(wú)按鍵按下,確定鍵值。特點(diǎn):電路也比較簡(jiǎn)單,不占用單片機(jī)的機(jī)器時(shí)間,但需要占應(yīng)用定時(shí)器,同時(shí)定時(shí)的時(shí)間不能過(guò)長(zhǎng),否則可能檢測(cè)不到相應(yīng)得按鍵。(3)中斷掃描方式:指當(dāng)有鍵按下時(shí)由相應(yīng)的硬件電路產(chǎn)生中斷信號(hào),單片機(jī)在中斷服務(wù)程序中掃描,檢查有無(wú)按鍵按下,確定鍵值。 特點(diǎn):硬件電路上必須要產(chǎn)生中斷線(xiàn),需要與門(mén)和非門(mén)來(lái)產(chǎn)生。但中斷方式不占用單片機(jī)的機(jī)器時(shí)間,也不會(huì)出現(xiàn)定時(shí)方式時(shí)的檢測(cè)不到鍵盤(pán)的情況。第二十頁(yè),共八十三頁(yè),2022年,8月28日3.鍵盤(pán)接口問(wèn)題:由于機(jī)械觸點(diǎn)的彈性作用,觸點(diǎn)在閉合和斷開(kāi)瞬間的電接觸情況不穩(wěn)定,造成了電壓信號(hào)的抖動(dòng)現(xiàn)象。抖動(dòng)時(shí)間:一般為1~10ms(如圖2-5所示)。后果:會(huì)引起單片機(jī)對(duì)于一次鍵操作進(jìn)行多次處理,因此必須設(shè)法消除抖動(dòng)現(xiàn)象。
措施:軟件消抖、硬件消抖抖動(dòng)時(shí)間<10ms開(kāi)關(guān)動(dòng)作時(shí)間>100ms“1”“0”<10ms按下抖動(dòng)閉合穩(wěn)態(tài)釋放抖動(dòng)第二十一頁(yè),共八十三頁(yè),2022年,8月28日軟件消抖
;延時(shí)10ms子程序DELAY10:MOV R7,#20 ;1μsD10EL0:MOV R6,#255 ;1μsD10EL1:DJNZ R6,D10EL1 ;2μs,執(zhí)行255次
DJNZ R7,D10EL0 ;2μs,循環(huán)執(zhí)行20次
RET ;2μs延時(shí)時(shí)間計(jì)算:1+[1+2×255+2]×20+2=10263≈10000μs=10ms。(2)硬件消抖圖2-6硬件消抖電路第二十二頁(yè),共八十三頁(yè),2022年,8月28日4.獨(dú)立式按鍵獨(dú)立式按鍵結(jié)構(gòu)圖2-7獨(dú)立式與單片機(jī)接口電路圖第二十三頁(yè),共八十三頁(yè),2022年,8月28日;查詢(xún)方式掃描一次鍵盤(pán)的程序
JPDL:MOVA,#0FFHMOVP1,A;置P1口為輸入狀態(tài)JPDL0:MOVA,P1;鍵狀態(tài)輸入
JNBACC.0,JPDL1;檢測(cè)0號(hào)鍵是否按下,按下轉(zhuǎn)
JNBACC.1,JPDL2;檢測(cè)1號(hào)鍵是否按下,按下轉(zhuǎn)
JNBACC.2,JPDL3;檢測(cè)2號(hào)鍵是否按下,按下轉(zhuǎn)
JNBACC.3,JPDL4;檢測(cè)3號(hào)鍵是否按下,按下轉(zhuǎn)
RET;無(wú)鍵按下返回JPDL1:ACALL PS1;PS4分別為每個(gè)按鍵的功能子程序
RETJPDL2:ACALL PS2RETJPDL3:ACALL PS3RETJPDL4:ACALL PS4RET
第二十四頁(yè),共八十三頁(yè),2022年,8月28日5.矩陣式鍵盤(pán)矩陣式鍵盤(pán)的結(jié)構(gòu)及原理圖2-8矩陣鍵盤(pán)結(jié)構(gòu)圖第二十五頁(yè),共八十三頁(yè),2022年,8月28日(2)矩陣式鍵盤(pán)按鍵的識(shí)別以8號(hào)鍵的識(shí)別為例來(lái)說(shuō)明掃描法識(shí)別按鍵的過(guò)程:按鍵按下時(shí),與此按鍵相連的行線(xiàn)與列線(xiàn)短路導(dǎo)通,行線(xiàn)在無(wú)按鍵按下時(shí)處于高電平。顯然,如果讓所有的列線(xiàn)也處在高電平,那么,按鍵按下與否不會(huì)引起行線(xiàn)電平的變化,因此必須使所有列線(xiàn)處在低電平。只有這樣,當(dāng)有按鍵按下時(shí),該按鍵所在的行電平才會(huì)由高電平變?yōu)榈碗娖?。CPU根據(jù)行電平的變化,就能判定相應(yīng)的行有鍵按下。8號(hào)鍵按下時(shí),第3行一定為低電平。然而第3行為低電平時(shí),能否肯定是8號(hào)鍵按下呢?回答是否定的,因?yàn)?、10、11號(hào)鍵按下,同樣會(huì)使第3行為低電平。為進(jìn)一步確定具體鍵,不能使所有列線(xiàn)在同一時(shí)刻處于低電平,可在某一時(shí)刻只讓一條列線(xiàn)處于低電平,其余列線(xiàn)均處于高電平,另一時(shí)刻,讓下一列處在低電平,依次循環(huán),這種依次輪流每次選通一列的工作方式稱(chēng)為鍵盤(pán)掃描。第二十六頁(yè),共八十三頁(yè),2022年,8月28日(3)鍵盤(pán)的編碼對(duì)于矩陣式鍵盤(pán),按鍵的位置由行號(hào)和列號(hào)惟一確定,因此可分別對(duì)行號(hào)和列號(hào)進(jìn)行二進(jìn)制編碼,然后將兩值合成一個(gè)字節(jié),高4位是行號(hào),低4位是列號(hào)。如圖2-8中的8號(hào)鍵,它位于第3行,第0列,因此,其鍵盤(pán)編碼應(yīng)為30H。采用上述編碼對(duì)于不同行的鍵離散性較大,不利于散轉(zhuǎn)指令對(duì)按鍵進(jìn)行處理。因此,可采用依次排列鍵號(hào)的方式對(duì)按鍵進(jìn)行編碼。以圖2-8中的4×4鍵盤(pán)為例,可將鍵號(hào)編碼為:01H、02H、03H、…、0EH、0FH、10H等16個(gè)鍵號(hào)。編碼的相互轉(zhuǎn)換可通過(guò)計(jì)算或查表的方法實(shí)現(xiàn)。第二十七頁(yè),共八十三頁(yè),2022年,8月28日6.鍵盤(pán)掃描程序鍵盤(pán)掃描程序一般應(yīng)包括以下內(nèi)容。_判別有無(wú)按鍵按下。_鍵盤(pán)掃描取得閉合鍵的行、列值。_用計(jì)算法或查表法得到鍵值。_判斷閉合鍵是否釋放,如沒(méi)釋放則繼續(xù)等待。_將閉合鍵鍵號(hào)保存,同時(shí)轉(zhuǎn)去執(zhí)行該閉合鍵的功能。第二十八頁(yè),共八十三頁(yè),2022年,8月28日7.指令介紹(1)CJNE指令。指令格式是:CJNE目的,源,rel,共有4條:CJNEA,#data,rel;(A)與data比較,如果A=data,則順序執(zhí)行,否則轉(zhuǎn)移CJNEA,direct,rel;(A)與(direct)比較,若相等則順序執(zhí)行,否則轉(zhuǎn)移CJNERn,#data,rel;(Rn)與data比較,若相等則順序執(zhí)行,否則轉(zhuǎn)移CJNE@Ri,#data,rel;((Ri))與data比較,若相等則順序執(zhí)行,否則轉(zhuǎn)移圖2-9CJNE操作示意圖第二十九頁(yè),共八十三頁(yè),2022年,8月28日例2-3
將內(nèi)部RAM的一個(gè)數(shù)據(jù)塊(首址為DATA1)傳送到內(nèi)部數(shù)據(jù)RAM(首址為DATA2),遇到傳送的數(shù)據(jù)為00H時(shí)停止。程序清單:MOVR1,#DATA1;設(shè)置數(shù)據(jù)指針
MOVR0,#DPTA2;設(shè)置數(shù)據(jù)指針
LP1:MOVA,@R1;讀數(shù)據(jù)
CJNEA,#00H,LP2;(A)≠00H,則轉(zhuǎn)移
RET;(A)=00H,結(jié)束傳送
LP2:MOV@R0,A;送數(shù)到內(nèi)部RAMINCR0;修改指針
INCR1;修改指針
SJMPLP1;繼續(xù)傳送第三十頁(yè),共八十三頁(yè),2022年,8月28日(2)累加器A判零指令,有兩條:
JZrel;若(A)=0,則轉(zhuǎn)移,否則順序向下執(zhí)行
JNZrel;若(A)≠0,則轉(zhuǎn)移,否則順序向下執(zhí)行在例2-3中,如果利用“JZ”指令的程序如下:
MOVR1,#DATA1;設(shè)置數(shù)據(jù)指針
MOVR0,#DATA2;設(shè)置數(shù)據(jù)指針LP1:MOVA,@R1;讀數(shù)據(jù)
JZLP2;判斷傳送數(shù)據(jù)是否為00H,是則轉(zhuǎn)移
MOV@R0,A;數(shù)據(jù)不為00H,送內(nèi)部RAMINCR0;修改地址指針
INCR1;修改外部RAM地址指針
SJMPLP1;繼續(xù)傳送LP2:
RET;結(jié)束傳送,返回主程序第三十一頁(yè),共八十三頁(yè),2022年,8月28日電路設(shè)計(jì)任務(wù)二
鍵盤(pán)識(shí)別本任務(wù)硬件主要由單片機(jī)、鍵盤(pán)、顯示數(shù)碼管組成。鍵盤(pán)選擇4個(gè)按鍵,采用獨(dú)立鍵盤(pán)控制,電路如圖2-7所示,其編號(hào)分別是“1~4”。鍵值顯示電路如圖2-4所示,但只選用其中一個(gè)數(shù)碼管靜態(tài)顯示。第三十二頁(yè),共八十三頁(yè),2022年,8月28日程序設(shè)計(jì)任務(wù)二鍵盤(pán)識(shí)別
ORG0000HAJMPSTARTORG0100HSTART:CLRP2.0CLRP3.6 SETBP2.7MOVP0,#0FEH;輸出數(shù)碼管公共端信號(hào)
SETBP2.1;開(kāi)通U14 CLRP2.1;鎖存U14LOOP:ACALL DLJP AJMP LOOP;獨(dú)立按鍵識(shí)別子程序DLJP:MOVP1,#0FFH MOVA,P1;讀鍵盤(pán)狀態(tài)
CJNEA,#0FH,XDOU;有鍵按下消抖處理DLJPR:RET;無(wú)鍵按下則再讀鍵盤(pán)狀態(tài)第三十三頁(yè),共八十三頁(yè),2022年,8月28日程序設(shè)計(jì)XDOU:MOV40H,A;把讀的鍵盤(pán)狀態(tài)放在40H的地址
ACALLDELAY10;延時(shí)
MOVA,P1;再讀鍵盤(pán)狀態(tài)
CJNEA,40H,DLJPR;比較兩次讀鍵盤(pán)狀態(tài),如不同則返回
JBACC.0,SS2;S1鍵未按下,轉(zhuǎn)SS2ACALLPS1;1號(hào)鍵按下,顯示1AJMPDLJPRSS2:JBACC.1,SS3;S2鍵未按下,轉(zhuǎn)SS3 ACALLPS2;2號(hào)鍵按下,顯示2 AJMPDLJPRSS3:JBACC.2,SS4;S3鍵未按下,轉(zhuǎn)SS4 ACALLPS3;3號(hào)鍵按下,顯示3 AJMPDLJPRSS4:JBACC.3,DLJPR;S4鍵未按下,讀鍵盤(pán)
ACALLPS4;4號(hào)鍵按下,顯示4AJMPDLJPR第三十四頁(yè),共八十三頁(yè),2022年,8月28日程序設(shè)計(jì)PS1:MOVP0,#0F9H;1號(hào)鍵鍵處理子程序SETB P2.0 CLR P2.0 RET;1號(hào)鍵按下,顯示1PS2: MOVP0,#0A4H;2號(hào)鍵鍵處理子程序 SETB P2.0 CLR P2.0 RET;2號(hào)鍵按下,顯示2PS3: MOVP0,#0B0H;3號(hào)鍵鍵處理子程序 SETB P2.0 CLR P2.0 RET;3號(hào)鍵按下,顯示3PS4: MOVP0,#99H;4號(hào)鍵鍵處理子程序 SETB P2.0 CLR P2.0 RET;4號(hào)鍵按下,顯示4第三十五頁(yè),共八十三頁(yè),2022年,8月28日1.技能訓(xùn)練(1)應(yīng)用PROTEUS仿真矩陣鍵盤(pán)的鍵值顯示。(2)應(yīng)用學(xué)習(xí)板完成按鍵S1每按下一次,數(shù)碼管顯示值加一的功能(復(fù)位后數(shù)碼管顯示0)。(3)畫(huà)出本任務(wù)完整電路圖。2.知識(shí)思考(1)獨(dú)立式鍵盤(pán)的工作原理是什么?(2)說(shuō)明矩陣鍵盤(pán)的按鍵識(shí)別過(guò)程。(3)鍵盤(pán)消抖的方法有哪些?拓展訓(xùn)練任務(wù)三
定時(shí)時(shí)間的設(shè)定第三十六頁(yè),共八十三頁(yè),2022年,8月28日任務(wù)三定時(shí)時(shí)間的設(shè)定任務(wù)要求本任務(wù)要求應(yīng)用獨(dú)立式按鍵,使用3個(gè)按鍵,S1為定時(shí)時(shí)間加1鍵,S2為減1鍵,S3定時(shí)時(shí)間清零鍵。要求定時(shí)時(shí)間范圍0~99秒,定時(shí)時(shí)間的設(shè)定值應(yīng)用兩位數(shù)碼管顯示。
知識(shí)目標(biāo):(1)進(jìn)一步理解獨(dú)立按鍵工作原理。(2)理解邏輯運(yùn)算指令和數(shù)據(jù)交換指令。技能目標(biāo):(1)會(huì)應(yīng)用按鍵設(shè)定定時(shí)時(shí)間。(2)會(huì)編寫(xiě)16進(jìn)制數(shù)轉(zhuǎn)換為10進(jìn)制數(shù)程序。(3)會(huì)應(yīng)用邏輯運(yùn)算指令和數(shù)據(jù)交換指令。(4)會(huì)設(shè)計(jì)碼型轉(zhuǎn)換程序
第三十七頁(yè),共八十三頁(yè),2022年,8月28日知識(shí)連接邏輯操作指令(1)邏輯與操作指令(6條)ANLA,direct;對(duì)A中的內(nèi)容和直接尋址單元中的內(nèi)容執(zhí)行與操作,結(jié)果存到A中ANLA,#data;對(duì)A中的內(nèi)容和立即數(shù)執(zhí)行與操作,結(jié)果存到A中ANLA,Rn;對(duì)A中的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行與操作,結(jié)果存到A中ANLA,@Ri;對(duì)A中的內(nèi)容和工作寄存器Ri所指的地址單元中的內(nèi)容執(zhí)行與操作,結(jié)果存到A中ANLdirect,A;對(duì)直接尋址單元中的內(nèi)容和A中的內(nèi)容執(zhí)行與操作,結(jié)果存到直接尋址單元中ANLdirect,#data;對(duì)直接尋址單元中的內(nèi)容和立即數(shù)執(zhí)行與操作,結(jié)果存到直接尋址單元中第三十八頁(yè),共八十三頁(yè),2022年,8月28日(2)邏輯或操作指令(6條)ORLA,direct;對(duì)A中的內(nèi)容和直接尋址單元中的內(nèi)容執(zhí)行或操作,結(jié)果存到A中ORLdirect,#data;對(duì)直接尋址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作,結(jié)果存在直接尋址單元中ORLA,#data;對(duì)A中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作,結(jié)果存在A中ORLA,Rn;對(duì)A中的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯或操作,結(jié)果存到A中ORLdirect,A;對(duì)直接尋址單元中的內(nèi)容和A中的內(nèi)容執(zhí)行邏輯或操作,結(jié)果存在直接尋址單元中ORLA,@Ri;對(duì)A中的內(nèi)容和工作寄存器Ri所指的地址單元中的內(nèi)容執(zhí)行或操作,結(jié)果存在A中知識(shí)連接第三十九頁(yè),共八十三頁(yè),2022年,8月28日(3)邏輯異或操作指令(6條)XRLA,direct;對(duì)A中的內(nèi)容和直接尋址單元中的內(nèi)容執(zhí)行異或操作,結(jié)果存在A中XRLdirect,#data;對(duì)直接尋址單元中的內(nèi)容和立即數(shù)執(zhí)行異或操作,結(jié)果存在直接尋址單元中XRLA,#data;對(duì)A中的內(nèi)容和立即數(shù)執(zhí)行異或操作,結(jié)果存在A中XRLA,Rn;對(duì)A中的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行異或操作,結(jié)果存在A中XRLdirect,A;對(duì)直接尋址單元中的內(nèi)容和A中的內(nèi)容執(zhí)行異或操作,結(jié)果存在直接尋址單元中XRLA,@Ri;對(duì)A中的內(nèi)容和工作寄存器Ri所指的地址單元中的內(nèi)容執(zhí)行異或操作,結(jié)果存在A中知識(shí)連接第四十頁(yè),共八十三頁(yè),2022年,8月28日2.交換指令(5條)XCHA,Rn
;(A)←→(Rn),累加器與工作寄存器Rn中的內(nèi)容互換XCHA,direct
;(A)←→(direct),累加器與直接尋址單元中的內(nèi)容互換XCHA,@Ri
;(A)←→((Ri)),累加器與工作寄存器Ri所指存儲(chǔ)單元中的內(nèi)容互換XCHDA,@Ri
;(A3-0)←→((Ri)3-0),累加器與工作寄存器Ri所指存儲(chǔ)單元中內(nèi)容的低半字節(jié)互換SWAPA
;(A3-0)←→(A7-4),累加器中內(nèi)容的高、低半字節(jié)互換知識(shí)連接第四十一頁(yè),共八十三頁(yè),2022年,8月28日例2-4
拆字程序,把R7的內(nèi)容拆開(kāi),高4位送到片內(nèi)RAM的30H單元中,低4位送到31H中。程序如下:MAIN:MOVA,R7ANLA,#0F0H;屏蔽高位SWAPA;交換A中高低位的內(nèi)容MOV30H,A;R7的高4位送到30H中MOVA,R7;再讀入R8中的內(nèi)容ANLA,#0FH;屏蔽高位MOV31H,A;R7的低4位送到31HSJMP$知識(shí)連接第四十二頁(yè),共八十三頁(yè),2022年,8月28日3.乘除法指令MULAB;(A)×(B)→(A)和(B),將累加器A中的內(nèi)容與寄存器B中的內(nèi)容相乘,結(jié)果的低8位存在累加器A中,高8位存在寄存器B中DIVAB;(A)/(B)→(A)和(B),將累加器A中的內(nèi)容除以寄存器B中的內(nèi)容,所得商存在累加器A中,余數(shù)存在寄存器B中。例如,若(A)=FBH(251),(B)=12H(18),執(zhí)行指令“DIVAB”后,(A)=0DH(13),(B)=11H(17),(OV)=0,(CY)=0。知識(shí)連接第四十三頁(yè),共八十三頁(yè),2022年,8月28日4.碼型的轉(zhuǎn)換16進(jìn)制與ASCII的轉(zhuǎn)換表2-3十六進(jìn)制與ASCII碼的對(duì)應(yīng)關(guān)系表十六進(jìn)制數(shù)ASCII碼十六進(jìn)制數(shù)ASCII碼十六進(jìn)制數(shù)ASCII碼十六進(jìn)制數(shù)ASCII碼030H434H838HC43H131H535H939HD44H232H636HA41HE45H333H737HB42HF46H知識(shí)連接第四十四頁(yè),共八十三頁(yè),2022年,8月28日例2-5
將1位十六進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的ASCII碼。設(shè)該十六進(jìn)制數(shù)存放于累加器A中,轉(zhuǎn)換后的ASCII碼存放于R1中。一位十六進(jìn)制只占累加器A的低四位,轉(zhuǎn)換前應(yīng)先屏蔽掉沒(méi)用的高4位,然后判斷其是否小于A,判斷方法是將其與A相減,看是否有借位。有借位說(shuō)明小于A,ASCII碼是將其加30H,否則將其加37H。程序清單(LI2_7.ASM)如下:HTOASC:ANL A,#0FH ;屏蔽高四位MOV R5,A ;暫存R5中CLR C ;清借位位SUBB A,#0AH ;判斷十六進(jìn)制數(shù)的大小MOV A,R5 ;取回原十六進(jìn)制數(shù)JC XYA ;有借位,轉(zhuǎn)至XYAADD A,#37H ;大于A,加37HSJMP ABCXYA:ADD A,#30H ;小于A,加30HABC:MOV R1,A RET第四十五頁(yè),共八十三頁(yè),2022年,8月28日(2)BCD碼(十進(jìn)制數(shù)的二進(jìn)制編碼)表2-48421BCD碼編碼表十進(jìn)制數(shù)8421碼十進(jìn)制數(shù)8421碼00000B50101B10001B60110B20010B70111B30011B81000B40100B91001BBCD碼是一種具有十進(jìn)制權(quán)的二進(jìn)制編碼。BCD碼種類(lèi)較多,常用的是8421碼。8421碼是一種采用4位二進(jìn)制數(shù)來(lái)代表一位十進(jìn)制數(shù)的代碼系統(tǒng)。在這個(gè)代碼系統(tǒng)中,十組4位二進(jìn)制數(shù)分別代表了0~9中的十個(gè)數(shù)字符號(hào)。知識(shí)連接第四十六頁(yè),共八十三頁(yè),2022年,8月28日
(3)十六進(jìn)制數(shù)轉(zhuǎn)換成BCD碼格式的十進(jìn)制數(shù)
例2-6
將兩位十六進(jìn)制數(shù)轉(zhuǎn)換成兩位BCD碼(設(shè)數(shù)值范圍是0~99)。0~99范圍的十六進(jìn)制數(shù)占一個(gè)字節(jié)單元,假設(shè)存放于片內(nèi)RAM的34H單元中,將該16進(jìn)制數(shù)除10,得到的商是BCD碼的十位,存放到R4中,得到的余數(shù)是BCD碼的個(gè)位,存放到R5中。程序清單(LI2_8.ASM)如下:MOVA,34HHTOBCD:MOV B,#10;16進(jìn)制轉(zhuǎn)換10進(jìn)制子程序 DIV ABMOV R4,AMOV R5,BRET知識(shí)連接第四十七頁(yè),共八十三頁(yè),2022年,8月28日電路設(shè)計(jì)實(shí)現(xiàn)本任務(wù)功能的電路主要包括兩部分電路(1)4個(gè)獨(dú)立式按鍵,它們與單片機(jī)的接口電路如圖2-7所示;(2)數(shù)碼管顯示電路,電路參考圖2-4,該秒表的時(shí)間設(shè)定范圍是0~99秒,選用低位兩個(gè)數(shù)碼管顯示設(shè)定的秒值即可。任務(wù)三定時(shí)時(shí)間的設(shè)定第四十八頁(yè),共八十三頁(yè),2022年,8月28日程序設(shè)計(jì)程序清單(A2_3.ASM)
ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOV30H,#00HMOV32H,#00HMOV34H,#00HLOOP1:MOVR3,#2ACALLDISPLAY;動(dòng)態(tài)顯示子程序,參考A2_1.ASM ACALLDLJP;獨(dú)立按鍵掃描子程序,參考A2_2.ASM SJMPLOOP1任務(wù)三定時(shí)時(shí)間的設(shè)定第四十九頁(yè),共八十三頁(yè),2022年,8月28日PS1:INC34H;S1按鍵處理子程序,單擊S1鍵定時(shí)時(shí)間加1MOVA,34HCJNEA,#100,PS11 MOV34H,#00H MOVA,34HPS11:ACALLHTOBCD;將定時(shí)時(shí)間轉(zhuǎn)換十進(jìn)制
MOV30H,R4 ;將定時(shí)時(shí)間送顯示單元
MOV31H,R5RETPS2:DEC34H;S2按鍵處理子程序;單擊S1鍵定時(shí)時(shí)間減1MOVA,34HCJNEA,#0FFH,PS21 MOV34H,#99 MOVA,34HPS21:ACALLHTOBCD;將定時(shí)時(shí)間轉(zhuǎn)換十進(jìn)制
MOV30H,R4 ;將定時(shí)時(shí)間送顯示單元
MOV31H,R5RET第五十頁(yè),共八十三頁(yè),2022年,8月28日程序設(shè)計(jì);S3按鍵處理子程序PS3:MOV34H,#0 ;單擊S3鍵,定時(shí)時(shí)間清零 MOVA,34HPS21:ACALLHTOBCD;將定時(shí)時(shí)間轉(zhuǎn)換十進(jìn)制
MOV30H,R4 ;將定時(shí)時(shí)間送顯示單元
MOV31H,R5RET;S4按鍵處理子程序PS4:RET ;單擊S4鍵,直接返回 END任務(wù)三定時(shí)時(shí)間的設(shè)定第五十一頁(yè),共八十三頁(yè),2022年,8月28日拓展訓(xùn)練1.技能訓(xùn)練(1)寫(xiě)出本任務(wù)完整程序清單。(2)將累加器A中的8位二進(jìn)制數(shù)轉(zhuǎn)換成3位BCD碼格式的十進(jìn)制數(shù)。2.知識(shí)思考(1)執(zhí)行下列指令序列后,相關(guān)寄存器、存儲(chǔ)單元及標(biāo)志如何變化?
2)MOVA,#89HMOV32H,#98HORL32H,A4)MOVA,#89H SWAPARLCA(討論C的內(nèi)容)1)MOVA,#98HMOVR4,#11HANLA,R43)CLRACPLAXRLA,#77H任務(wù)三定時(shí)時(shí)間的設(shè)定第五十二頁(yè),共八十三頁(yè),2022年,8月28日(2)已知(A)=7AH和(CY)=1,試指出執(zhí)行下列程序后的最終結(jié)果。
1)MOVA,#0FH2)MOVA,#0BBHCPLACPLAMOV30H,#00HRRAORL30H,#0ABHMOV40H,#AAHRLAORLA,40H3)ANLA,#0FFH4)ORLA,#0FHMOV30H,ASWAPAXRLA,30HRRCARLCAXRLA,#0FHSWAPAANLA,#0F0H(4)什么是BCD碼?拓展訓(xùn)練任務(wù)三定時(shí)時(shí)間的設(shè)定第五十三頁(yè),共八十三頁(yè),2022年,8月28日任務(wù)四定時(shí)器任務(wù)要求本任務(wù)要實(shí)現(xiàn)定時(shí)器功能,定時(shí)范圍0~99秒,4位數(shù)字顯示,顯示精度0.01秒。4個(gè)按鍵實(shí)現(xiàn)定時(shí)器的控制,單擊S1鍵定時(shí)時(shí)間加1,單擊S2鍵定時(shí)時(shí)間減1,單擊S3鍵定時(shí)時(shí)間清零,S4是重新定時(shí)按鍵。數(shù)碼管進(jìn)行計(jì)時(shí)顯示和設(shè)定時(shí)間的顯示,當(dāng)定時(shí)時(shí)間到,聲音提示。知識(shí)目標(biāo):(1)熟悉中斷系統(tǒng)結(jié)構(gòu)和中斷處理過(guò)程。(2)掌握定時(shí)計(jì)數(shù)器的工作原理。(3)明白定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)。技能目標(biāo):(1)會(huì)設(shè)置定時(shí)/計(jì)數(shù)器的工作方式。(2)會(huì)計(jì)算定時(shí)初值。(3)會(huì)對(duì)定時(shí)計(jì)數(shù)器初始化。(4)會(huì)編寫(xiě)定時(shí)/計(jì)數(shù)器相關(guān)程序。第五十四頁(yè),共八十三頁(yè),2022年,8月28日知識(shí)連接中斷的基本概念CPU正在處理某一事件A時(shí),事件B請(qǐng)求CPU迅速去處理(中斷請(qǐng)求或中斷申請(qǐng));CPU暫停事件A的處理,轉(zhuǎn)去處理事件B(中斷響應(yīng));事件B處理結(jié)束后,CPU又回到事件A暫停的地方繼續(xù)處理事件A(中斷返回),這一過(guò)程稱(chēng)為中斷。中斷源:事件B是引起CPU中斷的根源。斷點(diǎn):事件A被暫停的地方。中斷服務(wù)處理:事件B的過(guò)程,也稱(chēng)為中斷處理。中斷服務(wù)程序:CPU處理事件B需要執(zhí)行的程序。中斷系統(tǒng):實(shí)現(xiàn)中斷的所有部件。任務(wù)四定時(shí)器第五十五頁(yè),共八十三頁(yè),2022年,8月28日2.89C51單片機(jī)的中斷系統(tǒng)(1)89C51單片機(jī)中斷系統(tǒng)的結(jié)構(gòu)圖2-10單片機(jī)中斷系統(tǒng)的結(jié)構(gòu)知識(shí)連接第五十六頁(yè),共八十三頁(yè),2022年,8月28日(2)中斷源及中斷請(qǐng)求標(biāo)志1)INT0-外部中斷請(qǐng)求0,中斷請(qǐng)求標(biāo)志為IE0。該中斷源的中斷請(qǐng)求信號(hào)由INT0(P3.2)引腳輸入,有效信號(hào)通過(guò)硬件自動(dòng)置位IE0=1,請(qǐng)求中斷。2)INT1-外部中斷請(qǐng)求1,中斷請(qǐng)求標(biāo)志為IE1。該中斷源的中斷請(qǐng)求信號(hào)由INT1(P3.3)引腳輸入,有效信號(hào)通過(guò)硬件自動(dòng)置位IE1=1,請(qǐng)求中斷。TCON的格式如下:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H說(shuō)明:外部中斷源有兩種請(qǐng)求觸發(fā)方式,低電平觸發(fā)和下降沿觸發(fā),具體選擇那種方式要通過(guò)TCON的IT0和IT1進(jìn)行設(shè)置。IT0:外部中斷請(qǐng)求INT0的觸發(fā)方式設(shè)置位。IT0可由軟件置“1”或清“0”。當(dāng)IT0為0時(shí),選擇為電平觸發(fā)方式,INT0低電平有效。ITl:外部中斷請(qǐng)求INT1的觸發(fā)方式設(shè)置位,意義和IT0類(lèi)似。第五十七頁(yè),共八十三頁(yè),2022年,8月28日3)定時(shí)器/計(jì)數(shù)器T0,中斷請(qǐng)求標(biāo)志為T(mén)F0。片內(nèi)計(jì)數(shù)器T0計(jì)數(shù)滿(mǎn)溢出,自動(dòng)置位TF0=1,產(chǎn)生中斷請(qǐng)求。CPU響應(yīng)中斷后,標(biāo)志位TF0自動(dòng)清零。4)定時(shí)器/計(jì)數(shù)器T1,中斷請(qǐng)求標(biāo)志為T(mén)F1。片內(nèi)計(jì)數(shù)器T1計(jì)數(shù)滿(mǎn)溢出,自動(dòng)置位TF1=1,產(chǎn)生中斷請(qǐng)求。CPU響應(yīng)中斷后,標(biāo)志位TF0自動(dòng)清零。知識(shí)連接第五十八頁(yè),共八十三頁(yè),2022年,8月28日5)串行口,該中斷源有兩個(gè)中斷請(qǐng)求標(biāo)志位,RI(串行口控制寄存器SCON的D0位)和TI(串行口控制寄存器SCON的D1位)。當(dāng)串行接口接收完一楨串行數(shù)據(jù)時(shí),置位RI=1,產(chǎn)生接收中斷請(qǐng)求;當(dāng)串行接口發(fā)送完一楨串行數(shù)據(jù)時(shí),置位TI=1,產(chǎn)生發(fā)送中斷請(qǐng)求。CPU響應(yīng)中斷后,標(biāo)志位RI和TI都不能自動(dòng)清零,必須在中斷服務(wù)程序中通過(guò)軟件清零。SCON的格式如下:位D7D6D5D4D3D2D1D0SCON
TIRI位地址99H98H知識(shí)連接第五十九頁(yè),共八十三頁(yè),2022年,8月28日IE的格式如下:位D7D6D5D4D3D2D1D0IEEA--ESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H中斷允許寄存器IE各位的功能如下:EA:中斷允許總控制位。EA=0,CPU屏蔽所有中斷請(qǐng)求;EA=1,CPU開(kāi)放所有中斷。ES:串行口中斷允許位。ET1:T1的溢出中斷允許位。EX1:外部中斷1中斷允許位。ET0:T0的溢出中斷允許位。EX0:中斷0中斷允許位。Ei=1,允許中斷;Ei=0,禁止中斷。第六十頁(yè),共八十三頁(yè),2022年,8月28日(3)中斷優(yōu)先級(jí)寄存器IPIP的格式如下:位D7D6D5D4D3D2D1D0IP---PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8HPS串行口中斷優(yōu)先級(jí)控制位。PT1定時(shí)/計(jì)數(shù)器T1中斷優(yōu)先級(jí)控制位。PX1外部中斷1中斷優(yōu)先級(jí)控制位。PT0定時(shí)器T0中斷優(yōu)先級(jí)控制位。PX0外部中斷0中斷優(yōu)先級(jí)控制位。Pi=1,設(shè)置為高優(yōu)先級(jí)Pi=0,設(shè)置為低優(yōu)先級(jí)知識(shí)連接第六十一頁(yè),共八十三頁(yè),2022年,8月28日中斷源輔助優(yōu)先級(jí)結(jié)構(gòu)外部中斷0定時(shí)/計(jì)數(shù)器T0外部中斷1定時(shí)/計(jì)數(shù)器T1串行口中斷最高
最低中斷優(yōu)先級(jí)相應(yīng)原則:1)低優(yōu)先級(jí)可被高優(yōu)先級(jí)中斷,而高優(yōu)先級(jí)中斷源不能被任何中斷源所中斷。2)任何一種中斷(不管是高級(jí)還是低級(jí)),一旦得到響應(yīng),不會(huì)再被它的同級(jí)中斷所中斷。3)當(dāng)幾個(gè)同優(yōu)先級(jí)的中斷同時(shí)申請(qǐng)中斷,響應(yīng)哪一個(gè)中斷源將取決于內(nèi)部查詢(xún)順序,或稱(chēng)為輔助優(yōu)先級(jí)結(jié)構(gòu),其優(yōu)先級(jí)排列如下表所示。知識(shí)連接第六十二頁(yè),共八十三頁(yè),2022年,8月28日(4)中斷的處理過(guò)程1)中斷響應(yīng)條件和時(shí)間中斷響應(yīng)條件有三個(gè):中斷源有中斷請(qǐng)求;此中斷源的中斷允許位為1;CPU開(kāi)中斷(EA=1)。上述三個(gè)條件必須同時(shí)滿(mǎn)足,CPU才有可能響應(yīng)中斷。在下列情況之一時(shí),CPU將封鎖對(duì)中斷的響應(yīng),雖然響應(yīng)中斷的三個(gè)條件都滿(mǎn)足,但是不響應(yīng)。第一:CPU正在處理一個(gè)同級(jí)或更高級(jí)別的中斷請(qǐng)求;第二:現(xiàn)行的機(jī)器周期不是當(dāng)前正在執(zhí)行指令的最后一個(gè)周期。單片機(jī)有單周期、雙周期、三周期指令,當(dāng)前執(zhí)行指令是單字節(jié)沒(méi)有關(guān)系,如果是雙字節(jié)或四字節(jié)的,就要等整條指令都執(zhí)行完了,才能響應(yīng)中斷(因?yàn)橹袛嗖樵?xún)是在每個(gè)機(jī)器周期都可能查到的);第三:當(dāng)前正執(zhí)行的指令是返回批令(RETI)或訪(fǎng)問(wèn)IP、IE寄存器的指令,則CPU至少再執(zhí)行一條指令才響應(yīng)中斷。這些指令都是與中斷有關(guān)的,如果正訪(fǎng)問(wèn)IP、IE則可能會(huì)開(kāi)、關(guān)中斷或改變中斷的優(yōu)先級(jí),而中斷返回指令則說(shuō)明本次中斷還沒(méi)有處理完,所以都要等本指令處理結(jié)束,再執(zhí)行一條指令才響應(yīng)中斷。第六十三頁(yè),共八十三頁(yè),2022年,8月28日2)中斷響應(yīng)過(guò)程①將內(nèi)部的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1,以阻止后來(lái)的同級(jí)或低級(jí)的中斷請(qǐng)求;②執(zhí)行一條硬件LCALL指令,使斷點(diǎn)的地址入棧,然后將相應(yīng)的中斷服務(wù)程序入口地址送PC;③執(zhí)行中斷服務(wù)程序。中斷響應(yīng)過(guò)程的前兩項(xiàng)是由中斷系統(tǒng)硬件電路自動(dòng)完成的,而中斷服務(wù)程序要由用戶(hù)自己編寫(xiě)。
表2-6中斷服務(wù)程序入口地址表中斷源中斷服務(wù)程序入口地址外部中斷00003H定時(shí)器T0000BH外部中斷10013H定時(shí)器T1001BH串行口0023H知識(shí)連接第六十四頁(yè),共八十三頁(yè),2022年,8月28日3)中斷返回,這個(gè)過(guò)程是通過(guò)指令RETI實(shí)現(xiàn)的。中斷服務(wù)程序的最后一條指令必須是RETI。RETI指令使CPU結(jié)束中斷服務(wù)程序的執(zhí)行,返回到曾經(jīng)被中斷的程序處,繼續(xù)執(zhí)行原來(lái)的程序。RETI指令的具體功能是:①將中斷響應(yīng)時(shí)壓入堆棧保存的斷點(diǎn)地址從棧頂彈回PC,CPU從原來(lái)中斷的地方繼續(xù)執(zhí)行程序②將相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器清0。知識(shí)連接第六十五頁(yè),共八十三頁(yè),2022年,8月28日例2-7
應(yīng)用按鈕K,模擬外部中斷源,電路如圖2-11所示,單擊按鈕,就產(chǎn)生一個(gè)外部中斷請(qǐng)求。89C51單片機(jī)響應(yīng)中斷請(qǐng)求,將數(shù)碼管顯示數(shù)值加1。數(shù)碼管顯示參考圖2-4,選擇兩位數(shù)碼管動(dòng)態(tài)顯示。圖2-11一個(gè)外部中斷源電路第六十六頁(yè),共八十三頁(yè),2022年,8月28日程序清單(LI2_9.ASM):ORG 0000HLJMPMAINORG0013HLJMP PP0ORG0030HMAIN:MOV SP,#60HMOV 30H,#0MOV 31H,#0MOV 34H,#0SETBEASETBEX1SETB PX1SETBIT1LOOP:MOV R3,#2ACALL DISPLAYSJMP LOOPPP0: PUSH ACC INC 34H ACALLHTOBCD MOV 30H,R4 MOV 31H,R5 POPACC RETI第六十七頁(yè),共八十三頁(yè),2022年,8月28日3.89C51單片機(jī)的定時(shí)計(jì)數(shù)器(1)定時(shí)器/計(jì)數(shù)器的組成結(jié)構(gòu)圖2-12定時(shí)/計(jì)數(shù)器結(jié)構(gòu)圖知識(shí)連接第六十八頁(yè),共八十三頁(yè),2022年,8月28日(2)定時(shí)器/計(jì)數(shù)器的工作方式寄存器TMOD的格式如下:位D7D6D5D4D3D2D1D0TMODGATEM1M0GATEM1M0T1方式控制字T0方式控制字TMOD各位含義如下:GATE,門(mén)控制。當(dāng)GATE=0時(shí),只要用軟件使TCON的TR0或TR1為1,就可以啟動(dòng)相應(yīng)的定時(shí)/計(jì)數(shù)器;當(dāng)GATE=1時(shí),要用軟件使TCON的TR0或TR1為1,同時(shí)外部中斷引腳也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。
或:定時(shí)/計(jì)數(shù)器功能選擇位。當(dāng)=1時(shí),作為計(jì)數(shù)器實(shí)現(xiàn)對(duì)外部脈沖計(jì)數(shù);當(dāng)=0時(shí),作為定時(shí)器實(shí)現(xiàn)定時(shí)控制。知識(shí)連接第六十九頁(yè),共八十三頁(yè),2022年,8月28日M1和M0,工作方式選擇位。定時(shí)器/計(jì)數(shù)器有4種工作方式,可通過(guò)M1、M0進(jìn)行設(shè)置,見(jiàn)表2-7。表2-7定時(shí)/計(jì)數(shù)器工作方式設(shè)置表M1M0工作方式說(shuō)明00方式013位定時(shí)/計(jì)數(shù)器01方式116位定時(shí)/計(jì)數(shù)器10方式2可自動(dòng)重裝初值的8位定時(shí)/計(jì)數(shù)器11方式3T0分成兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器;T1此方式停止計(jì)數(shù)知識(shí)連接第七十頁(yè),共八十三頁(yè),2022年,8月28日(3)定時(shí)/計(jì)數(shù)器控制寄存器TCON格式:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTCON的低4位用于控制外部中斷前面已經(jīng)介紹,這里只介紹高4位,各位含義如下:TF0,TF1——分別為定時(shí)器T0、T1的計(jì)數(shù)溢出中斷請(qǐng)求標(biāo)志位。計(jì)數(shù)器計(jì)數(shù)溢出時(shí),該位由硬件置1。使用查詢(xún)方式時(shí),此位作為狀態(tài)位供CPU查詢(xún),查詢(xún)后需由軟件清0;使用中斷方式時(shí),此位作為中斷請(qǐng)求標(biāo)志位,CPU響應(yīng)中斷后由硬件自動(dòng)清0。TR0,TR1——分別為定時(shí)器T0、T1的運(yùn)行控制位,可由軟件置1或清0。(TR0)或(TR1)=1,啟動(dòng)定時(shí)/計(jì)數(shù)器工作;(TR0)或(TR1)=0,停止定時(shí)/計(jì)數(shù)器工作。知識(shí)連接第七十一頁(yè),共八十三頁(yè),2022年,8月28日(4)定時(shí)/計(jì)數(shù)器的工作方式1)方式0:16位寄存器(由特殊功能寄存器TL0和TH0組成)只用了13位,由TH0的8位和TL0的低5位組成一個(gè)13位的定時(shí)/計(jì)數(shù)器,TL0的高3位未用,其最大的計(jì)數(shù)次數(shù)應(yīng)為213次。
圖2-13工作方式0的邏輯結(jié)構(gòu)圖2)方式1:由特殊功能寄存器TL0和TH0組成一個(gè)16位的定時(shí)/計(jì)數(shù)器,其最大的計(jì)數(shù)次數(shù)應(yīng)為216次。除了計(jì)數(shù)位數(shù)不同外,方式1與方式0的工作過(guò)程相同。第七十二頁(yè),共八十三頁(yè),2022年,8月28日3)方式2:是自動(dòng)重裝初值的8位定時(shí)/計(jì)數(shù)器。8位寄存器TL0作為計(jì)數(shù)器,TH0用于存放計(jì)數(shù)初值,啟動(dòng)前,TL0和TH0裝入相同的初值,當(dāng)TL0計(jì)數(shù)溢出時(shí),在將中斷標(biāo)志位TF0置1的同時(shí),TH0的初值自動(dòng)重新裝入TL0。
圖2-14工作方式2的邏輯結(jié)構(gòu)圖第七十三頁(yè),共八十三頁(yè),2022年,8月28日4)方式3:方式3只適用于定時(shí)/計(jì)數(shù)器T0,定時(shí)/計(jì)數(shù)器T1不能工作在方式3。此方式時(shí)定時(shí)/計(jì)數(shù)器T0分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器:TL0和TH0,其邏輯結(jié)構(gòu)如圖2-15所示,TL0使用T0的狀態(tài)控制位C/T、GATE、TR0及INT0,而TH0被固定為—個(gè)8位定時(shí)器(不能作外部計(jì)數(shù)方式),并使用定時(shí)器Tl的狀態(tài)控制位TRl和TFl,同時(shí)占用定時(shí)器T1的中斷源。圖2-15方式3邏輯結(jié)構(gòu)圖第七十四頁(yè),共八十三頁(yè),2022年,8月28日(5)定時(shí)器初值的計(jì)算計(jì)數(shù)方式:計(jì)數(shù)初值=滿(mǎn)值-計(jì)數(shù)值=2N-計(jì)數(shù)值。定時(shí)方式:計(jì)數(shù)值=定時(shí)時(shí)間/機(jī)器周期,計(jì)數(shù)初值=滿(mǎn)值-計(jì)數(shù)值=2N-定時(shí)時(shí)間/機(jī)器周期。定時(shí)和計(jì)數(shù)兩種方式都是啟動(dòng)定時(shí)器后從初值開(kāi)始加1計(jì)數(shù),計(jì)數(shù)滿(mǎn)溢出置中斷請(qǐng)求標(biāo)志位。不同工作方式只是計(jì)數(shù)位數(shù)不同,滿(mǎn)值不等,但計(jì)算方法相同,假設(shè)計(jì)數(shù)位數(shù)為N,則滿(mǎn)值都是2N。知識(shí)連接第七十五頁(yè),共八十三頁(yè),2022年,8月28日例2-8
利用定時(shí)器T0的方式0定時(shí)模式,在P1.0引腳上輸出周期為10ms的方波。設(shè)單片機(jī)的晶振頻率fosc=12MHz。程序(LI2_10.ASM)如下: ORG0000H LJMP MAIN ORG 000BH;T0中斷服務(wù)程序入口地址 LJMP PINT0;轉(zhuǎn)T0服務(wù)程序?qū)嶋H地址 ORG0100HMAIN:MOVTMOD,#00H;置T0方式字 MOVTL0,#18H;置定時(shí)器初值 MOVTH0,#63H SETBEA;CPU開(kāi)中斷 SETBET0;T0中斷允許 SETBTR0;啟動(dòng)T0運(yùn)行 S
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)信息技術(shù)三年級(jí)下冊(cè)《第2課 排列圖標(biāo)找文件》教學(xué)設(shè)計(jì)
- 試漏報(bào)告模板
- 2025年度智能家居系統(tǒng)裝修材料采購(gòu)及安裝合同樣本
- 2025年度教育培訓(xùn)中介機(jī)構(gòu)加盟合同
- Unit 2 All Around Me(教學(xué)設(shè)計(jì))2023-2024學(xué)年人教新起點(diǎn)版英語(yǔ)六年級(jí)下冊(cè)
- 人教版七年級(jí)上冊(cè)教學(xué)設(shè)計(jì)2.3.3國(guó)家和地區(qū)
- 2025年度白酒企業(yè)產(chǎn)品分銷(xiāo)與銷(xiāo)售合作協(xié)議范本
- 第1節(jié) 動(dòng)物運(yùn)動(dòng)的方式教學(xué)設(shè)計(jì)-2024-2025學(xué)年北師大版生物八年級(jí)上冊(cè)
- 生態(tài)茶文化休閑養(yǎng)生園項(xiàng)目可行性研究報(bào)告申請(qǐng)備案
- 【可行性報(bào)告】2025年鉿相關(guān)項(xiàng)目可行性研究報(bào)告
- 高中物理課程標(biāo)準(zhǔn)
- 化工原理傳質(zhì)導(dǎo)論
- 環(huán)境與可持續(xù)發(fā)展ppt課件(完整版)
- Linux操作系統(tǒng)課件(完整版)
- 跨境電商亞馬遜運(yùn)營(yíng)實(shí)務(wù)完整版ppt課件-整套課件-最全教學(xué)教程
- 中國(guó)傳媒大學(xué)《當(dāng)代電視播音主持教程》課件
- 浙美版小學(xué)六年級(jí)美術(shù)下冊(cè)全冊(cè)精品必備教學(xué)課件
- DB32∕T 4245-2022 城鎮(zhèn)供水廠生物活性炭失效判別和更換標(biāo)準(zhǔn)
- 人教版七年級(jí)上冊(cè)歷史課程綱要
- 濕法冶金簡(jiǎn)介
- 2022新教科版六年級(jí)科學(xué)下冊(cè)全一冊(cè)全部教案(共28節(jié))
評(píng)論
0/150
提交評(píng)論