⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8254.asm

📁 这是接口课程设计时做的一个控制电机转动的程序
💻 ASM
字号:
PC8254_COUNT0  EQU  1440H	;计数器0的I/O地址
PC8254_COUNT1  EQU  1441H	;计数器1的I/O地址
PC8254_COUNT2  EQU  1442H	;计数器2的I/O地址
PC8254_MODE    EQU  1443H	;计数器控制器的I/O地址
DATA  SEGMENT
	OBUF DB 8 DUP(?)
DATA  ENDS
CODE SEGMENT
        ASSUME CS:CODE,DS:DATA
START:	
	MOV AX,DATA
 	MOV DS,AX

CDB	MACRO ;将二进制转换成十进制的宏
	LOCAL LOOP1
	MOV BX,OFFSET OBUF+7
	MOV BYTE PTR[BX],'$'
	DEC BX
	MOV BYTE PTR[BX],10
	DEC BX
	MOV BYTE PTR[BX],13
	MOV CX,10
LOOP1:	MOV DX,0
	DIV CX
	ADD DL,30H
	DEC BX
	MOV [BX],DL
	OR AX,AX
	JNZ LOOP1

	MOV DX,BX
	MOV AH,09H
	INT 21H
	ENDM
      
        MOV DX,PC8254_MODE	;向控制器写控制字,这里设的是计数器0、方式0、先低后高两个字节读/写
        MOV AL,30H
        OUT DX,AL

        MOV AX,03H              ;设置计数值
        MOV DX,PC8254_COUNT0	;向计数器0写计数值,先低后高两个字节写
        OUT DX,AL
        MOV AL,AH
        OUT DX,AL

READC0:	;读计数器值,存于AX中
        MOV DX,PC8254_MODE
        MOV AL,0
        OUT DX,AL
        
        MOV DX,PC8254_COUNT0
        IN AL,DX
        MOV AH,AL
        IN AL,DX
	XCHG AL,AH

	CDB			;将计数值显示出来

        MOV CX,0FFFFH		;延迟
LOOP2:  DEC CX
        CMP CX,0
        JNE LOOP2
	
	MOV AH,06H		;是否有键盘输入,有则退出
	MOV DL,0FFH
	INT 21H
	JE READC0

        MOV AH,4CH
        INT 21H
CODE ENDS
     END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -