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

下載本文檔

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

文檔簡介

項(xiàng)目二定制器控制任務(wù)一數(shù)碼顯示

任務(wù)二按鍵識別

任務(wù)三定時時間的設(shè)定

任務(wù)四定時器

單片機(jī)應(yīng)用技術(shù)高職高專ppt課件項(xiàng)目二定制器控制任務(wù)一數(shù)碼顯示 單片機(jī)應(yīng)用技術(shù)高職任務(wù)一數(shù)碼顯示任務(wù)要求本任務(wù)要求應(yīng)用4位數(shù)碼管分別顯示片內(nèi)存儲器30H~33H單元的數(shù)值(假設(shè)存儲單元的內(nèi)容為1~4)。

知識目標(biāo):(1)認(rèn)識8段數(shù)碼管的外形和內(nèi)部結(jié)構(gòu)。

(2)知道8段數(shù)碼管的顯示原理。

(3)了解單片機(jī)對數(shù)碼管的控制方式。

技能目標(biāo):

(1)會設(shè)計(jì)單片機(jī)與數(shù)碼管靜態(tài)顯示的接口電路和控制程序。

(2)會設(shè)計(jì)單片機(jī)與數(shù)碼管動態(tài)顯示的接口電路和控制程序。單片機(jī)應(yīng)用技術(shù)高職高專ppt課件任務(wù)一數(shù)碼顯示任務(wù)要求本任務(wù)要求應(yīng)用4位數(shù)碼管分別顯示片內(nèi)任務(wù)一數(shù)碼顯示知識鏈接1.數(shù)碼管簡介(1)數(shù)碼管的結(jié)構(gòu)單片機(jī)應(yīng)用技術(shù)高職高專ppt課件任務(wù)一數(shù)碼顯示知識鏈接1.數(shù)碼管簡介(1)數(shù)碼管的結(jié)構(gòu)單(2)數(shù)碼管的顯示原理(共陽極數(shù)碼管)字型碼位碼知識鏈接單片機(jī)應(yīng)用技術(shù)高職高專ppt課件(2)數(shù)碼管的顯示原理(共陽極數(shù)碼管)字型碼位碼知識鏈接單(3)數(shù)碼管的字形編碼顯示字形共陽極共陰極dpgfedCba段碼dpgfedcba段碼011000000C0H001111113FH111111001F9H0000011006H210100100A4H010110115BH310110000B0H010011114FH41001100199H0110011066H51001001092H011011016DH61000001082H011111017DH711111000F8H0000011107H81000000080H011111117FH91001000090H011011116FHA1000100088H0111011177HB1000001183H011111007CHC11000110C6H0011100139HD10100001A1H010111105EHE1000011086H0111100179HF100011108EH0111000171HP100011008CH0111001173HU11000001C1H001111103EHY1001000191H011011106EH.011111117FH1000000080H滅11111111FFH0000000000H單片機(jī)應(yīng)用技術(shù)高職高專ppt課件(3)數(shù)碼管的字形編碼顯示共陽極共陰極dpgfedCba段任務(wù)一數(shù)碼顯示知識鏈接2.數(shù)碼管顯示方式(1)靜態(tài)顯示靜態(tài)顯示是指數(shù)碼管顯示某一字符時,相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止,顯示字形點(diǎn)亮的各段是持續(xù)點(diǎn)亮的,沒有閃爍,此時的顯示亮度主要取決于各段的驅(qū)動電流。

例2-1

應(yīng)用單片機(jī)控制2位數(shù)碼管分別顯示“1”和“2”。試設(shè)計(jì)電路并編寫程序。單片機(jī)應(yīng)用技術(shù)高職高專ppt課件任務(wù)一數(shù)碼顯示知識鏈接2.數(shù)碼管顯示方式(1)靜態(tài)顯示任務(wù)一數(shù)碼管顯示知識鏈接1)電路設(shè)計(jì)。圖2-274HC245引腳圖表2-274HC245邏輯功能表AB/輸入輸入/輸出AnBnLLA=B輸入LH輸入B=AHX高阻高阻單片機(jī)應(yīng)用技術(shù)高職高專ppt課件任務(wù)一數(shù)碼管顯示知識鏈接1)電路設(shè)計(jì)。圖2-274HC圖2-3兩位數(shù)碼管靜態(tài)顯示電路圖知識鏈接單片機(jī)應(yīng)用技術(shù)高職高專ppt課件圖2-3兩位數(shù)碼管靜態(tài)顯示電路圖知識鏈接單片機(jī)應(yīng)用技術(shù)2)程序清單(LI2_1.ASM):

ORG0000hJMPSTARTORG0100HSTART:MOVP1,#0F9HMOVP2,#0A4HSJMP$END知識鏈接單片機(jī)應(yīng)用技術(shù)高職高專ppt課件2)程序清單(LI2_1.ASM):知識鏈接單片機(jī)應(yīng)用技術(shù)(2)動態(tài)顯示方式知識鏈接選用動態(tài)顯示的系統(tǒng)中一般有多位數(shù)碼管,各位數(shù)碼管不是同時點(diǎn)亮顯示,而是逐位輪流的點(diǎn)亮(也稱逐位掃描)。對每一位數(shù)碼管而言,每隔一段時間點(diǎn)亮一次,每次點(diǎn)亮一定時間。這樣,雖然每個數(shù)碼管都是亮滅變化的,但只要選擇合適的點(diǎn)亮?xí)r間和間隔時間,由于人的視覺暫留作用和發(fā)光二極管的余輝效應(yīng),使人肉眼看到的每個數(shù)碼管都是穩(wěn)定顯示。一位接一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的過程稱為位掃描。(2)動態(tài)顯示方式知識鏈接選用動態(tài)顯示的系統(tǒng)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。知識鏈接3.堆棧指令介紹PUSHdirect;(SP)+1→(S電路設(shè)計(jì)任務(wù)一數(shù)碼管顯示電路設(shè)計(jì)任務(wù)一數(shù)碼管顯示程序設(shè)計(jì)任務(wù)一數(shù)碼管顯示

