- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理复习资料微机原理复习资料精选
Part1二。接口电路原理图的分析。1。从原理图中分析出其中的端口和端口类型(数据,状态,控制) 如果电路为可编程芯片 (8254,8255等)构成,则可以直接得到其中的端口和类型;如果电路由门电路等分立元件构成,则需要依据电路的构成来具体分析其中的端口和类型(*)。2。从原理图中分析译码电路,以确定其中的端口的地址。译码电路的分析方法为:列出地址列表的全部状态变化,从中寻找出端口对应的地址。 三。CPU对接口电路的操作涉及的程序设计。要求掌握CPU对接口电路的四种操作方式中的三种方式的程序设计:无条件传送,查询,中断。1.无条件传送编写程序时无须获知外设的状态,直接采用OUT指令对端口写数据,IN指令从端口读数据。注意:当端口地址超过8位时,要用DX间址. 如 : MOV DX, 210H OUT DX,AL 2。查询使用查询方式对端口操作时,无论是读还是写数据口,先都需要获取外设的状态,了解到外设是否准备好数据或处于空闲状态;在实际编程中,先在一个循环中反复读取状态口的数据,判别某个状态位是否有效,如有效则可以跳出循环,从数据口读数据或向数据口写数据。总结:对于可编程芯片8250,8255对8250,在发送数据前,先读通信线状态寄存器(状态口)获知发送保持寄存器是否空闲(D5=1),然后可以将需要发送的数据写入发送保持寄存器(数据口);在接收数据前,先读通信线状态寄存器(状态口)获取接收缓冲寄存器是否已经收到1帧数据(D0=1), 然后可以从接收缓冲寄存器(数据口)读入收到的数据。对8255,方式1时,CPU读取A口或B口(数据口)前,先读取C口(此时视C为状态口),判别IBF是否为1; CPU向A口或B口(数据口)写数据前,读取C口,判别OBF是否为1。 注意:对可编程芯片(8250,8255)在采用查询方式操作时,一般需要禁止该芯片提出中断请求。总结:对8250,需要向中断允许寄存器和MODEM控制寄存器写对应的控制字以禁止8250提出中断。(请仔细阅读P320.例10.3.1 中对8250的初始化子程序)对8255,需要将C口按位置1/0命令字写入控制口以使得C口的对应位置0以禁止A口或B口提出中断请求。(请仔细阅读P347.例11.2.1对8255初始化的子程序(采用查询方式的程序))注意:有时还需要打开接口电路自身的中断允许,以使得接口电路能送出中断请求信号。 对于串口8250芯片,需要向中断允许寄存器和MODEM控制寄存器 写对应的命令字以完成使8250能送出中断请求。 对于8255芯片,工作在方式1时,需要使用C口按位置1/0命令字写往控制口以使得PC口的对应位置1以开放A口或B口的中断请求。(请仔细阅读P347.例11.2.1 对8255初始化的子程序(采用中断方式的))中断服务程序的编写中断服务程序结构SERVICE PROC保护现场的语句中断服务程序里具体完成的事情{对主/从8259写中断结束命令字}仅在需要时有这样的操作恢复现场的语句 IRETSERVICE ENDP保护现场和恢复现场通常是利用堆栈完成对那些主程序中用到,在中断服务程序中也会用到的寄存器进行保护,使得它们都可以在主程序和中断服务程序中正常使用,而避免发生其中的数值被互相修改的问题。如PUSHA ,POPA,但注意一定要成对使用。(中断服务程序的结构可以参见补充的定时中断程序以及8255一章中P.347中断程序)对8259写中断结束命令字决定于被置换掉的原有的硬件中断服务程序是否需要这样的操作。总结为:置换日时钟08H中断,需要在用户自己的中断服务程序中对主8259写中断结束命令字。置换日时钟引发的1CH中断,不需要在用户自己的中断服务程序中对主8259写中断结束命令字。(参见补充的利用日时钟中断设计定时程序)置换用户中断引发的71中断,需要在用户自己的中断服务程序中对主从8259写中断结束命令字。置换用户中断引发的0A中断,需要在用户自己的中断服务程序中对主8259写中断结束命令字。(参见教材P347.例11.2.1 利用用户中断设计的程序 )Part2定时器/计数器8254 程序设计对8254的初始化编程(2个步骤)步骤: 1.根据被使用的定时计数器的工作方式,数据写入方式 (低8位,高8位,低8位和高8位),数据写入的数制类型(二进制,BCD码) 确定方式选择命令字,写入到8254控制口。 2. 根据计数初值=f c l k / f o u t 计算出计数初值,按照确定的数据写入方式,将其写入到8254对应的定时计数器端口。注意:1. 每次设定工作方式和写入初值只能对8254中1个定时计数器完成初始化。如果要对2个或3个定时计数器都进行初始化,这样的操作过程要重复进行2次或3次。 2. 注意写入的计数初值是二
文档评论(0)