瞭解定時器 / 計數器 8253 的原理,掌握編制定時器 / 計數器程序設計方法。編程
設計連線和程序,以 1MHz
的信號爲時鐘信號,利用 8253 產生 1s
的定時控制發光二極管變化。設計
1MHz
輸出接 8253 的 CLK1
。GATE1
接 +5V
(在實驗箱的左上角和右上角)。OUT1
接 8253 的 CLK2
。GATE2
接 +5V
。OUT2
的輸出爲 1s
方波,接 M 區的一個發光二極管。OE#
接實驗箱的地線(在實驗箱的左下角和右下角)。模塊電源部分( L 區)的 JP7
(控制 LED)短接。J1
的插頭插上扁平電纜和微機相連。CODE SEGMENT 'code' ASSUME CS:CODE START: MOV DX,307H ; MOV AL,01110110B ;計數器一,先讀寫低八位,後讀寫高八位,方式 3,二進制計數 OUT DX,AL ; MOV DX,305H ;一號計數器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ; OUT DX,AL ;送計數初值 03E8H = 1000 MOV DX,307H ; MOV AL,10110110B ;計數器二,先讀寫低八位,後讀寫高八位,方式 3,二進制計數 OUT DX,AL ; MOV DX,306H ;二號計數器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ; OUT DX,AL ;送計數初值 03E8H=1000 MOV AH,4CH ; INT 21H ; CODE ENDS END START
OUT2
的輸出爲 1s
方波,接 8255 的 PC4
。PA0~PA7
接 M 區的發光二極管 L1~L8
。JP7
。PORTA=300H PORTB=301H PORTC=302H CONTROL=303H CODE SEGMENT 'code' ASSUME CS:CODE START: MOV DX,307H ;{工做方式初始化 MOV AL,01110110B ;計數器一,先讀寫低八位,後讀寫高八位,方式3,二進制計數 OUT DX,AL ;} MOV DX,305H ;{一號計數器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ;送計數初值 03E8H = 1000 OUT DX,AL ;} MOV DX,307H ;{工做方式初始化 MOV AL,10110110B ;計數器二,先讀寫低八位,後讀寫高八位,方式3,二進制計數 OUT DX,AL ;} MOV DX,306H ;{二號計數器 MOV AL,0E8H ; OUT DX,AL ; MOV AL,03H ;送計數初值 03E8H = 1000 OUT DX,AL ;} MOV DX,CONTROL ;{工做方式初始化 MOV AL,88H ;A 口輸出,C 口高四位輸入 OUT DX,AL ;} MOV BL,11111110B ;二極管初始顯示狀態 MOV DX,PORTC ;{ L1: IN AL,DX ; TEST AL,10H ;判斷 AL 第 5 位是否爲 1 JNZ L1 ;ZF = 0 轉移到標號地址} MOV DX,PORTA ;{ MOV AL,BL ;將 BL 的值輸出到二極管 OUT DX,AL ;} ROL BL,1 ;循環左移一位 L2: MOV DX,PORTC ;{ IN AL,DX ; TEST AL,10H ;判斷 AL 第 5 位是否爲 1 JZ L2 ;ZF = 1 轉移到標號地址} JMP L1 ; MOV AH,4CH ; INT 21H ; CODE ENDS END START
本次實驗,加深了我對定時器 / 計數器 8253 的原理的瞭解,掌握了編制定時器 / 計數器程序設計方法。在最後的思考題中,經過不斷的嘗試、修改連線和程序,我對接口編程更加熟練了,爲我從此的實驗及課程設計打下了良好的基礎。code