微机原理习题答案9章文档格式.docx
- 文档编号:18425097
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:16
- 大小:114.87KB
微机原理习题答案9章文档格式.docx
《微机原理习题答案9章文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理习题答案9章文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
MOVAH,AL
CMPAX,1000;
判别CE当前大小
JAL1
4.利用8253可以实现确定时间的延迟,编程实现延时10秒的程序段(设可以使用的基准时钟为1MHz)。
本题使用计数器0和计数器1,并且计数器0的输出OUT0作为计数器1的时钟输入CLK1.
程序如下:
MOVDX,COUNTD;
写计数器0方式控制字
MOVAL,00110100B
OUTDX,AL
MOVDX,COUNTA
MOVAX,10000;
写计数器0时常数,分频得到100Hz时钟频率
XCHGAL,AH
MOVDX,COUNTD;
写计数器1方式控制字
MOVAL,01110000B
MOVDX,COUNTB
MOVAX,999;
分频得到0.1Hz时钟频率。
(在方式0下,时常数为N时,
;
OUT输出的低电平宽度为N+1).
L1:
;
延时
当前CE的内容锁存到OL
MOVAL,01000000B
MOVDX,COUNTB
INAL,DX
MOVAH,AL
CMPAX,999
JNAL1;
延时结束,则继续执行,否则,跳到L1,继续延时
….
5.比较8254方式0与方式4、方式1与方式5的区别?
方式0与方式4
方式0OUT端计数过程中为低,计数值减为0时,输出变高
方式4OUT端计数过程中为高,计数值减为0时输出宽度为1个CLK的负脉冲
方式1与方式5
方式1OUT端输出宽度为n个CLK的低电平,计数值减为0时,输出为高
方式5OUT端计数过程中为高,计数值减为0时输出宽度为1个CLK的负脉冲
6.在8088最小系统中,8253的端口地址为284H~287H。
系统提供的时钟为1MHz,要求在OUT0输出周期为20微秒的方波,在OUT1输出周期为200微秒,其中每周期为负的时间是180微秒的信号。
请编写8253的初始化程序。
OUT0输出为20微妙方波,可用方式三直接产生,OUT1输出波形与书中例9.2类似,可用其中思想产生此信号。
如果允许增加外部器件,也可在例9.1的基础上,将OUT端信号通过与非门取反,这样即可产生题目要求信号。
本例利用例9.1思想解答
MOVDX,287H;
写计数器0控制方式字
MOVAL,00010110B
MOVDX,284H;
写计数器0时常数
MOVAL,20
OURDX,AL
MOVDX,287;
写计数器2控制方式字
MOVAL,10010110B
MOVDX,286H;
写计数器2时常数
MOVAL,200
MOVDX,287H
MOVAL,01010010B;
写计数器1控制方式字
MOVDX,285H
MOVAL,9;
写计数器1时常数
7.通过8253计数器0的方式0产生中断请求信号,现需要延迟产生中断的时刻,可采用:
A)在OUT0变高之前重置初值;
B)在OUT0变高之前在GATE0端加一负脉冲信号;
C)降低加在CLK0端的信号频率;
D)以上全是。
D
A:
方式0下,在OUT0变高之前重置初值,将在下一个CLK的下降沿使时常数从CR读入CE并重新计数。
B:
在OUT0变高之前在GATE0端加一负脉冲信号可以延时一个时钟周期,达到延时的目的。
C:
降低加在CLK0端的信号频率,可以增大时钟周期,达到延长OUT0端低电平的时间。
(注:
A中,如果重置的初值为1,则不会达到延时的效果)
8.已知8254计数器0的端口地址为40H,控制字寄存器的端口地址为43H,计数时钟频率为2MHz,利用这一通道设计当计数到0时发出中断请求信号,其程序段如下,则中断请求信号的周期是32.7675ms。
MOVAL,00110010B
OUT43H,AL
MOVAL,0FFH
OUT40H,AL
9.若8254芯片可使用的8086端口地址为D0D0H~D0DFH,试画出系统设计连接图。
设加到8254上的时钟信号为2MHz,
(1)利用计数器0~2分别产生下列三种信号:
1周期为10us的对称方波
2每1s产生一个负脉冲
310s后产生一个负脉冲
每种情况下,说明8254如何连接并编写包括初始化在内的程序段。
(2)希望利用8086通过一专用接口控制8253的GATE端,当CPU使GATE有效开始,20us后在计数器0的OUT端产生一个正脉冲,试设计完成此要求的硬件和软件。
(1)选用D0D0H~D0DFH中的偶地址DODO,DOD2,DOD4,DOD6为基本地址作为8254的端口地址,设8086工作在最小方式下。
8254端口地址译码电路如下图:
计数器0输入端加2MHz的时钟信号,GATE0加+5V电压,输出OUT0信号为周期为10µ
s的对称方波。
初始化代码:
MOVDX,0D0D6H;
写计数器0工作方式
MOVDX,0D0D0H;
CLK0加2MHz的始终信号,GATE0,GATE1加+5V电压,OUT0输出加到CLK1做时钟信号,OUT1输出为每1s产生一个负脉冲。
初始代码:
MOVDX,0D0D6H;
写计数器0的工作方式
写计数器0的时常数
MOVAL,100
写计数器1的工作方式
MOVAL,01110100B
MOVDX,0D0D2H;
写计数器1的时常数
MOVAX,20000
CLK0加2MHz的始终信号,GATE0,GATE1加+5V电压,OUT0输出加到CLK2做时钟信号,OUT2输出为10s后产生一个负脉冲。
MOVAL,00110110B
MOVAX,1000
写计数器2的工作方式
MOVAL,10111000B
MOVDX,0D0D4H;
写计数器2的时常数
1)选用地址D0D0,DOD2,DOD4,DOD6为8253的端口地址,D0D8为GATE端口地址,该端口采用74LS373,8253用方式4,在OUT输出端加非门实现脉冲功能。
接口电路如图:
初始代码为:
MOVDX,0D0D8H;
GATE初始化
MOVAL,0
MOVAL,00011000B
MOVDX,0D0D0H;
MOVAL,40
MOVDX,0D0D8H
MOVAL,1
OUTDX,AL;
使GATE变高有效
10.若加到8254上的时钟频率为0.5MHz,则一个计数器的最长定时时间是多少?
若要求10分钟产生一次定时中断,试提出解决方案。
一个计数器的最长定时时间应该是置入时常数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分钟产生一次的定时中断。
11.织布机控制系统如图9.26所示,已知织布机每织1米发出一个正脉冲,每织100米要求接收到一脉冲,去触发剪裁设备把布剪开。
(1)设8253的端口地址为80H~83H,编写对8253初始化程序。
(2)假定系统提供的信号频率为1MHz,希望利用8253的其余通道产生0.1秒的周期信号,编写初始化程序。
图9.26织布机控制系统
(1)
MOVDX,83H
MOVAL,00010100B
OUTDX,AL
MOVDX,80H
MOVAL,100
(2)
将计数器1的输出OUT1信号作为计数器2的时钟输入CLK2,计数器1的时钟输入为系统提供1MHZ的信号
MOVDX,83H
MOVAL,01110100B
MOVDX,81H
MOVDX,AL
MOVDX,82H
12.在IBMPC系统中根据下列不同条件设计接口逻辑,利用8253完成对外部脉冲信号重复频率的测量。
(1)被测脉冲信号的重复频率在10~1000Hz范围内。
(2)被测脉冲信号的重复频率在0.5~1.5Hz范围内。
(3)被测脉冲信号重复频率在10~100Hz范围内。
(4)被测是间歇脉冲信号,每次有信号时有100个脉冲,重复频率为0.8~1.2MHz,间歇频率大约每秒15次,要求测有信号时的脉冲重复频率。
用两个计数器,计数器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地址
MOVDX,COUNTD;
计数器1初始化
MOVAL,01110000B
MOVDX,COUNTB
MOVAL,O
计数器0初始化
MOVAL,00010000B
STI
读两计数器的计数,并进行计算的中断服务子程序:
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVDX,COUNTD
MOVAL,00000000B
INAL,DX
NEGAX
INCAX
MOVBX,AX
MOVCX,T0
MULCX
DIVBX
MOVSFR,AX
POPDX
POPCX
POPBX
POPAX
IRET
SFR中保存结果即为待测信号的周期。
对于
(1)题,10*10不小于100,10*1000不大于65535,可以用计数法。
同理(3)也可用此方法。
对于
(2)题,可用周期法。
逻辑电路图如下:
MOVAL,00110100B
MOVAL,00000000B
MOVDX,000FH
MOVAX,4240H
(4)如图设计接口,计数器1用来记录在50个脉冲所用时间,50个信号脉冲最多用1/0.8*50(约为63us)由于计数器1用1MHzCLK,故其计数个数N即为Nus,所以当N>
63时,则有低电平间隔计入,须重新计数。
当N>
63时,则计算得待测频率。
MOVAL,00H
MOVAL,00010000B
MOVAL,50
MOVAL,01110000B
MOVCOUNTB
L2:
MOVDX,COUNT;
给GATE0和GATE1高电平,开始计数
MOVAL,81H
NOP
ANDAL,AL;
判断是否计完50个脉冲,若未计完继续等待
JNZL1
MOVDX,COUNT
MOVAL,00H;
若计完则暂停计数
读计数器1结果
CMPAX,70H;
当AL大于70,则有间歇计入,重新测试
JAL2
MOVBL,AL
MOVAL,50;
计算频率
DIVBL
MOVFREC,AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)