微型计算机原理与接口技术第八章课后答案

合集下载

微型计算机原理及接口技术第8章8253

微型计算机原理及接口技术第8章8253

计数器/定时器的内部结构
8253内部包含三个完全一样的计数器/定时器通道, 每个通道的工作是完全独立的
每个通道包含:
① 一个8位控制字寄存器:由编程设定该通道的工作方式、读 写格式和数制
② 一个16位计数初值寄存器:由程序设定初始计数值,可分 成高8位和低8位两个部分,可作8位寄存器使用
③ 一个计数器执行部件(实际的计数器):实际上是一个16 位减法计数器,它的起始值是初始寄存器的值,由程序设 定。可分成高8位和低8位两个部分
优点:电路结构简单,价格便宜,通过 改变电阻或电容值,可以在一定的定时 范围内改变定时时间
缺点:电路在硬件已连接好的情况下, 定时时间和范围就不能由程序来控制和 改变,而且定时精度也不高
555定时器外部引脚和内部结构
可编程硬件定时
定时原理:利用可编程定时器/计数器芯 片附加硬件电路实现定时
输出信号的波形由工作方式决定,同时还要受 到GATE引脚上的门控信号控制,它决定是否 允许计数
计数器/定时器的定时功能
当加到CLK引脚上的脉冲为精确的时钟脉 冲,可实现定时的功能。
定时时间决定于计数脉冲的频率和计数 器的初值。
定时时间=时钟脉冲周期×预置的计数初值
计数器/定时器的计数功能
方式1:可编程单稳态输出方式
写入控制字后OUT初始状态:高电平 门控信号GATE的作用:①高电平或低电平均不起作用;
②只有在GATE发生由低到高的正跳变,输出OUT由高
到低跳变,并开始计数;③在计数过程中,若GATE产 生负跳变,不影响计数;④在计数器回0之前,GATE 又产生由低到高的正跳变,8253又将初始值装入,重 新开始计数,使生成脉冲加宽。 计数过程中OUT状态:保持低电平 计数结束OUT状态:发生由低到高的正跳变。 计数器回0后,是否重新计数:否 应用:用于定时

微型计算机技术课后答案第六章-第八章

微型计算机技术课后答案第六章-第八章

6.1 分类说明8086CPU有哪几种中断?答:8086CPU中断源可分为内部中断和外部中断,内部中断有溢出中断、除法出错中断、INTn指令中断、断点中断、单步(陷阱)中断;外部中断有可屏蔽中断INTR\不可屏蔽中断NMI。

6.2 简述 8086可屏蔽中断的响应过程。

可屏蔽中断INTR接受来自普通外设的中断请求信号(一般使用可编程中断控制器8059A来管理此类外设的中断请求),当该信号线有效时,CPU将根据中断允许标志IF的状态来决定是否响应。

如果IF=0,则表示INTR线上中断被屏蔽或禁止,CPU将不理会该中断请求而处理下一条指令。

由于CPU并不锁存INTR信号,INTR信号必须保持有效状态,直到接受到响应信号或撤销请求为止。

如果IF=1,则表示INTR线上的中断开放,CPU在完成现在正在执行的指令后,识别该中断请求,并进行中断处理。

6.5 中断应答时序如图6.2所示,说明前后两个INTA周期的任务。

第一个INTA表示对中断请求的响应,用于通知中断请求设备,第二个INTA用于将中断类型号送数据总线的低8位上。

期间LOCK信号用于保证在中断响应过程中不会被其他CPU占用总线而导致中断响应失败。

6.9 某外设中断类型号为10H,它的中断服务程序的入口地址为1020H:3FC9H,求其向量地址并具体描述中断向量的各字节在存储器中的存储情况。

解:向量地址:10H*4=40H[0040H]、[0041H]、[0042H]、[0043H]依次存放C9H、3FH、20H、10H6.10 某外设的中断服务子程序名称为INT_PROC,其中断类型号为18H,试编写一程序段将该外设的中断向量装入到中断向量表中。

解:向量地址:18H*4=60HPUSH DSMOV AX,0MOV DS,AXMOV WORD PTR [0060H],OFFSET INT_PROCMOV WORD PTR [0062H],SEG INT_PROCPOP DSHLT7.2 简述CPU与外围设备交换信息的过程。

《微型计算机原理与接口技术》(尹建华)习题答案

《微型计算机原理与接口技术》(尹建华)习题答案

