南郵微機介面實驗——8254定時器/計數器實驗
阿新 • • 發佈:2019-01-27
8254概述:
8254內部三個獨立的16位計數器,具有6種工作方式,計數初值的數值可以設定為BCD碼或者二進位制。最高頻率10MHZ。
控制字以及初值寫入:
程式通過巨集定義,定義了控制口地址213,以及三個計數器的地址210、211、212(連線與此地址要一致)。
首先將控制口地址傳輸到DX暫存器,將計數器0控制值寫入到AL,通過DX間址定址的方式將計數器0的控制字寫入控制值暫存器;
然後,將計數器0的地址傳輸到DX,將計數器0的初值傳輸到AL,通過DX間址定址將計數器0初值寫入,計數器0開始工作。
計數器1和2控制值和初值寫入方式類似。
控制字分析:
計數器0控制字:00010110B。
表示:選擇0號計數器,寫入初值時,只寫入低8位,高8位置0,工作在方式3,計數初值為2進位制。
計數器1和計數器2的控制字與上述類似,只是計數器選擇不同。
頻率計算:
燈0的頻率: 100KHZ/65536=1.5HZ
燈1的頻率:10KHZ/250=40HZ
燈2的頻率:1KHZ/100=10HZ
程式碼: .MODEL SMALL .486 CODE SEGMENT USE16 ASSUME CS:CODE BEG: JMP START CCONPORT EQU 213H CCONBT1 EQU 00010110B CCONBIT2 EQU 01010110B CCONBIT3 EQU 10010110B CDPORT1 EQU 210H CDPORT2 EQU 211H CDPORT3 EQU 212H CHDBIT1 EQU 00H CHDBIT2 EQU 250 CHDBIT3 EQU 100 START: NOP MOV DX,CCONPORT MOV AL,CCONBT1 OUT DX,AL MOV DX,CDPORT1 MOV AL,CHDBIT1 OUT DX,AL MOV DX,CCONPORT MOV AL,CCONBIT2 OUT DX,AL MOV DX,CDPORT2 MOV AL,CHDBIT2 OUT DX,AL MOV DX,CCONPORT MOV AL,CCONBIT3 OUT DX,AL MOV DX,CDPORT3 MOV AL,CHDBIT3 OUT DX,AL WT: NOP JMP WT CODE ENDS END BEG