例14-3:编程8255和8253让扬声器发声
- 格式:doc
- 大小:26.50 KB
- 文档页数:1
例14-3:编程8255和8253让扬声器发声
源程序(Ex14-3.asm)如下:
STACK SEGMENT
DB 256 DUP(0)
STACK ENDS
DATA SEGMENT
FREG DW 1989;600周方波计数值
DATA ENDS
CODE SEGMENT
START PROC FAR
ASSUME CS:CODE
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
ASSUME DS:DATA
IN AL,61H
OR AL,3
OUT 61H,AL ;开扬声器数据和定时器通道2门
MOV AL,0B6H ;先LSB后MSB,二进制计数方式
OUT 43H,AL ;向8253发命令
MOV BX,FREG ;取计数值
MOV AL,BL ;先发LSB
OUT 42H,AL ;给锁存器
MOV AL,BH ;后发MSB
OUT 42H,AL ;给锁存器
MOV AH,0 ;读功能号
INT 16H ;BIOS键盘功能调用,等击键继续
IN AL,61H ;读PB口当前值
AND AL,0FCH ;关扬声器数据和定时器门通道2门 OUT 61H,AL ;新写PB口
RET ;返回DOS
START ENDP
CODE ENDS
END START