版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
關(guān)于
8051單片機(jī)實(shí)驗(yàn)1.首次多專業(yè)集中設(shè)課2.以程序設(shè)計(jì)為主要內(nèi)容⑴熟悉單片機(jī)程序開(kāi)發(fā)環(huán)境⑵掌握單片機(jī)內(nèi)、外資源使用方法⑶單片機(jī)匯編語(yǔ)言程序編寫與調(diào)試9/21/2023電子工程設(shè)計(jì)中心關(guān)于8051單片機(jī)實(shí)驗(yàn)1.首次多專業(yè)集中設(shè)課2.以程序1實(shí)驗(yàn)環(huán)境1.單片機(jī)仿真器可以控制程序運(yùn)行過(guò)程的“單片機(jī)”9/21/2023電子工程設(shè)計(jì)中心實(shí)驗(yàn)環(huán)境1.單片機(jī)仿真器可以控制程序運(yùn)行過(guò)程的“單片機(jī)”822.單片機(jī)實(shí)驗(yàn)板單片機(jī)程序運(yùn)行載體9/21/2023電子工程設(shè)計(jì)中心2.單片機(jī)實(shí)驗(yàn)板單片機(jī)程序運(yùn)行載體8/6/2023電子工程33.單片機(jī)程序集成開(kāi)發(fā)環(huán)境中文版MedWin2.39文本編輯器—生成、編輯程序文本編譯器/匯編器—將C/匯編語(yǔ)言源程序翻譯為二進(jìn)制機(jī)器程序鏈接器—將二進(jìn)制機(jī)器程序轉(zhuǎn)換為帶調(diào)試信息的可執(zhí)行程序調(diào)試器—用多種調(diào)試方式運(yùn)行程序9/21/2023電子工程設(shè)計(jì)中心3.單片機(jī)程序集成開(kāi)發(fā)環(huán)境中文版MedWin2.39文4實(shí)驗(yàn)方法1.功能演示2.程序編寫調(diào)試練習(xí)調(diào)用單片機(jī)內(nèi)、外部資源的示例了解各種資源的使用方法修改示例程序,上機(jī)調(diào)試實(shí)現(xiàn)新的功能鍛煉初步的程序設(shè)計(jì)、調(diào)試能力9/21/2023電子工程設(shè)計(jì)中心實(shí)驗(yàn)方法1.功能演示2.程序編寫調(diào)試練習(xí)調(diào)用單片機(jī)內(nèi)、外5運(yùn)行集成開(kāi)發(fā)環(huán)境1.目標(biāo)板、仿真器加電加電順序—先目標(biāo)板;后仿真器⑴真實(shí)環(huán)境仿真/模擬仿真選擇斷電順序—先仿真器;后目標(biāo)板2.啟動(dòng)集成開(kāi)發(fā)環(huán)境⑵關(guān)閉注冊(cè)提示⑶選擇工作目錄9/21/2023電子工程設(shè)計(jì)中心運(yùn)行集成開(kāi)發(fā)環(huán)境1.目標(biāo)板、仿真器加電加電順序—先目標(biāo)板;6創(chuàng)建源程序/生成并下載目標(biāo)程序1.調(diào)用文本編輯功能錄入源程序文本—生成.asm文件2.調(diào)用匯編功能對(duì).asm文件匯編—生成.obj文件3.調(diào)用鏈接功能對(duì).obj文件鏈接—生成.hex文件4.將目標(biāo)代碼裝入仿真器進(jìn)行調(diào)試9/21/2023電子工程設(shè)計(jì)中心創(chuàng)建源程序/生成并下載目標(biāo)程序1.調(diào)用文本編輯功能錄入源程7調(diào)試手段1.觀察項(xiàng)2.運(yùn)行方式程序運(yùn)行中,內(nèi)、外部資源工作狀態(tài)的觀察窗口。全速運(yùn)行單步運(yùn)行跟蹤運(yùn)行運(yùn)行到斷點(diǎn)運(yùn)行到光標(biāo)9/21/2023電子工程設(shè)計(jì)中心調(diào)試手段1.觀察項(xiàng)2.運(yùn)行方式程序運(yùn)行中,內(nèi)、外8并行數(shù)據(jù)操作程序調(diào)試練習(xí)例1:跑馬燈通過(guò)P1口采用負(fù)邏輯控制,0點(diǎn)亮,1熄滅。9/21/2023電子工程設(shè)計(jì)中心并行數(shù)據(jù)操作程序調(diào)試練習(xí)例1:跑馬燈通過(guò)P1口采用負(fù)邏輯控9程序清單 MOVA,#0FFH ;清除掛接在總線上的數(shù)碼管的顯示內(nèi)容 MOVDPTR,#00H MOVX@DPTR,A MOVA,#07FH;賦初始值并在發(fā)光二極管上顯示該數(shù)值 MOVP1,ALOOP: CALLDELAY CALLDELAY RR A ;A寄存器內(nèi)容右移1位并送發(fā)光二極管顯示 MOVP1,A AJMPLOOP ;無(wú)限循環(huán)DELAY:MOVR5,#0H ;延時(shí)子程序D1: MOVR6,#0H DJNZR6,$ DJNZR5,D1 RET END9/21/2023電子工程設(shè)計(jì)中心程序清單 MOVA,#0FFH 10①全速運(yùn)行(3種方法)②單步運(yùn)行(3種方法)調(diào)試觀察發(fā)光二極管點(diǎn)亮位置移動(dòng)方向,那條指令決定發(fā)光二極管移動(dòng)方向。觀察發(fā)光二極管點(diǎn)亮位置移動(dòng)速度,那段程序決定發(fā)光二極管移動(dòng)速度。觀察第3次循環(huán)結(jié)束時(shí)寄存器A、P1的值,發(fā)光二極管的點(diǎn)亮狀態(tài)。9/21/2023電子工程設(shè)計(jì)中心①全速運(yùn)行(3種方法)②單步運(yùn)行(3種方法)調(diào)試11③
跟蹤運(yùn)行(3種方法)觀察運(yùn)行中除了寄存器A、P1的值在變,還有哪些寄存器的內(nèi)容在變。9/21/2023電子工程設(shè)計(jì)中心③跟蹤運(yùn)行(3種方法)觀察運(yùn)行中除了寄存器A、P12例2:數(shù)碼管(DS1)點(diǎn)亮控制“共陽(yáng)”連接,負(fù)邏輯編碼控制9/21/2023電子工程設(shè)計(jì)中心例2:數(shù)碼管(DS1)點(diǎn)亮控制“共陽(yáng)”連接,負(fù)邏輯編碼控制813 ORG 0000H LJMP INITTAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ;段碼0-7 DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH ;段碼8-FINIT: MOV A,#0FFH ;清除掛接在總線上的數(shù)碼管的顯示內(nèi)容
MOV DPTR,#00H MOVX @DPTR,A MOV R1,#00H ;操作數(shù)據(jù)初始值
MOV A,R1 MAIN:MOV DPTR,#TAB ;讀取與A中數(shù)值對(duì)應(yīng)的顯示段碼
MOVC A,@A+DPTR MOV P1,A ;段碼送并行口1顯示
CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY
程序清單9/21/2023電子工程設(shè)計(jì)中心 ORG 0000H程序清單8/6/2023電子工程設(shè)計(jì)中14 INC R1 ;操作數(shù)據(jù)(R1)增1 MOV A,R1 CJNEA,#10H,MAIN ;檢查操作數(shù)據(jù)是否大于顯示范圍(F) SJMPINIT ;無(wú)限循環(huán)
DELAY:MOV R5,#0H ;延時(shí)子程序D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET END9/21/2023電子工程設(shè)計(jì)中心 INC R1 ;15①運(yùn)行到斷點(diǎn)1②運(yùn)行到斷點(diǎn)2調(diào)試源程序第14行設(shè)斷點(diǎn),全速運(yùn)行至斷點(diǎn)單步執(zhí)行第14、15行指令,觀察寄存器A的值及數(shù)碼管顯示數(shù)值源程序第24行設(shè)斷點(diǎn),全速運(yùn)行至斷點(diǎn)觀察寄存器A的值,A中能否為其它值9/21/2023電子工程設(shè)計(jì)中心①運(yùn)行到斷點(diǎn)1②運(yùn)行到斷點(diǎn)2調(diào)試源程序第14行設(shè)斷點(diǎn),全16例3:數(shù)碼管(DS2)點(diǎn)亮控制通過(guò)總線擴(kuò)展實(shí)現(xiàn)的數(shù)碼管點(diǎn)亮控制9/21/2023電子工程設(shè)計(jì)中心例3:數(shù)碼管(DS2)點(diǎn)亮控制通過(guò)總線擴(kuò)展實(shí)現(xiàn)的數(shù)碼管點(diǎn)亮控17程序清單 ORG 0000H LJMP INITTAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ;段碼0-7 DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH ;段碼8-FINIT: MOV R1,#00H ;操作數(shù)據(jù)初始值 MOV A,R1MAIN:MOV DPTR,#TAB ;讀取與A中數(shù)值對(duì)應(yīng)的顯示段碼 MOVC A,@A+DPTR MOV DPTR,#00H ;段碼送總線地址0000H單元顯示 MOVX @DPTR,A CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY INC R1 ;操作數(shù)據(jù)(R1)增1 MOV A,R1
9/21/2023電子工程設(shè)計(jì)中心程序清單 ORG 0000H8/6/2023電子工程設(shè)計(jì)中18 CJNEA,#10H,MAIN ;檢查操作數(shù)據(jù)是否大于顯示范圍(F) SJMPINIT ;無(wú)限循環(huán)
DELAY:MOV R5,#0H ;延時(shí)子程序D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET END調(diào)試運(yùn)行到光標(biāo)光標(biāo)放在源程序第11行,運(yùn)行至光標(biāo)然后單步執(zhí)行第11、12、13行指令9/21/2023電子工程設(shè)計(jì)中心 CJNEA,#10H,MAIN ;檢查操作數(shù)據(jù)19例4:按鍵控制操作利用P3口的部分口線實(shí)現(xiàn)并行數(shù)據(jù)輸入9/21/2023電子工程設(shè)計(jì)中心例4:按鍵控制操作利用P3口的部分口線實(shí)現(xiàn)并行數(shù)據(jù)輸入8/620程序清單 DISP_BUF EQU P1 ;發(fā)光二級(jí)管顯示端口 INPUT_BUF EQUP3 ;準(zhǔn)并行數(shù)據(jù)(按鍵狀態(tài))輸入端口 KEY EQU 30H ;按鍵狀態(tài)暫存單元MAIN: MOV DPTR,#0 MOV A,#0FFH MOVX @DPTR,A ;清除掛接在總線上的數(shù)碼管的顯示內(nèi)容 MOV DISP_BUF,A ;清除掛接在P1口上的數(shù)碼管的顯示內(nèi)容 MOV KEY,#0H MOV A,#0FEH ;發(fā)光二極管循環(huán)移位操作初始值L1: RL A ;發(fā)光二極管循環(huán)右移操作 CALL DELAY MOV DISP_BUF,A ;發(fā)光二極管顯示刷新 CALL PROC ;調(diào)用延時(shí)處理子程序 SJMP L1
9/21/2023電子工程設(shè)計(jì)中心程序清單 DISP_BUF EQU P1 ;發(fā)光二級(jí)管顯示端21 PROC: PUSH ACC ;根據(jù)鍵值確定調(diào)用延時(shí)子程序的次數(shù) MOV A,KEY CJNE A,#01H,PR1 SJMP PR7PR1: CJNE A,#02H,PR2 SJMP PR6PR2: CJNE A,#03H,PR3 SJMP PR5PR3: CJNE A,#04H,PR8 SJMP PR4PR4: CALL DELAYPR5: CALL DELAYPR6: CALL DELAYPR7: CALL DISPLAY ;調(diào)用顯示子程序PR8: POP ACC RET9/21/2023電子工程設(shè)計(jì)中心 PROC: PUSH ACC ;根據(jù)鍵值確定調(diào)用延時(shí)子程序22DISPLAY: MOV DPTR,#TAB ;在數(shù)碼管2上顯示對(duì)應(yīng)的鍵值 MOV A,KEY MOVC A,@A+DPTR MOV DPTR,#0 MOVX @DPTR,A RETDELAY: MOV R7,#0H ;延時(shí)子程序 D1: MOV R6,#0H DJNZ R6,$ MOV R5,INPUT_BUF ;從P3口讀入按鍵狀態(tài)
CJNE R5,#0FBH,D2 ;根據(jù)所按的鍵存儲(chǔ)對(duì)應(yīng)的鍵值1-4 MOV KEY,#1D2: CJNE R5,#0F7H,D3 MOV KEY,#2D3: CJNE R5,#0EFH,D4 MOV KEY,#39/21/2023電子工程設(shè)計(jì)中心DISPLAY: MOV DPTR,#TAB ;在數(shù)碼管2上23D4: CJNE R5,#0DFH,D5 MOV KEY,#4D5: DJNZ R7,D1 RET
TAB: DB 0FFH,0F9H,0A4H,0B0H,099H ;顯示字符段碼表END9/21/2023電子工程設(shè)計(jì)中心D4: CJNE R5,#0DFH,D58/6/2023電子24本節(jié)作業(yè)1.觀察與思考1-1到1-52.練習(xí)題一1-1/1-21-1要求:①解決問(wèn)題的思路/理由②解決方法—用什么指令②修改后的源程序,該過(guò)或添加的指令加下劃線9/21/2023電子工程設(shè)計(jì)中心本節(jié)作業(yè)1.觀察與思考1-1到1-52.練習(xí)題一1-125中斷控制操作程序調(diào)試練習(xí)中斷控制原理TCONIPIESCONTIRI+TXRXEX0IE0TF0TF1IE1ET0EX1ET1ESIT0IT1邊沿邊沿電平電平PX0PX1PT0PT1PSC/T0C/T1INT0EA矢量地址矢量地址INT1PCPC高級(jí)低級(jí)中斷請(qǐng)求中斷請(qǐng)求9/21/2023電子工程設(shè)計(jì)中心中斷控制操作程序調(diào)試練習(xí)中斷控制原理TCONIPIESCON26操作方法B8HB9HBAHBBHBCH位地址PX0PT0PX1PT1PSIPA8HA9HAAHABHACHAFH位地址EX0ET0EX1ET1ESEAIE88H89H8AH8BH8DH8FH位地址IT0IE0IT1IE1TF0TF1TCON98H99H位地址R1T1SCON中斷優(yōu)先級(jí)寄存器IP(B8H)中斷允許寄存器IE(A8H)定時(shí)計(jì)數(shù)器控制寄存器TCON(88H)串行通信控制寄存器SCON(98H)9/21/2023電子工程設(shè)計(jì)中心操作方法B8HB9HBAHBBHBCH位地址PX0PT0PX27例5:中斷控制程序調(diào)試外部中斷觸發(fā)電路9/21/2023電子工程設(shè)計(jì)中心例5:中斷控制程序調(diào)試外部中斷觸發(fā)電路8/6/2023電子工28 ORG 0000H LJMPINITIAL ;主程序入口
ORG 0003H LJMPSTAR ;外中斷0服務(wù)程序入口,開(kāi)始鍵(STAR)
ORG 0013H LJMPSTOP ;外中斷1服務(wù)程序入口停止鍵(STOP)
ORG 0100HINITIAL:MOVA,#0FFH MOV P1,#0FFH ;熄滅全部發(fā)光二極管
MOVDPTR,#00H MOVX@DPTR,A ;清除數(shù)碼管2(DS2)顯示
MOVA,#0FEH ;點(diǎn)亮發(fā)光二極管的初始數(shù)據(jù)
MOVR1,#1H ;發(fā)光二極管點(diǎn)亮位置初值
MOV IP,#01H ;設(shè)置INT0(開(kāi)始鍵STAR)為高優(yōu)先級(jí)
MOV TCON,#05H ;外中斷采用邊沿觸發(fā)
SETBEX1 ;INT1(停止鍵STOP)開(kāi)中斷
SETBEA ;開(kāi)放中斷
程序清單9/21/2023電子工程設(shè)計(jì)中心 ORG 0000H程序清單8/6/202329LOOP: CLR EA ;關(guān)閉中斷
RL A MOV P1,A ;刷新發(fā)光二極管控制數(shù)據(jù)
INC R1 ;發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值增1 SETBEA ;開(kāi)放中斷
LCALLDELAY1 ;延時(shí)
LCALLDELAY1 CJNER1,#8,LOOP;發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值有效性檢測(cè)
MOVR1,#0H ;發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值等于8則回0 SJMPLOOP ;無(wú)限次循環(huán) ;停止鍵的中斷服務(wù)程序STOP: PUSHACC ;保護(hù)A寄存器內(nèi)容 MOVA,R1 ;讀取發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值 MOVDPTR,#TAB MOVCA,@A+DPTR ;獲取發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值的顯示段碼 MOVDPTR,#00H MOVX@DPTR,A ;發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值的顯示數(shù)據(jù)送顯示
SETBEX0 ;INT0(啟動(dòng)鍵STAR)開(kāi)中斷
JNZ $ ;等待重新啟動(dòng)條件--A=0
9/21/2023電子工程設(shè)計(jì)中心LOOP: CLR EA ;關(guān)閉中斷830 MOVA,#0FFH MOVX@DPTR,A ;清除數(shù)碼管2(DS2)顯示
CLREX0 ;禁止INT0中斷(避免程序誤動(dòng)作)
POPACC ;恢復(fù)A寄存器內(nèi)容
CLR IE1 ;清除INT1中斷標(biāo)志(避免程序誤動(dòng)作) RETI ;中斷返回
;啟動(dòng)鍵的中斷服務(wù)程序STAR:MOVA,#00H ;設(shè)置啟動(dòng)條件--A=0 CLR IE0 ;清除INT0中斷標(biāo)志(避免程序誤動(dòng)作) RETI ;中斷返回TAB: DB 0C0H,0F9H,0A4H,0B0H,099H ;0--4段碼 DB 092H,082H,0F8H,080H ;5--8段碼
DELAY1:MOVR6,#0 ;延時(shí)子程序D1: MOVR7,#0 DJNZR7,$ DJNZR6,D1 RET9/21/2023電子工程設(shè)計(jì)中心 MOVA,#0FFH 8/6/20231定時(shí)器/計(jì)數(shù)器操作程序調(diào)試練習(xí)定時(shí)器/計(jì)數(shù)器工作原理OSC
÷12
計(jì)數(shù)器TF
T0(P3.4)
TR0GATE
P3.2中斷計(jì)數(shù)器溢出,TF=1發(fā)出中斷申請(qǐng)9/21/2023電子工程設(shè)計(jì)中心定時(shí)器/計(jì)數(shù)器操作程序調(diào)試練習(xí)定時(shí)器/計(jì)數(shù)器工作原理OSC32寄存器D7D6D5D4D3D2D1D0TMODGATEM1M0GATEM1M0定時(shí)/計(jì)數(shù)器1定時(shí)/計(jì)數(shù)器0①定時(shí)/計(jì)數(shù)選擇計(jì)數(shù)器定時(shí)器②工作方式選擇方式1方式2M1/M0=01M1/M0=10③控制方式選擇TRx單獨(dú)控制TRx與INTx共同控制GATE=0GATE=1操作方法9/21/2023電子工程設(shè)計(jì)中心寄存器D7D6D5D4D3D2D1D0TMODGATEM1M33XXXXXXXXTHxD0D1D2D3D4D5D6D7寄存器XXXXXXXXTLxD0D1D2D3D4D5D6D7寄存器④計(jì)數(shù)值裝載寄存器D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0⑤啟動(dòng)控制9/21/2023電子工程設(shè)計(jì)中心XXXXXXXXTHxD0D1D2D3D4D5D6D7寄存器34例6:計(jì)數(shù)器程序調(diào)試外部計(jì)數(shù)脈沖輸入電路9/21/2023電子工程設(shè)計(jì)中心例6:計(jì)數(shù)器程序調(diào)試外部計(jì)數(shù)脈沖輸入電路8/6/2023電子35DP2 EQU 00000H DP_L EQU 30H ;低位數(shù)值暫存器DP_H EQU 31H ;高位數(shù)值暫存器
MAIN:MOV TMOD,#01100110B ;C/T0,C/T1工作在方式2 MOV A,#0 ;顯示初值為0
MOV DP_L,A MOV DP_H,A CALL DISPLAY ;調(diào)用顯示子程序顯示初值0 MOV TL0,#0 ;C/T0置初值0 MOV TL1,#0 ;C/T1置初值0 SETB TR1 ;啟動(dòng)計(jì)數(shù)器1LOOP: MOV A,TL0 ;讀計(jì)數(shù)器0的計(jì)數(shù)值
CJNE A,#10H,L1 ;如果A中為16時(shí)
MOV TL0,#0 ;計(jì)數(shù)器0清0L1: MOV DP_H,A ;在DS2顯示計(jì)數(shù)器0的計(jì)數(shù)值
MOV A,TL1 ;讀計(jì)數(shù)器1的計(jì)數(shù)值
CJNE A,#10H,L2 ;如果A中為16時(shí)
MOV TL1,#0 ;計(jì)數(shù)器1清0程序清單9/21/2023電子工程設(shè)計(jì)中心DP2 EQU 00000H 程序清單8/6/20236L2: MOVDP_L,A ;在DS2顯示計(jì)數(shù)器0的計(jì)數(shù)值
CALL DISPLAY ;調(diào)用顯示子程序顯示計(jì)數(shù)值
SJMP LOOP ;無(wú)限次循環(huán)
DISPLAY:MOV A,DP_L ;讀低位顯示值
CALL DECODE ;調(diào)用換碼子程序 MOV DPTR,#DP2 ;顯示段碼送DS2 MOVX @DPTR,A MOV A,DP_H ;讀高位顯示值 CALL DECODE ;調(diào)用換碼子程序 MOV P1,A ;顯示段碼送DS1 RET
DECODE:MOV DPTR,#TAB MOVC A,@A+DPTR RET
9/21/2023電子工程設(shè)計(jì)中心L2: MOVDP_L37
DELAY:MOV R5,#80HD1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ;段碼0-7 DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH ;段碼8-F END 9/21/2023電子工程設(shè)計(jì)中心 8/6/2023電子工程設(shè)計(jì)中心38例7:定時(shí)器程序調(diào)試DS1 EQU P1 ;數(shù)碼管1(DS1)訪問(wèn)地址DS2 EQU 0H ;數(shù)碼管2(DS2)訪問(wèn)地址US100 EQU 30H ;100uS軟件計(jì)數(shù)器地址MS1 EQU 31H ;1MS軟件計(jì)數(shù)器地址MS100 EQU 32H ;100MS軟件計(jì)數(shù)器地址S1 EQU 33H ;1S軟件計(jì)數(shù)器地址 ORG 0000H AJMP MAIN
ORG 000BH ;定時(shí)器/計(jì)數(shù)器0中斷服務(wù)程序入口地址 AJMP TIMER
MAIN: MOV A,#0FFH ;清除顯示 MOV DS1,A MOV DPTR,#DS2 MOVX @DPTR,A CLR A ;軟件計(jì)數(shù)器清0
9/21/2023電子工程設(shè)計(jì)中心例7:定時(shí)器程序調(diào)試DS1 EQU P1 ;數(shù)碼管1(DS39 MOV US100,A MOV MS1,A MOV MS100,A MOV S1,A MOV TMOD,#02H ;定時(shí)器/計(jì)數(shù)器0工作于方式二 MOV TL0,#155 ;定時(shí)器/計(jì)數(shù)器0100uS計(jì)數(shù)值 MOV TH0,#155 ;定時(shí)器/計(jì)數(shù)器0重裝填計(jì)數(shù)值 SETB TR0 ;啟動(dòng)定時(shí)器/計(jì)數(shù)器0計(jì)數(shù) SETB ET0 ;開(kāi)放定時(shí)器/計(jì)數(shù)器0中斷 SETB EA ;中斷允許 SJMP $
TIMER:INC US100 ;100uS軟件計(jì)數(shù)器加1 MOV R0,#US100 CJNE @R0,#10,TIM3 ;計(jì)數(shù)未達(dá)到1MS轉(zhuǎn)TIM3 MOV US100,#0 ;否則100uS軟件計(jì)數(shù)器清0 INC MS1 ;1MS軟件計(jì)數(shù)器加1 INC R0
9/21/2023電子工程設(shè)計(jì)中心 MOV US100,A8/6/2023電子工程設(shè)計(jì)中心40
CJNE @R0,#100,TIM3 ;計(jì)數(shù)未達(dá)到100MS轉(zhuǎn)TIM3 MOV MS1,#0 ;否則1MS軟件計(jì)數(shù)器清0 INC MS100 ;100MS軟件計(jì)數(shù)器加1 INC R0 CJNE @R0,#10,TIM2 ;計(jì)數(shù)未達(dá)到1S轉(zhuǎn)TIM2 MOV MS100,#0 ;100MS軟件計(jì)數(shù)器清0 INC S1 ;1S軟件計(jì)數(shù)器加1 INC R0 CJNE @R0,#10,TIM1 ;計(jì)數(shù)未達(dá)到10S轉(zhuǎn)TIM1 MOV S1,#0 ;1S軟件計(jì)數(shù)器清0TIM1: MOV A,S1 ;讀取秒計(jì)數(shù)值 CALL DECODE ;轉(zhuǎn)換為顯示段碼 MOV DS1,A ;秒計(jì)數(shù)值送數(shù)碼管1顯示TIM2: MOV A,MS100 ;讀取100毫秒計(jì)數(shù)值 CALL DECODE ;轉(zhuǎn)換為顯示段碼 MOV DPTR,#DS2 MOVX @DPTR,A ;100毫秒計(jì)數(shù)值送數(shù)碼管2顯示TIM3: RETI ;中斷返回9/21/2023電子工程設(shè)計(jì)中心 8/6/2023電子工程設(shè)計(jì)中心41DECODE: MOV DPTR,#TAB ;段碼表頭地址送DPTR MOVC A,@A+DPTR ;讀取顯示段碼數(shù)據(jù) RET ;子程序返回
TAB: DB0C0H,0F9H,0A4H,0B0H,099H ;0-4段碼 DB092H,082H,0F8H,080H,090H ;5-9段碼 END9/21/2023電子工程設(shè)計(jì)中心DECODE: MOV DPTR,#TAB ;段碼表頭地址送42本節(jié)作業(yè)1.練習(xí)題二2-1(1)2.練習(xí)題二2-1(2)--(4)任選1題以上各題要求同1-13.練習(xí)題二2-39/21/2023電子工程設(shè)計(jì)中心本節(jié)作業(yè)1.練習(xí)題二2-1(1)2.練習(xí)題二243串行數(shù)據(jù)傳送操作程序調(diào)試練習(xí)準(zhǔn)備工作1.串行通信接口工作方式設(shè)置2.串行通信中斷控制設(shè)置3.波特率發(fā)生器設(shè)置9/21/2023電子工程設(shè)計(jì)中心串行數(shù)據(jù)傳送操作程序調(diào)試練習(xí)準(zhǔn)備工作1.串行通信接口工作方44例8:串行通信程序調(diào)試PC機(jī)串行通信程序調(diào)試環(huán)境9/21/2023電子工程設(shè)計(jì)中心例8:串行通信程序調(diào)試PC機(jī)串行通信程序調(diào)試環(huán)境8/6/2045DP2 EQU 00000H ;數(shù)碼管2(DS2)訪問(wèn)地址TIM_L EQU 0FDH ;定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)值(9600波特率)TIM_H EQU 0FDH ;定時(shí)器/計(jì)數(shù)器1重裝填計(jì)數(shù)值 DP_L EQU 40H ;數(shù)碼管2(DS2)顯示數(shù)據(jù)緩沖器DP_H EQU 41H ;數(shù)碼管1(DS1)顯示數(shù)據(jù)緩沖器FLAG BIT 01H ;按鍵有效標(biāo)志
ORG 0000H LJMP MAIN ;轉(zhuǎn)主程序
ORG 0023H LJMP RECE ;轉(zhuǎn)串行通信中斷服務(wù)程序
MAIN:MOV TMOD,#00100000B ;定時(shí)器/計(jì)數(shù)器1工作于方式二 MOV TH1,#TIM_H ;定時(shí)器/計(jì)數(shù)器1重裝填值 MOV TL1,#TIM_L ;定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)值 SETB TR1 ;啟動(dòng)定時(shí)器/計(jì)數(shù)器1計(jì)數(shù) MOV SCON,#01010000B ;串行端口工作于方式1 SETB ES ;開(kāi)放串行端口中斷 SETB EA ;中斷 允許
9/21/2023電子工程設(shè)計(jì)中心DP2 EQU 00000H ;數(shù)碼管2(DS2)訪問(wèn)地址46LOOP: CALL KEYBOARD ;調(diào)用鍵值讀取子程序 CJNE A,#0FFH,L0 ;鍵值不為FFH表示收到數(shù)據(jù) CLR FLAG ;清除有鍵按下標(biāo)志 SJMP LOOP ;鍵值為FFH(無(wú)按鍵按下)不作處理L0: JB FLAG,LOOP ;按下的按鍵尚未釋放不作處理 ADD A,#30H ;鍵值小于10,加30H轉(zhuǎn)換為ASCII碼 MOV SBUF,A ;發(fā)送 SETB FLAG ;置位有鍵按下的標(biāo)志 SJMP LOOP ;無(wú)限次循環(huán)
RECE:JNB TI,REC1 ;非發(fā)送轉(zhuǎn)接收處理 CLR TI ;清除發(fā)送中斷標(biāo)志 RETI ;中斷返回 REC1:PUSH ACC ;保護(hù)累加器A MOV A,SBUF ;接收串行數(shù)據(jù) PUSH ACC ;暫存 ANL A,#0FH ;取低4位 MOV DP_L,A ;送低位顯示數(shù)據(jù)緩沖器
9
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《西方法律思想史》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《生態(tài)工程學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《基礎(chǔ)工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《電子技術(shù)》2022-2023學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《信號(hào)變換》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)與通信》2022-2023學(xué)年期末試卷
- 溫病息風(fēng)止痙法
- 消毒設(shè)備維護(hù)管理
- 沈陽(yáng)理工大學(xué)《光纖傳感技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣告合同高空作業(yè)免責(zé)協(xié)議書
- 發(fā)現(xiàn)生活中的美-完整版PPT
- 小學(xué)道德與法治人教三年級(jí)上冊(cè)第三單元安全護(hù)我成長(zhǎng)-《遭遇陌生人》教案
- CAMDS操作方法及使用技巧
- 平狄克《微觀經(jīng)濟(jì)學(xué)》(第8版)筆記和課后習(xí)題詳解
- 最優(yōu)化理論與算法課程教學(xué)大綱
- 2022年湖北省武漢市江岸區(qū)育才第二小學(xué)六上期中數(shù)學(xué)試卷
- (最新版)中小學(xué)思政課一體化建設(shè)實(shí)施方案三篇
- PSA提氫裝置操作規(guī)程
- 水工隧洞概述(67頁(yè)清楚明了)
- 計(jì)算機(jī)維修工技能考核試卷
- 2020年四川省德陽(yáng)市高三一診考試地理試卷(Word版,含答案)
評(píng)論
0/150
提交評(píng)論