微机原理课后习题答案(8)

2019-09-02 17:41

输出脉冲周期为1/100 秒,最大计时时间为655.36 秒。8255PC0 作为START/STOP 输入,8255PC1 作为圈输入。内存字单元COU 和SUBC 存总成绩和圈成绩。 COU DW 0

BUF DW 20 DUP(0) SUBC DW 20 DUP(0)

MOV BX,OFFSET BUF ;当前成绩指针 MOV SI,OFFSET SUBC ;圈成绩指针 MOV AL,10000001B

OUT 63H,AL ;8255 方式设置 MOV 00110110B

OUT 43H,AL ;8253 计数器0 方式设置 L1: IN AL,62H ;查询是否比赛开始 TEST AL,01H JZ L1 40

MOV AL,COUL ;比赛开始,启动计数器0 计数 OUT 40H,AL MOV AL,COUH OUT 40H,AL

L2: IN AL,62H ;查询是否比赛结束 TEST AL,01H JZ STOP

TEST AL,02H ;查询是否一圈结束 JZ L2

MOV AL,00000000B

OUT 43H,AL ;一圈结束,锁存计数器0 当前计数器值 IN AL,40H ;读当前计数器值低位 MOV AH,AL

IN AL,40H ;读当前计数器值高位 XCHG AH,AL

NEG AX ;获得当前成绩 MOV [BX],AX ;存当前成绩

SUB AX,[BX-1] ;获得当前圈成绩 MOV [SI],AX ;存当前圈成绩 INC BX INC SI

CALL DELAY ;躲过重复圈查询 JMP L2

STOP: MOV AL,00000000B

OUT 43H,AL ;比赛结束,锁存计数器值 IN AL,40H ;读当前计数器值低位 MOV AH,AL

IN AL,40H ;读当前计数器值高位 XCHG AH,AL

NEG AX ;获得总成绩 MOV COU,AX ;存总成绩 END

9.15 试编写一程序,使IBM PC 机系统板上的发声电路发出200Hz 至900Hz 频率连续变化 的报警声。

【答】MOV AL,0B6H ;10110110B,TIMER2,MODE3 OUT 43H,AL

MOV DX,0020H ;fCLK=1.19MHZ MOV AX,34DEH

DIV DI ;AX←计数初值N=FCLK÷音频 OUT 42H,AL MOV AL,AH OUT 42H,AL

IN AL,61H ;读8255PB 41

MOV AH,AL

OR AL,3 ;PB0=1,PB1=1 声音输出有效 OUT 61H,AL

WAIT1: MOV CX,7FFFH DELAY: LOOP DELAY DEC BX ;延时系数 JNZ WAIT1 MOV AL,AH

OUT 61H,AL ;恢复8255PB

9.16 已知: PC/XT 微机系统中用作定时及计数的8253 芯片的端口地址为40H~43H, CLK2 输入频率为1.19MHz,通道2 每计500 个脉冲向CPU 发出中断类型号为54H 的中断请求,CPU 响应这一中断后继续写入计数值,重新开始计数。试编写程序完成以上任务。 【答】INIT: MOV AX,0 ;设置计数中断的中断向量 MOV DS,AX

MOV [54H*4],OFFSET INT54 MOV [54H*4+2],SEG INT54 STI

MOV AL, 10111000B

OUT 43H,AL ;8253 计数器2 方式设置 MOV AX, 2380

OUT 42H,AL ;写计数值低位 MOV AL,AH

OUT 42H,AL ;写计数值高位 INT54: STI

MOV AX,2380 ;再启动计数器2 OUT 42H,AL MOV AL,AH OUT 42H,AL IRET__


微机原理课后习题答案(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2007年高考生物考试大纲新课标

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: