单片机原理及应用第二版七至十二章答案Word文件下载.docx
《单片机原理及应用第二版七至十二章答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用第二版七至十二章答案Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。
12.答:
见7.5.3小节的介绍
13.答:
串口每秒钟传送的字符为:
1800/60=30个字符/秒
所以波特率为:
30个字符/秒×
10位/个字符=300b/s
14.答:
串行口的方式0为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个MCS-51之间的串行通信。
该方式以fosc/12的固定波特率从低为位到高位发送或接受数据。
15.答:
直接以TTL电平串行传输数据的方式的缺点是传输距离短,抗干扰能力差。
因此在串行传输距离较远时,常采用RS-232C、RS-422A和RS-485标准串行接口。
主要是对传输的电信号不断改进,如RS-232C传输距离只有几十米远,与直接以TTL电平串行传输相比,采用了负逻辑,增大“0”、“1”信号的电平差。
而RS-422A和RS-485都采用了差分信号传输,抗干扰能力强,距离可达1000多米。
RS-422A为全双工,RS-485为半双工。
第8章AT89S51单片机扩展存储器的设计
程序、数据。
80H。
片选。
16KB。
2K,14。
0FFFH。
(D)
本题主要考察对外部存储器的读、写操作,只要记住正确使用MOVX指令就可以了。
编程思路:
首先读取2001H的值,保存在寄存器A中,将寄存器A的高四位和低四位互换,再屏蔽掉低四位然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后将寄存器A的值与30H进行或运算,将运算后的结果保存在2002H中。
ORG0000H
MAIN:
MOVDPTR,#2001H;
设置数据指针的初值
MOVXA,@DPTR;
读取2001H的值
SWAPA
ANLA,#0F0H;
屏蔽掉低四位
MOV30H,A;
保存A
INCDPTR;
指针指向下一个
读取2002H的值
ANLA,#0FH;
屏蔽掉高四位
ORLA,30H;
进行拼装
MOVX@DPTR,A;
保存到2002H
END
本题主要考察对外部数据块的写操作;
编程时只要注意循环次数和MOVX指令的使用就可以了。
MOVA,#0;
送预置数给A
MOVR0,#0FFH;
设置循环次数
MOVDPTR,#4000H;
LOOP:
MOVX@DPTR,A;
当前单元清零
指向下一个单元
DJNZR0,LOOP;
是否结束
因为控制信号线的不同:
外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE*和WE*。
外扩RAM的读、写控制引脚分别与AT89S51的RD*和WR*引脚相连。
外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE*,该引脚与AT89S51单片机的PSEN*相连。
图中采用了译码法。
4片地址分别为0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。
(1)参见图8-20或图8-21,去掉一片2764。
(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。
(1)A组跨接端子的内部正确连线图
(2)B组跨接端子的内部正确连线图
注意:
答案不唯一,还有其他连接方法,也可满足题目要求。
第9章AT89S51扩展I/O接口的设计
(A)错,81C55具有地址锁存功能;
(B)错,在81C55芯片中,引脚IO/M*、A2、A1、A0决定端口地址和RAM单元编址;
(C)错,82C55不具有三态缓冲器;
(D)错,82C55的B口只可以设置成方式0和方式1。
I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。
I/O接口是指单片机与外设间的I/O接口芯片;
I/O接口功能:
(1)实现和不同外设的速度匹配;
(2)输出数据缓存;
(3)输入数据三态缓冲。
3种传送方式:
(1)同步传送方式:
同步传送又称为有条件传送。
当外设速度可与单片机速度相比拟时,常常采用同步传送方式。
(2)查询传送方式:
查询传送方式又称为有条件传送,也称异步传送。
单片机通过查询得知外设准备好后,再进行数据传送。
异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。
(3)中断传送方式:
中断传送方式是利用AT89S51本身的中断功能和I/O接口的中断功能来实现I./O数据的传送。
单片机只有在外设准备好后,发出数据传送请求,才中断主程序,而进入与外设进行数据传送的中断服务程序,进行数据的传送。
中断服务完成后又返回主程序继续执行。
因此,中断方式可大大提高工作效率。
两种。
(1)独立编址方式:
独立编址方式就是I/O地址空间和存储器地址空间分开编址。
独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。
但却需要设置一套专门的读写I/O的指令和控制信号。
(2)统一编址方式:
这种方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。
统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作。
AT89S51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。
82C55通过写入控制字寄存器的控制字的最高位来进行判断,最高位为1时,为方式控制字,最高位为0时,为C口按位置位/复位控制字。
本题主要考察对82C55的C口的操作。
其方式控制字的最高位为0时,低四位控装置对C口置复位。
由题目可知方式控制寄存器的地址为7FFFH。
ORG0100H
MAIN:
MOVDPTR,#7FFFH;
控制字寄存器地址7FFFH送DPTR
MOVA,#0EH;
将PC7置0
MOVX@DPTR,A
MOVA,#09H;
将PC4置1
END
当外设输入一个数据并送到PA7-PA0上时,输入设备自动在选通输入线
A向82C55发送一个低电平选通信号,则把PA7-PA0上输入的数据存入PA口的输入数据缓冲/锁存器;
然后使输入缓冲器输出线IBFA变成高电平,以通知输入设备,82C55的PA口已收到它送来的输入数据。
82C55检测到联络线
A由低电平变成了高电平、IBFA为1状态和中断允许触发器INTEA为1时,使输出线INTRA(PC3)变成高电平,向AT89S51发出中断请求。
(INTEA的状态可由用户通过对PC4的置位/复位来控制。
AT89S51响应中断后,可以通过中断服务程序从PA口的输入数据缓冲/锁存器读取外设发来的输入数据。
当输入数据被CPU读走后,82C55撤销INTRA上的中断请求,并使IBFA变为低电平,以通知输入外设可以送下一个输入数据。
81C55的端口有以下几种:
命令/状态寄存器、PA口、PB口、PC口、计数器的高8位寄存器与低8位寄存器以及RAM单元。
引脚IO/
,A2、A1、A0决定端口地址。
TIMERIN是计数脉冲输入引脚,输入脉冲的上跳沿用于对81C55片内的14位计数器减1。
为计数器输出引脚。
当14位计数器减为0时就可以在该引线上输出脉冲或方波,输出的信号的波形与所选的计数器工作方式有关。
电路图可以参考图9-10,PA口每一位接二极管的正极,二极管的负极接地。
PB口每1位接一开关和上拉电阻,开关另一端直接接地。
这样只需要将读到的PB口的值送给PA口就可以满足题目要求了。
MIAN:
MOVA,#10000010B;
设置PA口方式0输出,PB口方式0输入
MOVDPTR,#0FF7FH;
控制口地址送DPTR
MOVX@DPTR,A;
送方式控制字
MOVDPTR,#0FF7DH;
PB口地址送DPTR
MOVXA,@DPTR;
读入开关信息
MOVDPTR,#0FF7CH;
PA口地址送DPTR
PA口的内容送PB口点亮相应的二极管
81C55计数器的初值范围是:
3FFFH-2H。
当频率为4MHz,初值为3FFFH时,最大定时时间为:
0.004096S
将1MHz的脉冲改变为10ms的方波,实际上就是分频。
分频前后频率之比为100:
1,这样只要将定时器初值设置为64H就可以了。
(假设I/O口地址为7F00H-7F05H)
START:
MOVDPTR,#7F04H;
指针指向计数器低8位
MOVA,#64H;
送初值给A
MOVX@DPTR,A;
初值送给计数器低8位
INCDPTR;
指向计数器高8位
MOVA,#40H;
计数器方波输出
MOVX@DPTE,A
MOVDPTR,#7F00H;
指向命令/状态口
MOVA,#0C2H;
设定控制字
MOVX@DPTE,A;
启动计数器
第10章AT89S51与键盘、显示器、拨盘、打印机的接口设计
1.答:
A.MAX7219是专用显示器芯片,不用于键盘;
B.错:
CH451芯片也可用于控制键盘;
C.对:
BUSY信号可作为查询信号或中断请求信号使用,但此时信号
不用;
E.错:
LED数码管的字型码是可以变的,例如表10-1中的“a”段对应段码字节的最高位。
“dp”段对应段码字节的最低位,字型码就改变了。
2.答:
在按键的闭合和断开过程中,由于开关的机械特性,导致了按键抖动的产生。
如果不消除按键的机械抖动,按键的状态读取将有可能出现错误。
消除按键抖动一般是采用软件或硬件去抖。
软件去抖的原理:
在第一次检测到有键按下时,该键所对应的行线是为低电平,执行一端延时10ms的子程序后,确认该行线电平是否仍然为低电平,如果仍为低电平,则确认为该行确实有键按下。
3.答:
静态显示时,数据是分开送到每一位LED上的。
而动态显示则是数据是同时送到每一个LED上,再根据位选线来确定是哪一位LED被显示。
静态显示亮度很高,但口线占用较多。
动态显示口线占用较少,适合用在显示位数较多的场合。
4.答:
80H(共阴极);
7FH(共阳极)。
5.答:
按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。
行线通过上拉电阻接到+5V上,无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。
列线的电平如果为低,则行线电平为低;
列线的电平如果为高,则行线的电平亦为高。
将行、列线信号配合起来并做适当的处理,才能确定闭合键的位置。
6.答:
先对P1口高四位送低电平,读取P1口低四位的值;
再对P1口低四位送低电平,读取P1口高四位的值,将两次读到的值组合在一起就得到了按键的特征码,在根据特征码查找键值。
KEYIN:
MOVP1,#0FH;
反转读键
MOVA,P1
ANLA,#0FH
MOVB,A
MOVP1,#0F0H
ANLA,#0F0H
ORLA,B
CJNEA,#0FFH,KEYIN1
RET;
未按键
KEYIN1:
MOVB,A;
暂存特征码
MOVDPTR,#KEYCOD;
指向特征码表
MOVR3,#0FFH;
顺序码初始化
KEYIN2:
INCR3
MOVA,R3
MOVCA,@A+DPTR
CJNEA,B,KEYIN3
MOVA,R3;
找到,取顺序码
RET
KEYIN3:
CJNEA,#0FFH,KEYIN2;
未完,再查
已查完,未找到,以未按键处理
KEYCOD:
DB0E7H,0EBH,0EDH,0EEH;
特征码表
DB0D7H,0DBH,0DDH,0DEH
DB0B7H,0BBH,0BDH,0BEH
DB77H,7BH,7DH,7EH
7.答:
(1)编程扫描方式:
当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。
(2)定时扫描工作方式:
单片机对键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。
(3)中断工作方式:
只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。
8.答:
DB0-DB7:
数据线,单向传输,由单片机输入给打印机。
STB(STROBE):
数据选通信号。
在该信号的上升沿,数据线上的8位并行数据被打印机读入机内锁存。
BUSY:
打印机忙状态信号。
当该信号有效(高电平)时,表示打印机正忙于处理数据。
此时,单片机不得使STB信号有效,向打印机送入新的数据。
ACK:
打印机的应答信号。
低电平有效,表明打印机已取走数据线上的数据。
ERR:
出错信号。
当送入打印机的命令格式出错时,打印机立即打印1行出错信息,提示出错。
在打印出错信息之前。
该信号线出现一个负脉冲,脉冲宽度为30us。
单片机与打印机相连时,分为直接相连(图10-27)和通过扩展的并行I/O口82C55连接(图10-28)。
直接相连时(图10-27),打印机在输入电路中有锁存器,在输出电路中有三态门控制,。
没有读、写信号,只有握手线
、BUSY(或
),用一根地址线来控制写选通信号STB和读取BUSY引脚状态。
图10-28所示为通过扩展的并行I/O口82C55连接的打印机接口电路。
采用查询法,即通过读与82C55的PC0脚的相连的BUSY状态,来判断送给打印机的一个字节的数据是否处理完毕。
也可用中断法(BUSY直接与单片机的
引脚相连)。
本程序采用外部中断来进行数据打印,先打印一个数据,当BUSY线从高电平变成低电平时,在打印下一个数据
ORG0000H
LJMPMAIN
ORG0003H
LJMPIN
ORG0030H
SETBEX0;
允许外部中断
SETBIT0
SETBEA
MOVR0,#7FH;
控制口地址
MOVA,#81H;
MOVX@R0,A
MOVR1,#20H;
数据区首地址
MOVR2,#19;
计数器
MOVA,@R1;
打印内容
MOVR0,#7CH;
A口地址
MOVR0,#7FH
MOVA,#0EH
MOVX@RO,A;
PC7=0
MOVA,#0FH
MOVX@R0,A;
PC7=1
SJMP$
IN:
DJNZR2,EX;
20个数据都结束了吗?
INCR1;
指向下一个数据
MOVA,@R1
MOVR0,#7CH
MOVX@RO,A
EX:
RETI
第11章AT89S51单片机与D/A转换器、A/D转换器的接口
由运算放大器构成的I/V转换电路
同步
(1)错,D/A转换器也要考虑“转换速度”或“转换时间”问题,即建立时间(转换时间);
(2)对;
(3)错,是D/A转换器的分辨率;
(4)对。
D/A转换器的主要技术指标如下:
分辨率:
D/A转换器的分辨率指输入的单位数字量变化引起的模拟量输出的变化,是对输入量变化敏感程度的描述。
建立时间:
建立时间是描述D/A转换速度快慢的一个参数,用于表明转换速度。
其值为从输入数字量到输出达到终位误差±
(1/2)GB(最低有效位)时所需的时间。
转换精度:
理想情况下,精度与分辨率基本一致,位数越多精度越高。
严格讲精度与分辨率并不完全一致。
只要位数相同,分辨率则相同.但相同位数的不同转换器精度会有所不同。
当DAC为二进制12位,满量程输出电压为5V时,分辨率为1.22mV
A/D转换器的两个最重要指标:
(1)转换时间和转换速率--转换时间A/D完成一次转换所需要的时间。
转换时间的倒数为转换速率。
(2)分辨率--A/D转换器的分辨率习惯上用输出二进制位数或BCD码位数表示。
量化误差是由于有限位数字且对模拟量进行量化而引起的;
最大的量化误差为0.195%;
目前应用较广泛的主要有以下几种类型:
逐次逼近式转换器、双积分式转换器、∑-△式A/D转换器。
逐次逼近型A/D转换器:
在精度、速度和价格上都适中,是最常用的A/D转换器件。
双积分A/D转换器:
具有精度高、抗干扰性好、价格低廉等优点,但转换速度慢,近年来在单片机应用领域中也得到广泛应用。
∑-△式A/D转换器:
具有积分式与逐次逼近式ADC的双重优点,它对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,它比双积分ADC有较高的转换速度。
与逐次逼近式ADC相比,有较高的信噪比,分辨率高,线性度好,不需要采样保持电路。
对DAC来说,分辨率反映了输出模拟电压的最小变化量。
而对于ADC来说,分辨率表示输出数字量变化一个相邻数码所需输入模拟电压的变化量。
量化误差是由ADC的有限分辨率而引起的误差,但量化误差只适用于ADC,不适用于DAC。
精度与分辨率基本一致,位数越多精度越高。
只要位数相同,分辨率则相同。
但相同位数的不同转换器,精度可能会有所不同,例如由于制造工艺的不同。
9答:
接口电路可参见图11-20。
参考程序如下:
MOVR0,#20H
MOVR1,#00H
MOVR2,#00H
MOVR3,#50
MOVR8,#08H
MOVDPTR,#7FF8H
LOOP1:
MOVX@DPTR,A
MOVR6,#0AH
DELAY:
NOP
NOP
NOP
DJNZR6,DELAY
MOVXA,@DPTR
INCDPTR
MOVR2,DPL
MOVDPH,R0
MOVDPL,R1
MOVX@DPTR,A
MOVR0,DPH
MOVR1,DPL
MOVDPH,#7FH
MOVDPL,R2
DJNZR7,LOOP1
LCALLDELAY1M;
延时1分钟(子程序另外编写)
DJNZR3,LOOP
…………
第12章单片机的串行扩展技术
系统连接简单:
I2C总线系统的基本结构如图12-7。
I2C总线系统直接与具有I2C总线接口的各种扩展器件(如存储器、I/O芯片、A/D、D/A、键盘、显示器、日历/时钟)连接。
I2C总线对各器件寻址采用纯软件的寻址方法,无需片选线的连接,这样就大大简化了总线数量,系统各部件之间的连接只需两条线。
数据传输速率较高:
在标准I2C普通模式下,数据的传输速率为100kbit/s,高速模式下可达400kbit/s。
I2C总线的起始信号和终止信号都由主机发出,在起始信号产生后,总线就处于占用状态;
在终止信号产生后,总线就处于空闲状态。
由图12-9见起始信号和终止信号的规定。
(1)起始信号(S)。
在SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号,只有在起始信号以后,其他命令才有效。
(2)终止信号(P)。
在SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
随着终止信号的出现,所有外部操作都结束。
无论I2C总线上的数据传输方向由寻址字节中的数据传输方向位规定:
寻址字节
器件地址
引脚地址
方向位
DA3
DA2
DA1
DA0
A2
A1
A0
R/
=1,表示主机接收(读)。
=0,表示主机发送(写)。
单片机对I2C总线中的器件寻址采用软件寻址,主机在发送完起始信号后,立即发送寻址字节来寻址被控的从机,寻址字节格式如题3所示。
7位从机地址即为“DA3、DA2、DA1、DA0”和“A2、A1、A0”。
其中“DA3、DA2、DA1、DA0”为器件地址,是外围器件固有的地址编码,器件出厂时就已经给定。
“A2、A1、A0”为引脚地址,由器件引脚A2、A1、A0在电路中接高电平或接地决定(见图12-12)。
I2C总线数据传送时,传送的字节数(数据帧)没有限制,每一字节必须为8位长。
数据传送时,先传送最高位,每一个被传字节后面都须跟1位应答位(一帧数据共9位),如图12-10。
I2C总线在传送每一字节数据后都须有应答信号A,A信号在第9个时钟位上出现,A信号对应的时钟由主机产生。
这时发方须在该时钟位上使SDA线处于高电平,以便收方在这一位上送出低电平的应答信号A。
由于某原因收方不对主机寻