ORG0000HLJMPMAINORG0100HMAIN:MOV SP,#60H MOVR0,#30H ;設(shè)置顯示數(shù)值30H~34H是1~4

MOVR1,#4

MOVA,#01HLOOP1:MOV@R0,A

INCA

INCR0

DJNZR1,LOOP1LOOP: MOV R3,#4 ;共4位數(shù)碼管動態(tài)顯示

ACALLDISPLAY AJMPLOOP程序設(shè)計(jì)任務(wù)一數(shù)碼管顯示O程序設(shè)計(jì)MOVA,@R0 MOVCA,@A+DPTR MOVP0,A SETBP2.0 CLR P2.0 ;查表求段碼并鎖存輸出

MOVA,R2 ;位碼左移,準(zhǔn)備點(diǎn)亮下一個數(shù)碼管

RLA MOVR2,A INCR0 ACALLDELAY MOVP0,#0FFH ;關(guān)顯示

SETB P2.0 CLRP2.0 DJNZR3,DIS1 ;循環(huán)點(diǎn)亮下一個數(shù)碼管POPACCRET;數(shù)碼管動態(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;鎖存輸出位碼

程序設(shè)計(jì)MOVA,@R0;數(shù)碼管動態(tài)顯示子程序;延時1ms子程序DELAY:MOVR7,#02HD1EL2:MOV R6,#70HD1EL1:DJNZ R6,D1EL1DJNZR7,D1EL2RET;共陽極數(shù)碼管段碼表SEGA:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND程序設(shè)計(jì)任務(wù)一數(shù)碼管顯示;延時1ms子程序程序設(shè)計(jì)任務(wù)一數(shù)碼管顯示1.技能訓(xùn)練(1)在學(xué)習(xí)板上實(shí)現(xiàn)一個數(shù)碼管靜態(tài)顯示字形“3”。(2)在學(xué)習(xí)板上實(shí)現(xiàn)8個數(shù)碼管分別顯示數(shù)字1~8。(3)增加任務(wù)中的延時時間,觀察數(shù)碼管的顯示情況。2.知識思考(1)什么是數(shù)碼管的靜態(tài)顯示?(2)簡述數(shù)碼管動態(tài)顯示過程。(3)什么情況下數(shù)據(jù)需要保護(hù)?本任務(wù)程序中可以將“PUSH”和“POP”兩條指令去掉嗎?拓展訓(xùn)練任務(wù)一數(shù)碼管顯示1.技能訓(xùn)練拓展訓(xùn)練任務(wù)一數(shù)碼管顯示任務(wù)二按鍵識別任務(wù)要求選用4個按鍵,編號分別是“1~4”,當(dāng)某個鍵按下后,應(yīng)用數(shù)碼管顯示按鍵編號。知識目標(biāo):(1)看懂單片機(jī)和獨(dú)立式按鍵的接口電路。(2)了解獨(dú)立式按鍵的工作原理。(3)掌握按鍵消抖的方法。(4)看懂單片機(jī)和矩陣式按鍵的接口電路。(5)了解矩陣式按鍵的工作原理。技能目標(biāo):(1)會設(shè)計(jì)單片機(jī)與數(shù)碼管靜態(tài)顯示的接口電路和控制程序。

(2)會設(shè)計(jì)單片機(jī)與數(shù)碼管動態(tài)顯示的接口電路和控制程序。(3)知道矩陣式按鍵的識別及控制方法。任務(wù)二按鍵識別任務(wù)要求選用4個按鍵,編號分別是“1~4”知識鏈接任務(wù)二按鍵識別1.按鍵的分類根據(jù)結(jié)構(gòu),按鍵可分為兩類觸點(diǎn)式開關(guān)按鍵無觸點(diǎn)式開關(guān)按鍵根據(jù)接口原理按鍵可分為兩類編碼鍵盤非編碼鍵盤知識鏈接任務(wù)二按鍵識別1.按鍵的分類2.單片機(jī)對鍵盤的控制方式知識鏈接(1)查詢方式:指在程序中用一段專門的掃描和讀按鍵程序不停查詢有無按鍵按下,確定鍵值。特點(diǎn):電路簡單,但需要占用單片機(jī)的機(jī)器時間。(2)定時掃描方式:指利用單片機(jī)內(nèi)的定時器來產(chǎn)生定時中斷,然后在定時中斷的服務(wù)程序中掃描,檢查有無按鍵按下,確定鍵值。特點(diǎn):電路也比較簡單,不占用單片機(jī)的機(jī)器時間,但需要占應(yīng)用定時器,同時定時的時間不能過長,否則可能檢測不到相應(yīng)得按鍵。(3)中斷掃描方式:指當(dāng)有鍵按下時由相應(yīng)的硬件電路產(chǎn)生中斷信號,單片機(jī)在中斷服務(wù)程序中掃描,檢查有無按鍵按下,確定鍵值。 特點(diǎn):硬件電路上必須要產(chǎn)生中斷線,需要與門和非門來產(chǎn)生。但中斷方式不占用單片機(jī)的機(jī)器時間,也不會出現(xiàn)定時方式時的檢測不到鍵盤的情況。2.單片機(jī)對鍵盤的控制方式知識鏈接(1)查詢方式:指在程序中3.鍵盤接口問題:由于機(jī)械觸點(diǎn)的彈性作用,觸點(diǎn)在閉合和斷開瞬間的電接觸情況不穩(wěn)定,造成了電壓信號的抖動現(xiàn)象。抖動時間:一般為1~10ms(如圖2-5所示)。后果:會引起單片機(jī)對于一次鍵操作進(jìn)行多次處理,因此必須設(shè)法消除抖動現(xiàn)象。

措施:軟件消抖、硬件消抖抖動時間<10ms開關(guān)動作時間>100ms“1”“0”<10ms按下抖動閉合穩(wěn)態(tài)釋放抖動3.鍵盤接口問題:由于機(jī)械觸點(diǎn)的彈性作用,觸點(diǎn)在閉合和斷開瞬軟件消抖

;延時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延時時間計(jì)算:1+[1+2×255+2]×20+2=10263≈10000μs=10ms。(2)硬件消抖圖2-6硬件消抖電路軟件消抖;延時10ms子程序(2)硬件消抖圖2-6硬件4.獨(dú)立式按鍵獨(dú)立式按鍵結(jié)構(gòu)圖2-7獨(dú)立式與單片機(jī)接口電路圖4.獨(dú)立式按鍵獨(dú)立式按鍵結(jié)構(gòu)圖2-7獨(dú)立式與單片機(jī)接口;查詢方式掃描一次鍵盤的程序

JPDL:MOVA,#0FFHMOVP1,A;置P1口為輸入狀態(tài)JPDL0:MOVA,P1;鍵狀態(tài)輸入

JNBACC.0,JPDL1;檢測0號鍵是否按下,按下轉(zhuǎn)

JNBACC.1,JPDL2;檢測1號鍵是否按下,按下轉(zhuǎn)

JNBACC.2,JPDL3;檢測2號鍵是否按下,按下轉(zhuǎn)

JNBACC.3,JPDL4;檢測3號鍵是否按下,按下轉(zhuǎn)

RET;無鍵按下返回JPDL1:ACALL PS1;PS4分別為每個按鍵的功能子程序

RETJPDL2:ACALL PS2

RETJPDL3:ACALL PS3

RET

JPDL4:ACALL PS4

RET

;查詢方式掃描一次鍵盤的程序5.矩陣式鍵盤矩陣式鍵盤的結(jié)構(gòu)及原理圖2-8矩陣鍵盤結(jié)構(gòu)圖5.矩陣式鍵盤矩陣式鍵盤的結(jié)構(gòu)及原理圖2-8矩陣鍵盤結(jié)構(gòu)圖(2)矩陣式鍵盤按鍵的識別以8號鍵的識別為例來說明掃描法識別按鍵的過程:按鍵按下時,與此按鍵相連的行線與列線短路導(dǎo)通,行線在無按鍵按下時處于高電平。顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會引起行線電平的變化,因此必須使所有列線處在低電平。只有這樣,當(dāng)有按鍵按下時,該按鍵所在的行電平才會由高電平變?yōu)榈碗娖?。CPU根據(jù)行電平的變化,就能判定相應(yīng)的行有鍵按下。8號鍵按下時,第3行一定為低電平。然而第3行為低電平時,能否肯定是8號鍵按下呢?回答是否定的,因?yàn)?、10、11號鍵按下,同樣會使第3行為低電平。為進(jìn)一步確定具體鍵,不能使所有列線在同一時刻處于低電平,可在某一時刻只讓一條列線處于低電平,其余列線均處于高電平,另一時刻,讓下一列處在低電平,依次循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤掃描。(2)矩陣式鍵盤按鍵的識別以8號鍵的識別為例來說明掃描法識別(3)鍵盤的編碼對于矩陣式鍵盤,按鍵的位置由行號和列號惟一確定,因此可分別對行號和列號進(jìn)行二進(jìn)制編碼,然后將兩值合成一個字節(jié),高4位是行號,低4位是列號。如圖2-8中的8號鍵,它位于第3行,第0列,因此,其鍵盤編碼應(yīng)為30H。采用上述編碼對于不同行的鍵離散性較大,不利于散轉(zhuǎn)指令對按鍵進(jìn)行處理。因此,可采用依次排列鍵號的方式對按鍵進(jìn)行編碼。以圖2-8中的4×4鍵盤為例,可將鍵號編碼為:01H、02H、03H、…、0EH、0FH、10H等16個鍵號。編碼的相互轉(zhuǎn)換可通過計(jì)算或查表的方法實(shí)現(xiàn)。(3)鍵盤的編碼對于矩陣式鍵盤,按鍵的位置由行號和列號惟一確6.鍵盤掃描程序鍵盤掃描程序一般應(yīng)包括以下內(nèi)容。_判別有無按鍵按下。_鍵盤掃描取得閉合鍵的行、列值。_用計(jì)算法或查表法得到鍵值。_判斷閉合鍵是否釋放,如沒釋放則繼續(xù)等待。_將閉合鍵鍵號保存,同時轉(zhuǎn)去執(zhí)行該閉合鍵的功能。6.鍵盤掃描程序鍵盤掃描程序一般應(yīng)包括以下內(nèi)容。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操作示意圖7.指令介紹(1)CJNE指令。圖2-9CJNE操作示意圖例2-3

