實驗內容
基礎部分:
1、編寫程式,是8254的計數器1分別工作在方式0、1、2、3下,在示波器上觀察各工作方式下out1的輸出波形。
拓展部分:
2、使用單脈衝開關手動生成8254的輸入時鐘,觀察方式0的輸出波形。
3、編寫程式,在示波器上顯示週期為1s的方波。
4、利用8254方式2或方式3精確定時,控制led等d7~d0的點亮:
**
1
conuter0 equ 0600h
conuter1 equ 0602h
conuter2 equ 0604h
con8254 equ 0606h
code segment
assume cs:code
start:
mov dx, con8254
;mov al,
70h ;計數器1工作在方式0
;mov al,
72h ;方式1
mov al,
74h ;方式2
;mov al,
76h ;方式3
out dx, al
mov dx, conuter1
mov al,
00h out dx, al
mov al,
48h
out dx, al
aa1:
jmp aa1
;將gate1置為高電平,執行程式,在示波器中可以看到out1輸出一段高電平後會輸出乙個寬度為乙個週期的負脈衝。
code ends
end start
a8254 equ 0600h
b8254 equ 0602h
c8254 equ 0604h
con8254 equ 0606h
code segment
assume cs:code
start:
mov dx, con8254
mov al,
70h ;
8254計數器1工作在方式0,計數時輸出低電平,到0時輸出高電平
out dx, al
mov dx, b8254
mov al,
00h
out dx, al
mov al,
48h ;寫入計數初值4800h,接18.432khz時鐘源,這樣可到達計時1s後輸出正躍變訊號
out dx, al
aa1:
jmp aa1
;將gate1置為低電平,執行程式。
;將gate1置為高電平,在示波器中可以觀察到out1輸出低電平,待過一段時間後(計數器減至0)輸出高電平。
code ends
end start
a8254 equ 0600h
b8254 equ 0602h
c8254 equ 0604h
con8254 equ 0606h
code segment
assume cs:code
start:
mov dx, con8254
mov al,
76h ;
8254計數器1工作在方式3,產生方波訊號
out dx, al
mov dx, b8254
mov al,
00h
out dx, al
mov al,
48h ;寫入計數初值4800h,接18.432khz時鐘源,這樣方波週期則為1s
out dx, al
aa1:
jmp aa1
code ends
end start
counter0 equ 0600h
counter1 equ 0602h
counter2 equ 0604h
con8254 equ 0606h
a8255 equ 0640h
b8255 equ 0642h
c8255 equ 0644h
con8255 equ 0646h
data segment
lastnumber db 0
data ends
code segment
assume cs:code
start:
mov dx,con8255
mov al,
80h ;a--out,b--out
out dx,al
;設定中斷向量 mir6
mov ax,offset mir6 ;存偏移量
mov si,
38h mov [si]
,ax mov ax,cs ;存段位址
mov si,
3ah mov [si]
,ax cli ;關閉中斷
;設定icw1~icw4和ocw1
mov al,
11h out 20h,al
mov al,
08h ;中斷源選擇ir0
out 21h,al
mov al,
04h ;s2為1表示有內部從片被級聯到主片的ir2上
out 21h,al
mov al,
07h ;d2為1表示其為主片,d1為1表示為自動中斷,d0為1表示為8086
~pentinum的cpu
out 21h,al
mov al,
2fh ;m7和m6為0表示ir7和ir6,ir4(用於復位)三個個中斷未被遮蔽,其它中斷均被遮蔽
out 21h,al
sti ;開啟中斷
mov dx,con8254
mov al,
76h ;計數器1工作在方式3
out dx,al
mov dx,counter1
mov al,
00h out dx,al
mov al,
48h out dx,al ;計數初值4800h,選用時鐘18.432khz
mov al,
00h
mov dx,b8255
main:
out dx,al
jmp main
mir6:
cmp al,
0ffh
jz i1
rol al,
1 inc al
jmp i2
i1: mov al,
00h
i2:
iret
code ends
end start
定時計數器
1 工作方式0 當tmod中的m1,m2設定成0,0時,定時器 計數器就工作在方式0,工作方式0是一種13位定時器 計數器方式。可用來測量外訊號的脈衝寬度所持續的時間。2 工作方式1 工作方式1為16位定時器 計數其結構和操作與工作方式0基本相同,唯一的區別是工作方式1的計數器由tl0的8位和th0...
可程式設計定時 計數器應用實驗
了解定時器 計數器 8253 的原理,掌握編制定時器 計數器程式設計方法。設計連線和程式,以1mhz的訊號為時鐘訊號,利用 8253 產生1s的定時控制發光二極體變化。使用者時鐘的1mhz輸出接 8253 的clk1。8253 的gate1接 5v 在實驗箱的左上角和右上角 8253out1接 82...
組合語言 8254定時 計數器應用實驗
實驗要求 通過實驗箱提供的單次脈衝單元,按動微動開關向計數器依次發出單脈衝,觀察每來乙個脈衝時計數器當前計數值的變化情況。連線 初始化 mov dx,p8254mode 控制字埠位址 mov al,00010001b out dx,al 送入計數初值n mov al,05h mov dx,p8254...