第一章2、156D = 10011100B = 9CH79D = 1001111B = 4FH0.675D = 0.1011B = 0.BH37.164D = 100101.0011B = 25.3H3、136D = 10001000B111010.111B = 3A.EH110010.11B = 62.6Q157Q = 06FH133Q = 910AE7.D2H = 101011100111.11010010B0.468D = 0.0111B4、无符号数:151符号数:-1058421BCD:976、+1原码= 00000001反码= 00000001补码= 00000001-1原码= 10000001反码= 11111110补码= 11111111+36原码= 00100100反码= 00100100补码= 00100100-36原码= 10100100反码= 11011011补码= 11011100-128原码= 1000000010000000反码= 111111*********补码= 100000007、⑴-128⑵-1⑶15⑷-868、⑴0 ~ 255⑵-127 ~ +127⑶-32767 ~ +3276811、34H + 89H无溢出0AFH+ 45H无溢出76H-0FEH无溢出第二章2、1MB,64KB3、不能4、4,1,时钟5、0FFFF0H寄存器名FRIPCSDSSSES指令队列其它寄存器复位状态0000H0000HFFFFH0000H0000H0000H清空0000H6、段基地址和偏移地址1230H:0045H1000H:2345H7、90000H ~ 9FFFFH11、等待周期:8086CPU与慢速的存储器和I/O设备交换信息时,为了防止丢失数据,在总线周期的和之间,插入一些必要的等待状态,用来给予必要的时间补偿。

在等待状态期间,总线上的信息保持不变,其他一些控制信号也都保持不变。

微机原理及接口第八章习题解答

微机原理及接口第八章习题解答

“微机系统原理与接口技术”第八章习题解答(部分)1. 什么叫总线和总线操作?为什么各种微型计算机系统中普遍采用总线结构?答:总线是模块与模块之间传送信息的一组公用信号线;而模块间信息传送时与总线有关的操作统称为总线操作;模块间完成一次完整信息交换的时间称为一个总线操作周期。

总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行。

因此微型计算机系统中普遍采用总线结构。

2.微机总线有哪些种类?其数据传输的主要过程是什么?答:微机中目前普遍采用的总线标准包括系统内总线标准和系统外总线标准两类:系统内总线标准一般指微机主板插槽(系统扩展板)遵循的各种标准,如PC/XT总线标准、ISA 总线标准(PC/AT总线标准)、VL总线标准(VESA具备总线标准)、PCI局部总线标准等;系统外总线标准指系统互连时遵循的各种标准,多表现为微机对外的标准接口插头,有时也称为接口标准,如EIA RS-232异步串行接口标准、USB通用串行接口标准、IEEE-488通用并行接口标准等。

一个总线操作周期一般分为四个阶段,即:总线请求及仲裁阶段、寻址阶段、传数阶段和结束阶段。

在含有多个主控制器的微机系统中,这四个阶段都是必不可少的;而在仅含一个主控制器的单处理器系统中,则只需要寻址和传数两个阶段。

3.计算机系统与外部设备之间相互连接的总线称为系统外总线(通信总线);用于连接微型机系统内各插件板的总线称为系统内总线(板级总线);CPU内部连接各寄存器及运算部件之间的总线称为片内总线。

4.一次总线的信息传送过程大致可以分为4个阶段,依次为总线请求及仲裁阶段、寻址阶段、传数阶段和结束阶段。

8.同步总线有哪些优点和缺点?主要用在什么场合?答:同步并行总线时序是指总线上所有信号均以同步时钟为基准,所有接在总线上的设备的信息传输也严格与同步时钟同步。

同步并行总线的优点是简单、易实现;缺点是无法兼容总线上各种不同响应速度的设备,因为同步时钟的速度必须以最慢的响应设备为准,这样总线上的高速设备将无法发挥其高速性能。

微机原理与接口技术课后第八章习题答案

微机原理与接口技术课后第八章习题答案

第8章中断系统与可编程中断控制器8259A1.什么叫中断?8086微机系统中有哪几种不同类型的中断?答:在CPU执行程序的过程中,由于某个事件的发生,CPU暂停当前正在执行的程序,转去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后,CPU再返回到原被中断的程序继续执行。

这个过程称为中断。

8086微机系统中有3种中断:1)外部可屏蔽中断。

2)外部不可屏蔽中断。