將內(nèi)部RAM的一個數(shù)據(jù)塊(首址為DATA1)傳送到內(nèi)部數(shù)據(jù)RAM(首址為DATA2),遇到傳送的數(shù)據(jù)為00H時停止。程序清單: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)部RAM

INCR0;修改指針

INCR1;修改指針

SJMPLP1;繼續(xù)傳送例2-3將內(nèi)部RAM的一個數(shù)據(jù)塊(首址為DATA1)(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)部RAM

INCR0;修改地址指針

INCR1;修改外部RAM地址指針

SJMPLP1;繼續(xù)傳送LP2:

RET;結(jié)束傳送,返回主程序(2)累加器A判零指令,有兩條:在例2-3中,如果利用“JZ電路設(shè)計(jì)任務(wù)二

鍵盤識別本任務(wù)硬件主要由單片機(jī)、鍵盤、顯示數(shù)碼管組成。鍵盤選擇4個按鍵,采用獨(dú)立鍵盤控制,電路如圖2-7所示,其編號分別是“1~4”。鍵值顯示電路如圖2-4所示,但只選用其中一個數(shù)碼管靜態(tài)顯示。電路設(shè)計(jì)任務(wù)二鍵盤識別本任務(wù)硬件主要由單片機(jī)、鍵盤、顯示程序設(shè)計(jì)任務(wù)二鍵盤識別

ORG0000HAJMPSTARTORG0100HSTART:CLRP2.0CLRP3.6 SETBP2.7MOVP0,#0FEH;輸出數(shù)碼管公共端信號

SETBP2.1;開通U14

CLRP2.1;鎖存U14LOOP:ACALL DLJP

AJMP LOOP;獨(dú)立按鍵識別子程序DLJP:MOVP1,#0FFH MOVA,P1;讀鍵盤狀態(tài)

