學院:資訊與通訊工程學院
班級:2010211123
姓名:羅
學號:10211***
班內序號:
實驗一熟悉實驗環境及io的使用
一, 實驗目的
掌握i/o位址解碼的基本原理
二,實驗內容
三,硬體接線圖
四,程式流程圖
五,源程式**
code segment
assume cs:code
start:
exit:mov dx,2a0h;時鐘y4埠
out dx,al;輸出時鐘負脈衝
call delay;延時,燈泡端為高電平
mov dx,2a8h;d觸發器資料口y5
out dx,al;送入低電平熄滅燈泡
call delay
mov ah,1;測試按鍵
int 16h
jmp exit
mov ax,4c00h
int 21h
delay proc near
push bx
mov bx,28ah
wait:loop wait
pop bx
retdelay endp
code ends
end start
七,實驗收穫和體會
本次實驗主要聯絡了埠的輸出,d觸發器作為乙個外部埠實現了向d觸發器內寫值並正確輸出,控制燈泡亮滅,實現了解碼功能,其中乙個解碼輸出對應8個位址訊號。
實驗二簡單並行介面
三、 程式流程圖
四、 源程式
code segment
assume cs:code
start:mov ah,1
int 21h
cmp al,00011011b
jz exit
mov dx,2a8h;送出ascii碼
out dx,al
mov dx,2a0h;讀入ascii碼
in al,dx
mov dl,al
mov ah,02h;螢幕顯示ascii碼
int 21h
jmp start
exit:mov ax,4c00h
int 21h
code ends
end start
實驗四七段數碼管
四,源程式**
顯示靜態學號
data segment
data ends
code segment
assume cs:code,ds:data
start: mov dx,28bh;控制口位址
mov al,80h ;控制字***設定工作方式0
out dx,al
lop1: mov dx,288h ;a口位址
mov al,06h;段選寫1
out dx,al
mov dx,28ah ;位選第4個led,c口位址
mov al,08h
out dx,al
mov dx,28ah ;熄滅數碼管
mov al,0
out dx,al
mov dx,288h ;段選寫3
mov al,4fh
out dx,al
mov dx,28ah ;位選第3個led
mov al,04h
out dx,al
mov dx,28ah ;熄滅數碼管
mov al,0
out dx,al
mov dx,288h ;段選寫9
mov al,6fh
out dx,al
mov dx,28ah ;位選第2個led
mov al,02h
out dx,al
mov dx,28ah ;熄滅數碼管
mov al,0
out dx,al
mov dx,288h ;段選寫4
mov al,66h
out dx,al
mov dx,28ah ;位選第1個led
mov al,01h
out dx,al
mov dx,28ah ;熄滅數碼管
mov al,0
out dx,al
mov ah,01h
int 16h
jnz exit;有鍵輸入則跳出
jmp lop1
exit: mov ax,4c00h
int 21h
code ends
end start
五,實驗心得與體會
這次的實驗裡我學習了使用8255晶元進行並口介面的應用,先用了i/o命令檢測出了數碼管的顯示規律和段選規律。在顯示學號的實驗中,由於數碼管一次只能顯示乙個,所以只有靠掃瞄顯示的方法,通過選位暫存器選擇乙個數碼管,顯示數字,接下來換下乙個顯示另乙個數字,由於數字停留的時間特別短,所以一秒內數碼管會顯示很多次從人眼看就是幾位數碼管在同時顯示。
實驗五鍵盤顯示控制實驗
一、實驗目的
1、掌握8255控制鍵盤及顯示電路的基本功能及程式設計方法
2、掌握一般鍵盤和顯示電路的基本原理
二、實驗內容
三、流程圖
四、源程式:
data segment
table1 db 0,4,8,12
table2 db 1,5,9,13
table3 db 2,6,10,14
table4 db 3,7,11,15
table5 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,53h,79h,71h
data ends
stack segment 'stack' stack
code segment
assume cs:code,ds:data
start: mov dx,seg data
mov ds,dx
mov dx,offset data
push dx
loops:mov dx,28bh ;控制口位址
mov al,81h ;控制字10000001
out dx,al
mov dx,28ah ;c口
mov al,0fh ;行賦0
out dx,al
in al,dx ;讀入列值在高4位
mov cl,al ;儲存列值
call delay;延遲函式
;mov dx,28ah;再讀一遍
;mov al,0fh ;
;out dx,al
in al,dx ;
cmp al,cl ;兩次讀入列值相同,說明不是抖動產生
jnz loops
test al,08h ;按鍵是否在第一列
jz col1
test al,04h
jz col2
test al,02h
jz col3
test al,01h
jz col4
;沒有鍵值輸入
;mov dx,289h ;位選第4個led,b口位址
;mov al,0h
;out dx,al;熄滅數碼管
mov ah,01h
int 16h
jnz endd ;有鍵輸入則跳出
jmp loops
col1: call jrow;返回行值在al中
mov bx,offset table1
jmp next
col2: call jrow
mov bx,offset table2
jmp next
col3: call jrow
mov bx,offset table3
jmp next
col4: call jrow
mov bx,offset table4
jmp next
next: xlat ;al中行值對應查列所在的表
mov bx,offset table5
xlat ;根據下標查到數碼管對應顯示
mov cl,al ;儲存到cl中
mov dx,289h ;位選第4個led,b口位址
mov al,0h
out dx,al ;熄滅數碼管
mov dx,288h ;a口位址
mov al,cl ;段選寫cl
out dx,al
mov dx,289h ;位選第4個led,b口位址
mov al,08h
out dx,al
mov ah,01h
int 16h
jnz endd;有鍵輸入則跳出
jmp loops
endd: mov ax,4c00h
int 21h
jrow proc near
push ax ;al中為已產生的列值
mov dx,28bh ;控制口位址
mov al,88h ;控制字10001000
out dx,al
pop ax
or al,0f0h
mov dx,28ah ;把列值輸入
out dx,al
mov dx,28ah ;把列值輸入
in al,dx ;讀入行值,高四位
test al,80h
jz row0
test al,40h
jz row1
test al,20h
jz row2
mov al,3 ;都不滿足則在第3行
jmp exit
row2: mov al,2
jmp exit
row1: mov al,1
jmp exit
row0: mov al,0
exit: ret
jrow endp
delay proc near
push cx
mov cx,100h
loop1:loop loop1
pop cx
retdelay endp
delay1 proc near
push cx
mov cx,5h
loop2:loop loop2
pop cx
retdelay1 endp
code ends
end start
五、實驗總結
本次試驗主要聯絡了對並行介面8255的操作,通過c口控制鍵盤,a口控制數碼管實現了cpu與外設之間的通訊。在判斷鍵值時採取行列反轉法,通過改變控制字來實現c口高四位和低四位的輸入輸出方式的改變。
實驗三 8253計數器/定時器的應用
一、實驗目的
學習掌握8253用作定時器的程式設計原理
二、實驗內容
1. 完成乙個**發生器,通過蜂鳴器放出**,並在數碼管上顯示樂譜。
2、擴充套件功能:利用小鍵盤完成彈琴功能
三、電路連線
硬體圖:
埠位址:
1.8253控制埠位址為283h
定時器0位址為280h
定時器1位址為281h
定時器2位址為282h
2.定時器可工作在方式3下,產生方波訊號。
四、實現功能與方案:
按0鍵放**;按其他數字鍵彈琴,同時數碼管顯示所彈音節
此實驗將放**和彈琴兩種功能結合。若按0鍵則轉入放音子程式中執行,若普通按鍵,則通過判斷按鍵的鍵值,放入計數器不同計數值實現不同頻率方波訊號的輸出
五、程式流程圖
五,源程式**
data segment
song dw 3906,3472,3125,2933,2604,2344,2083,1953
cont equ $-song
table1 db 0,4,8,12
table2 db 1,5,9,13
table3 db 2,6,10,14
table4 db 3,7,11,15
table5 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,53h,79h,71h
data ends
stack segment 'stack'
db 100 dup(?)
stack ends
code segment
北郵微原硬體實驗報告
2013年微機原理硬體實驗報告 學院 資訊與通訊工程學院 班級 2011211104 姓名 實驗一 i o位址解碼 一 實驗目的 掌握i o位址解碼電路的工作原理。二 實驗原理和內容 1.實驗電路如圖1 1所示,其中74ls74為d觸發器,可直接使用實驗台上數位電路實驗區的d觸發器,74ls138為...
北郵通原硬體實驗報告
北京郵電大學實驗報告 題目 基於tims通訊原理實驗報告 班級 專業 資訊工程 姓名成績目錄實驗1振幅調製 am 與解調 4 一 實驗目的 4 二 實驗內容 4 2.1 am調製 4 2.1.1.原理 4 2.1.2.實驗原理框圖 4 2.1.3.實驗連線圖 5 2.2 am解調 5 2.2.1.調...
北郵DSP數字訊號處理硬體實驗報告
一 常用指令實驗 一 實驗目的 熟悉dsp開發系統的連線,了解dsp開發系統的組成,結構和應用系統構成 熟悉常用c54x系列指令的用法。二 實驗裝置 計算機,ccs 3.3版軟體,dsp 器,expiii 試驗箱。三 實驗步驟與內容 進行dsp實驗之前,先必須連線好 器 實驗箱及計算機,連線方法如下...