8051單片機(jī)實(shí)驗(yàn)課件-單片機(jī)實(shí)驗(yàn)_第1頁
8051單片機(jī)實(shí)驗(yàn)課件-單片機(jī)實(shí)驗(yàn)_第2頁
8051單片機(jī)實(shí)驗(yàn)課件-單片機(jī)實(shí)驗(yàn)_第3頁
8051單片機(jī)實(shí)驗(yàn)課件-單片機(jī)實(shí)驗(yàn)_第4頁
8051單片機(jī)實(shí)驗(yàn)課件-單片機(jī)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

關(guān)于

8051單片機(jī)實(shí)驗(yàn)1.首次多專業(yè)集中設(shè)課2.以程序設(shè)計(jì)為主要內(nèi)容⑴熟悉單片機(jī)程序開發(fā)環(huán)境⑵掌握單片機(jī)內(nèi)、外資源使用方法⑶單片機(jī)匯編語言程序編寫與調(diào)試11/27/2023電子工程設(shè)計(jì)中心實(shí)驗(yàn)環(huán)境1.單片機(jī)仿真器可以控制程序運(yùn)行過程的“單片機(jī)”11/27/2023電子工程設(shè)計(jì)中心2.單片機(jī)實(shí)驗(yàn)板單片機(jī)程序運(yùn)行載體11/27/2023電子工程設(shè)計(jì)中心3.單片機(jī)程序集成開發(fā)環(huán)境中文版MedWin2.39文本編輯器—生成、編輯程序文本編譯器/匯編器—將C/匯編語言源程序翻譯為二進(jìn)制機(jī)器程序鏈接器—將二進(jìn)制機(jī)器程序轉(zhuǎn)換為帶調(diào)試信息的可執(zhí)行程序調(diào)試器—用多種調(diào)試方式運(yùn)行程序11/27/2023電子工程設(shè)計(jì)中心實(shí)驗(yàn)方法1.功能演示2.程序編寫調(diào)試練習(xí)調(diào)用單片機(jī)內(nèi)、外部資源的示例了解各種資源的使用方法修改示例程序,上機(jī)調(diào)試實(shí)現(xiàn)新的功能鍛煉初步的程序設(shè)計(jì)、調(diào)試能力11/27/2023電子工程設(shè)計(jì)中心運(yùn)行集成開發(fā)環(huán)境1.目標(biāo)板、仿真器加電加電順序—先目標(biāo)板;后仿真器⑴真實(shí)環(huán)境仿真/模擬仿真選擇斷電順序—先仿真器;后目標(biāo)板2.啟動(dòng)集成開發(fā)環(huán)境⑵關(guān)閉注冊提示⑶選擇工作目錄11/27/2023電子工程設(shè)計(jì)中心創(chuàng)建源程序/生成并下載目標(biāo)程序1.調(diào)用文本編輯功能錄入源程序文本—生成.asm文件2.調(diào)用匯編功能對.asm文件匯編—生成.obj文件3.調(diào)用鏈接功能對.obj文件鏈接—生成.hex文件4.將目標(biāo)代碼裝入仿真器進(jìn)行調(diào)試11/27/2023電子工程設(shè)計(jì)中心調(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)11/27/2023電子工程設(shè)計(jì)中心并行數(shù)據(jù)操作程序調(diào)試練習(xí)例1:跑馬燈通過P1口采用負(fù)邏輯控制,0點(diǎn)亮,1熄滅。11/27/2023電子工程設(shè)計(jì)中心程序清單 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 ;無限循環(huán)DELAY:MOVR5,#0H ;延時(shí)子程序D1: MOVR6,#0H DJNZR6,$ DJNZR5,D1 RET END11/27/2023電子工程設(shè)計(jì)中心①全速運(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)。11/27/2023電子工程設(shè)計(jì)中心③

跟蹤運(yùn)行(3種方法)觀察運(yùn)行中除了寄存器A、P1的值在變,還有哪些寄存器的內(nèi)容在變。11/27/2023電子工程設(shè)計(jì)中心例2:數(shù)碼管(DS1)點(diǎn)亮控制“共陽”連接,負(fù)邏輯編碼控制11/27/2023電子工程設(shè)計(jì)中心 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ù)值對應(yīng)的顯示段碼