3)内部中断2.什么是中断类型?它有什么用处?答:通常用若干位二进制编码来给中断源编号,该编号称为中断类型号。

8086微处理器用8位二进制码表示一个中断类型,有256个不同的中断。

这些中断可以划分为内部中断、外部不可屏蔽中断、外部可屏蔽中断三类。

用处:使CPU识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。

3.什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件是什么?答:微处理器在处理低级别中断的过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式成为中断嵌套。

使用中断嵌套的好处是能够提高中断响应的实时性。

对于某些对实时性要求较高的操作,必须赋予较高的优先级和采取中断嵌套的方式,才能保证系统能够及时响应该中断请求。

对于可屏蔽中断,实现中断嵌套的条件有:(1)微处理器处于中断允许状态(IF=1)(2)中断请求的优先级高于正在执行的中断处理程序的优先级。

(3)中断请求未被8259屏蔽。

(4)没有不可屏蔽中断请求和总线请求。

4.什么是中断向量?中断类型号为1FH的中断向量为2345H:1234H,画图说明它在中断向量表中的存放位置。

答:中断向量为每个中断服务子程序的入口地址,为32位(16位的偏移地址和16位的段地址),在中断向量表中占用4个地址单元。

在8086CPU组成的计算机系统中,采用最低的1024个地址单元(称为0页)来存储中断向量。

微机原理与接口技术——基于8086和Proteus仿真 习题参考答案

微机原理与接口技术——基于8086和Proteus仿真 习题参考答案

第1章习题答案1.答:为了区别所使用的数制,一般用以下两种书写格式表示:①用括号将数字括起,后面加数制区分,数制用下标的形式给出;②用后缀区分,二进制数、十进制数、八进制数、十六进制数的后缀分别为字母B(或b)、D(或d)、O(或o)或Q(或q)、H(或h)。

例如:十六进制数可以表示成16或;十进制数可以表示成10或。

2.答:123D采用十进制,0AFH采用十六进制,77Q采用八进制,1001110B采用二进制。

3.答:字长为8位的二进制数原码表示的最大值:127,最小值:-127;补码表示的最大值:127,最小值:-128。

字长为16位的二进制数原码表示的最大值:32767,最小值:-32767;补码表示的最大值:32767,最小值:-32768。

4.答:(1)125D=0111 1101B=7DH(2) 255D=1111 1111B=FFH(3)72D=0100 1000B=48H(4)5090D=0001 0011 1110 0010B=13E2H5.答:(1)1111 0000B=240D=F0H(2) 1000 0000 B =128D =80H(3)1111 1111 B =255 D =FFH(4)0101 0101B=85D=55H6.答:(1)FFH=255D=1111 1111B(2) ABCDH=43947D=1010 1011 1100 1101B(3) 123H=291D=0000 0001 0010 0011B(4) FFFFH=65535D=1111 1111 1111 1111B7.答:(1)8位时(16)原=0001 0000 ; (16)补=0001 0000;16位时(16)原=0000 0000 0001 0000 ; (16)补=0000 0000 0001 0000;(2) 8位时(-16)原=1001 0000 ; (-16)补=1111 0000;16位时(-16)原=1000 0000 0001 0000 ; (-16)补=1111 1111 1111 0000;(3) 8位时(+0)原=0000 0000; (+0)补=0000 0000;16位时(+0)原=0000 0000 0000 0000; (+0)补=0000 0000 0000 0000;(4) 8位时(-0)原=1000 0000 ; (-0)补=0000 0000;16位时(-0)原=1000 0000 0000 0000; (-0)补=0000 0000 0000 0000;(5) 8位时(127)原=0111 1111; (127)补=0111 1111;16位时(127)原=0000 0000 0111 1111; (127)补=0000 0000 0111 1111;(6) 8位时-128超过原码表示的范围; (-128)补=1000 0000;16位时(-128)原=1000 0000 1000 0000; (-128)补=1111 1111 1000 0000;(7) 8位时(121)原=0111 1001 ; (121)补=0111 1001;16位时(121)原=0000 0000 0111 1001; (121)补=0000 0000 0111 1001;(8) 8位时(-9)原=1000 1001 ; (-9)补=1111 0111;16位时(-9)原=1000 0000 0000 1001; (-9)补=1111 1111 1111 0111;8.答:(1) [x]补=1100 0010;(2)[-x]补=0000 1101;(3)[x]原=1100 0010;(4)[x]反=1011 1101。

