学习情境5
一、 问答题
1.常用的I/O接口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式? 答案:
1) 常用的I/O接口编址方式:一、独立编址方式:独立编址方式就是I/O地址空间和存储器地址空间分开编址。独立编址的优
点是I/O地址空间和存储器地址空间相互独立,界限分明。但是,却需要设置一套专门的读写I/O的指令和控制信号。二.统一编址方式:这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。
2) 特点:统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。 3) MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。 2..I/O数据传送有哪几种传送方式?分别在哪些场合下使用? 答案:
1) 传送方式:一.同步传送方式:同步传送又称为有条件传送。二.查询传送方式:查询传送方式又称为有条件传送,也称异步
传送。三.中断传送方式:中断传送方式是利用MCS-51本身的中断功能和I/O接口的中断功能来实现I./O数据的传送。 2) 使用场合:a.当外设速度可与单片机速度相比拟时,常常采用同步传送方式,最典型的同步传送就是单片机和外部数据存
储器之间的数据传送。b.单片机通过查询得知外设准备好后,再进行数据传送。异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。c.单片机只有在外设准备好后,发出数据传送请求,才中断主程序,而进入与外设进行数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。因此,采用中断方式可以大大提高
1
单片机的工作效率。
3..编写程序,采用8255A的C口按位置位/复位控制字,将PC7置0,PC4置1,(已知8255A各端口的地址为7FFCH-7FFFH)。 答案:
本题主要考察对8255A的C口的操作。其方式控制字的高位为0时,低四位对C口进行置位。由题目我们得到了方式控制字的地址为7FFFH。
ORG MOV MOV
0000H
DPTR,#7FFFH ;控制字寄存器地址送DPTR A,#0EH
;将PC7置0
MAIN:
MOVX MOV
@DPTR,A
;将PC4置1
A,#09H
MOVX END
@DPTR,A
4.8255A的方式控制字和C口按位置位/复位控制字都可以写入8255A的同一控制寄存器,8255A是如何区分这两个控制字的? 答案:
8255A通过它们的最高位来进行判断,最高位为1时,这时8255A认为这是方式控制字,否则认为是C口按位置位/复位控制字 5.说明8255A的A口在方式1的选通输入方式下的工作过程。 答案:
2
当外设输入一个数据并送到PA7-PA0上时,输入设备自动在选通输入线STBA向8255A发送一个低电平选通信号。8255A收到选通信号后:首先把PA7-PA0上输入的数据存入A口的输入数据缓冲/锁存器;然后使输入缓冲器输出线IBFA变成高电平,以通知输入设备,8255A的A口已收到它送来的输入数据。8255A检测到联络线STBA由低电平变成了高电平、IBFA为1状态和中断允许触发器INTEA为1时,使输出线INTRA(PC3)变成高电平,向8031发出中断请求。(INTEA的状态可由用户通过对PC4的置位/复位来控制。8031相应中断后,可以通过中断服务程序从A口的输入数据缓冲/锁存器读取外设发来的输入数据。当输入数据被CPU读走后,8255A撤销INTRA上的中断请求,并使IBFA变为低电平,以通知输入外设可以送下一个输入数据。 6.LED的静态显示方式于动态显示方式有何区别?各有什么优缺点? 答案:
静态显示时,数据是分开送到每一位LED上的。而动态显示则是数据是送到每一个LED上,再根据位选线来确定是哪一位LED被显示。静态显示亮度很高,但口线占用较多。动态显示则好一点,适合用在显示位数较多的场合。 7.说明矩阵式键盘按键按下的识别原理。 答案:
按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上,无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平亦为高。将行、列线信号配合起来并做适当的处理,才能确定闭合键的位置。 8.键盘有哪3种工作方式,它们各自的工作原理及特点是什么?
答案:
3
一.编程扫描方式:当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。二.定时扫描工作方式:单片机对键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。三.中断工作方式:只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。
二、实践练习
现有一片89C51,扩展了一片8255A,若把8255A的B口用做输入,B口的每一位接一个开关,A口用作输出,每一位接一个发光二极管,请画出电路原理图,并编写出B口某一位接高电平时,A口相应位发光二极管被点亮的程序。 答案:
电路原理图如下:
4
123455V161514131211109500*812345678U?P00P01P02P03P04P05P06P073433323130292827D0D1D2D3D4D5D6D7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7PA0PA1PA2PA3PA4PA5PA6PA718192021222324251415161713121110U?432140393837246811131517119101130291A11A21A31A42A12A22A32A41G2G74AS24412345678S?161514131211109SW-DIP8U?12345678131215143130p6MHzRESET30pRDWR191891716P10P11P12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWR80518.2KRXDTXDALE/PPSENP00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P2739383736353433322122232425262728P00P01P02P03P04P05P06P07P00P01P02P03P04P05P06P07347813141718111U?D0D1D2D3D4D5D6D7OELE74F373Q0Q1Q2Q3Q4Q5Q6Q7256912151619986RDWR536A0A1CSRDWRRESETRESET351Y11Y21Y31Y42Y12Y22Y32Y418161412975382555V10uF 5 Title相应程序如下: ORG 0000H
JMP MAIN ORG 0040H MAIN:
MOV SP,#30H MOV R0,#7FH
MOV A,#82H ; MOVX @R0,A LOOP:
MOV R0,#7DH ; MOVX A,@R0 CPL A
MOV R0,#7CH ; MOVX @R0,A SJMP LOOP END
设置8255的B口为数入口,A口位输出口读B口开关状态 从C口输出开关状态 6