(对)参P127 (A) 串行口通信的第9数据位的功能可由用户定义。
(对) (B) 发送数据的第9数据位的内容在SCON寄存器的TB8位中预先准备好的。
(错)参P125 (C) 串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。
(D)串行通信接收到的第9位数据送SCON寄存器的RB8中保存。(对)参P125 (E)串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。(对)参P128 7-4.通过串行口发送或接收数据时,在程序中应使用:参P132~135 (C) (A)MOVC指令 (B)MOVX指令(C)MOV指令 (D)XCHD指令 7-5.串行口工作方式1的波特率是:参P128 (C)
(A)固定的,为fosc/32。(B)固定的,为fosc/16。 (C)可变的,通过定时器/计数器T1的溢出率设定。(D)固定的,为fosc/64。 7-6.在异步串行通信中,接收方是如何知道发送方开始发送数据的?参P123~124
答:当接收方检测到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
7-7.串行口有几种工作方式?(参P120)有几种帧格式?(参P121,P123~124)各种工作方式的波特率如何确定?参P128答:串行口有4种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD/32×定时器T1的溢出率,方式2的波特率=2SMOD/64×fosc,方式3的波特率=2SMOD/32×定时器T1的溢出率
*7-8.假定串行口发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请画出传送字符“B”的帧格式?答:字符“B”的ASCII码为“42H”(既0BH+37H),帧格式如下:
数字(0~9)H的ASCII码为(0~9)+30H,数字(AH~FH)的ASCII码为(A~F)+37H。 请画出传送字符“C”的帧格式?
起始位01000011校验位停止位
7-9.为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2?若已知时钟频率,串行通信的波特率,如何计算装入T1的初值? 参P128答:因为定时器/计数器在方式2下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了执行重装参数的指令所带来的时间误差。
设定时器T1方式2的初值为X,计算初值X可采用如下公式:
2SMOD0 波特率 =
32定时器T1的溢出率?2SMOD32?fosc12(256?X)
定时器T1的溢出率=计数速率/(256-X)=fosc/[(256-X)*12] 故计数器初值为256-X = 2SMOD ×fosc/[12×32×波特率]
*7-10.若晶体振荡器为11.0592MHZ,串行口工作于方式1,波特率为4800b/s,写出用T1作为波特
2SMOD率发生器的方式控制字和计数初值。答:方式1的波特率 =2)
32?fosc12(256?X) = 4800 bit/s(T1工作于方式
X=250=FAH
经计算,计数初值为FAH,初始化程序如下:
;屏蔽低4位 ANL TMOD,#0F0H
;T1定时模式工作方式2 ORL TMOD,#20H
MOV MOV MOV
TH1,#0FAH TL1,#0FAH SCON,#40H
;写入计数初值,波特率为4800b/s
;串行口工作于方式1参P119
·11·
方式1的波特率?2SMOD?2SMOD32?定时器T1的溢出率解法2:由 得
32?fosc1265536?X?4800 (T1工作于方式2)
X?65536?11.0592?2384?4800?65536?12?65524?FFF4H初始化程序如下: ORG ANL
0000H
;屏蔽低4位 TMOD,#10H TH1,#0FFH TL1,#0F4H
;T1定时模式方式1
;写入计数初值,为4800b/s
TMOD,#0F0H ORL
MOV MOV
MOV
;串行口工作于方式1 SCON,#40H
MOV PCON,#80H ;串行通信波特率加倍
(P127) 7-11.简述利用串行口进行多机通信的原理。答:见7.3节的介绍。
7-12.使用AT89S51的串行口按工作方式1进行串行数据通信,假定波特率为2400bit/s,以中断方式传送数据 ,请编写全双工通信程序。答:见7.5.3小节的介绍(P132)。 ,7个数据位,1个偶校验位*7-13.某AT89S51单片机串行口,传送数据的帧格式为1个起始位(0)
和1个停止位(1)组成。当该串行口每分钟传送1800个字符时,试计算出波特率。答:串口每秒钟传送的字符为:1800/60=30个字符/秒,所以波特率为:30个字符/秒×10位/个字符=300bit/s。或波特率=1800×(1+7+1+1)/60=300bit/s
7-14.为什么AT89S51单片机串行口的方式0帧格式没有起始位(0)和停止位(1)? 答:串行口的方式0为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个MCS-51之间的串行通信。该方式以fosc/12的固定波特率从低位到高位发送或接收数据。 。参P141 8-1.单片机存储器的主要功能是存储(程序)和(数据)
。 8-2.假设外部数据存储器2000H单元的内容为80H,执行下列指令后累加器A中的内容为(80H)
MOV P2,#20H MOV R0,#00H MOVX A,@R0
无论是线选法还是译码法,最终都是为了扩展芯片的片选端提供(片选)控制。8-3在存储器扩展中,P143 8-4.起止范围为0000H-3FFFH的存储器的容量是(16)KB。参P157
8-5.在AT89S51单片机中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。
8-6.11根地址线可选(2KB)个存储单元,16KB存储单元需要(14)根地址线。 8-7.4KB RAM存储器的首地址若为0000H,则末地址为( 0FFF)H
8-8.区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是:参P158(C,D) A.看其位于地址范围的低端还是高段B.看其离MCS-51芯片的远近
C.看其芯片的型号是ROM还是RAM D.看其是与RD信号连接还是与PSEN信号连接
8-10.编写程序,将外部数据存储器中的4000H—40FFH单元全部清零。 答:本题主要考察对外部数据块的写操作;编程时只要注意循环次数和MOVX指令的使用就可以了。 ORG 0000H
;送预置数给A MAIN: MOV A,#0
;设置循环次数 MOV R0,#0FFH
LOOP:
MOV MOVX
INC DJNZ
DPTR,#4000H ;设置数据指针的初值
;当前单元清零 @DPTR,A
;指向下一个单元 DPTR
;是否结束 R0,LOOP
·12·
END
*8-11.在AT89S51单片机系统中,外接程序存储器和数据存储器共16位地址线和8位数据线,为何不会发生冲突?参P159答:因为控制信号线的不同:
外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。外扩RAM的读、写控制引脚分别与AT89S51的RD和WR引脚相连。
外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与AT89S51单片机的PSEN相连。
*8-12.请写出 图8-14中4片程序存储器27128各自所占的地址空间。参P153 答:图中采用了译码法。4片地址分别为0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。 *8-13.现有AT89S51单片机、74LS373锁存器、1片2764EPROM和2片6264RAM,请使用他们组成一个单片机系统,要求如下:
(1)画出硬件电路连线图,并标注主要引脚;
(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。 答:(1)电路图如下所示:
(2)2764(C000H~DFFFH)、1#6264(A000H~BFFFH)、2#6264(6000H~7FFFH) 解2:(1)电路图在P158图8-20中去掉IC2即可,(2)2764的地址为C000H-DFFFH; IC3(6264)的地址为C000H-DFFFH;IC4(6264)的地址为A000H-BFFFH。
(1)A组跨接端子的内部正确连线图 8-14.答:
(2)B组跨接端子的内部正确连线图
注意:答案不唯一,还有其他连接方法,也可满足题目要求。
注意:答案不唯一,还有其他连接方法,也可满足题目要求。
9-1.判断下列说法是否正确。
A. 由于8155H不具有地址锁存功能 ,因此在与8031的接口电路中必须加地址锁存器。 B. 在8155H芯片中,决定端口和RAM单元编址的信号线是AD7-AD0和/WR C. 8255A 具有三态缓冲器,因此可以直接挂在系统的数据总线上 D. 8255A的B口可以设置成方式2
答:A错,81C55具有地址锁存功能;
B错,在81C55芯片中,引脚IO/M*、A2、A1、A0决定端口地址和RAM单元编址; C对,82C55具有三态缓冲器;D错,82C55的B口只可以设置成方式0和方式1。
·13·
常指I/O9-2.I/O接口和I/O 端口有什么区别?I/O接口的功能是什么?参P171答:I/O端口简称I/O口,
接口电路中具有端口地址的寄存器或缓冲器。I/O接口是指单片机与外设间的I/O接口芯片;I/O接口功能:(1) 实现和不同外设的速度匹配;(2) 输出数据缓存;(3) 输入数据三态缓冲。一个I/O 接口芯片可以有多个I/O 端口,传送数据的称为数据口,传送命令的称为命令口,传送状态的称为状态口。当然,并不是所有的外设都需要三种接口齐全的I/O接口。
9-3.I/O 数据传送有哪几种方式?分别在哪些场合下使用?参P171答:3种传送方式: (1) 同步传送方式:同步传送又称为有条件传送。当外设速度可与单片机速度相比拟时,常常采用同步传送方式。(2) 查询传送方式:查询传送方式又称为有条件传送,也称异步传送。单片机通过查询得知外设准备好后,再进行数据传送。异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。 (3) 中断传送方式:中断传送方式是利用AT89S51本身的中断功能和I/O接口的中断功能来实现I/O数据的传送。单片机只有在外设准备好后,发出数据传送请求,才中断主程序,而进入与外设进行数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。因此,中断方式可大大提高工作效率。
9-4.常用的I/O端口编址有哪两种方式?他们各有什么特点?MCS—51的I/O端口编址采用的是哪种方式?参P171答:两种。独立编址方式就是I/O地址空间和存储器地址空间分开编址。(1) 独立编址方式:
独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。但却需要设置一套专门的读写I/O的指令和控制信号。(2) 统一编址方式:这种方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作。AT89S51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。
*9-5.82C55的“方式控制字”和“PC按位置位∕复位控制字”都可以写入82C55的同一个控制寄存器,82C55是如何来区分这两个控制字的?答: 82C55通过写入控制字寄存器的控制字的最高位来进行判断,最高位为1时,为方式控制字,最高位为0时,为C口的按位置位/复位控制字。
(已知8255A各端口*9-6.编写程序,采用8255A的C口按位置位/复位控制字,将PC7置0,PC4置1,
的地址为7FFCH-7FFFH)参P175答:本题主要考察对82C55的C口的操作。其方式控制字的最高位为0时,低四位控制对C口置复位。由题目可知方式控制寄存器的地址为7FFFH。
ORG 0100H
MAIN: MOV
DPTR,#7FFFH
MOV A,#0EH MOVX @DPTR,A
;控制字寄存器地址7FFFH送DPTR ;将PC7置0 ;将PC4置1
MOV A,#09H MOVX @DPTR,A
END 9-7.由图9-6说明的PA口在方式一的应答联络输入方式下的工作过程。参P176 答:当外设输入一个数据并送到PA7-PA0上时,输入设备自动在选通输入线STBA向82C55发送一个低电平选通信号,则把PA7-PA0上输入的数据存入PA口的输入数据缓冲/锁存器;然后使输入缓冲器输出线IBFA变成高电平,以通知输入设备,82C55的PA口已收到它送来的输入数据。82C55检测到联络线STBA由低电平变成了高电平、IBFA为1状态和中断允许触发器INTEA为1时,使输出线INTRA(PC3)变成高电平,向A(INTEA的状态可由用户通过对PC4的置位/复位来控制。AT89S51发出中断请求。T89S51响应中断后,可以通过中断服务程序从PA口的输入数据缓冲/锁存器读取外设发来的输入数据。当输入数据被CPU读走以后,82C55撤销INTRA上的中断请求,并使IBFA变为低电平,以通知输入外设可以送下一个输入数据。
9-8.81C55的端口有哪些?哪些引脚决定端口的地址?引脚TIMERIN和TIMEROUT的作用是什么? 答:81C55的端口有以下几种:命令/状态寄存器、PA口、PB口、PC口、计数器的高8位寄存器与低8位寄存器以及RAM单元。引脚IO/M,A2、A1、A0决定端口地址。TIMERIN是计数脉冲输入引脚,输
·14·
入脉冲的上跳沿用于对81C55片内的14位计数器减1。TIMEROUT为计数器输出引脚。当14位计数器减为0时就可以在该引线上输出脉冲或方波,输出的信号的波形与所选的计数器工作方式有关。
*9-9.现有一片AT89S51单片机,扩展了一片82C55,若把82C55的PB口用作输入,PB口每1位接一开关,PA口用作输出,每一位接一个发光二极管,请画出电路原理图,并编写出PB口的某一位开关接高电平时,PA口相应位发光二极管被点亮的程序。答:电路图可以参考图9-10与图9-20,PA口每一位接二极管的正极和串联电阻,二极管的负极接地。PB口每1位接一开关和上拉电阻,开关另一端直接接地。这样只需要将读到的PB口的值送给PA口就可以满足题目要求了。参P174
ORG
0100H
;设置PA口方式0输出,PB口方式0输入 MIAN: MOV A,#10000010B
MOV DPTR,#0FF7FH ;控制口地址送DPTR
;送方式控制字 MOVX @DPTR,A
DPTR,#0FF7DH ;PB口地址送DPTR ;读入开关信息 MOVX A,@DPTR
MOV DPTR,#0FF7CH ;PA口地址送DPTR
;PA口的内容送PB口点亮相应的二极管 下行END MOVX @DPTR,A
9-10.假设81C55的TIMERIN引脚输入的脉冲频率为4MHz,81C55的最大定时时间是多少?
MOV
答:81C55计数器的初值范围是:3FFFH-2H。当频率为4MHz,初值为3FFFH时,最大定时时间为:0.004096s
9-11.假设81C55的TIMERIN引脚输入的脉冲频率为1MHz,81C55的TIMEROUT引脚上输出周期为10ms的方波的程序(假设I/O口地址为7F00H~7F05H)。
答:将1MHz的脉冲改变为10ms的方波,实际上就是分频。分频前后频率之比为100:1,这样只要将定时器初值设置为64H就可以了。(假设I/O口地址为7F00H-7F05H)
START:
MOV MOV INC MOV
DPTR,#7F04H ;指针指向计数器低8位
;送初值给A A,#64H
@DPTR,A ;初值送给计数器低8位
;指向计数器高8位 DPTR A,#40H
@DPTR,A DPTR,#7F00H A,#0C2H @DPTR,A
;计数器方波输出
;指向命令/状态口 ;设定控制字 ;启动计数器
MOVX
MOVX MOV MOV MOVX END
10-1. 判断下列说法是否正确。
( ) A. HD7279与MAX7219都是用于键盘和LED数码管的专用接口芯片。
( ) B. CH451芯片可用来仅作为LED数码管的控制接口电路。
C. 在单片机与微型打印机的接口中,打印机的BUSY信号可作为查询信号或中断请求信号使用。 D. 为给扫描法工作的8×8非编码键盘提供接口电路,在接口电路中需要提供两个8位并行的输入口和一个8位并行的输出口。( ) E. LED数码管的字型码是不变的。( )
答:A.错: MAX7219是专用显示器芯片,不用于键盘;B.错:CH451芯片也可用于控制键盘;
C.对: BUSY信号可作为查询信号或中断请求信号使用,但此时信号ACK不用;
·15·