8051單片機實驗課件-單片機實驗_第1頁
8051單片機實驗課件-單片機實驗_第2頁
8051單片機實驗課件-單片機實驗_第3頁
8051單片機實驗課件-單片機實驗_第4頁
8051單片機實驗課件-單片機實驗_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

關于

8051單片機實驗1.首次多專業(yè)集中設課2.以程序設計為主要內容⑴熟悉單片機程序開發(fā)環(huán)境⑵掌握單片機內、外資源使用方法⑶單片機匯編語言程序編寫與調試10/6/2023電子工程設計中心關于8051單片機實驗1.首次多專業(yè)集中設課2.以程序1實驗環(huán)境1.單片機仿真器可以控制程序運行過程的“單片機”10/6/2023電子工程設計中心實驗環(huán)境1.單片機仿真器可以控制程序運行過程的“單片機”122.單片機實驗板單片機程序運行載體10/6/2023電子工程設計中心2.單片機實驗板單片機程序運行載體10/6/2023電子工33.單片機程序集成開發(fā)環(huán)境中文版MedWin2.39文本編輯器—生成、編輯程序文本編譯器/匯編器—將C/匯編語言源程序翻譯為二進制機器程序鏈接器—將二進制機器程序轉換為帶調試信息的可執(zhí)行程序調試器—用多種調試方式運行程序10/6/2023電子工程設計中心3.單片機程序集成開發(fā)環(huán)境中文版MedWin2.39文4實驗方法1.功能演示2.程序編寫調試練習調用單片機內、外部資源的示例了解各種資源的使用方法修改示例程序,上機調試實現(xiàn)新的功能鍛煉初步的程序設計、調試能力10/6/2023電子工程設計中心實驗方法1.功能演示2.程序編寫調試練習調用單片機內、外5運行集成開發(fā)環(huán)境1.目標板、仿真器加電加電順序—先目標板;后仿真器⑴真實環(huán)境仿真/模擬仿真選擇斷電順序—先仿真器;后目標板2.啟動集成開發(fā)環(huán)境⑵關閉注冊提示⑶選擇工作目錄10/6/2023電子工程設計中心運行集成開發(fā)環(huán)境1.目標板、仿真器加電加電順序—先目標板;6創(chuàng)建源程序/生成并下載目標程序1.調用文本編輯功能錄入源程序文本—生成.asm文件2.調用匯編功能對.asm文件匯編—生成.obj文件3.調用鏈接功能對.obj文件鏈接—生成.hex文件4.將目標代碼裝入仿真器進行調試10/6/2023電子工程設計中心創(chuàng)建源程序/生成并下載目標程序1.調用文本編輯功能錄入源程7調試手段1.觀察項2.運行方式程序運行中,內、外部資源工作狀態(tài)的觀察窗口。全速運行單步運行跟蹤運行運行到斷點運行到光標10/6/2023電子工程設計中心調試手段1.觀察項2.運行方式程序運行中,內、外8并行數(shù)據(jù)操作程序調試練習例1:跑馬燈通過P1口采用負邏輯控制,0點亮,1熄滅。10/6/2023電子工程設計中心并行數(shù)據(jù)操作程序調試練習例1:跑馬燈通過P1口采用負邏輯控9程序清單 MOVA,#0FFH ;清除掛接在總線上的數(shù)碼管的顯示內容 MOVDPTR,#00H MOVX@DPTR,A MOVA,#07FH;賦初始值并在發(fā)光二極管上顯示該數(shù)值 MOVP1,ALOOP: CALLDELAY CALLDELAY RR A ;A寄存器內容右移1位并送發(fā)光二極管顯示 MOVP1,A AJMPLOOP ;無限循環(huán)DELAY:MOVR5,#0H ;延時子程序D1: MOVR6,#0H DJNZR6,$ DJNZR5,D1 RET END10/6/2023電子工程設計中心程序清單 MOVA,#0FFH 10①全速運行(3種方法)②單步運行(3種方法)調試觀察發(fā)光二極管點亮位置移動方向,那條指令決定發(fā)光二極管移動方向。觀察發(fā)光二極管點亮位置移動速度,那段程序決定發(fā)光二極管移動速度。觀察第3次循環(huán)結束時寄存器A、P1的值,發(fā)光二極管的點亮狀態(tài)。10/6/2023電子工程設計中心①全速運行(3種方法)②單步運行(3種方法)調試11③