CJNEA,#0FH,XDOU;有鍵按下消抖處理DLJPR:RET;無鍵按下則再讀鍵盤狀態(tài)程序設(shè)計(jì)任務(wù)二鍵盤識別程序設(shè)計(jì)XDOU:MOV40H,A;把讀的鍵盤狀態(tài)放在40H的地址

ACALLDELAY10;延時

MOVA,P1;再讀鍵盤狀態(tài)

CJNEA,40H,DLJPR;比較兩次讀鍵盤狀態(tài),如不同則返回

JBACC.0,SS2;S1鍵未按下,轉(zhuǎn)SS2

ACALLPS1;1號鍵按下,顯示1

AJMPDLJPRSS2:JBACC.1,SS3;S2鍵未按下,轉(zhuǎn)SS3

ACALLPS2;2號鍵按下,顯示2

AJMPDLJPRSS3:JBACC.2,SS4;S3鍵未按下,轉(zhuǎn)SS4

ACALLPS3;3號鍵按下,顯示3

AJMPDLJPRSS4:JBACC.3,DLJPR;S4鍵未按下,讀鍵盤

ACALLPS4;4號鍵按下,顯示4

AJMPDLJPR程序設(shè)計(jì)XDOU:MOV40H,A程序設(shè)計(jì)PS1:MOVP0,#0F9H;1號鍵鍵處理子程序SETB P2.0 CLR P2.0 RET;1號鍵按下,顯示1PS2: MOVP0,#0A4H;2號鍵鍵處理子程序

SETB P2.0

CLR P2.0

RET;2號鍵按下,顯示2PS3: MOVP0,#0B0H;3號鍵鍵處理子程序 SETB P2.0 CLR P2.0 RET;3號鍵按下,顯示3PS4: MOVP0,#99H;4號鍵鍵處理子程序

SETB P2.0

CLR P2.0

RET;4號鍵按下,顯示4程序設(shè)計(jì)PS1:MOVP0,#0F9H;1.技能訓(xùn)練(1)應(yīng)用PROTEUS仿真矩陣鍵盤的鍵值顯示。(2)應(yīng)用學(xué)習(xí)板完成按鍵S1每按下一次,數(shù)碼管顯示值加一的功能(復(fù)位后數(shù)碼管顯示0)。(3)畫出本任務(wù)完整電路圖。2.知識思考(1)獨(dú)立式鍵盤的工作原理是什么?(2)說明矩陣鍵盤的按鍵識別過程。(3)鍵盤消抖的方法有哪些?拓展訓(xùn)練任務(wù)三

定時時間的設(shè)定1.技能訓(xùn)練拓展訓(xùn)練任務(wù)三定時時間的設(shè)定任務(wù)三定時時間的設(shè)定任務(wù)要求本任務(wù)要求應(yīng)用獨(dú)立式按鍵,使用3個按鍵,S1為定時時間加1鍵,S2為減1鍵,S3定時時間清零鍵。要求定時時間范圍0~99秒,定時時間的設(shè)定值應(yīng)用兩位數(shù)碼管顯示。

知識目標(biāo):(1)進(jìn)一步理解獨(dú)立按鍵工作原理。(2)理解邏輯運(yùn)算指令和數(shù)據(jù)交換指令。技能目標(biāo):(1)會應(yīng)用按鍵設(shè)定定時時間。(2)會編寫16進(jìn)制數(shù)轉(zhuǎn)換為10進(jìn)制數(shù)程序。(3)會應(yīng)用邏輯運(yùn)算指令和數(shù)據(jù)交換指令。(4)會設(shè)計(jì)碼型轉(zhuǎn)換程序

任務(wù)三定時時間的設(shè)定任務(wù)要求本任務(wù)要求應(yīng)用知識連接邏輯操作指令(1)邏輯與操作指令(6條)ANLA,direct;對A中的內(nèi)容和直接尋址單元中的內(nèi)容執(zhí)行與操作,結(jié)果存到A中ANLA,#data;對A中的內(nèi)容和立即數(shù)執(zhí)行與操作,結(jié)果存到A中ANLA,Rn;對A中的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行與操作,結(jié)果存到A中ANLA,@Ri;對A中的內(nèi)容和工作寄存器Ri所指的地址單元中的內(nèi)容執(zhí)行與操作,結(jié)果存到A中ANLdirect,A;對直接尋址單元中的內(nèi)容和A中的內(nèi)容執(zhí)行與操作,結(jié)果存到直接尋址單元中ANLdirect,#data;對直接尋址單元中的內(nèi)容和立即數(shù)執(zhí)行與操作,結(jié)果存到直接尋址單元中知識連接邏輯操作指令(1)邏輯與操作指令(6條)(2)邏輯或操作指令(6條)ORLA,direct;對A中的內(nèi)容和直接尋址單元中的內(nèi)容執(zhí)行或操作,結(jié)果存到A中ORLdirect,#data;對直接尋址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作,結(jié)果存在直接尋址單元中ORLA,#data;對A中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作,結(jié)果存在A中ORLA,Rn;對A中的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯或操作,結(jié)果存到A中ORLdirect,A;對直接尋址單元中的內(nèi)容和A中的內(nèi)容執(zhí)行邏輯或操作,結(jié)果存在直接尋址單元中ORLA,@Ri;對A中的內(nèi)容和工作寄存器Ri所指的地址單元中的內(nèi)容執(zhí)行或操作,結(jié)果存在A中知識連接(2)邏輯或操作指令(6條)知識連接(3)邏輯異或操作指令(6條)XRLA,direct;對A中的內(nèi)容和直接尋址單元中的內(nèi)容執(zhí)行異或操作,結(jié)果存在A中XRLdirect,#data;對直接尋址單元中的內(nèi)容和立即數(shù)執(zhí)行異或操作,結(jié)果存在直接尋址單元中XRLA,#data;對A中的內(nèi)容和立即數(shù)執(zhí)行異或操作,結(jié)果存在A中XRLA,Rn;對A中的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行異或操作,結(jié)果存在A中XRLdirect,A;對直接尋址單元中的內(nèi)容和A中的內(nèi)容執(zhí)行異或操作,結(jié)果存在直接尋址單元中XRLA,@Ri;對A中的內(nèi)容和工作寄存器Ri所指的地址單元中的內(nèi)容執(zhí)行異或操作,結(jié)果存在A中知識連接(3)邏輯異或操作指令(6條)知識連接2.交換指令(5條)XCHA,Rn