微机原理与接口技术习题答案

微机原理与接口技术习题答案

第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。

(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。

(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。

微型计算机原理与接口技术课后习题参考答案

微型计算机原理与接口技术课后习题参考答案

《微型计算机原理与接口技术》习题与思考答案第1章微型计算机概论1.1 A B C 1.2 B 1.3 B 1.4 C 1.5 A B C 1.6 B D1.7 00000111B=7D=07H 11010100B=212D=D4H01101010B=106D=6AH 10110.101B=22.625D=16.AH11001.011B=25.375D=19.6H1.8 127D=11111111B=FFH 12.625D=1100.101B=C.AH225.9375D=11100001.1111B=E1.FH 18.3l25D=10010.0101B=12.5H206.125=11001110.001B=CE.2H1.9 10H=10000B=16D 0.A8H=0.10101B=0.65625D28.9H=101000.1001B=40.5625D 4B.2AH=1001011.0010101B=75.6762D20E.4H=1000001110.01B=526.25D1.10 [+37]原=00100101B [+37]反=00100101B [+37]补=00100101B [+37]过余=10100101B[+94]原=01011110B [+94]反=01011110B [+94]补=01011110B [+94]过余=11011110B [-11]原=10001011B [-11]反=11110100B [-11]补=11110101B [-11]过余=01110101B [-125]原=11111101B [-125]反=10000010B [-125]补=10000011B [-125]过余=00000011B1.11补码00010101B的真值为+21D 补码41H的真值为+65D补码9BH的真值为-101D 补码FFH的真值为-1D补码11110101B的真值为-11D1.12 A的ASCII码为41H a的ASCII码为61Hg的ASCII码为67H z的ASCII码为7AH0的ASCII码为30H 9的ASCII码为39H*的ASCII码为2AH +的ASCII码为2BHCR的ASCII码为0DH %的ASCII码为25H1.12一个16×16字形点阵占用存储空间32B一个24×24字形点阵占用存储空间72B一个32×32字形点阵占用存储空间128B1.14 (以8位补码为例)[X]补+[Y]补=[+38]补+[+100]补=0001010B,溢出[X]补+[Z]补=[+38]补+[-20]补=00010010B,未溢出[Y]补- [Z]补=[+100]补- [-20]补=01111000B,未溢出[Z]补- [X]补=[-20]补- [+38]补=11000110B,未溢出1.15 X与Y=0100B X或Z=1111B Y异或Z=1101B 非Y=1001B1.16微型计算机具有体积小、重量轻、功耗低;功能强;可靠性高;价格低廉;结构灵活、适应性强;使用方便、维护容易等特点。

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

第八章1. 8253芯片有哪几个计数通道?每个计数通道可工作于哪几种工作方式?这些操作方式的主要特点是什么?答:8253内部包含3个完全相同的计数器/定时器通道,即0~2计数通道,对3个通道的操作完全是独立的。

8253的每个通道都有6种不同的工作方式。

方式0——计数结束中断方式:当对8253的任一个通道写入控制字,并选定工作于方式0时,该通道的输出端OUT立即变为低电平。

要使8253能够进行计数,门控信号GATE 必须为高电平。

经过n十1个脉冲后,计数器减为0,这时OUT引脚由低电平变成高电平。

OUT引脚上的高电平信号,一直保持到对该计数器装入新的计数值,或设置新的工作方式为止。

在计数的过程中,如果GATE变为低电平,则暂停减1计数,计数器保持GATE有效时的值不变,OUT仍为低电平。

待GATE回到高电平后,又继续往下计数。

方式1——可编程单稳态输出方式:当CPU用控制字设定某计数器工作于方式1时,该计数器的输出OUT立即变为高电平。

GATE出现一个上升沿后,在下一个时钟脉冲的下降沿,将n装入计数器的执行部件,同时,输出端OUT由高电平向低电平跳变。

当计数器的值减为零时,输出端OUT产生由低到高的正跳变,在OUT引脚上得到一个n个时钟宽度的负单脉冲。

在计数过程中,若GATE产生负跳变,不会影响计数过程的进行。

但若在计数器回零前,GATE又产生从低到高的正跳变,则8253又将初值n装入计数器执行部件,重新开始计数,其结果会使输出的单脉冲宽度加宽。

方式2——比率发生器:当对某一计数通道写入控制字,选定工作方式2时,OUT端输出高电平。

如果GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件,此后,计数器随着时钟脉冲的输入而递减计数。

当计数值减为1时,OUT端由高电乎变为低电平,待计数器的值减为0时,OUT引脚又回到高电平,即低电平的持续时间等于一个输入时钟周期。

与此同时,还将计数初值重新装入计数器,开始一个新的计数过程,并由此循环计数。

如果装入计数器的初值为n,那么在OUT引脚上,每隔n个时钟脉冲就产生一个负脉冲,其宽度与时钟脉冲的周期相同,频率为输入时钟脉冲频率的n分之一。

在操作过程中,任何时候都可由CPU重新写入新的计数值,不影响当前计数过程的进行。

当计数值减为0时,一个计数周期结束,8253将按新写入的计数值进行计数。

在计数过程中,当GATE变为低电平时,使OUT变为高电平,禁止计数;当GATE从低电平变为高电平,GATE端产生上升沿,则在下一个时钟脉冲时,把预置的计数初值装入计数器,从初值开始递减计数,并循环进行。

方式3——方波发生器:方式3和方式2的工作相类似,但从输出端得到的是对称的方波或基本对称的矩形波。

如果写入计数器的初值为偶数,则当8253进行计数时,每输入一个时钟脉冲,均使计数值减2。

计数值减为0时,OUT输出引脚由高电平变成低电平,同时自动重新装入计数初值,继续进行计数。

当计数值减为0时,OUT引脚又回到高电平,同时再一次将计数初值装入计数器,开始下一轮循环计数;如果写入计数器的初值为奇数,则当输出端OUT为高电平时,第一个时钟脉冲使计数器减1,以后每来一个时钟脉冲,都使计数器减2,当计数值减为0时,输出端OUT由高电平变为低电平,同时自动重新装入计数初值继续进行计数。

这时第一个时钟脉冲使计数器减3,以后每个时钟脉冲都使计数器减2,计数值减为0时,OUT端又回到高电平,并重新装入计数初值后,开始下一轮循环计数。

方式4——软件触发选通:当对8253写入控制宇,进入工作方式4后,OUT端输出变为高电平,如果GATE为高电平,那么,写入计数初值后,在下一个时钟脉冲后沿将自动把计数初值装入执行部件,并开始计数。

当计数值成为0时,OUT端输出变低,经过一个时钟周期后,又回到高电平,形成一个负脉冲。

若在计数过程中写入一个新的计数值,则在现行计数周期内不受影响,但当计数值回0后,将按新的计数初值进行计数,同样也只计一次。

如果在计数的过程中GATE变为低电平,则停止计数,当GATE变为高电平后,又重新将初值装入计数器,从初值开始计数,直至计数器的值减为0时,从OUT端输出一个负脉冲。

方式5——硬件触发选通:编程进入工作方式5后,OUT端输出高电平。

当装入计数值n后,GATE引脚上输入一个从低到高的正跳变信号时,才能在下一个时钟脉冲后沿把计数初值装入执行部件,并开始减1计数。

当计数器的值减为0时,输出端OUT产生一个宽度为一个时钟周期的负脉冲,然后OUT又回到高电平。

计数器回0后,8253又自动将计数值n装入执行部件,但并不开始计数,要等到GATE端输入正跳变后,才又开始减1计数。

计数器在计数过程中,不受门控信号GATE电平的影响,但只要计数器未回0,GATE的上升沿却能多次触发计数器,使它重新从计数初值n开始计数,直到计数值减为0时,才输出一个负脉冲。

如果在计数过程中写入新的计数值,但没有触发脉冲,则计数过程不受影响。

当计数器的值减为0后,GATE端又输入正跳变触发脉冲时,将按新写入的初值进行计数。

2. 8253的最高工作频率是多少?8254与8253的主要区别是什么?答:8253的最高计数频率能达到2MHz。

Intel 8254是8253的增强型产品,它与8253的引脚兼容,功能几乎完全相同,不同之处在于以下两点:(1)8253的最大输入时钟频率为2MHz,而8254的最大输入时钟频率可高达5MHz。

(2)8254有读回(Read-back)功能,可以同时锁存1~3个计数器的计数值及状态值,供CPU读取,而8253每次只能锁存和读取一个通道的计数器,且不能读取状态值。

3. 对8253进行初始化编程分哪几步进行?答:(1)写入控制字用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该计数器的工作方式和计数格式。

写入控制字还起到复位作用,使输出端OUT变为规定的初始状态,并使计数器清0.(2)写入计数初值用输出指令向选中的计数器端口地址中写入一个计数初值,初值设置时要符合控制字中有关格式规定。

4. 设8253的通道0~2和控制端口地址分别为300H,302H,304H和306H,定义通道0工作在方式3,CLK0=2MHz。

试编写初始化程序,并画出硬件连接图。

要求通道0输出1.5KHz 的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,通道2每秒钟向CPU发50次中断请求。

答:通道0工作在方式3,n0=2MHz/1.5KHz=1334通道1工作在方式2,n1=1.5KHz/300Hz=5通道2工作在方式0,当CLK2=2MHz时, n2=2MHz/50Hz-1=39999;当CLK2=OUT0=1.5KHz时, n2=1.5KHz/50Hz-1=29 ;当CLK2=OUT1=300Hz时, n2=300Hz/50Hz-1=5初始化程序如下:通道0初始化:306HMOV DX,MOV AL, 00110111B(37H) ;方式3,先读/写低8位,;后读/写低8位, BCD计数ALOUT DX,300HMOV DX,MOV AL, 34H ;初值低8位ALOUT DX,MOV AL, 13H ;初值高8位ALOUT DX,通道1初始化:306HMOV DX,MOV AL, 01010101B(55H) ;方式2,只读/写低8位, BCD计数ALOUT DX,MOV DX,302HMOV AL, 05H ;初值ALOUT DX,通道2初始化:306HMOV DX,MOV AL, 10010001B(91H) ;方式0,只读/写低8位,BCD计数ALOUT DX,MOV DX,304H29H(或05H) ;初值MOV AL,ALOUT DX,5. 某微机系统中,8253的端口地址为40H~43H。

要求通道0输出方波,使计算机每秒钟产生18.2次中断;通道1每隔15μs向8237A提出一次DMA请求;通道2输出频率为2000Hz 的方波。

试编写8253的初始化程序,并画出有关的硬件连接图。

答:此微机系统为IBM PC/XT系统,通道0作实时时钟,每秒钟产生18.2次中断。

通道0工作于方式3,n0=1.19318MHz/18.2=65536 即 0初始化编程:MOV AL, 00110110B ;通道0,先写低字节,后写高字节,方式3,2进制计数OUT 43H, AL ;写入控制字MOV AX, 0000H ;预置计数值n=65536OUT 40H,AL ;先写低字节MOV AL,AHOUT 40H,AL ;后写高字节通道1工作于方式2,周期为15μs,频率为66.2878KHz,初值n1=1.19318MHz/66.2878KHz=18初始化编程:MOV AL,01010101B ;控制字,计数1,只写低字节,方式2,BCD计数OUT 43H,AL ;写入控制字MOV AL,18H ;计数初值BCD数18HOUT 41H,AL ;送初值通道2用于扬声器音调控制,要求输出频率2000Hz的方波,故工作于方式3,n2=1.19318MHz/2000Hz=596初始化编程:MOV AL,10110111B ;控制字,计数器2,先写低字节,后写高字节,方式3,BCD计数OUT 43H,ALMOV AX,596H ;预置初值OUT 42H,AL ;先送低字节MOV AL,AHOUT 42H,AL ;后送高字节6. 设某系统中8254芯片的基地址为F0H,在对3个计数通道进行初始化编程时,都设为先读写低8位,后读写高8位,试编程完成下列工作:(1)对通道0~2的计数值进行锁存并读出来。

(2)对通道2的状态值进行锁存并读出来。

答:(1)利用8254的读回功能锁存计数值MOV AL,11011110B ;锁存3个计数通道计数值OUT 0F3H,ALIN AL,0F0H ;读通道0低8位MOV AH,ALIN AL,0F0H ;读通道0高8位XCHG AH,AL ;将计数值置入AXPUSH AX ;入栈保存IN AL,0F1H ;读通道1低8位MOV AH,ALIN AL,0F1H ;读通道1高8位XCHG AH,ALPUSH AX ;入栈IN AL,0F2H ;读通道2低8位MOV AH,ALIN AL,0F2H ;读通道2高8位XCHG AH,ALPUSH AX(2)利用8254的读回功能锁存状态MOV AL,11101000B ;锁存通道2状态OUT 0F3H,ALIN AL,0F2H ;读通道2状态。

相关文档
最新文档