例14-3:编程8255和8253让扬声器发声

  • 格式:doc
  • 大小:26.50 KB
  • 文档页数:1

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例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