;(A)←→(Rn),累加器與工作寄存器Rn中的內(nèi)容互換XCHA,direct

;(A)←→(direct),累加器與直接尋址單元中的內(nèi)容互換XCHA,@Ri

;(A)←→((Ri)),累加器與工作寄存器Ri所指存儲單元中的內(nèi)容互換XCHDA,@Ri

;(A3-0)←→((Ri)3-0),累加器與工作寄存器Ri所指存儲單元中內(nèi)容的低半字節(jié)互換SWAPA

;(A3-0)←→(A7-4),累加器中內(nèi)容的高、低半字節(jié)互換知識連接2.交換指令(5條)XCHA,Rn;(A)←→(Rn),例2-4

拆字程序,把R7的內(nèi)容拆開,高4位送到片內(nèi)RAM的30H單元中,低4位送到31H中。程序如下:MAIN:MOVA,R7

ANLA,#0F0H;屏蔽高位SWAPA;交換A中高低位的內(nèi)容MOV30H,A;R7的高4位送到30H中MOVA,R7;再讀入R8中的內(nèi)容ANLA,#0FH;屏蔽高位MOV31H,A;R7的低4位送到31H

SJMP$知識連接例2-4拆字程序,把R7的內(nèi)容拆開,高4位送到片內(nèi)RAM的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。知識連接3.乘除法指令MULAB;(A)×(B)→(A)和(B)4.碼型的轉(zhuǎn)換16進(jìn)制與ASCII的轉(zhuǎn)換表2-3十六進(jìn)制與ASCII碼的對應(yīng)關(guān)系表十六進(jìn)制數(shù)ASCII碼十六進(jìn)制數(shù)ASCII碼十六進(jìn)制數(shù)ASCII碼十六進(jìn)制數(shù)ASCII碼030H434H838HC43H131H535H939HD44H232H636HA41HE45H333H737HB42HF46H知識連接4.碼型的轉(zhuǎn)換16進(jìn)制與ASCII的轉(zhuǎn)換表2-3十六進(jìn)制與例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)先屏蔽掉沒用的高4位,然后判斷其是否小于A,判斷方法是將其與A相減,看是否有借位。有借位說明小于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)至XYA

ADD A,#37H ;大于A,加37H

SJMP ABCXYA:ADD A,#30H ;小于A,加30HABC:MOV R1,A

RET例2-5將1位十六進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的ASCII碼。(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碼種類較多,常用的是8421碼。8421碼是一種采用4位二進(jìn)制數(shù)來代表一位十進(jìn)制數(shù)的代碼系統(tǒng)。在這個代碼系統(tǒng)中,十組4位二進(jìn)制數(shù)分別代表了0~9中的十個數(shù)字符號。知識連接(2)BCD碼(十進(jìn)制數(shù)的二進(jìn)制編碼)表2-48421

(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ù)占一個字節(jié)單元,假設(shè)存放于片內(nèi)RAM的34H單元中,將該16進(jìn)制數(shù)除10,得到的商是BCD碼的十位,存放到R4中,得到的余數(shù)是BCD碼的個位,存放到R5中。程序清單(LI2_8.ASM)如下:

MOVA,34HHTOBCD:MOV B,#10;16進(jìn)制轉(zhuǎn)換10進(jìn)制子程序

DIV AB

MOV R4,A

MOV R5,B

RET知識連接(3)十六進(jìn)制數(shù)轉(zhuǎn)換成BCD碼格式的十進(jìn)制數(shù)例2-6電路設(shè)計(jì)實(shí)現(xiàn)本任務(wù)功能的電路主要包括兩部分電路(1)4個獨(dú)立式按鍵,它們與單片機(jī)的接口電路如圖2-7所示;(2)數(shù)碼管顯示電路,電路參考圖2-4,該秒表的時間設(shè)定范圍是0~99秒,選用低位兩個數(shù)碼管顯示設(shè)定的秒值即可。任務(wù)三定時時間的設(shè)定電路設(shè)計(jì)實(shí)現(xiàn)本任務(wù)功能的電路主要包括兩部分電路任務(wù)三定時程序設(shè)計(jì)程序清單(A2_3.ASM)

ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOV30H,#00HMOV32H,#00HMOV34H,#00HLOOP1:MOVR3,#2ACALLDISPLAY;動態(tài)顯示子程序,參考A2_1.ASM

ACALLDLJP;獨(dú)立按鍵掃描子程序,參考A2_2.ASM

SJMPLOOP1任務(wù)三定時時間的設(shè)定程序設(shè)計(jì)程序清單(A2_3.ASM)任務(wù)三定時時間的設(shè)定PS1:INC34H;S1按鍵處理子程序,單擊S1鍵定時時間加1

MOVA,34H

CJNEA,#100,PS11

MOV34H,#00H

MOVA,34H

PS11:ACALLHTOBCD;將定時時間轉(zhuǎn)換十進(jìn)制

MOV30H,R4 ;將定時時間送顯示單元

MOV31H,R5RETPS2:DEC34H;S2按鍵處理子程序;單擊S1鍵定時時間減1

MOVA,34H

CJNEA,#0FFH,PS21

MOV34H,#99

MOVA,34H

PS21:ACALLHTOBCD;將定時時間轉(zhuǎn)換十進(jìn)制

MOV30H,R4 ;將定時時間送顯示單元

MOV31H,R5RETPS1:INC34H程序設(shè)計(jì);S3按鍵處理子程序PS3:MOV34H,#0 ;單擊S3鍵,定時時間清零 MOVA,34HPS21:ACALLHTOBCD;將定時時間轉(zhuǎn)換十進(jìn)制

MOV30H,R4 ;將定時時間送顯示單元

MOV31H,R5RET;S4按鍵處理子程序PS4:RET ;單擊S4鍵,直接返回 END任務(wù)三定時時間的設(shè)定程序設(shè)計(jì);S3按鍵處理子程序任務(wù)三定時時間的設(shè)定拓展訓(xùn)練1.技能訓(xùn)練(1)寫出本任務(wù)完整程序清單。(2)將累加器A中的8位二進(jìn)制數(shù)轉(zhuǎn)換成3位BCD碼格式的十進(jìn)制數(shù)。2.知識思考(1)執(zhí)行下列指令序列后,相關(guān)寄存器、存儲單元及標(biāo)志如何變化?

2)MOVA,#89H