MOVC A,@A+DPTR MOV P1,A ;段碼送并行口1顯示

CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY

程序清單11/27/2023電子工程設(shè)計(jì)中心 INC R1 ;操作數(shù)據(jù)(R1)增1 MOV A,R1 CJNEA,#10H,MAIN ;檢查操作數(shù)據(jù)是否大于顯示范圍(F) SJMPINIT ;無限循環(huán)

DELAY:MOV R5,#0H ;延時(shí)子程序D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET END11/27/2023電子工程設(shè)計(jì)中心①運(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中能否為其它值11/27/2023電子工程設(shè)計(jì)中心例3:數(shù)碼管(DS2)點(diǎn)亮控制通過總線擴(kuò)展實(shí)現(xiàn)的數(shù)碼管點(diǎn)亮控制11/27/2023電子工程設(shè)計(jì)中心程序清單 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ù)值對應(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

11/27/2023電子工程設(shè)計(jì)中心 CJNEA,#10H,MAIN ;檢查操作數(shù)據(jù)是否大于顯示范圍(F) SJMPINIT ;無限循環(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行指令11/27/2023電子工程設(shè)計(jì)中心例4:按鍵控制操作利用P3口的部分口線實(shí)現(xiàn)并行數(shù)據(jù)輸入11/27/2023電子工程設(shè)計(jì)中心程序清單 DISP_BUF EQU P1 ;發(fā)光二級管顯示端口 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

11/27/2023電子工程設(shè)計(jì)中心 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 RET11/27/2023電子工程設(shè)計(jì)中心DISPLAY: MOV DPTR,#TAB ;在數(shù)碼管2上顯示對應(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ǔ)對應(yīng)的鍵值1-4 MOV KEY,#1D2: CJNE R5,#0F7H,D3 MOV KEY,#2D3: CJNE R5,#0EFH,D4 MOV KEY,#311/27/2023電子工程設(shè)計(jì)中心D4: CJNE R5,#0DFH,D5 MOV KEY,#4D5: DJNZ R7,D1 RET

TAB: DB 0FFH,0F9H,0A4H,0B0H,099H ;顯示字符段碼表END11/27/2023電子工程設(shè)計(jì)中心本節(jié)作業(yè)1.觀察與思考1-1到1-52.練習(xí)題一1-1/1-21-1要求:①解決問題的思路/理由②解決方法—用什么指令②修改后的源程序,該過或添加的指令加下劃線11/27/2023電子工程設(shè)計(jì)中心中斷控制操作程序調(diào)試練習(xí)中斷控制原理TCONIPIESCONTIRI+TXRXEX0IE0TF0TF1IE1ET0EX1ET1ESIT0IT1邊沿邊沿電平電平PX0PX1PT0PT1PSC/T0C/T1INT0EA矢量地址矢量地址INT1PCPC高級低級中斷請求中斷請求11/27/2023電子工程設(shè)計(jì)中心操作方法B8HB9HBAHBBHBCH位地址PX0PT0PX1PT1PSIPA8HA9HAAHABHACHAFH位地址EX0ET0EX1ET1ESEAIE88H89H8AH8BH8DH8FH位地址IT0IE0IT1IE1TF0TF1TCON98H99H位地址R1T1SCON中斷優(yōu)先級寄存器IP(B8H)中斷允許寄存器IE(A8H)定時(shí)計(jì)數(shù)器控制寄存器TCON(88H)串行通信控制寄存器SCON(98H)11/27/2023電子工程設(shè)計(jì)中心例5:中斷控制程序調(diào)試外部中斷觸發(fā)電路11/27/2023電子工程設(shè)計(jì)中心 ORG 0000H LJMPINITIAL ;主程序入口

