實驗6 8254定時 計數器實驗

2021-09-29 23:21:01 字數 3609 閱讀 7884

實驗內容

基礎部分:

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...