MOV32H,#98H

ORL32H,A4)MOVA,#89H

SWAPA

RLCA(討論C的內(nèi)容)1)MOVA,#98H

MOVR4,#11H

ANLA,R43)CLRA

CPLA

XRLA,#77H任務(wù)三定時時間的設(shè)定拓展訓(xùn)練1.技能訓(xùn)練2)MOVA,#89H4)MOV(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è)定(2)已知(A)=7AH和(CY)=1,試指出執(zhí)行下列程序后任務(wù)四定時器任務(wù)要求本任務(wù)要實(shí)現(xiàn)定時器功能,定時范圍0~99秒,4位數(shù)字顯示,顯示精度0.01秒。4個按鍵實(shí)現(xiàn)定時器的控制,單擊S1鍵定時時間加1,單擊S2鍵定時時間減1,單擊S3鍵定時時間清零,S4是重新定時按鍵。數(shù)碼管進(jìn)行計(jì)時顯示和設(shè)定時間的顯示,當(dāng)定時時間到,聲音提示。知識目標(biāo):(1)熟悉中斷系統(tǒng)結(jié)構(gòu)和中斷處理過程。(2)掌握定時計(jì)數(shù)器的工作原理。(3)明白定時/計(jì)數(shù)器的結(jié)構(gòu)。技能目標(biāo):(1)會設(shè)置定時/計(jì)數(shù)器的工作方式。(2)會計(jì)算定時初值。(3)會對定時計(jì)數(shù)器初始化。(4)會編寫定時/計(jì)數(shù)器相關(guān)程序。任務(wù)四定時器任務(wù)要求知識連接中斷的基本概念CPU正在處理某一事件A時,事件B請求CPU迅速去處理(中斷請求或中斷申請);CPU暫停事件A的處理,轉(zhuǎn)去處理事件B(中斷響應(yīng));事件B處理結(jié)束后,CPU又回到事件A暫停的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。中斷源:事件B是引起CPU中斷的根源。斷點(diǎn):事件A被暫停的地方。中斷服務(wù)處理:事件B的過程,也稱為中斷處理。中斷服務(wù)程序:CPU處理事件B需要執(zhí)行的程序。中斷系統(tǒng):實(shí)現(xiàn)中斷的所有部件。任務(wù)四定時器知識連接中斷的基本概念CPU正在處理某一2.89C51單片機(jī)的中斷系統(tǒng)(1)89C51單片機(jī)中斷系統(tǒng)的結(jié)構(gòu)圖2-10單片機(jī)中斷系統(tǒng)的結(jié)構(gòu)知識連接2.89C51單片機(jī)的中斷系統(tǒng)(1)89C51單片機(jī)中斷系統(tǒng)(2)中斷源及中斷請求標(biāo)志1)INT0-外部中斷請求0,中斷請求標(biāo)志為IE0。該中斷源的中斷請求信號由INT0(P3.2)引腳輸入,有效信號通過硬件自動置位IE0=1,請求中斷。2)INT1-外部中斷請求1,中斷請求標(biāo)志為IE1。該中斷源的中斷請求信號由INT1(P3.3)引腳輸入,有效信號通過硬件自動置位IE1=1,請求中斷。TCON的格式如下:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H說明:外部中斷源有兩種請求觸發(fā)方式,低電平觸發(fā)和下降沿觸發(fā),具體選擇那種方式要通過TCON的IT0和IT1進(jìn)行設(shè)置。IT0:外部中斷請求INT0的觸發(fā)方式設(shè)置位。IT0可由軟件置“1”或清“0”。當(dāng)IT0為0時,選擇為電平觸發(fā)方式,INT0低電平有效。ITl:外部中斷請求INT1的觸發(fā)方式設(shè)置位,意義和IT0類似。(2)中斷源及中斷請求標(biāo)志1)INT0-外部中斷請求0,中斷3)定時器/計(jì)數(shù)器T0,中斷請求標(biāo)志為TF0。片內(nèi)計(jì)數(shù)器T0計(jì)數(shù)滿溢出,自動置位TF0=1,產(chǎn)生中斷請求。CPU響應(yīng)中斷后,標(biāo)志位TF0自動清零。4)定時器/計(jì)數(shù)器T1,中斷請求標(biāo)志為TF1。片內(nèi)計(jì)數(shù)器T1計(jì)數(shù)滿溢出,自動置位TF1=1,產(chǎn)生中斷請求。CPU響應(yīng)中斷后,標(biāo)志位TF0自動清零。知識連接3)定時器/計(jì)數(shù)器T0,中斷請求標(biāo)志為TF0。片內(nèi)計(jì)數(shù)器T05)串行口,該中斷源有兩個中斷請求標(biāo)志位,RI(串行口控制寄存器SCON的D0位)和TI(串行口控制寄存器SCON的D1位)。當(dāng)串行接口接收完一楨串行數(shù)據(jù)時,置位RI=1,產(chǎn)生接收中斷請求;當(dāng)串行接口發(fā)送完一楨串行數(shù)據(jù)時,置位TI=1,產(chǎn)生發(fā)送中斷請求。CPU響應(yīng)中斷后,標(biāo)志位RI和TI都不能自動清零,必須在中斷服務(wù)程序中通過軟件清零。SCON的格式如下:位D7D6D5D4D3D2D1D0SCON

