(完整版)单片机原理及应用习题答案(第三版)
第一章习题参考答案
1-1 :何谓单片机?与通用微机相比,两者在结构上有何异同?答:将构成计算机的基本单元电路如微处理器 (CPU) 、存储器、 I/O 接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。
单片机与通用微机相比在结构上的异同:
(1)两者都有 CPU,但通用微机的 CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,
并行处理、多级高速缓冲 (Cache) 技术等。 CPU的主频达到数百兆赫兹 (MHz) ,字长普遍达到 32 位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的 CPU大多不支持浮点运算, CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用 4 位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用 16 位字长单片机, 32 位单片机产品目前应用得还不多。
(2)两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU 对数据的
存取速度。现今微机的内存容量达到了数百兆字节 (MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上, CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为 64 KB 。
(3)两者都有 I/O 接口,但通用微机中 I/O 接口主要考虑标准外设 ( 如 CRT、标准键盘、鼠标、打印机、硬盘、光盘等 ) 。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都是非标准的,且千差万别,种类很多。单片机的I/O 接口实际上是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。
另外,单片机的微处理器 (CPU)、存储器、 I/O 接口电路集成在一块芯片上,而通用微机的微处理器 (CPU)、存储器、 I/O 接口电路一般都是独立的芯片
1-4 IAP 、 ISP 的含义是什么?
ISP: In System Programable ,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的 FLASH上),但用户程序自身不可以对内部存储器做修改。
IAP:In Application Programable ,即在应用编程。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。
1-6 51 单片机与通用微机相比 , 结构上有哪些主要特点 ?
( 1)单片机的程序存储器和数据存储器是严格区分的,前者为ROM,后者为RAM;
(2)采用面向控制的指令系统,位处理能力强;
( 3) I/O 引脚通常是多功能的;
( 4) 产品系列齐全,功能扩展性强;
( 5) 功能是通用的,像一般微处理机那样可广泛地应用在各个方面。
1-7 51 单片机有哪些主要系列产品 ?
( 1) Intel 公司的 MCS-51 系列单片机:功能比较强、价格比较低、较早应用的单片机。此系列三种基本产品是: 8031/8051/8751 ;
(2) ATMEL 公司的 89 系列单片机:内含 Flash存储器,开发过程中可以容易地进行程序修改。有 8 位 Flash 子系列、 ISP_Flash 子系列、 I2C_Flash 子系列;
3)SST公司的 SST89系列单片机:具有独特的超级 Flash 技术和小扇区结构设计,
采用 IAP 和 ISP 技术;
4)PHILIPS 公司的增强型 80C51 系列单片机:其产品类型较完整,包括通用型、 Flash型、OTP 型和低成本型,主要产品系列包括 P80、P87、
P89、LPC76、LPC900
第二章习题参考答案
2-1 51 单片机内部包含哪些主要逻辑功能部件?
(1)一个 8 位微处理器 CPU 。
(2) 256B 数据存储器 RAM 和特殊功能寄存器 SFR。
(3)4K 程序存储器 ROM 。
(4)两个定时 /计数器,用以对外部事件进行计数,也可用作定时器。
(5)四个 8 位可编程的 I/O (输入 /输出)并行端口,每个端口既可做输入,也可做输出。
(6)一个串行端口,用于数据的串行通信
(7)1 个可管理 5个中断源、 2 级优先嵌套的中断管理系统;。
(8)片内振荡器及时钟发生器。
2- 2 MCS-51 引脚中有多少 I/O 总线 ?它们和单片机对外的地址总线和数据总线有什么关系? 地址总线和数据总线各是几位?
32条I/O 口线,分为 4组,每组 8条,称为 P0~P3口,P0口有 8位数据总线和地址总线的低 8 位, P2 口有地址总线的高 8 位,因此单片机的地址总线位是16 位,寻址空间为 64KB ,数据总线位宽为 8位。同时在 P3口还 R/W 控制信号线。 I/O 口线的总数与地址总线和数据总线没有多大联系,只是说地址总线和数据总线需要占用一定的端口。像 AT89C2051 单片机,只有 15条 I/O 口线( P3.6没有引出,作为内部使用),分为 P1口(8 位)和 P3 口(7位),没有所谓的地址总线和数据总线,并且P1口并不完整,因为 P1.0和 P1.1被电压
比较器占用了。
2-3 51单片机的 EA, ALE,PSEN 信号各自功能是什么?
EA :为片外程序存储器选用端 ,该引脚有效(低电平)时,只选用片外程序存储器 ,否则单片机上电或复位后选用片内程序存储器。
ALE :地址锁存有效信号输出在访问片外程序存储器期间 ,ALE 以每机器周期两次进行信号输出 ,其下降沿用于控制锁存 P0 输出的低 8 位地址 ;在不访问片外程序存储器期
间,ALE 端仍以上述频率(振荡频率 f osc的 1/6)出现 ,可作为对外输出的时钟脉冲或用于定时目的 .
PSEN:片外程序存储器读选通信号输出端,低电平有效。
2-4 51 系列单片机有哪些信号需要芯片引脚的第二功能方式提供
P3.0 : RxD 串行口输入端
P3.1 : TxD 串行口输出端
P3.2 : INT0 外部中断 0 请求输入端,低电平有效
P3.3 : INT1 外部中断 1 请求输入端,低电平有效
P3.4 :T0 定时/计数器 0 技术脉冲输入端
P3.5 :T1 定时/计数器 1 技术脉冲输入端
P3.6 : WR 外部数据存数器写选通信信号输出端,低电平有效
P3.7 :RD 外部数据存数器读选通信信号输出端,低电平有效
2-5 51 系列单片机的程序状态字 PSW 中存放什么信息?其中的 OV 标志位在什么情况下被置位?置位是表示什么意思?
?PSW 是一个 8 位标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。?1)做加法时,最高位,次高位之一有进位则OV 被置位
2)做减法时,最高位,次高位之一借位则 OV 被置位
3)执行乘法指令 MUL AB ,积大于 255, OV=1
4)执行除法指令 DIV AB,如果 B中所放除数为 0 ,OV=1
?0V=1 ,置位反映运算结果超出了累加器的数值范围
2-9 片内 RAM 低 128 单元划分为哪几个区域?应用中怎么样合理有效的使用??工作寄存器区,位寻址区,数据缓冲区
①工作寄存器区用于临时寄存 8位信息,分成 4 组,每组有 8个寄存器,每次只用
1 组,其他各组不工作
②位寻址区( 20H~2FH ),这 16 个单元的每一位都赋予了一个位地址,位地址范围为 00H~7FH ,位寻址区的每一位都可能当作软件触发器,由程序直接进行位处理。③由于工作寄存器区,位寻址区,数据缓冲区统一编址,使用同样的指令访问,因此这三个区既有自己独特的功能,又可统一调度使用,前两个已未使用的单元也可作为一般的用户 RAM 单元。
2-10 51 系列单片机的堆栈与通用微机中的堆栈有何异同?在程序设计时,为什么要对堆栈指针 SP 重新赋值?
?堆栈是按先进后出或后进先出的远侧进行读/写的特殊 RAM 区域
51 单片机的堆栈区时不固定的,可设置在内部 RAM 的任意区域内?当数据压入堆栈时, SP 的内容自动加 1,作为本次进栈的指针,然后再存取数据SP的值随着数据的存入而增加,当数据从堆栈弹出之后, SP的值随之减少,复位时, SP 的初值为 07H ,堆栈实际上从 08H 开始堆放信息,即堆栈初始位置位于工作寄存器区域内,所以要重新赋值
2-13 什么是时钟周期,机器周期和指令周期?当振荡频率为 6MHZ 时,一条双周期指令的执行时间是多少?
?时钟周期: 2 个 CPU 振荡脉冲信号的周期机器周期:一个机器周期包含 6 个状态周期指令周期:执行一条指令所占用的全部时间 12MHZ 时,一条双周期指令周期时间为 2us 6MHZ 时,一条双周期指令周期时间为 4us
2-14 定时器 /计数器定时与计数的内部工作有何异同??定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同:处于计数器工作模式时,加法计数器对芯片端子 T0(P3.4) 或 T1(P3.5) 上的输入脉冲计数;处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。
2-15 定时器 /计数器有四种工作方式,它们的定时与计数范围各是多少?使用中怎样选择工
作方式 ?
?工作方式 0:定时范围: 1~8192us ;计数值范围: 1~8192 工作方式 1:定时范
围: 1~65536us ;计数值范围: 1~65536 工作方式 2:定时范围: 1~256us ;计数
值范围: 1~256 工作方式 3:定时范围: 1~256us ;计数值范围: 1~256
?通过 TMOD 来选择,低 4 位用于定时器 /计数器 0,高 4 位用于定时器 /计数器 1
2-16 定时器 /计数器的门控方式与非门控方式有何不同?使用中怎么样选择哪种
工作 方式?初值应设置为多少(十六进制)?
?GATE :门控位,用于控制定时器 /计数器的启动是否受外部中断请求信号的影
响。
GATE=1,则定时器 /计数器 0 的启动受
INT0(P3.2) 控制,定时器 /计数器 动受芯
片引脚 INT1(P3.3) 控制
GATE=0,则定时器 /计数器的启动与引 INT0 、
INT1 无关,一般情况下 GA TE=0 2-18 51 单片机的五个中断源中哪几个中断源在 CPU 响应中断后可自动撤除中断
请求 , 哪几个不能撤除中断请求? CPU 不能撤除中断请求的中断源时, 用户应
采取什么措施? ?可自动撤除:计数器 T0`T1 的溢出中断 不可自动撤除:电平
触发的外部中断;发送接收中断
?1)电平触发的外部中断:由于 CPU 对 INTx 引脚没有控制作用,也没有相应的
中断 请求标志位,因此需要外接电路来撤除中断请求信号。
2)串行口的发送 /接收中断:当串行口发送完或接收完一帧信息时, SCON 的
TI,RI
向 CPU 申请中断,响应中断后,接口电路不能自动将 TI 或 RT 清 0 ,用户需
采用软件 方法将 TI 或 RT 清 0,来撤除中断请求信号
2-21 使单片机复位有几种方式?复位后单片机的初始状态如何? ?上电复位,按
钮复位
?( PC ) =0000H :程序的初始入口地址为 0000H
(PSW ) =00H :由于 RS1(PSW.4)=0,RS0(PSW.3)=0, 复位后单片机选择
工作寄存器 0 组
( SP )=07H:复位后堆栈早起片内 RAM 的08H 单元处建立
TH1 、 TL0 、 TH0 、 TL0: 他们的内容为 00H ,定时器 /计数器的初值为 0
(TMOD )=00H:复位后定时器 /计数器 T0、T1 定时器方式 0,非门控方式
( TCON )=00H:复位后定时器 /计数器 T0、T1 停止工作, 外部中断 0、1 为
电平触发方 式
(T2CON ) =00H :复位后定时器 /计数器 T2 停止工作 (SCON )=00H :复位
后串行口工作在移位寄存器方式,且禁止串行口接收
IE ) =00H: 复位后屏蔽所有中断
M1,M0 :定时器计数器工作方式
选择位
IP) =00H:复位后所有中断源都直指为低优先级
P0~P3:锁存器都是全 1 状态,说明复位后 4 个并行接口设置为输入口
2-23 51 单片机串行口有几种工作方式?这几种工作方式有何不同?各用于什么场
合?
?有 4 种工作方式:方式 0、方式 1、方式 2、方式 3
工作方式:方式 0 移位寄存器方式 ; 方式 1、方式 2、方式 3 都是异步通信方式场合:方式 0不用于通信,而是通过外接移位寄存器芯片实现扩展 I/O 口的功能;方式 1用于双机通信;方式 2、3 主要用于多机通信,也可用于双机通信
第三章参考答案
3- 1 何谓寻址方式? 51 单片机有哪几种寻址方式?这几种方式是如何寻址的?
?所谓寻址方式 ,就是 CPU 执行那个一条指令时怎样找到该指令所要求的操作数的方式。
?1)立即寻址:操作数直接出现在指令中,紧跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器中,可以立即得到并执行,例如: MOV
A , #30H 指令中 30H 就是立即数。这一条指令的功能是执行将立即数 30H 传
送到累加器 A 中的操作。
2)寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如 MOV A,R0,即将 R0寄存器的内容送到累加器 A 中。
3)寄存器间接寻址方式:由指令指出某一寄存器的内容作为操作数地址的寻址方法,例如: MOV A, @R,1 将以工作寄存器 R1中的内容为地址的片内 RAM单元的数据传送到 A 中去。
4)直接寻址:指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为直接寻址。例如: MOV A , 40H 指令中的源操作数就是直接寻址, 40H 为操作数的地址。该指令的功能是把片内 RAM 地址为 40H 单元的内容送到 A 中
5)变址寻址:基地址寄存器加变址寄存器间接寻址
6)相对寻址:相对寻址是以当前程序计数器PC 值加上指令中给出的偏移量rel,而构
成实际操作数地址的寻址方法。它用于访问程序存储器,常出现在相对转移指令中。
7)位寻址:位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM 中的
128 位和特殊功能寄存器 SFR中的 93 位进行寻址。
3- 2 访问片内、片外程序存储器有哪几种寻址方式??采用基址寄存器加变址寄存器间接寻址方式 MOVC A,@A+DPTR MOVC A,@A+PC
3- 3 访问片内 RAM 单元和特殊功能寄存器各有哪几种寻址方式?
?访问片内 RAM 有:立即寻址,寄存器寻址,寄存器间接寻址,直接寻址
? 特殊功能有:直接寻址
3- 4 若要完成以下的数据传送,应如何用51 的指令来完成。
(1)R0 的内容送到 R1 中。
MOV A, R1
MOV R0,A
2)外部 RAM 的 20H 单元内容送 R0,送内部 RAM 的 20H 单元。
MOV DPTR,#0020H
MOVX A,@DPTR
MOV R0,A
3- 5 试比较下列每组两条指令的区别
1) MOV A,#24 与 MOV A,24H
2) MOV A,R0 与 MOV A,@R0
3) MOV A,@R0 与 MOVX A,@R0
4) MOV A,@R1 与 MOVX A,@DPTR
?1)前者为立即寻址,将立即数 24H 单元的内容送到 A 中;后者为直接寻址,
将 24H 单元的片内 RAM 内容送到 A 中。
2)前者为直接寻址,将 R0 单元的内容送到 A 中,后者为寄存器间接寻址,将
R0 中 的内容为地址的片内 RAM 单元的数据送到 A 中。
3)前者为寄存器间接寻址,将 R0 中的内容为地址的片内 RAM 单元的数据送到
A ; 后者为寄存器间接寻址,将 R0 中的内容为地址的片外 RAM 单元的数据送
到 A 中。
4)用 R1 做地址指针可寻址片内 RAM 的 256 个单元, 但能访问 SFR 块,也
可 8 位地 址访问片外 RAM 的低 256个地址单元 ( 00~ffH );用 DPTR 做地
址指针, 用于访问片外
RAM 的 64KB 范围(0000~ffffH) (16 位)。 B )= 02H ,( R0)= 30H ,( 30H )= A5H ,( A 和 PSW 的内容。
3- 7 已知( A )=02H ,(R1)=7FH ,( DPTR ) =2FFCH ,( SP ) =30H ,
片内 RAM (7FH )=70H ,片外 RAM (2FFEH )=11H ,ROM (2FFEH )=64H ,试分别 写出
以下指令执行后目标单元的结果。 1) MOVX @DPTR,A
2) MOVX A,@R1
3) MOVC A,@A+DPTR
4) PUSH ACC ?1)(2FFEH)=02H
2)(A)=70H
3-6已知( A )= 7AH ,( 写出以下各条指令执行后 PSW) =80H , 1)XCH A , R0 (A) =30H,(PSW)=00H, 2)XCH A , 30H (A ) =A5H,(PSW)=00H
3)XCH A , @R0 (A )=A5H,(PSW)=00H
4)XCHD A , @R0 (A)=75H,(PSW)=01H
5)SWAP A (A ) =A7H,(PSW)=01H
6)ADD A , R0 ( A ) =AAH,(PSW)=00H
7)ADD A , 30H ( A) =1FH,(PSW)=81H
8)ADD A , #30H (A )=AAH,(PSW)=00H
9)ADDC A , 30H (A)=20H,(PSW)=01H
10)SUBB
A , 30H (A)=D5H,(PSW)=85H 11) SUB
B A
, #30H ( A ) =4AH,(PSW)=01H 12)INC @R0 (A )=7AH,(PSW)=80H ;
13)MUL AB
R0)= 7AH ,
14)DIV AB
3)(A )=(02H+2FFCH )=(2FFEH )=64H
4)(31H )=02H
3- 9 DA A 指令有什么作用?怎样使用? 这条指令是进行 BCD 码运算时,跟在 ADD
或 ADDC 指令之后,将相加后存放在 累加器中的结果进行修正。
修正的条件和方法为:
若( A0~3)>9 或(AC )=1,则( A0 ~ 3) +06H →( A0 ~3); 若
( A4~7)>9 或(CY )=1,则( A4 ~ 7) +06H →( A4 ~7)。 若以上二条同
时发生,或高 4 位虽等于 9 ,但低 4 位修正后有进位,则应加 66H 修正。
3- 9 设( A )=83H ,(R0)=17H ,(17H )=34H ,分析当执行下面的每条指令后目标
单元 的内容,及 4 条指令组成的程序段执行后 A 的内容是什么?
ANL A,#17H
;与 ORL 17H,A
;或 XRL A,@R0
;异或 CPL A
;取反 ANL A,#17H 10000011 与 00010111 = 0000 0011
ORL 17H,A 00110100 或 00000011 0011 0111
XRL
A,@R0 00110111异或 0000 0011 = 0011 0100 CPL A ~A 1100 1000 CBH
3-10 请写出达到下列要求的逻辑操作的指令,要求不得改变未涉
及位的内容 1)使累加器 A 的低位置‘ 1'
2)清累加器 A 的高 4 位
3)使 A.2 和 A.3 置‘ 1'
4)清除 A.3、A.4 、 A.5 、A.6
SETB ACC.1;
ANL A,#0FH;
ORL A,#00001100B
ANL A,#10000111B
3-11 指令 LJIMP addr16 与 AJMP addr11 的区别是什么?
LJIMP addr16 是长转移, LCALL 的作用就是将 addr16 直接赋给 PC
AJMP addr11,在当前 PC 的 2KB 范围跳转(因为 addr11就是 2KB ), 即 PC
高 五位不变,低十一位等于 addr11。
3-12 试说明指令 CJNE @R1, #7AH , 10H 的作用。若本条指令地址为 2500H ,其
转移地址是多少?
当前地址 2500H 。执行该指令后 PC 为 2503H ,加上 10H 后,目标地址是
2513H 。
3-13 下面执行后( SP )=42H, (A ) = 40H, (B ) =40H , 并解释每条指令的作
用。
;起始地址为 2000H ;(SP )=40H ;(A )=30H ;调用 2500H 子程序 ;(A )<—( A )+10,(A )=40H ;(B )=40H
ORG 2000H
MOV SP,#40H
MOV A,#30H
LCALL 2500H
ADD A,#10H
MOV B,A
HERE:SJMP HERE
ORG 2500H ;起始地址为 2500H
MOV DPTR,#2009H ;( DPTR ) =2009H
PUSH DPL ;( SP ) =40H+1=41H
PUSH DPH ; (SP )=41H+1=42H
RET ; 返回
3-14已知 P1.7= 1, A.0= 0, C= 1, FIRST=1000H , SECOND=1020H ,试写出下
列 指令的执行结果。
(1)MOV 26H , C 1
(2)CPL A.0 1
(3)CLR P1.7 0
(4) ORL C , /P1.7 1
(5) FIRST : JC SECOND
(6) FIRST : JNB A.0 , SECOND
7)SECOND : JBC P1.7, FIRST 3-15 经汇编后,下列各条语句标号将是什么值?
ORG 2000H
TABLE : DS 5
DB 15, 20, 25, 30 (2005H )=15 , BEGIN : MOV A , R0 3-16 设 fosc=12MHZ, 定时器 /计数器 0 的初始化程序和中
断服务程序如下: MOV TH0,#0DH
MOV TL0,#0D0H
MOV TMOD,#01H
SETB TR0 ;中断服务程序
ORG 000BH
MOV TH0,#0DH
MOV TL0,#0D0H
RETI 问: 1)该定时器 /计数器工作于什么方式 ?
2)相应的定时时间或计数值是多少?
3)为什么在中断服务程序中药重置定时器 /计数器的初值?
?1)方式 1
2)定时时间为: fosc=12MHZ Tcy=1us T=N*Tcy
=(65536-x )*Tcy 定时范围: 1~65536
计数值为: N=216 -x=65536-x 计数范围为: 1~65536
3)定时器 T0 的溢出对外无脉冲信号,重置定时器 /计数器的初值可以再形成计
数 脉冲
WORD :
FANG : EQU 1000H FANG=1000H
3-18 设有 100 个有符号数,连续存放在以 2000H 为首地址的存储区中,试编程统计其中正数、负数、零的个数。
ZERO EQU 20H ; 零的统计 NEGETIVE EQU 21H ; 负数的统计 POSITIVE EQU
22H ; 正数的统计 COUNT EQU 100 ; 比较个数
ORG 0000H
LJMP MAIN
ORG 0040H
MOV ZERO,#0
MOV NEGETIVE,#0
MOV POSITIVE,#0
MOV R2,#0
MOV DPTR,# 2000H
LOOP: MOVX A,@DPTR
CJNE A,#0,NONZERO
INC ZERO
AJMP NEXT
NONZERO: JC NEG
INC POSITIVE
AJMP NEXT
NEG: INC NEGETIVE
NEXT: INC DPTR
INC R2
CJNE R2,#COUNT,LOOP
SJMP $
3-20 51单片机从串行口发送缓冲区首址为 30H的 10个ASCII 码字符,最高位用于奇偶校验,采用偶校验方式,要求发送的波特率为2400 波特,时钟频率?
osc=12MHz ,试编
写串行口发送子程序。
单片机采用 12 MHz 晶振;设串行口工作于方式 1;定时器 /计数器 T1用作波特率发生器,工作于方式 2; PCON 中的 SMOD 位为 1;发送的波特率要求为 2400。
定时器 /计数器 T1 初值计算:
根据公式波特率 =2SMOD×溢出率 /32 有溢出率 =2400×16=38 400 溢出周期 =1/溢出率 =26 μs (此为定时器 /计数器的定时值)定时器初
值 =256-26=230=E6H
根据要求确定定时器 /计数器的 TMOD 中的方式控制字为 20H ,串行口SCON 中的控制字为 40H, PCON 控制字为 80H。则相应的发送程序如下:
TSTART : MOV TMOD ,#20H ;置定时器 /计数器 T1工作于方式 2 定时
MOV MOV MOV MOV MOV MOV PCON, #80H
TL1 ,
#0E6H
TH1, #E6H
SCON,#40H
R0,#30H
R7#10
;定时器 /计数器 T1 置初值
;定时器 /计数器 T1 置重装数
;置串行口工作于方式 1
;R0 作地址指针,指向数据块首址
; R7 作循环计数器,置以发送 =
字节数
SETB TR1 ;启动定时器 /计数器 T1
LOOP : MOV A , @R0 ;取待发送的一个字节
MOV C,P ;取奇偶标志,奇为 1,偶为 0
MOV A.7,C ;给发送的 ASCII 码最高位加偶校验位
MOV SBUF,A ;启动串行口发送
WAIT :JNB TI , WAIT ;等待发送完毕
CLR TI ;清 TI 标志,为下一个字节发送
作准备
INC R0 ;指向数据块下一个待发送字节的
地址
DJINZ R7,LOOP ;循环发送,直到数据块发送完毕
第四章参考答案
4-1 何谓单片机的最小系统?★所谓最小系统,是指一个真正可用的单片机最小配置系统。对于片内带有程序存储器的单片机,只要在芯片上对外接时钟电路和复位电路就能达到真正可用,就是最小系统。
对于片外不带有程序存储器的单片机,除了在芯片上外接时钟电路和复位电路外,还需外接程序存储器,才能构成一个最小系统。
4-5 什么是完全译码?什么是部分译码?各有什么特点?
★所谓部分译码,就是存储器芯片的地址线与单片机系统的地址线顺序相接后,剩余的高位地址线仅用一部分参加译码。
特点:部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。★所谓全译码,就是存储器芯片的地址线与单片机系统的地址线顺序相接后,剩余的高位地址线全部参加译码。★特点:存储器芯片的地址空间是唯一确定的,但译码电路相对复杂。
4-7 存储器芯片地址引脚数与容量有什么关系?
★ 地址线的数目由芯片的容量决定,容量(Q)与地址线数目( N)满足关系式: Q=2N
4-10 采用 2764( 8K*8 )芯片扩展程序存储器,分配的地址范围为4000H~7FFFH 。采用
完全译码方式,试确定所用芯片数目,分配地址范围,画出地址译码关系图,设计译码电路,画出与单片机的连接图。
★7FFFH-4000H+1=4000H=16KB 因为 2764 为 8K*8 所以需要 2 片芯片
第一片地址为范围为: 4000H~5FFFH
第二片地址为范围为: 6000H~7FFFH 译码关系图:
第六章参考答案
6-9 何谓静态显示?何谓动态显示?两种显示方式各有什么优缺点?
★静态显示: LED 工作在静态显示方式下,共阴极接地或共阳极接 +5V ;每一位的段选线
( a~g, dp)与一个 8 位并行 I/O 口相连。
优点:显示器每一位可以独立显示,每一位由一个 8 位输出口控制段选码,故在同一个时刻各位可以独立显示不同的字符。
缺点: N 位静态显示器要求有 N×8 根 I/o 口线,占用 I/o 口线较多,故在位数较多时往往采用动态显示。
★ 动态显示: LED 动态显示是将所有位的段选线并接在一个 I/o 口上,共阴极端或共阳极端分别由相应的 I/o 口线控制。
优点:节约用线缺点:每一位段选线都接在一个 I/o 口上,因此每送一个段选码, 8 位就显示同一个字符,这种显示器是不能用的。解决这个问题利用人眼的视觉停留,从段选线 I/o 口上按位分别送显示字符的段选码,在位控制口也按相应的次序分别选通相应的显示位(共阴极送低电平,共阳极送高电平),选通位就显示相应字符,并保持几毫秒的延时,未选通位不显示字符(保持熄灭)。
6-14 设计一个内置 HD44780驱动控制器的字符型 LCM与 51 单片机的接口电路,并编写在字符型液晶显示模块显示“ HELLO”字符的程序。
6-15 ADC0809的 8 路输入通道是如何选择的?试举例说明。
★
6-22 单片机控制大功率对象时,为什么要采用隔离器进行接口?★由于继电器由吸合到断开的瞬间会产生一定的干扰,当吸合电流较大时,在单片机与继电器之间需要增加隔离电路。
常用的光耦器件的型号: 4N25 , 4N26~4N28,
TLP528,TLP124,TLP126,4N33,H11G1,H11GZ,H11G3
6-23 单片机与继电器线圈接口时,应注意什么问题?采取什么措施解决这些问题?★继电器由吸合到断开的瞬间会产生一定的干扰,因而使用于吸合电流很小的微型继电器
★当吸合电流比较大时,在单片机与继电器之间需要增加隔离电路。
第七章习题参考答案
7-1 一般单片机应用系统由哪几部分组成?由硬件系统和软件系统两部分组成的。硬件系统是指单片机及扩展的存储器、外围设备及其接口电路等;软件系统包括监控程序和各种程序。
7-2 模拟量采集的前向通道包括哪些组成部分?有什么特点?一般包括变换器、隔离放大器、滤波器、采样保持器、多路电子开关、 A/D 转换器及其接口电路。
特点:
( 1)与现场采集对象相连,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点部位;
( 2)采集对象多样,存在大量的、形式多样的信号变换调节电路;
( 3)是一个模拟、数字混合电路系统,电路功耗小,一般没有功率驱动要求。
7-3 后向通道有什么特点?
( 1)是输出通道,大多数需要功率驱动;
( 2)靠近伺服驱动现场,故后向通道的隔离对系统的可靠性影响很大;
( 3)输出控制要求不同,后向通道电路多种多样。
7-5 单片机应用系统设计包括哪些主要内容?
( 1)单片机系统设计,包括最小系统设计和系统扩展设计;
( 2)通道与接口设计;
( 3)系统抗干扰设计;
( 4)应用软件设计。
7-14 硬件调试的基本步骤是什么?先静态调试,第一步为目测,第二步为万用表测试,第三步为加电检查,第四步是联机检查;然后动态调试,一般是由近及远、由分到合。
7-15 软件调试中可用哪些程序运行方式?它们分别在何种场合下运用?单步运行:需要了解每条指令的执行情况时,或用于精确定位某一段程序范围内的错误所在;
断点运行:用于将故障定位在程序的一个小范围内连续运行:需要调试实时性操作(如中断等)。为准确地对错误进行定位,可使用连续加断点方式调试。