ORG 0003H LJMPSTAR ;外中斷0服務(wù)程序入口,開始鍵(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(開始鍵STAR)為高優(yōu)先級

MOV TCON,#05H ;外中斷采用邊沿觸發(fā)

SETBEX1 ;INT1(停止鍵STOP)開中斷

SETBEA ;開放中斷

程序清單11/27/2023電子工程設(shè)計(jì)中心LOOP: CLR EA ;關(guān)閉中斷

RL A MOV P1,A ;刷新發(fā)光二極管控制數(shù)據(jù)

INC R1 ;發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值增1 SETBEA ;開放中斷

LCALLDELAY1 ;延時(shí)

LCALLDELAY1 CJNER1,#8,LOOP;發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值有效性檢測

MOVR1,#0H ;發(fā)光二極管點(diǎn)亮位置計(jì)數(shù)值等于8則回0 SJMPLOOP ;無限次循環(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)開中斷

JNZ $ ;等待重新啟動(dòng)條件--A=0

11/27/2023電子工程設(shè)計(jì)中心 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 RET11/27/2023電子工程設(shè)計(jì)中心定時(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ā)出中斷申請11/27/2023電子工程設(shè)計(jì)中心寄存器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操作方法11/27/2023電子工程設(shè)計(jì)中心XXXXXXXXTHxD0D1D2D3D4D5D6D7寄存器XXXXXXXXTLxD0D1D2D3D4D5D6D7寄存器④計(jì)數(shù)值裝載寄存器D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0⑤啟動(dòng)控制11/27/2023電子工程設(shè)計(jì)中心例6:計(jì)數(shù)器程序調(diào)試外部計(jì)數(shù)脈沖輸入電路11/27/2023電子工程設(shè)計(jì)中心DP2 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程序清單11/27/2023電子工程設(shè)計(jì)中心L2: MOVDP_L,A ;在DS2顯示計(jì)數(shù)器0的計(jì)數(shù)值

CALL DISPLAY ;調(diào)用顯示子程序顯示計(jì)數(shù)值

SJMP LOOP ;無限次循環(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

11/27/2023電子工程設(shè)計(jì)中心

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 11/27/2023電子工程設(shè)計(jì)中心例7:定時(shí)器程序調(diào)試DS1 EQU P1 ;數(shù)碼管1(DS1)訪問地址DS2 EQU 0H ;數(shù)碼管2(DS2)訪問地址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

11/27/2023電子工程設(shè)計(jì)中心 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 ;開放定時(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

11/27/2023電子工程設(shè)計(jì)中心

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 ;中斷返回11/27/2023電子工程設(shè)計(jì)中心DECODE: 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段碼 END11/27/2023電子工程設(shè)計(jì)中心本節(jié)作業(yè)1.練習(xí)題二2-1(1)2.練習(xí)題二2-1(2)--(4)任選1題以上各題要求同1-13.練習(xí)題二2-311/27/2023電子工程設(shè)計(jì)中心串行數(shù)據(jù)傳送操作程序調(diào)試練習(xí)準(zhǔn)備工作1.串行通信接口工作方式設(shè)置2.串行通信中斷控制設(shè)置3.波特率發(fā)生器設(shè)置11/27/2023電子工程設(shè)計(jì)中心例8:串行通信程序調(diào)試PC機(jī)串行通信程序調(diào)試環(huán)境11/27/2023電子工程設(shè)計(jì)中心DP2 EQU 00000H ;數(shù)碼管2(DS2)訪問地址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 ;開放串行端口中斷 SETB EA ;中斷 允許

11/27/2023電子工程設(shè)計(jì)中心LOOP: CALL KEYBOARD ;調(diào)用鍵值讀取子程序 CJNE A,#0FFH,L0 ;鍵值不為FFH表示收到數(shù)據(jù) CLR FLAG ;清除有鍵按下標(biāo)志 SJMP LOOP ;鍵值為FFH(無按鍵按下)不作處理L0: JB FLAG,LOOP ;按下的按鍵尚未釋放不作處理 ADD A,#30H ;鍵值小于10,加30H轉(zhuǎn)換為ASCII碼 MOV SBUF,A ;發(fā)送 SETB FLAG ;置位有鍵按下的標(biāo)志 SJMP LOOP ;無限次循環(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ù)緩沖器

1

溫馨提示

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

最新文檔

評論

0/150

提交評論