包含8086擴展,8255交通燈,數碼顯示
實驗一:匯編語言程序設計
實驗二:查表程序設計
實驗三:I/O口擴展實驗
實驗四:數碼顯示
實驗五:8255模擬交通燈
實驗一匯編語言程序設計 1、學習8088匯編語言程序的基本結構和程序設計的基本方法。 2、熟悉在PC機上建立、匯編、鏈接、調試和運行匯編語言程序的全過程。 3、掌握DEBUG基本指令及其使用方法。 編寫程序,將80H-8FH共16個字節數據寫入數據段1000H偏移地址開始的16個內存單元中。 1、進入編程環境,編寫、匯編、鏈接、運行匯編語言源程序。 2、利用DEBUG指令,對程序進行調試。 3、通過單步、斷點等調試手段驗證程序功能,查看1000H-100FH單元的數據是否傳送正確。 START: MOV SI,80H MOV DI,1000H MOV CX,16 XOR AX,AX NEXT: MOV AX, [SI] MOV [DI],AX INC SI INC DI LOOP NEXT MOV AH,4CH INT 21H END START 
通過這次實驗,利用DEBUG功能可以清楚看到程序運行結果以及匯編語句,進一步加深了對匯編指令運行的理解。
實驗二 查表程序設計 學習查表程序的設計方法。 PC計算機一臺,Dais-86PRO+或Dais-PRO163C實驗系統一套。 三、實驗內容及步驟 所謂查表,就是根據某個值,在數據表格中尋找與之對應的一個數據,在很多情況下,通過查表比通過計算要使程序更簡單,更容易編制。 通過查表的方法實現將一個八位二進制數的高4位和低4位分別轉換為ASCII碼。0~9的ASCII碼為30h~39h,而A~F的ASCII碼為41h~46h,這樣就可以將0~9與A~F對應的ASCII碼保存在一個數據表格中。當給定一個需要轉換的十六進制數時,就可以快速的在表格中找出相應的ASCII碼值。 實驗步驟: 1) 編寫實驗程序,編譯、鏈接生成可執行文件; 2) 利用DEBUG指令進行調試,查看結果是否正確; 3) 反復修改變量,觀察驗證程序的正確性。 四、實驗程序與DEBUG指令 DATAS SEGMENT TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV DL,4AH LEA BX,TABLE MOV AL,DL AND AL,0FH XLAT MOV AH,AL MOV CL,4 MOV AL,DL SHR AL,CL XLAT MOV DH,AL MOV DL,AH MOV AH,4CH INT 21H CODES ENDS END START 
六.實驗總結 通過這次實驗,熟悉了查表功能的運用以及運用過程中需要注意的問題,比如查找數值放在AL中,進一步加深了對查找表使用的理解。
實驗三 I/O口擴展實驗 學習在微機接口系統中擴展簡單I/O設備的基本方法。 PC計算機一臺,Dais-86PRO+或Dais-PRO163C實驗系統一套。 三、實驗內容及步驟 接口電路如圖1所示。本實驗用74LS244作為緩沖輸入接口、74LS273作為鎖存輸出接口擴展構成8位I/O接口。編寫程序,讀取74LS244緩沖輸入接口所連接的K7~K0開關數據,寫入到74LS273鎖存輸出接口,控制L7~L0八個發光二極管的亮滅。 
圖1 I/O擴展實驗電路圖 實驗步驟: 1) 按圖1連接實驗電路; 2) 編寫實驗程序,經編譯、鏈接無語法錯誤后裝載到實驗系統; 3) 全速運行程序,撥動開關K7~K0,觀察發光二極管L7~L0狀態。
四、實驗程序與DEBUG指令 code segment assume cs:code start:mov dx,300H IN al,dx OUT dx,al JMP start MOV ah,4ch INT 21h code ends end start 五、實驗結果 六、實驗總結 通過這次實驗,理解了如何利用IN,OUT輸入輸出指令讀取輸出數據,學習在微機接口系統中擴展簡單I/O設備的基本方法。進一步加深了對微機系統的理解。
實驗四數碼顯示 了解LED數碼管動態顯示的工作原理及編程方法。 PC計算機一臺,Dais-86PRO+或Dais-PRO163C實驗系統一套。 
實驗箱LED模塊接口如圖所示,要求使用8255的PA7—PA0控制數碼管字形口、PB5—PB0控制數碼管字位口,實現數碼管顯示“HELLO”。 1、該數碼顯示系統屬于動態顯示還是靜態顯示? 答:動態顯示。 2、闡述動態顯示和靜態顯示各自的特點。 答:動態顯示特點:亮度相對較低,耗電少,要求I/O口少; 靜態顯示特點:亮度高,功耗大,要求I/O口或驅動芯片多。 3、整理出詳細的實驗程序。
data segment data1 db 20h,10h,08h,04h,02h data2 db 89h,86h,0c7h,0c7h,0c0h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,303h mov al,80h out dx,al again:mov cx,5 lea si,data1 lea di,data2 next:mov dx,301h mov al,[si] out dx,al mov dx,300h mov al,[di] out dx,al mov bx,100h x1:dec bx jnz x1 inc si inc di loop next jmp again mov ah,4ch int 21h code ends end start
通過這次實驗,我了解LED數碼管動態顯示的工作原理,并利用匯編語言完成了對數碼管的動態顯示,成功顯示“HELLO”。
實驗五 8255模擬交通燈 掌握通過8255A并行口傳輸數據的方法,模擬交通燈控制系統。 PC計算機一臺,Dais-86PRO+或Dais-PRO163C實驗系統一套。 1、實驗要求: 1)用8255作輸出口,控制12個發光二極管亮滅,模擬交通燈管理: 2)程序初始時為A路口綠燈亮、B路口紅燈亮; 3)延遲一段時間后,A路口由綠燈亮變為黃燈閃爍; 4)接著A路口紅燈亮、B路口綠燈亮; 5)延遲一段時間后,B路口由綠燈亮變為黃燈閃爍; 6)最后循環至初始時繼續。 2、實驗步驟: 1) 連接實驗電路; 2) 編寫實驗程序,經編譯、鏈接無語法錯誤后裝載到實驗系統; 3) 全速運行程序,觀察發光二極管顯示,應能循環模擬交通燈顯示。 四、實驗程序與DEBUG指令 code segment assume cs:code start : mov dx,303h mov al,80h out dx,al mov dx,300h again: mov al,011101b out dx,al call delay mov cx,5 next:mov al,011110b out dx,al call delay1 mov al,011111b out dx,al call delay1 loop next mov al,101011b out dx,al call delay mov cx,5 nex1: mov al,110011b out dx,al call delay1 mov al,111011b out dx,al call delay1 loop next1 jmp again delay proc push cx push ax mov cx,10 x2:mov ax,0ffffh x1:dec ax jnz x1 dec cx jnz x2 pop ax pop cx ret delay endp delay1 proc push bx mov bx,0ffffh x4:dec bx jnz x4 pop bx ret delay1 endp mov ah,4ch int 21h code ends end start  
五、實驗結果 通過這次實驗,我掌握如何對8255A進行初始化,然后通過8255A并行口傳輸數據的方法,成功模擬了交通燈控制系統,也學會了如何編寫子程序并實現調用。
完整的Word格式文檔51黑下載地址:
323馮 微機.docx
(2.48 MB, 下載次數: 12)
2020-5-27 12:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|