收藏 分销(赏)

微机原理与接口技术(楼顺天第二版)第九章习题解答.doc

上传人:人****来 文档编号:4311746 上传时间:2024-09-05 格式:DOC 页数:11 大小:591.51KB 下载积分:8 金币
下载 相关 举报
微机原理与接口技术(楼顺天第二版)第九章习题解答.doc_第1页
第1页 / 共11页
微机原理与接口技术(楼顺天第二版)第九章习题解答.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
微机原理与接口技术(楼顺天第二版)习题解答 第9章 定时/计数器8253应用设计 9.1答:假定已经约定采用A2,A1作为8253的内部地址线,而且计数器0的地址为00,所以在题中所给的地址中只有51H,59H的A2和A1同时为0,即:A2A1=00。 9.2 答: 9.3 答:MOV DX,COUNTD ;写入计数器0的方式控制字 MOV AL,00111000B OUT DX,AL MOV DX,COUNTA ;设置计数器0的常数 MOV AX,10000 OUT DX,AL XCHG AL,AH OUT DX,AL L1: MOV DX,COUNTD ;向计数器0发锁存命令 MOV AL,0H OUT DX,AL MOV DX,COUNTA ;读入CE IN AL,DX MOV AH,AL IN AL,DX XCHG AL,AH CMP AX,1000 ;判别CE当前大小 JA L1 9.4 答:本题使用计数器0和计数器1级联,并且计数器0的输出OUT0作为计数器1的时钟输入CLK1。 程序如下: MOV DX,COUNTD ;写计数器0方式控制字 MOV AL,00110110B OUT DX,AL MOV DX,COUNTA MOV AX,10000 ;写计数器0时常数,分频得到100Hz时钟频率 OUT DX,AL XCHG AL,AH OUT DX,AL MOV DX,COUNTD ;写计数器1方式控制字 MOV AL,01110000B OUT DX,AL MOV DX,COUNTB MOV AX,999 ;分频得到0.1Hz时钟频率。(在方式0下,时常数为N时, ;OUT输出的低电平宽度为N+1). OUT DX,AL XCHG AL,AH OUT DX,AL L1: ;延时 MOV DX,COUNTD ; 当前CE的内容锁存到OL MOV AL,01000000B OUT DX,AL MOV DX,COUNTB IN AL,DX MOV AH,AL IN AL,DX XCHG AL,AH CMP AX,999 JNA L1 ;延时结束,则继续执行,否则,跳到L1,继续延时 …. 9.5 答:8253的方式2与方式3均为一次计数完成后自动装入计数初值再计数的计数方式。差别是方式2设定计数N时N-1时钟周期为高电平,1时钟周期为低电平;方式3设定计数N时,若N为偶数,则N/2周期为高电平,N/2周期为低电平,若N为奇数,则(N+1)/2周期为高电平,(N-1)/2周期为低电平。 9.6 答:CLK为计数时钟,每个时钟周期计数一次,GATE为门控信号,在方式0、方式2、方式3、方式4中,GATE信号为高电平时正常计数,GATE信号为地点平时暂停计数;在方式1和方式5中由GATE信号触发计数。 9.7 答:方式0与方式4 方式0, OUT端计数过程中为低,计数值减为0时,输出变高 方式4, OUT端计数过程中为高,计数值减为0时输出宽度为1个CLK的负脉冲 方式1,与方式5 方式1, OUT端输出宽度为n个CLK的低电平,计数值减为0时,输出为高 方式5, OUT端计数过程中为高,计数值减为0时输出宽度为1个CLK的负脉冲 9.8 答:OUT0输出为20微妙方波,可用方式三直接产生;OUT1输出周期为200微秒,其中每周期为负的时间是180微秒的信号,可用OUT0输出的20微秒方波作为CLK1计数时钟,使计数器1工作在方式2,计数初值为200微妙/20微妙=10。硬件上要在OUT1输出端接一反相器就可实现题目要求产生的在OUT1输出周期为200微秒,其中每周期为负的时间是180微秒的信号。 8253的初始化程序如下: MOV DX,287H ;写计数器0控制方式字 MOV AL,00010110B OUT DX,AL MOV DX,284H ;写计数器0时常数 MOV AL,20 OUT DX,AL MOV DX,287H ;写计数器1控制方式字 MOV AL,01010100B OUT DX,AL MOV DX,285H ;写计数器2时常数 MOV AL,10 OUT DX,AL 9.9 答:3 9.10 答:3, 5000 9.11 答:0, 10000。 9.12 答:D 9.13 答:B 9.14 答:B 9.15 答:B 9.16 答:B,F 9.17 答:D 9.18 答:根据程序,使用计数器0,工作在方式2,计数初值为0FFFFH,所以中断请求周期为65535/2000000s=32.7675ms。 9.19 答:(1)选用D0D0H~D0DFH中的偶地址DODO,DOD2,DOD4,DOD6为基本地址作为8254的端口地址,设8086工作在最小方式下。8254端口地址译码电路如下图: ① 计数器0输入端加2MHz的时钟信号,GATE0加+5V电压,输出OUT0信号为周期为10µs的对称方波。 初始化代码: MOV DX,0D0D6H ;写计数器0工作方式 MOV AL,00010110B OUT DX,AL MOV DX,0D0D0H ;写计数器0时常数 MOV AL,20 OUT DX,AL ②CLK0加2MHz的始终信号,GATE0,GATE1加+5V电压,OUT0输出加到CLK1作时钟信号,OUT1输出为每1s产生一个负脉冲。 初始代码: MOV DX,0D0D6H ;写计数器0的工作方式 MOV AL,00010110B OUT DX,AL MOV DX,0D0D0H ;写计数器0的时常数 MOV AL,100 OUT DX,AL MOV DX,0D0D6H ;写计数器1的工作方式 MOV AL,01110100B OUT DX,AL MOV DX,0D0D2H ;写计数器1的时常数 MOV AX,20000 OUT DX,AL XCHG AL,AH OUT DX,AL ③CLK0加2MHz的始终信号,GATE0,GATE1加+5V电压,OUT0输出加到CLK2做时钟信号,OUT2输出为10s后产生一个负脉冲。 初始代码: MOV DX,0D0D6H ;写计数器0的工作方式 MOV AL,00110110B OUT DX,AL MOV DX,0D0D0H ;写计数器0的时常数 MOV AX,1000 OUT DX,AL XCHG AL,AH OUT DX,AL MOV DX,0D0D6H ;写计数器2的工作方式 MOV AL,10111000B OUT DX,AL MOV DX,0D0D4H ;写计数器2的时常数 MOV AX,20000 OUT DX,AL XCHG AL,AH OUT DX,AL (2)选用地址D0D0,DOD2,DOD4,DOD6为8253的端口地址,D0D8为GATE端口地址,该端口采用74LS373,8253用方式4,在OUT输出端加非门实现脉冲功能。接口电路如图: 初始代码为: MOV DX,0D0D8H ;GATE初始化 MOV AL,0 OUT DX,AL MOV DX,0D0D6H ;写计数器0工作方式 MOV AL,00011000B OUT DX,AL MOV DX,0D0D0H ;写计数器0时常数 MOV AL,40 OUT DX,AL MOV DX,0D0D8H MOV AL,1 OUT DX,AL ;使GATE变高有效 9.20 答:一个计数器的最长定时时间应该是置入时常数0时,此时定时时间为: 65536/0.5*10^6s=131ms 采用方式0即:计数达到终值时中断来10分钟产生一次定时中断,此时时常数CR为:10*60*0.5*10^6=3*10^9. 由于一个计数器最多分频65536,所以至少得使用2个计数器。我们采用计数器0和计数器1.计数器0的时常数CR0为60000,计数器1的时常数CR1为50000. 连接方式为:把0.5MHz的时钟频率接到计数器0的CLK0,然后把计数器0的OUT0接到计数器1的CLK1。这样计数器1的OUT1端输出的就是10分钟产生一次的定时中断。 9.21答:(1) MOV DX,83H MOV AL,00010100B OUT DX,AL MOV DX,80H MOV AL,100 OUT DX,AL (2) 将计数器1的输出OUT1信号作为计数器2的时钟输入CLK2,计数器1的时钟输入为系统提供1MHZ的信号。 MOV DX,83H MOV AL,01110100B OUT DX,AL MOV DX,81H MOV AX,1000 OUT DX,AL XCHG AL,AH MOV DX,AL MOV DX,83H MOV AL,10010110B OUT DX,AL MOV DX,82H MOV AL,100 OUT DX,AL 9.22 答:用两个计数器,计数器0的CLK接待测信号,GATE接半周期为10s的高电平信号,OUT接8259,同时取反接计数器1的GATE端。计数器1的CLK接系统时钟,半周期为T0。在这样的逻辑电路下,计数器0的功能是记录待测信号的脉冲数N0,计数器1的功能是记录在相同时间里系统时钟信号的脉冲数N1。根据T=N1*T0/N0可计算出待测信号的周期。S(t)是待测信号,S’(t)为给定的周期大于10s的高电平信号。 端口声明:COUNTA为计数器0的地址,COUNTB为计数器2的地址,COUNTD为控制器地址,COUNT为373地址 程序如下: MOV DX,COUNTD ;计数器1初始化 MOV AL,01110000B OUT DX,AL MOV DX,COUNTB OUT DX,AL MOV DX,COUNTB MOV AL,O OUT DX,AL MOV DX,COUNTD ;计数器0初始化 MOV AL,00010000B OUT DX,AL MOV DX,COUNTA MOV AL,0 OUT DX,AL OUT DX,AL STI 读两计数器的计数,并进行计算的中断服务子程序: PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,COUNTD MOV AL,00000000B OUT DX,AL MOV DX,COUNTA IN AL,DX XCHG AL,AH IN AL,DX XCHG AL,AH NEG AX INC AX MOV BX,AX MOV DX,COUNTD MOV AL,00010000B OUT DX,AL MOV DX,COUNTB IN AL,DX XCHG AL,AH IN AL,DX XCHG AL,AH NEG AX INC AX MOV CX,T0 MUL CX DIV BX MOV SFR,AX POP DX POP CX POP BX POP AX IRET SFR中保存结果即为待测信号的周期。 对于(1)题,10*10不小于100,10*1000不大于65535,可以用计数法。 同理(3)也可用此方法。 对于(2)题,可用周期法。逻辑电路图如下: 程序如下: MOV DX,COUNTD MOV AL,0011 0100B OUT DX,AL MOV DX,COUNTA MOV AL,0 OUT DX,AL OUT DX,AL STI PUSH AX PUSH BX PUSH DX MOV DX,COUNTD MOV AL,0000 0000B OUT DX,AL MOV DX,COUNTA IN AL,DX XCHG AL,AH IN AL,DX XCHG AL,AH NEG AX INC AX MOV BX,AX MOV DX,000FH MOV AX,4240H DIV BX MOV SFR,AX POP DX POP BX POP AX IRET (4) 如图设计接口,计数器1用来记录在50个脉冲所用时间,50个信号脉冲最多用1/0.8*50(约为63us)由于计数器1用1MHz CLK,故其计数个数N即为N us,所以当N>63时,则有低电平间隔计入,须重新计数。当N>63时,则计算得待测频率。 程序如下: MOV DX,COUNTD MOV AL,00H OUT DX,AL MOV DX,COUNTD MOV AL,0001 0000B OUT DX,AL MOV DX,COUNTA MOV AL,50 OUT DX,AL MOV DX,COUNTD MOV AL,0111 0000B OUT DX,AL MOV COUNTB MOV AL,0 OUT DX,AL OUT DX,AL L2: MOV DX,COUNT ;给GATE0和GATE1高电平,开始计数 MOV AL,81H OUT DX,AL L1: NOP MOV DX,COUNTD MOV AL,00000000B OUT DX,AL MOV DX,COUNTA IN AL,DX MOV DX,COUNTA IN AL,DX AND AL,AL ;判断是否计完50个脉冲,若未计完继续等待 JNZ L1 MOV DX,COUNT MOV AL,00H ;若计完则暂停计数 OUT DX,AL MOV DX,COUNTD ;读计数器1结果 MOV AL,01000000B OUT DX,AL MOV DX,COUNTB IN AL,DX XCHG AL,AH IN AL,DX XCHG AL,AH NEG AX INC AX CMP AX,70H ;当AL大于70,则有间歇计入,重新测试 JA L2 MOV BL,AL MOV AL,50 ;计算频率 DIV BL MOV FREC,AL 9.23 答:程序如下: ;计数器0,方式0,当计数满后为高电平,引发中断 MOV DX,33H MOV AL,00110000B ;计数器0,方式0 OUT DX,AL MOV DX,30H MOV AX,23000 OUT DX,AL ;写低位计数值 XCHG AH,AL OUT DX,AL ;写高位计数值 ;计数器1,计数值为10000/20=500,方式3 MOV DX,33H MOV AL,01110110B OUT DX,AL MOV DX,31H MOV AX,500 OUT DX,AL XCHG AH,AL OUT DX,AL 9.24 答:;若计数器0~2的端口地址为1AB0H,1AB2H, 1AB4H,控制字口为1AB6H ;计数器0,方式1,BCD计数,计数值4650 MOV DX,1AB6H MOV AL,00110011B ;计数器0,方式1,十进制计数 OUT DX,AL MOV DX,1AB0H MOV AX,4650H OUT DX,AL ;写低位计数值 XCHG AH,AL OUT DX,AL ;写高位计数值 ;计数器1,计数值3420,方式2,二进制计数 MOV DX,1AB6H MOV AL,01110100B OUT DX,AL MOV DX,1AB2H MOV AX,3420 OUT DX,AL XCHG AH,AL OUT DX,AL ;计数器2,方式4,二进制计数,计数初值120 MOV DX,1AB6H MOV AL,10011000B ;由于计数初值为120,可以只写低位 OUT DX,AL MOV DX,1AB4H MOV AX,120 OUT DX,AL 9.25 答:;若计数器0~2的端口地址为0FA0H,0FA2H, 0FA4H,控制字口为0FA6H ;准备中断向量表 MOV AX,0 MOV DS,AX MOV SI,42H ;中断类型号42H SHL SI,1 SHL SI,1 ;SI×4 MOV [SI],OFFSET INT_SERVICE ;中断服务程序的偏移地址存入向量表 MOV AX,CS ADD SI,2 MOV [SI],AX ;中断服务程序的段地址存入向量表 …… ;如果用8259,则对8259初始化 ;计数器2,二次读写计数值,方式0,二进制计数 MOV DX,0FA6H MOV AL,10110000B ;计数器0,方式1,十进制计数 OUT DX,AL MOV DX,0FA4H MOV AX,1000 OUT DX,AL XCHG AH,AL OUT DX,AL …… ;其他程序 ;中断服务程序 INT_SERVICE:STI ;开中断 MOV DX,0FA6H MOV AL,10110000B ;计数器2,二次读写计数值,方式0,二进制计数 OUT DX,AL MOV DX,0FA4H MOV AX,1000 OUT DX,AL XCHG AH,AL OUT DX,AL IRET 9.26 答:首先更正8259A的IR2的中断类型码为42H。 ;根据题图的硬件电路,8253的四个端口地址应该连续,100H为计数器0 ;101H为计数器1,102H为计数器2,103H为控制字寄存器端口 ;准备中断向量表 MOV AX,0 MOV DS,AX MOV SI,42H ;中断类型号42H SHL SI,1 SHL SI,1 ;SI×4 MOV [SI],WORD PTR INT_POINT ;中断服务程序的偏移地址存入向量表 ADD SI,2 MOV [SI],WORD PTR INT_POINT+2 ;中断服务程序的段地址存入向量表 …… ;由于题目要求两个计数器级联,实现最大中断周期的周期性定时中断信号 ;则让计数器0和1的计数初值均设为0,按方式3计数 MOV DX,0103H MOV AL,00010110B ;计数器0,方式3,二进制计数 OUT DX,AL MOV DX,0100H MOV AX,0 OUT DX,AL ;计数器1 MOV DX,0103H MOV AL,01010110B ;计数器0,方式3,二进制计数 OUT DX,AL MOV DX,0101H MOV AX,0 OUT DX,AL 9.27 答:根据题图,8253的四个端口地址为0F8H,0FAH,0FCH,0FEH。LED0亮10s后灭,可以通过方式0,计数10000次;LED1在 闭合后亮15s后灭,即计数器1为方式1,计数值为15000;LED2为亮2s,灭2s闪烁,即计数器2为方式3,计数值为4000。 程序为: ;计数器0 MOV DX,0FEH MOV AL,00110000B ;计数器0,方式0,二进制计数 OUT DX,AL MOV DX,0F8H MOV AX,10000 OUT DX,AL XCHG AH,AL OUT DX,AL ;计数器1 MOV DX,0FEH MOV AL,01110010B ;计数器1,方式1,二进制计数 OUT DX,AL MOV DX,0FAH MOV AX,15000 OUT DX,AL XCHG AH,AL OUT DX,AL ;计数器2 MOV DX,0FEH MOV AL,10110110B ;计数器2,方式3,二进制计数 OUT DX,AL MOV DX,0FCH MOV AX,4000 OUT DX,AL XCHG AH,AL OUT DX,AL
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服