1、 第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器 (CPU)、存储器、 I/O 接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有 CPU,但通用微机的 CPU 主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的 CPU 都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲 (Cache)技术等。 CPU 的主频达到数百兆赫 兹 (MHz),字长普遍达到32 位。单片机主要面向控制,控制中的数
2、据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的 CPU 大多不支持浮点运算, CPU 还采用串行工作方式,其振荡频率大多在百兆赫兹范围内 ;在一些简单应用系统中采用 4 位字长的 CPU,在中、小规模应用场合广泛采用 8 位字长单片机,在一些复杂的中、大规模的应用系统中才采用 16 位字长单片机, 32 位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要 针对增大存储容量和 CPU 对数据的存取速度。现今微机的内存容量达到了数百兆字节 (MB),存储体系采用多体、并读技术和段、
3、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上, CPU 对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为 64 KB。 (3) 两者都有 I/O 接口,但通用微机中 I/O 接口主要考虑标准外设 (如 CRT、标准键盘、鼠标、打印机、硬盘、光盘等 )。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都是非标准的,且千差万别,种类很多 。单片机的 I/O 接口实际上是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。 另外,单片机的微处理器 (CPU)、存储器、 I/O
4、 接口电路集成在一块芯片上,而通用微机的微处理器 (CPU)、存储器、 I/O 接口电路一般都是独立的芯片 1-4 IAP、 ISP 的 含义是什么? ISP: In System Programable,即 在系统编程 。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的 FLASH 上),但用户程序自身不可以对内部存储器做修改。 IAP:In Application Programable,即 在应用编程 。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。 1-6 51 单片机与通用微机相比 ,结构上有哪些主要特点 ? ( 1)单片机的程序存储器
5、和数据存储器是 严格区分的 ,前者为 ROM,后者为 RAM; ( 2)采用面向控制的指令系统, 位处理能力 强; ( 3) I/O 引脚 通常是 多功能 的 ; ( 4) 产品系列齐全,功能扩展性强; ( 5) 功能是通用的,像一般微处理机那样可广泛地应用在各个方面。 1-7 51 单片机有哪些 主要系列产品 ? ( 1) Intel 公司的 MCS-51 系列单片机:功能比较强、价格比较低、较早应用的单片机。此系列三种基本产品是: 8031/8051/8751; ( 2) ATMEL 公司的 89 系列单片机:内含 Flash 存储器,开发过程中可以容易地进行程序修改。有 8 位 Flas
6、h 子系列、 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
7、。 ( 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、总线 和 地址总线 的低 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,
9、 ALE,PSEN 信号 各自 功能是什么? EA:为片外程序存储器选用端 ,该引脚有效 (低电平 )时 ,只选用片外程序存储器 ,否则单片机上电或复位后选用片内程序存储器。 ALE:地址 锁存 有效信号输出在访问片外程序存储器期间 ,ALE 以每机器周期两次进行信号输出 ,其下降沿用于控制锁存 P0 输出的低 8 位地址 ;在不访问片外程序存储器期间 ,ALE 端仍以上述频率 (振荡频率 fosc的 1/6)出现 ,可作为对外输出的时钟脉冲或用于定时目的 . PSEN:片外程序存储器读选通信号输出端,低电平有效。 2-4 51 系列单片机有哪些信号需要芯片引脚的第二功能方式提供 ? P3.0
10、 : 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 位标志寄存器,它保存指
11、令执行结果的特征信息,以供程序查询和判别。 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 组, 其他各组不工作 位寻址区( 20H2FH)
12、,这 16 个单元的每一位都赋予了一个位地址,位地址范围为00H7FH,位寻址区的每一位都可能当作软件触发器,由程序直接进行位处理。 由于工作 寄存器区,位寻址区,数据缓冲区统一编址,使用同样的指令访问,因此这三个 区既有自己独特的功能,又可统一调度使用,前两个已未使用的单元也可作为一般的用户RAM 单元。 2-10 51 系列单片机的堆栈与通用微机中的堆栈有何异同?在程序设计时,为什么要对堆栈指针 SP 重新赋值? 堆栈是按先进后出或后进先出的远侧进行读 /写的特殊 RAM 区域 51 单片机的堆栈区时不固定的,可设置在内部 RAM 的任意区域内 当数据压入堆栈时, SP 的内容自动加 1,
13、作为本次进栈的指针,然后再存取数据 SP 的值随着数据的存入而增加,当数据 从堆栈弹出之后, SP 的值随之减少,复位时, SP 的初值为07H,堆栈实际上从 08H 开始堆放信息,即堆栈初始位置位于工作寄存器区域内,所以要重新赋值 2-13 什么是时钟周期,机器周期和指令周期?当 振荡频率为 6MHZ 时,一条双周期指令的执行时间是多少? 时钟周期: 2 个 CPU 振荡 脉冲信号的 周期 机器周期:一个机器周期包含 6 个状态周期 指令周期:执行一条指令所占用的全部时间 12MHZ 时,一条双周期指令周期时间为 2us 6MHZ 时,一条双周期指令周期时间为 4us 2-14 定时器 /计
14、数器定时 与计数的内部工作有何异同? 定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同: 处于计数器工作模式时,加法计数器对芯片端子 T0(P3.4)或 T1(P3.5)上的输入脉冲计数; 处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。 2-15 定时器 /计数器有四种工作方式,它们的定时与计数范围各是多少?使用中怎样选择工作方式 ? 工作方式 0:定时范围: 18192us;计数值范围: 18192 工作方式 1:定时范围: 165536us;计数值范围: 165536 工作方式 2:定时 范围: 1256us;计数值范围: 1256 工作方式 3:定时范围: 1
15、256us;计数值范围: 1256 通过 TMOD 来选择,低 4 位用于定时器 /计数器 0,高 4 位用于定时器 /计数器 1 M1,M0:定时器计数器工作方式选择位 2-16 定时器 /计数器的门控方式与非门控方式有何不同?使用中怎么样选择哪种工作方式?初值应设置为多少(十六进制)? GATE:门控位,用于控制定时器 /计数器的启动是否受外部中断请求信号的影响。 GATE=1,则定时器 /计数器 0 的启动受芯片引脚 INT0(P3.2)控制 ,定时器 /计数器 1 的启动受芯片引脚 INT1(P3.3)控制 GATE=0,则定时器 /计数器的启动与引脚 INT0、 INT1 无关,一般
16、情况下 GATE=0 2-18 51 单片机的五个中断源中哪几个中断源在 CPU 响应中断后可自动撤除中断请求 ,哪几个不能撤除中断请求? CPU 不能撤除中断请求的中断源时,用户应采取什么措施? 可 自动 撤除:计数器 T0T1 的溢出中断 不可 自动 撤除: 电平 触发的外部中断;发送接收中断 1) 电平 触发的外部中断:由于 CPU 对 INTx 引脚没有控制作用,也没有相应的中断请求标志位,因此需要外接 电路来撤除中断请求信号。 2)串行口的发送 /接收中断:当串行口发送完或接收完一帧信息时, SCON 的 TI,RI向 CPU 申请中断,响应中断后,接口 电路 不能自动将 TI 或
17、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,非门控方式
18、 ( TCON) =00H:复位后定时器 /计数器 T0、 T1 停止工作,外部中断 0、 1 为电平触发方式 (T2CON) =00H:复位后定时器 /计数器 T2 停止工作 ( SCON) =00H:复位后串行口工作在移位寄存器方式,且禁止串行口接收 ( IE) =00H:复位后屏蔽所有中断 ( IP) =00H:复位后所有 中断源都直指为低优先级 P0P3:锁存器都是全 1 状态,说明复位后 4 个并行接口设置为输入口 2-23 51 单片机串行口有几种工作方式?这几种工作方式有何不同?各用于什么场合? 有 4 种工作方式:方式 0、方式 1、方式 2、方式 3 工作方式:方式 0 移位
19、寄存器方式 ;方式 1、方式 2、方式 3 都是异步通信方式 场合:方式 0 不用于通信,而是通过外接移位寄存器芯片实现扩展 I/O 口的功能;方式1 用于双机通信;方式 2、 3 主要用于多机通信,也可用于双机通信 第三章参考答案 3-1 何谓寻址方式? 51 单片机有哪几种 寻址方式?这几种方式是如何寻址的? 所谓寻址方式 ,就是 CPU 执行那个一条指令时怎样找到该指令所要求的操作数的方式。 1)立即寻址:操作数直接出现在指令中,紧跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器中,可以立即得到并执行,例如: MOV A, #30H 指令中 30H 就是立即数。这一条指令的
20、功能是执行将立即数 30H 传送到累加器 A 中的操作。 2)寄存器寻址: 操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如 MOV A, R0,即将 R0寄存器的内容送到累加器 A 中。 3)寄存器间接 寻址方式 : 由指令指出某一寄存器的内容作为操作数地址的寻址方法,例如: MOV A, R1, 将以工作寄存器 R1中的内容为地址的片内 RAM 单元的数据传送到 A中去。 4)直接寻址: 指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为 直接寻址。例如: MOV A, 40H 指令中的源操作数就是直接寻址, 40H 为操作数的地址。该指令的功能是把片
21、内 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 单元和特殊功能寄存器各
22、有哪几种寻址方式? 访问片内 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
23、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
24、 位地址访问片外 RAM 的低 256 个地址单元( 00ffH);用 DPTR 做地址指针,用于访问片外RAM 的 64KB 范围 (0000ffffH)( 16 位) 。 3-6 已知 ( A) = 7AH,( B) = 02H,( R0) = 30H,( 30H) = A5H,( PSW) =80H,写出以下各条指令执行后 A 和 PSW 的内容。 ( 1) XCH A, R0 ( A) =30H,(PSW)=00H, ( R0) = 7AH, ( 2) XCH A, 30H ( A) =A5H,(PSW)=00H ( 3) XCH A, R0 ( A) =A5H,(PSW)=00H (
25、 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) SUBB A, #30H ( A) =4AH,(PSW)=01H ( 12) INC R
26、0 ( A) =7AH,(PSW)=80H; ( 13) MUL AB ( 14) DIV AB 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)( A) =( 02H+2FFCH) =( 2FFEH) =64
27、H 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,分析当执行下面的每条指令后目标单元的内容
28、,及 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
29、的高 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, #7A
30、H, 10H 的作用。若本条指令地址为 2500H,其转移地址是多少? 当前地址 2500H。执行该指令后 PC 为 2503H,加上 10H 后,目标地址是 2513H。 3-13 下面执行后( SP) =42H, (A) = 40H, (B) =40H ,并解释每条指令的作用。 ORG 2000H ;起始地址为 2000H MOV SP,#40H ;( SP) =40H MOV A,#30H ;( A) =30H LCALL 2500H ; 调用 2500H 子程序 ADD A,#10H ;( A) ( A) +10,( A) =40H MOV B,A ;( B) =40H HERE:SJ
31、MP 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: JN
32、B A.0, SECOND ( 7) SECOND: JBC P1.7, FIRST 3-15 经汇编后,下列各条语句标号将是什么值? ORG 2000H TABLE: DS 5 WORD: DB 15, 20, 25, 30 (2005H)=15, FANG: EQU 1000H FANG=1000H 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 M
33、OV TL0,#0D0H : RETI 问 : 1) 该定时器 /计数器工作于什么方式 ? 2)相应的定时时间或计数值是多少? 3)为什么在中断服务程序中药重置定时器 /计数器的初值? 1)方式 1 2)定时时间为: fosc=12MHZ Tcy=1us T=N*Tcy =(65536-x)*Tcy 定时范围: 165536 计数值为 : N=216 -x=65536-x 计数范围为: 165536 3) 定时器 T0 的溢出对外无脉冲信号,重置定时器 /计数器的初值可以再形成计数脉冲 3-18 设有 100 个有符号数,连续存放在以 2000H 为首地址的存储区中,试编程统计其中正数、负数、
34、零的个数。 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 NEG
35、ETIVE 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 有 溢
36、出率 =2400 16=38 400 溢出周期 =1/溢出率 =26 s (此为定时器 /计数器的定时值 ) 定时器初值 =256-26=230=E6H 根据要求确定定时器 /计数器的 TMOD 中的方式控制字为 20H,串行口 SCON中的控制字为 40H, PCON 控制字为 80H。则相应的发送程序如下: TSTART: MOV TMOD, #20H ;置定时器 /计数器 T1 工作于方 式 2 定时 MOV PCON, #80H MOV TL1, #0E6H ;定时器 /计数器 T1 置初值 MOV TH1, #E6H ;定时器 /计数器 T1 置重装数 MOV SCON, #40H
37、;置串行口工作于方式 1 MOV R0, #30H ; R0 作地址指针,指向数据块首址 MOV R7, #10 ; 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,
38、LOOP ;循环发送,直到数据块发送完毕 第四章 参考答案 4-1 何谓单片机的最小系统? 所谓最小系统,是指一个真正可用的单片机最小配置系统。 对于片内带有程序存储器的单片机,只要在芯片上对外接时钟电路和复位电路就能达到真正可用,就是最小系统。 对于片外不带有程序存储器的单片机,除了在芯片上外接时钟电路和复位电路外,还需外接程序存储器,才能 构成一个最小系统。 4-5 什么是完全译码?什么是部分译码?各有什么特点? 所谓部分译码,就是存储器芯片的地址线与单片机系统的地址线顺序相接后,剩余的高位地址线仅用一部分参加译码。 特点:部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。
39、所谓全译码,就是存储器芯片的地址线与单片机系统的地址线顺序相接后,剩余的高位地址线全部参加译码。 特点:存储器芯片的地址空间是唯一确定的,但译码电路相对复杂。 4-7 存储器芯片地址引脚数与容量有什么关系? 地址线的数目由芯片的容量决定,容量 ( Q)与地址线数目( N)满足关系式: Q=2N 4-10 采用 2764( 8K*8)芯片扩展程序存储器,分配的地址范围为 4000H7FFFH。采用完全译码方式,试确定所用芯片数目,分配地址范围,画出地址译码关系图,设计译码电路,画出与单片机的连接图。 7FFFH-4000H+1=4000H=16KB 因为 2764 为 8K*8 所以需要 2 片芯片 第一片地址为范围为: 4000H5FFFH 第二片地址为范围为: 6000H7FFFH 译码关系图: p2.7 P2.6 P2.5 P2.4 p2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 1 0 * * * * * * * * * * * * * 0 1 1 * * * * * * * * * * * * * 第六章 参考答案