TIRI位地址99H98H知識連接5)串行口,該中斷源有兩個中斷請求標(biāo)志位,RI(串行口控制寄IE的格式如下:位D7D6D5D4D3D2D1D0IEEA--ESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H中斷允許寄存器IE各位的功能如下:EA:中斷允許總控制位。EA=0,CPU屏蔽所有中斷請求;EA=1,CPU開放所有中斷。ES:串行口中斷允許位。ET1:T1的溢出中斷允許位。EX1:外部中斷1中斷允許位。ET0:T0的溢出中斷允許位。EX0:中斷0中斷允許位。Ei=1,允許中斷;Ei=0,禁止中斷。IE的格式如下:位D7D6D5D4D3D2D1D0IEEA-(3)中斷優(yōu)先級寄存器IPIP的格式如下:位D7D6D5D4D3D2D1D0IP---PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8HPS串行口中斷優(yōu)先級控制位。PT1定時/計(jì)數(shù)器T1中斷優(yōu)先級控制位。PX1外部中斷1中斷優(yōu)先級控制位。PT0定時器T0中斷優(yōu)先級控制位。PX0外部中斷0中斷優(yōu)先級控制位。Pi=1,設(shè)置為高優(yōu)先級Pi=0,設(shè)置為低優(yōu)先級知識連接(3)中斷優(yōu)先級寄存器IPIP的格式如下:位D7D6D5D4中斷源輔助優(yōu)先級結(jié)構(gòu)外部中斷0定時/計(jì)數(shù)器T0外部中斷1定時/計(jì)數(shù)器T1串行口中斷最高

最低中斷優(yōu)先級相應(yīng)原則:1)低優(yōu)先級可被高優(yōu)先級中斷,而高優(yōu)先級中斷源不能被任何中斷源所中斷。2)任何一種中斷(不管是高級還是低級),一旦得到響應(yīng),不會再被它的同級中斷所中斷。3)當(dāng)幾個同優(yōu)先級的中斷同時申請中斷,響應(yīng)哪一個中斷源將取決于內(nèi)部查詢順序,或稱為輔助優(yōu)先級結(jié)構(gòu),其優(yōu)先級排列如下表所示。知識連接中斷源輔助優(yōu)先級結(jié)構(gòu)外部中斷0最高中斷優(yōu)先級相應(yīng)原則:知(4)中斷的處理過程1)中斷響應(yīng)條件和時間中斷響應(yīng)條件有三個:中斷源有中斷請求;此中斷源的中斷允許位為1;CPU開中斷(EA=1)。上述三個條件必須同時滿足,CPU才有可能響應(yīng)中斷。在下列情況之一時,CPU將封鎖對中斷的響應(yīng),雖然響應(yīng)中斷的三個條件都滿足,但是不響應(yīng)。第一:CPU正在處理一個同級或更高級別的中斷請求;第二:現(xiàn)行的機(jī)器周期不是當(dāng)前正在執(zhí)行指令的最后一個周期。單片機(jī)有單周期、雙周期、三周期指令,當(dāng)前執(zhí)行指令是單字節(jié)沒有關(guān)系,如果是雙字節(jié)或四字節(jié)的,就要等整條指令都執(zhí)行完了,才能響應(yīng)中斷(因?yàn)橹袛嗖樵兪窃诿總€機(jī)器周期都可能查到的);第三:當(dāng)前正執(zhí)行的指令是返回批令(RETI)或訪問IP、IE寄存器的指令,則CPU至少再執(zhí)行一條指令才響應(yīng)中斷。這些指令都是與中斷有關(guān)的,如果正訪問IP、IE則可能會開、關(guān)中斷或改變中斷的優(yōu)先級,而中斷返回指令則說明本次中斷還沒有處理完,所以都要等本指令處理結(jié)束,再執(zhí)行一條指令才響應(yīng)中斷。(4)中斷的處理過程2)中斷響應(yīng)過程①將內(nèi)部的優(yōu)先級狀態(tài)觸發(fā)器置1,以阻止后來的同級或低級的中斷請求;②執(zhí)行一條硬件LCALL指令,使斷點(diǎn)的地址入棧,然后將相應(yīng)的中斷服務(wù)程序入口地址送PC;③執(zhí)行中斷服務(wù)程序。中斷響應(yīng)過程的前兩項(xiàng)是由中斷系統(tǒng)硬件電路自動完成的,而中斷服務(wù)程序要由用戶自己編寫。

表2-6中斷服務(wù)程序入口地址表中斷源中斷服務(wù)程序入口地址外部中斷00003H定時器T0000BH外部中斷10013H定時器T1001BH串行口0023H知識連接2)中斷響應(yīng)過程表2-6中斷服務(wù)程序入口地址表中斷源中斷服3)中斷返回,這個過程是通過指令RETI實(shí)現(xiàn)的。中斷服務(wù)程序的最后一條指令必須是RETI。RETI指令使CPU結(jié)束中斷服務(wù)程序的執(zhí)行,返回到曾經(jīng)被中斷的程序處,繼續(xù)執(zhí)行原來的程序。RETI指令的具體功能是:①將中斷響應(yīng)時壓入堆棧保存的斷點(diǎn)地址從棧頂彈回PC,CPU從原來中斷的地方繼續(xù)執(zhí)行程序②將相應(yīng)中斷優(yōu)先級狀態(tài)觸發(fā)器清0。知識連接3)中斷返回,這個過程是通過指令RETI實(shí)現(xiàn)的。知識連接例2-7