跟蹤運行(3種方法)觀察運行中除了寄存器A、P1的值在變,還有哪些寄存器的內容在變。10/6/2023電子工程設計中心③跟蹤運行(3種方法)觀察運行中除了寄存器A、P12例2:數(shù)碼管(DS1)點亮控制“共陽”連接,負邏輯編碼控制10/6/2023電子工程設計中心例2:數(shù)碼管(DS1)點亮控制“共陽”連接,負邏輯編碼控制113 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ù)碼管的顯示內容

MOV DPTR,#00H MOVX @DPTR,A MOV R1,#00H ;操作數(shù)據(jù)初始值

MOV A,R1 MAIN:MOV DPTR,#TAB ;讀取與A中數(shù)值對應的顯示段碼

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

CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY

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

DELAY:MOV R5,#0H ;延時子程序D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET END10/6/2023電子工程設計中心 INC R1 ;15①運行到斷點1②運行到斷點2調試源程序第14行設斷點,全速運行至斷點單步執(zhí)行第14、15行指令,觀察寄存器A的值及數(shù)碼管顯示數(shù)值源程序第24行設斷點,全速運行至斷點觀察寄存器A的值,A中能否為其它值10/6/2023電子工程設計中心①運行到斷點1②運行到斷點2調試源程序第14行設斷點,全16例3:數(shù)碼管(DS2)點亮控制通過總線擴展實現(xiàn)的數(shù)碼管點亮控制10/6/2023電子工程設計中心例3:數(shù)碼管(DS2)點亮控制通過總線擴展實現(xiàn)的數(shù)碼管點亮控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ù)值對應的顯示段碼 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

10/6/2023電子工程設計中心程序清單 ORG 0000H10/6/2023電子工程設計18 CJNEA,#10H,MAIN ;檢查操作數(shù)據(jù)是否大于顯示范圍(F) SJMPINIT ;無限循環(huán)

DELAY:MOV R5,#0H ;延時子程序D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET END調試運行到光標光標放在源程序第11行,運行至光標然后單步執(zhí)行第11、12、13行指令10/6/2023電子工程設計中心 CJNEA,#10H,MAIN ;檢查操作數(shù)據(jù)19例4:按鍵控制操作利用P3口的部分口線實現(xiàn)并行數(shù)據(jù)輸入10/6/2023電子工程設計中心例4:按鍵控制操作利用P3口的部分口線實現(xiàn)并行數(shù)據(jù)輸入10/20程序清單 DISP_BUF EQU P1 ;發(fā)光二級管顯示端口 INPUT_BUF EQUP3 ;準并行數(shù)據(jù)(按鍵狀態(tài))輸入端口 KEY EQU 30H ;按鍵狀態(tài)暫存單元MAIN: MOV DPTR,#0 MOV A,#0FFH MOVX @DPTR,A ;清除掛接在總線上的數(shù)碼管的顯示內容 MOV DISP_BUF,A ;清除掛接在P1口上的數(shù)碼管的顯示內容 MOV KEY,#0H MOV A,#0FEH ;發(fā)光二極管循環(huán)移位操作初始值L1: RL A ;發(fā)光二極管循環(huán)右移操作 CALL DELAY MOV DISP_BUF,A ;發(fā)光二極管顯示刷新 CALL PROC ;調用延時處理子程序 SJMP L1

