INI: CLI MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT
;CPU关中断 ;8259A屏蔽中断 AL,0FFH
82H,AL
;设置计数器0控制字,工作于模式3 AL,36H
46H,AL
;设置计数器0的计数初值为4000H=16384 AL,0
40H,AL
AL,40H
40H,AL
;设置计数器1控制字,工作于模式2,低8位字节读/写 AL,54H
46H,AL
;设置计数器1的计数初值为18H=24 AL,18H
42H,AL
AL,0A6H ;设置计数器2控制字,工作于模式3,高8位字节读/写
46H,AL
;设置计数器2的计数初值为4600H=17920 AL,46H
44H,AL
;修改计数器2的计数初值为8000H=32768 AL,80H
44H,AL
答:注释见程序清单,计数器初值的十进制值也见注释。
7.38 下面是一个用8253作为定时器的发音程序,程序中已加了部分注释。请对8253的有关程序段加上
注释,并画出整个程序的流程图。8253的控制口地址为46H,3个计数器端口地址分别为40H、42H、44H。8255A的B端口接扬声器驱动电路,B端口的地址为62H。 SOUND:
PUSHF CLI OR JZ
K1:
MOV CALL
K2:
LOOP DEC
DH,DH K3
;DH中为发长音的个数 ;如不发长音,则转K3 ;如发长音,则置长音计数器 ;调用发音程序 ;两音之间留一点间隙
;长音发完否
BL,6 BEEL K2
DH
JNZ
K3:
MOV CALL
K4:
LOOP DEC JNZ
K5:
LOOP POPF RET
BEEL:
MOV OUT MOV OUT MOV OUT IN MOV OR OUT SUB
K7:
LOOP DEC JNZ MOV OUT RET
K1 ;否,则继续
;如发完长音,则置短音计数器 ;调用发音程序 ;两音之间留一点间隙
;继续发短音吗
BL,1 BEEL K4
DL
K3 K5
;是,则继续 ;否,则留一点间隙 ;标志恢复 ;返回
;发音子程序开始
;8253的计数器2工作于模式3 AL,B6H
46H,AL
AX,533H
;计数初值为533H ;送初值低位
44H,AL
AL,AH
44H,AL
;送初值高位
AL,62H AH,AL AL,03
;取扬声器驱动信息
;接通扬声器
;扬声器驱动
62H,AL
CX,CX K7
BL
;一次发音时间设定
;BL中为发音计数值
K7 ;如未结束,则继续发音
;如发音结束,则恢复B端口信息
AL,AH
62H,AL
答:补充的注释见程序清单中的下划线部分。程序流程图如下所示。
SOUND开始 保护标志,关中断 发长音吗? Y N 置长音计数器,调发音子程 序,并延时 N 长音发完吗? Y 置短音计数器,调发音子程 序,并延时 N 短音发完吗? Y 延时并恢复标志 RET返回
BEEL开始 8253计数器2初始化为模式3,计数初值为533H 取扬声器驱动信息并送AH中保护起来 接通扬声器并使其发音 延时 音发完了吗? N Y 发音结束,关掉扬声器 RET返回
第 8 章 模/数和数/模转换
8.1
什么叫分辨率?什么叫相对转换精度?
答:1.在D/A转换时,将最低位增1所引起的增量和最大输入量的比称为分辨率。即:分辨率=1/(2n-1)。
2.用绝对转换精度相对于满量程输出的百分数表示的精度即为相对转换精度。有时也用最低位(LSB)的几分之几表示。
8.2
在T型电阻网络组成的D/A转换器中,设开关K0、K1、K2、K3、K4分别对应一位二进制数,当二进制数据为10110时,流入运算放大器的电流为多少?画出这个T型网络。 答:1.流入运算放大器的电流I为:(n=5)
I?VREFVREFVREF11VREF?N??(10110B)??22?。16R2NR25R25RRo - K0 2R 2R K1 2R K2 2R K3 2R K4 + 2.T型网络如下图:
8.3
2R R R R R VREF Vo 用带两级数据缓冲器的D/A转换器时,为什么有时要用三条输出指令才完成16位或12位数据转换?
答:因为一般第一次将低8位数据送输出低位的第一级数据缓冲器,第二次输出高4位或高8位数
据到高位的第一级数据缓冲器。第三次执行一次伪输出,将第一级数据缓冲器的内容打入第二级数据缓冲器从而实现高于8位的D/A转换。因此要用3条输出指令才能完成一次16位或12
位数据转换。以避免出现错误的中间结果。
8.4
使用DAC0832进行数/模转换时,有哪两种方法可对数据进行锁存?
答:第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在不锁存状态。第二种方法
是使输入寄存器工作在不锁存状态,而DAC寄存器工作在锁存状态。
8.5
在数字量和模拟量并存的系统中,地线连接时要注意什么问题?
答:首先各个模拟地连在一起,各个数字地连在一起;其次模拟地和数字地只能且必须用一个共地
点连起来,以防干扰。
8.6
设计一个电路和相应程序完成一个锯齿波发生器的功能,使锯齿波呈负向增长,并且锯齿波的频率可调。
答:① 电路如下图所示:
② 程序如下:
MOV MOV
ROTATE: DEC
OUT CALL JMP
DELAY: MOV DELAY1: LOOP
RET
8.7
什么叫模/数转换精度?什么叫转换速率?什么叫分辨率?
DX,PORTDA AL,0
AL
;PORTDA为D/A转换器的端口号 ;初值
;呈负向增长
;往D/A转换器输出数据
地址总线 数据总线 D7~D0 REB WR1 IOUT1 - Vo + DAC 0832 译码器DELAY ROTATE
CX,DATA DELAY1
DX,AL
;延迟
;往CX中送延迟常数,修改DATA即可改变周期