應(yīng)用按鈕K,模擬外部中斷源,電路如圖2-11所示,單擊按鈕,就產(chǎn)生一個外部中斷請求。89C51單片機(jī)響應(yīng)中斷請求,將數(shù)碼管顯示數(shù)值加1。數(shù)碼管顯示參考圖2-4,選擇兩位數(shù)碼管動態(tài)顯示。圖2-11一個外部中斷源電路例2-7應(yīng)用按鈕K,模擬外部中斷源,電路如圖2-11所示,程序清單(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程序清單(LI2_9.ASM):LOOP:MOV R3,#3.89C51單片機(jī)的定時計(jì)數(shù)器(1)定時器/計(jì)數(shù)器的組成結(jié)構(gòu)圖2-12定時/計(jì)數(shù)器結(jié)構(gòu)圖知識連接3.89C51單片機(jī)的定時計(jì)數(shù)器(1)定時器/計(jì)數(shù)器的組成結(jié)(2)定時器/計(jì)數(shù)器的工作方式寄存器TMOD的格式如下:位D7D6D5D4D3D2D1D0TMODGATEM1M0GATEM1M0T1方式控制字T0方式控制字TMOD各位含義如下:GATE,門控制。當(dāng)GATE=0時,只要用軟件使TCON的TR0或TR1為1,就可以啟動相應(yīng)的定時/計(jì)數(shù)器;當(dāng)GATE=1時,要用軟件使TCON的TR0或TR1為1,同時外部中斷引腳也為高電平時,才能啟動定時/計(jì)數(shù)器工作。

或:定時/計(jì)數(shù)器功能選擇位。當(dāng)=1時,作為計(jì)數(shù)器實(shí)現(xiàn)對外部脈沖計(jì)數(shù);當(dāng)=0時,作為定時器實(shí)現(xiàn)定時控制。知識連接(2)定時器/計(jì)數(shù)器的工作方式寄存器TMOD的格式如下:D7M1和M0,工作方式選擇位。定時器/計(jì)數(shù)器有4種工作方式,可通過M1、M0進(jìn)行設(shè)置,見表2-7。表2-7定時/計(jì)數(shù)器工作方式設(shè)置表M1M0工作方式說明00方式013位定時/計(jì)數(shù)器01方式116位定時/計(jì)數(shù)器10方式2可自動重裝初值的8位定時/計(jì)數(shù)器11方式3T0分成兩個獨(dú)立的8位定時/計(jì)數(shù)器;T1此方式停止計(jì)數(shù)知識連接M1和M0,工作方式選擇位。定時器/計(jì)數(shù)器有4種工作方式(3)定時/計(jì)數(shù)器控制寄存器TCON格式:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTCON的低4位用于控制外部中斷前面已經(jīng)介紹,這里只介紹高4位,各位含義如下:TF0,TF1——分別為定時器T0、T1的計(jì)數(shù)溢出中斷請求標(biāo)志位。計(jì)數(shù)器計(jì)數(shù)溢出時,該位由硬件置1。使用查詢方式時,此位作為狀態(tài)位供CPU查詢,查詢后需由軟件清0;使用中斷方式時,此位作為中斷請求標(biāo)志位,CPU響應(yīng)中斷后由硬件自動清0。TR0,TR1——分別為定時器T0、T1的運(yùn)行控制位,可由軟件置1或清0。(TR0)或(TR1)=1,啟動定時/計(jì)數(shù)器工作;(TR0)或(TR1)=0,停止定時/計(jì)數(shù)器工作。知識連接(3)定時/計(jì)數(shù)器控制寄存器TCON格式:位D7D6D5D4(4)定時/計(jì)數(shù)器的工作方式1)方式0:16位寄存器(由特殊功能寄存器TL0和TH0組成)只用了13位,由TH0的8位和TL0的低5位組成一個13位的定時/計(jì)數(shù)器,TL0的高3位未用,其最大的計(jì)數(shù)次數(shù)應(yīng)為213次。

圖2-13工作方式0的邏輯結(jié)構(gòu)圖2)方式1:由特殊功能寄存器TL0和TH0組成一個16位的定時/計(jì)數(shù)器,其最大的計(jì)數(shù)次數(shù)應(yīng)為216次。除了計(jì)數(shù)位數(shù)不同外,方式1與方式0的工作過程相同。(4)定時/計(jì)數(shù)器的工作方式1)方式0:16位寄存器(由特3)方式2:是自動重裝初值的8位定時/計(jì)數(shù)器。8位寄存器TL0作為計(jì)數(shù)器,TH0用于存放計(jì)數(shù)初值,啟動前,TL0和TH0裝入相同的初值,當(dāng)TL0計(jì)數(shù)溢出時,在將中斷標(biāo)志位TF0置1的同時,TH0的初值自動重新裝入TL0。

圖2-14工作方式2的邏輯結(jié)構(gòu)圖3)方式2:是自動重裝初值的8位定時/計(jì)數(shù)器。8位寄存4)方式3:方式3只適用于定時/計(jì)數(shù)器T0,定時/計(jì)數(shù)器T1不能工作在方式3。此方式時定時/計(jì)數(shù)器T0分為兩個獨(dú)立的8位計(jì)數(shù)器:TL0和TH0,其邏輯結(jié)構(gòu)如圖2-15所示,TL0使用T0的狀態(tài)控制位C/T、GATE、TR0及INT0,而TH0被固定為—個8位定時器(不能作外部計(jì)數(shù)方式),并使用定時器Tl的狀態(tài)控制位TRl和TFl,同時占用定時器T1的中斷源。圖2-15方式3邏輯結(jié)構(gòu)圖4)方式3:方式3只適用于定時/計(jì)數(shù)器T0,定時/計(jì)數(shù)器T1(5)定時器初值的計(jì)算計(jì)數(shù)方式:計(jì)數(shù)初值=滿值-計(jì)數(shù)值=2N-計(jì)數(shù)值。定時方式:計(jì)數(shù)值=定時時間/機(jī)器周期,計(jì)數(shù)初值=滿值-計(jì)數(shù)值=2N-定時時間/機(jī)器周期。定時和計(jì)數(shù)兩種方式都是啟動定時器后從初值開始加1計(jì)數(shù),計(jì)數(shù)滿溢出置中斷請求標(biāo)志位。不同工作方式只是計(jì)數(shù)位數(shù)不同,滿值不等,但計(jì)算方法相同,假設(shè)計(jì)數(shù)位數(shù)為N,則滿值都是2N。知識連接(5)定時器初值的計(jì)算計(jì)數(shù)方式:計(jì)數(shù)初值=滿值-計(jì)數(shù)值例2-8

利用定時器T0的方式0定時模式,在P1.0引腳上輸出周期為10ms的方波。設(shè)單片機(jī)的晶振頻率fosc=12MHz。程序(LI2_10.ASM)如下: ORG0000H LJMP MAIN ORG 000BH;T0中斷服務(wù)程序入口地址

溫馨提示

  • 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

提交評論