10/6/2023電子工程設計中心程序清單 DISP_BUF EQU P1 ;發(fā)光二級管顯示端21 PROC: PUSH ACC ;根據(jù)鍵值確定調用延時子程序的次數(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 ;調用顯示子程序PR8: POP ACC RET10/6/2023電子工程設計中心 PROC: PUSH ACC ;根據(jù)鍵值確定調用延時子程序22DISPLAY: MOV DPTR,#TAB ;在數(shù)碼管2上顯示對應的鍵值 MOV A,KEY MOVC A,@A+DPTR MOV DPTR,#0 MOVX @DPTR,A RETDELAY: MOV R7,#0H ;延時子程序 D1: MOV R6,#0H DJNZ R6,$ MOV R5,INPUT_BUF ;從P3口讀入按鍵狀態(tài)

CJNE R5,#0FBH,D2 ;根據(jù)所按的鍵存儲對應的鍵值1-4 MOV KEY,#1D2: CJNE R5,#0F7H,D3 MOV KEY,#2D3: CJNE R5,#0EFH,D4 MOV KEY,#310/6/2023電子工程設計中心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 ;顯示字符段碼表END10/6/2023電子工程設計中心D4: CJNE R5,#0DFH,D510/6/2023電24本節(jié)作業(yè)1.觀察與思考1-1到1-52.練習題一1-1/1-21-1要求:①解決問題的思路/理由②解決方法—用什么指令②修改后的源程序,該過或添加的指令加下劃線10/6/2023電子工程設計中心本節(jié)作業(yè)1.觀察與思考1-1到1-52.練習題一1-125中斷控制操作程序調試練習中斷控制原理TCONIPIESCONTIRI+TXRXEX0IE0TF0TF1IE1ET0EX1ET1ESIT0IT1邊沿邊沿電平電平PX0PX1PT0PT1PSC/T0C/T1INT0EA矢量地址矢量地址INT1PCPC高級低級中斷請求中斷請求10/6/2023電子工程設計中心中斷控制操作程序調試練習中斷控制原理TCONIPIESCON26操作方法B8HB9HBAHBBHBCH位地址PX0PT0PX1PT1PSIPA8HA9HAAHABHACHAFH位地址EX0ET0EX1ET1ESEAIE88H89H8AH8BH8DH8FH位地址IT0IE0IT1IE1TF0TF1TCON98H99H位地址R1T1SCON中斷優(yōu)先級寄存器IP(B8H)中斷允許寄存器IE(A8H)定時計數(shù)器控制寄存器TCON(88H)串行通信控制寄存器SCON(98H)10/6/2023電子工程設計中心操作方法B8HB9HBAHBBHBCH位地址PX0PT0PX27例5:中斷控制程序調試外部中斷觸發(fā)電路10/6/2023電子工程設計中心例5:中斷控制程序調試外部中斷觸發(fā)電路10/6/2023電子28 ORG 0000H LJMPINITIAL ;主程序入口

ORG 0003H LJMPSTAR ;外中斷0服務程序入口,開始鍵(STAR)

ORG 0013H LJMPSTOP ;外中斷1服務程序入口停止鍵(STOP)

ORG 0100HINITIAL:MOVA,#0FFH MOV P1,#0FFH ;熄滅全部發(fā)光二極管

MOVDPTR,#00H MOVX@DPTR,A ;清除數(shù)碼管2(DS2)顯示

MOVA,#0FEH ;點亮發(fā)光二極管的初始數(shù)據(jù)

MOVR1,#1H ;發(fā)光二極管點亮位置初值

MOV IP,#01H ;設置INT0(開始鍵STAR)為高優(yōu)先級

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

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

SETBEA ;開放中斷

程序清單10/6/2023電子工程設計中心 ORG 0000H程序清單10/6/20229LOOP: CLR EA ;關閉中斷

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

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

LCALLDELAY1 ;延時

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

MOVR1,#0H ;發(fā)光二極管點亮位置計數(shù)值等于8則回0 SJMPLOOP ;無限次循環(huán) ;停止鍵的中斷服務程序STOP: PUSHACC ;保護A寄存器內容 MOVA,R1 ;讀取發(fā)光二極管點亮位置計數(shù)值 MOVDPTR,#TAB MOVCA,@A+DPTR ;獲取發(fā)光二極管點亮位置計數(shù)值的顯示段碼 MOVDPTR,#00H MOVX@DPTR,A ;發(fā)光二極管點亮位置計數(shù)值的顯示數(shù)據(jù)送顯示

SETBEX0 ;INT0(啟動鍵STAR)開中斷

JNZ $ ;等待重新啟動條件--A=0

10/6/2023電子工程設計中心LOOP: CLR EA ;關閉中斷130 MOVA,#0FFH MOVX@DPTR,A ;清除數(shù)碼管2(DS2)顯示

CLREX0 ;禁止INT0中斷(避免程序誤動作)

POPACC ;恢復A寄存器內容

CLR IE1 ;清除INT1中斷標志(避免程序誤動作) RETI ;中斷返回

;啟動鍵的中斷服務程序STAR:MOVA,#00H ;設置啟動條件--A=0 CLR IE0 ;清除INT0中斷標志(避免程序誤動作) RETI ;中斷返回TAB: DB 0C0H,0F9H,0A4H,0B0H,099H ;0--4段碼 DB 092H,082H,0F8H,080H ;5--8段碼

DELAY1:MOVR6,#0 ;延時子程序D1: MOVR7,#0 DJNZR7,$ DJNZR6,D1 RET10/6/2023電子工程設計中心 MOVA,#0FFH 10/6/2031定時器/計數(shù)器操作程序調試練習定時器/計數(shù)器工作原理OSC

÷12

計數(shù)器TF

T0(P3.4)

TR0GATE

P3.2中斷計數(shù)器溢出,TF=1發(fā)出中斷申請10/6/2023電子工程設計中心定時器/計數(shù)器操作程序調試練習定時器/計數(shù)器工作原理OSC32寄存器D7D6D5D4D3D2D1D0TMODGATEM1M0GATEM1M0定時/計數(shù)器1定時/計數(shù)器0①定時/計數(shù)選擇計數(shù)器定時器②工作方式選擇方式1方式2M1/M0=01M1/M0=10③控制方式選擇TRx單獨控制TRx與INTx共同控制GATE=0GATE=1操作方法10/6/2023電子工程設計中心寄存器D7D6D5D4D3D2D1D0TMODGATEM1M33XXXXXXXXTHxD0D1D2D3D4D5D6D7寄存器XXXXXXXXTLxD0D1D2D3D4D5D6D7寄存器④計數(shù)值裝載寄存器D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0⑤啟動控制10/6/2023電子工程設計中心XXXXXXXXTHxD0D1D2D3D4D5D6D7寄存器34例6:計數(shù)器程序調試外部計數(shù)脈沖輸入電路10/6/2023電子工程設計中心例6:計數(shù)器程序調試外部計數(shù)脈沖輸入電路10/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 ;調用顯示子程序顯示初值0 MOV TL0,#0 ;C/T0置初值0 MOV TL1,#0 ;C/T1置初值0 SETB TR1 ;啟動計數(shù)器1LOOP: MOV A,TL0 ;讀計數(shù)器0的計數(shù)值

CJNE A,#10H,L1 ;如果A中為16時

MOV TL0,#0 ;計數(shù)器0清0L1: MOV DP_H,A ;在DS2顯示計數(shù)器0的計數(shù)值

MOV A,TL1 ;讀計數(shù)器1的計數(shù)值

CJNE A,#10H,L2 ;如果A中為16時

MOV TL1,#0 ;計數(shù)器1清0程序清單10/6/2023電子工程設計中心DP2 EQU 00000H 程序清單10/6/2036L2: MOVDP_L,A ;在DS2顯示計數(shù)器0的計數(shù)值

CALL DISPLAY ;調用顯示子程序顯示計數(shù)值

SJMP LOOP ;無限次循環(huán)

DISPLAY:MOV A,DP_L ;讀低位顯示值

CALL DECODE ;調用換碼子程序 MOV DPTR,#DP2 ;顯示段碼送DS2 MOVX @DPTR,A MOV A,DP_H ;讀高位顯示值 CALL DECODE ;調用換碼子程序 MOV P1,A ;顯示段碼送DS1 RET

DECODE:MOV DPTR,#TAB MOVC A,@A+DPTR RET

10/6/2023電子工程設計中心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 10/6/2023電子工程設計中心 10/6/2023電子工程設計中心38例7:定時器程序調試DS1 EQU P1 ;數(shù)碼管1(DS1)訪問地址DS2 EQU 0H ;數(shù)碼管2(DS2)訪問地址US100 EQU 30H ;100uS軟件計數(shù)器地址MS1 EQU 31H ;1MS軟件計數(shù)器地址MS100 EQU 32H ;100MS軟件計數(shù)器地址S1 EQU 33H ;1S軟件計數(shù)器地址 ORG 0000H AJMP MAIN

ORG 000BH ;定時器/計數(shù)器0中斷服務程序入口地址 AJMP TIMER

MAIN: MOV A,#0FFH ;清除顯示 MOV DS1,A MOV DPTR,#DS2 MOVX @DPTR,A CLR A ;軟件計數(shù)器清0

10/6/2023電子工程設計中心例7:定時器程序調試DS1 EQU P1 ;數(shù)碼管1(DS39 MOV US100,A MOV MS1,A MOV MS100,A MOV S1,A MOV TMOD,#02H ;定時器/計數(shù)器0工作于方式二 MOV TL0,#155 ;定時器/計數(shù)器0100uS計數(shù)值 MOV TH0,#155 ;定時器/計數(shù)器0重裝填計數(shù)值 SETB TR0 ;啟動定時器/計數(shù)器0計數(shù) SETB ET0 ;開放定時器/計數(shù)器0中斷 SETB EA ;中斷允許 SJMP $

TIMER:INC US100 ;100uS軟件計數(shù)器加1 MOV R0,#US100 CJNE @R0,#10,TIM3 ;計數(shù)未達到1MS轉TIM3 MOV US100,#0 ;否則100uS軟件計數(shù)器清0 INC MS1 ;1MS軟件計數(shù)器加1 INC R0

10/6/2023電子工程設計中心 MOV US100,A10/6/2023電子工程設計中心40

CJNE @R0,#100,TIM3 ;計數(shù)未達到100MS轉TIM3 MOV MS1,#0 ;否則1MS軟件計數(shù)器清0 INC MS100 ;100MS軟件計數(shù)器加1 INC R0 CJNE @R0,#10,TIM2 ;計數(shù)未達到1S轉TIM2 MOV MS100,#0 ;100MS軟件計數(shù)器清0 INC S1 ;1S軟件計數(shù)器加1 INC R0 CJNE @R0,#10,TIM1 ;計數(shù)未達到10S轉TIM1 MOV S1,#0 ;1S軟件計數(shù)器清0TIM1: MOV A,S1 ;讀取秒計數(shù)值 CALL DECODE ;轉換為顯示段碼 MOV DS1,A ;秒計數(shù)值送數(shù)碼管1顯示TIM2: MOV A,MS100 ;讀取100毫秒計數(shù)值 CALL DECODE ;轉換為顯示段碼 MOV DPTR,#DS2 MOVX @DPTR,A ;100毫秒計數(shù)值送數(shù)碼管2顯示TIM3: RETI ;中斷返回10/6/2023電子工程設計中心 10/6/2023電子工程設計中心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段碼 END10/6/2023電子工程設計中心DECODE: MOV DPTR,#TAB ;段碼表頭地址送42本節(jié)作業(yè)1.練習題二2-1(1)2.練習題二2-1(2)--(4)任選1題以上各題要求同1-13.練習題二2-310/6/2023電子工程設計中心本節(jié)作業(yè)1.練習題二2-1(1)2.練習題二243串行數(shù)據(jù)傳送操作程序調試練習準備工作1.串行通信接口工作方式設置2.串行通信中斷控制設置3.波特率發(fā)生器設置10/6/2023電子工程設計中心串行數(shù)據(jù)傳送操作程序調試練習準備工作1.串行通信接口工作方44例8:串行通信程序調試PC機串行通信程序調試環(huán)境10/6/2023電子工程設計中心例8:串行通信程序調試PC機串行通信程序調試環(huán)境10/6/245DP2 EQU 00000H ;數(shù)碼管2(DS2)訪問地址TIM_L EQU 0FDH ;定時器/計數(shù)器1計數(shù)值(9600波特率)TIM_H EQU 0FDH ;定時器/計數(shù)器1重裝填計數(shù)值 DP_L EQU 40H ;數(shù)碼管2(DS2)顯示數(shù)據(jù)緩沖器DP_H EQU 41H ;數(shù)碼管1(DS1)顯示數(shù)據(jù)緩沖器FLAG BIT 01H ;按鍵有效標志

ORG 0000H LJMP MAIN ;轉主程序

ORG 0023H LJMP RECE ;轉串行通信中斷服務程序

MAIN:MOV TMOD,#00100000B ;定時器/計數(shù)器1工作于方式二 MOV TH1,#TIM_H ;定時器/計數(shù)器1重裝填值 MOV TL1,#TIM_L ;定時器/計數(shù)器1計數(shù)值 SETB TR1 ;啟動定時器/計數(shù)器1計數(shù) MOV SCON,#01010000B ;串行端口工作于方式1 SETB ES ;開放串行端口中斷 SETB EA ;中斷 允許

10/6/2023電子工程設計中心DP2 EQU 00000H ;數(shù)碼管2(DS2)訪問地址46LOOP: CALL KEYBOARD ;調用鍵值讀取子程序 CJNE A,#0FFH,L0 ;鍵值不為FFH表示收到數(shù)據(jù) CLR FLAG ;清除有鍵按下標志 SJMP LOOP ;鍵值為FFH(無按鍵按下)不作處理L0: JB FLAG,LOOP ;按下的按鍵尚未釋放不作處理 ADD A,#30H ;鍵值小于10,加30H轉換為ASCII碼 MOV SBUF,A ;發(fā)送 SETB FLAG ;置位有鍵按下的標志 SJMP LOOP ;無限次循環(huán)

RECE:JNB TI,REC1 ;非發(fā)送轉接收處理 CLR TI ;清除發(fā)送中斷標志 RETI ;中斷返回 REC1:PUSH ACC ;保護累加器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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論