欢迎来到天天文库
浏览记录
ID:52207799
大小:1.14 MB
页数:11页
时间:2020-03-24
《微机原理复习资料.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Part1二。接口电路原理图的分析。1。从原理图中分析出其中的端口和端口类型(数据,状态,控制)如果电路为可编程芯片(8254,8255等)构成,则可以直接得到其中的端口和类型;如果电路由门电路等分立元件构成,则需要依据电路的构成来具体分析其中的端口和类型(*)。2。从原理图中分析译码电路,以确定其中的端口的地址。译码电路的分析方法为:列出地址列表的全部状态变化,从中寻找出端口对应的地址。三。CPU对接口电路的操作涉及的程序设计。要求掌握CPU对接口电路的四种操作方式中的三种方式的程序设计:无条件传送,查询,中断。1.无条件
2、传送编写程序时无须获知外设的状态,直接采用OUT指令对端口写数据,IN指令从端口读数据。注意:当端口地址超过8位时,要用DX间址.如:MOVDX,210HOUTDX,AL2。查询使用查询方式对端口操作时,无论是读还是写数据口,先都需要获取外设的状态,了解到外设是否准备好数据或处于空闲状态;在实际编程中,先在一个循环中反复读取状态口的数据,判别某个状态位是否有效,如有效则可以跳出循环,从数据口读数据或向数据口写数据。总结:对于可编程芯片8250,8255对8250,在发送数据前,先读通信线状态寄存器(状态口)获知发送保持寄存器
3、是否空闲(D5=1),然后可以将需要发送的数据写入发送保持寄存器(数据口);在接收数据前,先读通信线状态寄存器(状态口)获取接收缓冲寄存器是否已经收到1帧数据(D0=1),然后可以从接收缓冲寄存器(数据口)读入收到的数据。对8255,方式1时,CPU读取A口或B口(数据口)前,先读取C口(此时视C为状态口),判别IBF是否为1;CPU向A口或B口(数据口)写数据前,读取C口,判别OBF是否为1。注意:对可编程芯片(8250,8255)在采用查询方式操作时,一般需要禁止该芯片提出中断请求。总结:对8250,需要向中断允许寄存器
4、和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时
5、,需要使用C口按位置1/0命令字写往控制口以使得PC口的对应位置1以开放A口或B口的中断请求。(请仔细阅读P347.例11.2.1对8255初始化的子程序(采用中断方式的))中断服务程序的编写中断服务程序结构SERVICEPROC保护现场的语句中断服务程序里具体完成的事情{对主/从8259写中断结束命令字}仅在需要时有这样的操作恢复现场的语句IRETSERVICEENDP保护现场和恢复现场通常是利用堆栈完成对那些主程序中用到,在中断服务程序中也会用到的寄存器进行保护,使得它们都可以在主程序和中断服务程序中正常使用,而避免发生
6、其中的数值被互相修改的问题。如PUSHA,POPA,但注意一定要成对使用。(中断服务程序的结构可以参见补充的定时中断程序以及8255一章中P.347中断程序)对8259写中断结束命令字决定于被置换掉的原有的硬件中断服务程序是否需要这样的操作。总结为:置换日时钟08H中断,需要在用户自己的中断服务程序中对主8259写中断结束命令字。置换日时钟引发的1CH中断,不需要在用户自己的中断服务程序中对主8259写中断结束命令字。(参见补充的利用日时钟中断设计定时程序)置换用户中断引发的71中断,需要在用户自己的中断服务程序中对主从82
7、59写中断结束命令字。置换用户中断引发的0A中断,需要在用户自己的中断服务程序中对主8259写中断结束命令字。(参见教材P347.例11.2.1利用用户中断设计的程序)Part2定时器/计数器8254程序设计对8254的初始化编程(2个步骤)步骤:1.根据被使用的定时计数器的工作方式,数据写入方式(低8位,高8位,低8位和高8位),数据写入的数制类型(二进制,BCD码)确定方式选择命令字,写入到8254控制口。2.根据计数初值=fclk/fout计算出计数初值,按照确定的数据写入方式,将其写入到8254对应的定时计数器端口。
8、注意:1.每次设定工作方式和写入初值只能对8254中1个定时计数器完成初始化。如果要对2个或3个定时计数器都进行初始化,这样的操作过程要重复进行2次或3次。2.注意写入的计数初值是二进制还是BCD码。二进制还是BCD码是由程序员来指定的。partppppPart3Part4串行接口概念1
此文档下载收益归作者所有