《单片机应用技术》(张文灼)课后习题解答

更新时间:2024-01-12 22:07:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《单片机应用技术》

张文灼 主编

机械工业出版社

1

思考与练习参考答案

第1章

1. 单片机的含义是什么?其有哪些主要特点? 答:(1)单片机是指将CPU、存储器、定时/计数器、I/O接口电路和必要的外设集成在一块芯片上的微型计算机,其构成一个既小巧又很完善的计算机硬件系统,实现微机的基本功能,早期称其为单片微型计算机SCM,简称单片机。(2)体积小巧、可靠性高、控制功能强、易于扩展、低电压、低功耗、性能价格比优异。

2. 简述单片机发展的历史和其主要技术发展方向。 答:发展历史如下: (1)低性能8位单片机阶段 约1976~1978年,以Intel公司的MCS-48系列单片机为代表。 (2)高性能8位单片机阶段 约1978~1982年,1978年Motorola公司推出M6800系列单片机,Zilog公司推出Z8系列单片机。1980年Intel公司推出了高性能的MCS-51系列单片机,并成为此时期的代表机型。

(3)8位单片机提高及16位单片机推出阶段 约1982~1990年,8位机以MCS-51系列单片机为代表,同时16位单片机也有很大发展,如Intel公司的MCS-96系列单片机。

(4)单片机全面发展阶段 约1990~至今,目前单片机正朝着多品种、高速、强运算能力、大寻址范围以及小型廉价方向发展。

发展趋势:(1)低功耗CMOS化、(2)低噪声与高可靠性、(3)存储器大容量化、(4)高性能化、(5)外围电路内装化、(6)增强I/O及扩展功能。

3. 了解单片机常用的系列、品种,AT89C51系列单片机的主要特征是什么? 略。

4. 简述单片机程序存储器和数据存储器的区别与类别。 答:

(1)区别:程序存储器用来存放单片机的应用程序及运行中的常数数据,数据存储器用于暂存运行期间的数据、现场采集的原始数据、中间结果、运算结果、缓冲和标志位等临时数据。

(2)程序存储器类别:1)掩膜ROM、2)可编程只读存储器PROM、3)紫外线擦除可编程只读存储器EPROM、4)电擦除可编程E2PROM、5)快闪存储器

(3)数据存储器类别:RAM按器件制造工艺不同分为两类,分别为双极型RAM和MOS型RAM。MOS随机存储器按信息存储的方式又分为静态RAM和动态RAM两种

5. 简述单片机应用系统开发的基本方法。 答:(1)在线仿真开发

首先利用仿真机提供给用户的系统软硬件进行设计调试(称仿真),然后试运行,若满足设计要求,则程序设计完成,不满足则继续在仿真机中修改;程序调试好后,取下仿真机,将程序固化到用户系统的单片机程序存储器并将单片机插入用户插座,开发结束。一般的仿真器自带程序固化功能,也可使用单独的编程器固化。

(2)离线仿真开发

对于接口电路较多的系统,又无实时在线开发设备,可先设计好硬件电路做好印制板或搭接好线路,在PC机的仿真软件中设计好程序,利用一个简易编程器即可将程序固化到单片机芯片,然后将单片机直接插入硬件电路中试运行,如有问题,拔下单片机重新固化修改后的程序,如此反复,直至成功。

(3)ISP开发

对于可在系统编程的单片机(如AT89S系列),可利用其串口对内部的程序存储器进行编程,不需要编程器。单片机可以直接焊接到电路板上,同PC机连机后,通过ISP程序可将用户事先编好的程序直接写入片内程序存储器中,然后运行调试,有问题然后在PC机上修改程序重新下载,调

2

试结束即为成品。

6. 将下列二进制和十六进制数转换为十进制数。

(1)11011B (2)0.01B (3)10111011B (4)EBH 答:(1)27 (2)0.25 (3)187 (4)235

7. 将下列十进制数转换为二进制和十六进制数。 (1)255 (2)127 (3)0.90625 (4)5.1875 答:(1)11111111B、FFH (2)01111111B、7FH (3)0.11101B、0.E8H (4)101.0011B、5.3H 8. 机器数、真值、原码、反码和补码如何表示? 答:

(1)在计算机中使用的连同符号位一起数字化的数,称为机器数,机器数所表示的真实值则称为真值。

(2)对有符号数,机器数常用的表示方法有原码、反码、补码三种。1)原码最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小;2)反码规定正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。3)正数的补码与其原码相同;负数的补码是在其反码的末位加1。

9. 设计器字长为8位,求下列数值的二、十六进制原码、反码和补码。 (1)+0 (2)-0 (3)+33 (4)-33 (5)-127 答:

(1)[+0]原= [+0]反=[+0]补=00000000 B=00H (2)

[-0]原= 00000000 B [-0]反= 11111111 B [-0]补= 00000000 B

(3)[+33]原= [+33]反=[+33]补=00100001 B=21H (4)

[-33]原= 10100001 B=A1H [-33]反= 11011110 B=DEH [-33]补= 11011111 B=DEH (5)

[-127]原= 11111111 B=FFH [-127]反= 10000000 B=80H [-127]补= 10000001 B=81H

10. 把下列数看成无符号数时,对应的十进制数为多少?若把其看成有符号数的补码,对应的十进制数是多少?

(1)10100001 B (2)10000000B 答:看做无符号数时:(1)161(2)128;看做有符号数时:(1)-33(2)-127

11. 若要访问片外32KB的存储空间,假设每个存储单元是一个字节,计算需要多少根地址线。 答:15根。

第2章

1. MCS-51型单片机由哪些单元组成?各自的功能是什么? 答:

3

(1)8位的CPU CPU是89C51单片机的核心,完成运算和控制功能,一次能处理8位二进制数或代码;

(2)256B的内部RAM 内部RAM能作为寄存器供用户使用的只是前128个单元,用于存放可读写的临时数据,其中后128个单元被专用寄存器占用;

(3)4KB的内部Flash ROM 简称内部ROM,存放程序、原始数据或表格数据;

(4)2个16位的定时/计数器T0/T1 89C51共有2个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制;

(5)4个8位并行I/O口 分别为P0、P1、P2、P3,实现数据的并行输入输出; (6)1个全双工的串行口 实现单片机和其他设备之间的串行数据传送;

(7)5个中断源 包括2个外部中断,2个定时/计数中断,1个串行口发送/接收中断; (8)片内时钟振荡电路 89C51芯片允许的晶振频率一般为1~24MHz。 2. MCS-51型单片机控制线有几根?每一根控制线的作用是什么? 答:控制线有4条,功能如下:

(1)ALE/PROG 地址锁存控制信号。在系统扩展时,ALE输出的信号用于控制把P0口输出的低8位地址锁存器锁存起来,配合P0口引脚的第二功能使用,以实现低位地址和数据的隔离。正常操作时因能按晶振频率1/6的固定频率,从ALE端发出正脉冲信号,所以有时可以加以利用,但应注意,每次访问外部数据存储器时,会少输出一个ALE脉冲。此引脚第二功能PROG是对片内程序存储器固化程序时,作为编程脉冲输入端。

(2)PSEN 外部程序存储器读选通信号。在读外部程序存储器时PSEN有效,发出低电平,可以用作对外部程序存储器的读操作选通信号。

(3)EA/Vpp 访问程序存储控制信号。当EA信号为低电平时(EA=0),CPU只执行外部程序存储器指令;而当EA信号为高电平时(EA=1),则CPU优先从内部程序存储器执行指令,并可自动延至外部程序存储器单元。对于E2PROM型单片机(89C51)或EPROM型单片机(8751),在E2PROM或EPROM编程期间,第二功能Vpp引脚用于施加一个+12V或+21V电源。

(4)RST/Vpd RST是复位信号输入端,当RST端输入的复位信号延续2个机器周期以上高电平,单片机完成复位初始化操作;第二功能Vpd是备用电源引入端,当电源发生故障电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。

3. 何为单片机最小应用系统?

答:单片机最小应用系统是指能使单片机独立工作运行的尽可能少的电路连接。 4. 时钟电路的作用是什么?

答:时钟电路用于产生单片机工作所需要的时钟信号,唯一的时钟信号控制下的时序可以保证单片机各部件的同步工作。

5. 简述89C51的4个并行I/O端口的功能。 答:

89C51的并行I/O口为单片机与外部器件或设备进行信息交换提供了多功能的输入/输出通道,是单片机扩展外部功能、构成单片机应用系统的重要物理基础。

4个I/O口都具有字节寻址和位寻址功能,每一位均可作为双向的通用I/O功能使用,具体如下: (1)P0口为双功能8位并行I/O口。可作通用数据I/O端口使用;在访问片外扩展的存储器时,又可作地址/数据总线分时传输低8位地址和8位数据。

(2)P1口为单一功能的并行I/O口,只用作通用的数据I/O端口。

(3)P2口为双功能8位并行I/O口。可作通用数据I/O端口使用,又可在访问片外扩展的存储器时用作高8位地址总线。

4

(4)P3口为双功能8位并行I/O口,第一功能是通用数据I/O端口,还有第二功能。 6. P3口的第二功能是什么? 答:

引脚 P3.0 P3.1 P3.2 P3.3 名称 RXD TXD 功能注释 串行数据接收 串行数据发送 引脚 P3.4 P3.5 名称 T0 T1 功能注释 定时/计数器0外部输入 定时/计数器1外部输入 外部RAM写选通 外部RAM读选通 INT0 外部中断0申请 P3.6 INT1 外部中断1申请 P3.7 WR RD 7. 对于任务3,编写程序实现监视开关K1,如果开关K1合上,L1灭,开关K1打开,L1亮。 答:

ORG 0000H

START:JB P3.0,L1

SETB P1.0 SJMP START L1:CLR P1.0

SJMP START END

8. MCS-51型单片机片内RAM的组成是如何划分的,各有什么功能? 略,见课本2.6.2。

9. MCS89C51 单片机有多少个特殊功能寄存器?其分布在何地址范围? 略,见课本2.6.2。

10. DPTR是什么寄存器?其作用是什么?其是由哪几个寄存器组成?

答:DPTR主要是用来保存16位地址,编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器(DPH、DPL)分开使用。

11. 简述程序状态寄存器PSW各位的含义。单片机如何确定和改变当前的工作寄存器区? 略,见课本2.6.2。

12. 什么是堆栈?堆栈指示器SP的作用是什么?在堆栈中存取数据时的原则是什么? 答:

(1)堆栈是一个特殊的存储区,设在内部RAM中,用来暂存数据和地址,按“先进后出”的原则存取数据。堆栈有入栈和出栈两种操作,用SP作为堆栈指针。

(2)系统复位后SP的内容为07H,使得堆栈实际上从08H单元开始。如果需要改变,用户可以通过指令在00H-7FH中任意选择。但08H~1FH单元分别属于工作寄存器1~3区,如程序中要用到这些区,则最好把SP值改为1FH或更大的值,堆栈最好在内部RAM的30H~7FH单元中开辟。SP的内容一经确定,堆栈的底部位置即确定,由于SP可用指令初始化为不同值,因此堆栈底部位置是不确定的,栈顶最大可为7FH单元。

13. MCS-51型单片机ROM空间中,0003H~002BH有什么用途?用户应怎样合理安排?

答:0003H~002AH,共40个单元,这40个单元被均匀地分为五段,作为五个中断源的中断地址区。程序存储器特殊功能存储单元如下表所示。

地址 0000H 0003H~000AH 000BH~0012H 0013H~001AH 001BH~0022H

功能 程序执行起始地址 外部中断0中断服务程序地址起止区 定时/计数器0中断服务程序地址起止区 外部中断1中断服务程序地址起止区 定时/计数器1中断服务程序地址起止区 5

0023H~002AH 串行口发送/接收中断服务程序地址起止区 14. P0~P3口作为输入口时,有何要求? 答:4个端口都称为“准双向口”,不是真正的双向口,必须将位锁存器置“1”后,才可以读入正确信息。

15. 画出MCS-51型单片机时钟电路,并指出石英晶体和电容的取值范围。 答:一般电容C1和C2取30pF左右,晶体振荡频率范围是1.2MHz~24MHz。

a)内部时钟 b)外部时钟

16. 什么是机器周期?机器周期和时钟频率有何关系?当时钟频率为6 MHz时,机器周期是多少时间?

答:单片机晶振芯片每秒振荡的次数称为时钟频率,振荡一次所需时间称为振荡周期。12个振荡周期是一个机器周期。时钟频率为6 MHz时,机器周期是2μs。

17. MCS-51型单片机常用的复位方法有几种?画出电路图。

答:单片机常见的复位电路包括上电复位电路和按键复位电路。如下图所示。

VCCVCCVCC22uFVCC22uFRESETMCS-51RESETMCS-51R1RESET2001K1KVSSR2VSS a)上电复位电路 b)按键复位电路

第3章

1. MCS-51单片机的指令有哪些寻址方式? 答:(1)立即寻址 (2)直接寻址 (3)寄存器寻址 (4)寄存器间接寻址 (5)基址+变址间接寻址 (6)相对寻址(7)位寻址

2. 分析下面指令中源操作数的寻址方式。

(1)MOV A, #0FH (2)MOV A,00H (3)MOV A,R1 (4)MOV A,@R1 (5)MOVC A, @A+DPTR (6)JC 80H (7)MOV C,20H (8)MOVX A,@R1 答:

(1)MOV A, #0FH 立即寻址

6

(2)MOV A, 00H 直接寻址 (3)MOV A,R1 寄存器寻址 (4)MOV A,@R1 寄存器间接寻址 (5)MOVC A, @A+DPTR 基址+变址间接寻址 (6)JC 80H 相对寻址 (7)MOV C,20H 位寻址 (8)MOVX A,@R1 寄存器间接寻址 3. MCS-51单片机指令系统按功能分哪为几类? 答:

(1)数据传送指令 (2)数据交换指令 (3)算术运算类指令 (4)逻辑运算类指令 (5)控制转移类指令 (6)位操作指令

4. 在“MOVC A,@A+DPTR”和“MOVC A,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同?

答:

使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。

5. 用指令实现以下数据传送过程。 (1)R1的内容送R0

(2)片内RAM20H单元的内容送R1

(3)片外RAM20H单元的内容送片内20H单元

(4)片外RAM1000H单元的内容送片内RAM20H单元 (5)程序存储器2000H单元的内容送R0

(6)程序存储器2000H单元的内容送片内RAM20H单元 (7)程序存储器2000H单元的内容送片外RAM20H单元 答:

(1)R1的内容送R0

MOV A,R1 MOV R0,A

(2)片内RAM20H单元的内容送R1

MOV R1,20H

(3)片外RAM20H单元的内容送片内20H单元

MOV R0,#20H MOV P0,#0H MOVX A,@R0 MOV 20H,A

(4)片外RAM1000H单元的内容送片内RAM20H单元 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A

7

(5)程序存储器2000H单元的内容送R0。 MOV A,#0H

MOV DPTR,#2000H MOVC A,@A+DPTR

MOV R0,A

(6)程序存储器2000H单元的内容送片内RAM20H单元。 MOV A,#0H

MOV DPTR,#2000H MOVC A,@A+DPTR

MOV 20H,A

(7)程序存储器2000H单元的内容送片外RAM20H单元。 MOV A,#0H

MOV DPTR,#2000H MOVC A,@A+DPTR MOV DPTR,#20H MOVX @DPTR,A

6. 用直接地址寻址方式、寄存器间接寻址方式、字节交换法和堆栈传递法等4种方法将内部RAM30H与31H单元的数据交换。

答:

1. MOV A,30H MOV 30H,31H MOV 31H,A 2. MOV R0,#30H MOV A,@R0 MOV R1,A

MOV R0,#31H MOV A,@R0 MOV R0,#30H MOV @R0,A MOV R0,#31H MOV A,R1 MOV @R0,A

3. MOV A,30H

XCH A,31H MOV 30H,A

4. PUSH 30H PUSH 31H POP 30H POP 31H

7. 片内RAM 20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?

答:

虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。

8

位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。 MOV C,bit MOV bit,C CLR bit SETB bit CPL bit ANL C,bit ANL C,/bit JB bit,rel JNB bit,rel

8. 编写一段程序,将片内RAM30H单元的内容与片外RAM30H单元的数据交换。 答:

MOV DPTR,#30H MOVX A,@DPTR MOV R1,A MOV A,30H MOVX @DPTR,A MOV 30H,R1

9. 设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?

PUSH 30H PUSH 31H POP DPL POP DPH

MOV 30H, #00H MOV 31H, #0FFH 答: 结果为:(61H)=24H (62H)=10H (30H)=00H (31H)=0FFH (DPTR)=2410H (SP)=60H 10. 说明无条件转移指令AJMP、SJMP、LJMP和JMP的功能和应用场合。 答:

AJMP为2KB地址范围内的的转移指令;

SJMP为相对转移指令,本指令首地址加上偏移量加上2为跳转到的位置;

LJMP为64KB程序存储空间的全范围转移指令,转移的地址可为16位地址中的任意值; JMP 间接转移指令。

11. 设内部RAM(30H)=#5AH,(5AH)=#40H,(40H)=#00H,(P1)=#7FH,问连续执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?

MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,R1 MOV @R1,P1 MOV A,P1 MOV 40H,#20H MOV 30H,40H

9

答:

MOV R0,#30H ;R0=30H MOV A,@R0 ;A=5AH MOV R1,A ;R1=5AH MOV B,R1 ;B=5AH MOV @R1,P1 ;(5AH)=7FH MOV A,P1 ;A=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H

12. 编制一程序,查找内部RAM20~2FH单元中是否有数据0AAH。若有,则将30H单元置为01H,否则将30H单元清0。

答:

ORG 0000H START: MOV R0,#20H MOV R2,#10H MOV 30H,#00H AGN: MOV A,@R0 SUBB A,#0AAH JZ K

DJNZ R2,AGN JMP K1

K: MOV 30H,#01H K1: JMP $ END

13. 片内RAM40H开始的单元内有10个二进制数,编程找出其中最大值并存于50H单元中. 答:

START:MOV R0,#40H ;数据块首地址送R0 MOV R7,#09H ;比较次数送R7 MOV A,@R0 ;取数送A LOOP:INC R0

MOV 30H,@R0 ;取数送30H

CJNE A,30H,NEHT ;(A)与(30H)相比 NEXT:JNC BIE1 (A)≥(30H)转BIR1 MOV A,30H ;(A)<(30H),大数送A

BIE1:DJNZ R7,LOOP ;比较次数减1,不为0,继续比较

MOV 50H,A ;比较结束,大数送50H RET

14. 编制一个循环闪烁灯的程序,画出电路图。在P0口接有8个发光二极管,要求每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。

答:

D0 Q0 5V 10

P1.0 89C51 P1.7 74LS240 D7 Q7

本程序的硬件连接如图所示。当P1.0输出高电平时,LED灯亮,否则不亮。其程序如下: MOV A,#01H ;灯亮初值

SHIFT:LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环

FLASH:MOV R2,#0AH ;闪烁10次计数 FLASH1:MOV P1,A ;点亮 LCALL DELAY ;延时 MOV P1,#00H ;熄灭 LCALL DELAY ;延时 DJNZ R2,FLASH1 ;循环

RET

15. 编程实现如下操作,不得改变未涉及到的位的内容。 (1)使累加器A的最高位置“1” (2)对累加器A高4位取反 (3)清除A.3、A.4、A.5 (4)使A.4、A.5、A.2置“1” 答:(1)SETB ACC.7 (2)XRL A, #0F0H

(3)ANL A, 11000111B (4)ORL A, 00110100B 16. 单项选择题,从四个备选项中选择正确的选择。

(1)89C51汇编语言指令格式中,唯一不可缺少的部分是 。 A.标号 B.操作码 C.操作数 D.注释 (2)89C51的立即寻址方式中,立即数前面 。

A.应加前缀“/:”号 B.不加前缀号 C.应加前缀“@”号 D.应加前缀“#”号 (3)下列完成89C51单片机内部数据传送的指令是 。 A.MOVX A,@DPTR B.MOVC A, @A+PC C.MOV A,#data D.MOV dir,dir

(4)89C51的立即寻址的指令中,立即数就是 。

A.放在寄存器R0中的内容 B.放在程序中的常数 C.放在A中的内容 D.放在B中的内容

(5)单片机中PUSH和POP指令常用来 。

A.保护断点 B.保护现场 C.保护现场,恢复现场 D.保护断点,恢复断点 (6)89C51寻址方式中,操作数Ri加前缀“@”号的寻址方式是 。

A.寄存器间接寻址 B.寄存器寻址 C.基址加变址寻址 D.立即寻址 (7)执行指令MOVX A,@DPTR时,A.C.

、脚的电平为 。

高电平 低电平

高电平,高电平,

高电平 B.低电平 D.

低电平,低电平,

11

(8)下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是 。 A.JNB P1.0,LP B.JB P1.0,LP C.JC P1.0,LP D.JNZ P1.0,LP (9)下列指令中比较转移指令是指 。

A.DJNZ Rn,rel B.CJNE Rn,#data,rel C.DJNZ dir,rel D.JBC bit,rel

(10)指令MOV R0, 20H执行前(R0)=30H,(20H)=38H,执行后(R0)= 。 A.20H B.30H C.50H D.38H (11)执行如下三条指令后,30H单元的内容是 。 MOV R1,#30H MOV 40H,#0EH MOV @R1,40H

A.40H B.0EH C.30H D.FFH

(12)89C51单片机在执行MOVX A,@DPTR或MOVC A,@A+DPTR指令时,其寻址单元的地址是由 。

A.P0口送高8位,P1口送高8位 B.P0口送低8位,P2口送高8位 C.P0口送低8位,P1口送低8位 D.P0口送高8位,P1口送低8位 (13)在89C51指令中,下列指令中 是无条件转移指令。

A.LCALL addr16 B.DJNZ dir,rel C.SJMP rel D.ACALL addr11

(14)设A=AFH (20H)=81H,指令:ADDC A, 20H执行后的结果是 。 A.A=81H B.A=30H C.A=AFH D.A=20H

(15)将内部数据存储单元的内容传送到累加器A中的指令是 。

A.MOVX A,@R0 B.MOV A, #data C.MOV A,@R0 D.MOVX A, @DPTR (16)下列指令执行时,修改PC中内容的指令是 。

A.SJMP B.LJMP C.MOVC A,@ A+PC D.LCALL

(17)已知:A=D2H,(40H)=77H,执行指令:ORL A,40H后,其结果是: 。 A.A=77H B.A=F7H C.A=D2H D.以上都不对

(18)指令MUL AB 执行前(A)=18H ,(B)=05H,执行后,A、B的内容是 。 A.90H,05H B.90H,00H C.78H,05H D.78H,00H (19)89C51指令系统中,清0指令是 。

A.CPL A B.RLC A C.CLR A D.RRC A

(20)89C51指令系统中,指令ADDC A,@R0 执行前(A)=38H,(R0)=30H,(30H)=FOH,(C)=1 执行后,其结果为 。

A.(A)=28H (C)=1 B.(A)=29H (C)=1 C.(A)=68H (C)=0 D.(A)=29H (C)=0

(21)下列指令能能使累加器A低4位不变,高4位置F的是 。

A.ANL A,#OFH B.ANL A,#OFOH C.ORL A,#OFH D.ORL A,#OF0H (22)下列指令判断若P1口的最低位为低电平就转LP,否则就执行下一句的是 。 A.JNB P1.0,LP B.JB P1.0,LP C.JC P1.0,LP D.JNZ P1.0,LP (23)89C51指令系统中,指令DA A应跟在 。 A.加法指令后 B.BCD码的加法指令后 C.减法指令后 D.BCD码的减法指令后

(24)执行下列程序后,累加器A的内容为 。

ODG 0000H MOV A,#00H ADD A,#02H

12

MOV DPDR,#0050H MOVC A,@A+DPDR MOV @R0,A SJMP $ ORG 0050H

BAO:DB 00H,08H,0BH,06H,09H,0CH

END

A.00H B.0BH C.06H D.0CH

(25)指令MOV R0,#20H执行前(R0)=30H,(20H)=38H,执行后(R0)= 。 A.00H B.20H C.30H D.38H 答: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 B D A B C B C C B D C A A B B B B D C B C A C B B

第4章

1. 何为伪指令?其作用是什么?

答:伪指令不属于指令集之中的指令,但具有和指令类似的形式,其作用是对汇编过程进行某种控制或提供某些汇编信息,不产生可执行的目标代码。

2. 89C51常用的汇编语言伪指令有哪些? 各自的作用是什么? 答:见课本4.1.2。

3. 程序设计的几种基本结构是什么?

答:任何汇编语言源程序都可由顺序结构、分支结构、循环结构及子程序结构组成。 4. 汇编语言程序设计分哪几个步骤?每个步骤的主要任务是什么? 答:

(1)题意分析 熟悉并了解汇编语言指令的基本格式和主要特点,明确被控对象对软件的要求,设计出算法等。

(2)画出程序流程图 程序流程图也称为程序框图,是根据控制流程设计的,其可以使程序清晰,结构合理,按照基本结构编写程序,便于调试。编写较复杂的程序,画出程序流程图是十分必要的。

(3)分配内存工作区及有关端口地址 分配内存工作区,根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。

(4)编制汇编源程序。

(5)仿真调试程序并不断修正。

5. 编写汇编语言程序实现功能:利用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。

答:

ORG 0100H ABC:SETB P1.0

SETB P1.7 JB PI.7,$ JNB P1.7,$

13

CLR P1.0 MOV R2,#0

DAY: NOP

NOP

DJNZ R2,DAY SJMP ABC

6. 设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。(以上均为低位字节,高位在高字节)。

答: ORG 0000H LJMP START ORG 0030H START:MOV A,22H ADD A,32H DA A MOV 42H,A MOV A,23H ADDC A,33H DA A MOV 43H,A SJMP $ END

7. 编程计算片内RAM区30H~37H的8个单元中数的算术平均值,结果存在3AH单元中。 答:

ORG 0000H

LJMP MAIN ORG 0030H MAIN: MOV R0,#30H MOV R1,#00H MOV R2,#00H MOV R3,#07H LP2:MOV A,@R0 ADD A,R2 MOV R2,A JNC LP1 INC R1 LP1: INC R0 DJNZ R3,LP2 MOV R3,#03H LP3: CLR C MOV A,R1 RRC A MOV R1,A MOV A,R2

14

RRC A MOV R2,A DJNZ R3,LP3 MOV 3AH,R2 SJMP $ END

8. 试编写程序实现:利用89C51的P1口控制8个发光LED,相邻的4个LED为一组,使2组每隔0.5s交替发亮一次,周尔复始。

答:

ORG 0100H MOV A,#0FH

ABC: MOV P1,A ACALL D05 SWAP A SJMP ABC D05:MOV R6,250 DY: MOV R7,250 DAY:NOP NOP

DJNZ R6,DAY DJNZ R7,DAY RET

END

9. 编写子程序START,实现将片内RAM 30H单元开始的15个的数据传送到片外RAM3000H开始的单元中去。

解:

STRAT:MOV R0,#30H MOV R7,#0FH

MOV DPTR,#3000H LOOP: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET

第5章

1. 什么是中断?单片机采用中断有什么好处? 答:

在单片机中,当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,这一过程称为中断。

单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,由于资源有限,因

15

此就可能出现资源竞争的局面,即几项任务来争夺一个CPU。而中断技术就是解决资源竞争的有效方法,采用中断技术可以使多项任务共享一个资源。

2. T0用做定时器,以方式0工作,定时10ms,单片机晶振频率为6MHZ,请计算定时初值。 答:

根据公式 T=12×(213-a)/fosc 得a=213- foscT/12=213-5000=3192

3. 单项选择题,从四个备选项中选择正确的选择。

(1)89C51单片机的定时器T1用作定时方式时是 。 A.由内部时钟频率定时,一个时钟周期加1 B.由内部时钟频率定时,一个机器周期加 1 C.由外部时钟频率定时,一个时钟周期加1 D.由外部时钟频率定时,一个机器周期加1

(2)89C51单片机的定时器T0用作计数方式时是 。 A.由内部时钟频率定时,一个时钟周期加1 B.由内部时钟频率定时,一个机器周期加1 C.由外部计数脉冲计数,下降沿加1

D.由外部计数脉冲计数,一个机器周期加1

(3)89C51单片机的定时器T1用作计数方式时计数脉冲是 。

A.外部计数脉冲由T1(P3.5)输入 B.外部计数脉冲由内部时钟频率提供 C.外部计数脉冲由T0(P3.4)输入 D.由外部计数脉冲计数

(4)89C51单片机的机器周期为2μs,则其晶振频率fosc为 MHz. A.1 B. 2 C.6 D.12 (5)用89C51的定时器T1作定时方式,用模式1,则初始化编程为 。

A.MOV TOMD,#01H B.MOV TOMD,#50H C.MOV TOMD,#10H D.MOV TCON,#02H

(6)用89C51的定时器,若用软启动,应使TOMD中的 。

A.GATE位置1 B.C/T位置 1 C.GATE位置0 D.C/T位置0 (7)启动定时器1开始定时的指令是 。

A.CLR TR0 B.CLR TR 1 C.SETB TR0 D.SETB TR1 (8)使89C51的定时器T0停止计数的指令是 。

A.CLR TR0 B.CLR TR 1 C.SETB TR0 D.SETB TR1 (9)下列指令判断若定时器T0计满数就转LP的是 。

A.JB T0,LP B.JNB TF0,LP C.JNB TR0, LP D.JB TF0,LP (10)下列指令判断若定时器T0未计满数就原地等待的是 。 A.JB T0,$ B.JNB TF0,$ C.JNB TR0,$ D.JB TF0,$

(11)当CPU响应定时器T1的中断请求后,程序计数器PC的内容是 。 A.0003H B.000BH C.00013H D.001BH

(12)当CPU响应外部中断0的中断请求后,程序计数器PC的内容是 。 A.0003H B.000BH C.00013H D.001BH

(13)89C51单片机在同一级别里除串行口外,级别最低的中断源是 。 A.外部中断1 B.定时器T 0 C.定时器T1 D.串行口 (14)当外部中断0发出中断请求后,中断响应的条件是 。

A.SETB ET0 B.SETB EX 0 C.MOV IE,#81H D.MOV IE,#61H (15)当定时器T0发出中断请求后,中断响应的条件是 。

16

A.SETB ET0 B.SETB EX 0 C.MOV IE,#82H D.MOV IE,#61H (16)用定时器T1方式1计数,要求每计满10次产生溢出标志,则TH1、TL1的初始值是 。 A.FFH、F6H B.F6H、F6H C.F0H 、F0H D.FFH、F0H

(17)89C51单片机的TMOD用于控制T1和T0的操作模式及工作方式,其中C/T表示的是 。

A.门控位 B.操作模式控制位 C.功能选择位 D.启动位

(18)89C51单片机定时器T1的溢出标志TF1,若计满数产生溢出时,如不用中断方式而用查询方式,则应 。

A.由硬件清零 B.由软件清零 C.由软件置于 D.可不处理

(19)89C51当串行口接收或发送完一帧数据时,将SCON中的 ,向CPU申请中断。 A.RI或TI置1 B.RI或TI置 0 C.RI置1或TI置0 D.RI置0或TI置1 (20)执行中断处理程序最后一句指令RETI后, 。

A.程序返回到ACALL的下一句 B.程序返回到LCALL的下一句

C.程序返回到主程序开始处 D.程序返回到响应中断时一句的下一句 答:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 B C A C C C D A D B D A C B A A C B A D

第6章

1. 串行通信有几种基本通信方式?有什么区别?

答:按照串行数据传输中的时钟控制方式,串行通信可分为同步通信和异步通信两类。

(1)在异步通信中,数据通常是以字符为单位组成字符帧(Character Frame)传送的。字符帧由发送端逐帧发送,每一帧数据低位在前,高位在后,通过传输线被接收端逐帧接收。发送端和接收端由各自独立的时钟控制数据的发送和接收,两个时钟彼此独立,不必同步。

(2)同步通信是一种连续串行传送数据的通信方式,一次通信只传输一帧信息。同步通信信息帧和异步通信的字符帧不同,通常有若干个数据字符,由同步字符、数据字符和校验字符CRC三部分组成。同步字符可采用统一的标准格式,也可由用户约定。

2. 什么是串行通信的波特率?

答:波特率也称比特数,是每秒钟传送二进制数码的位数,表示数据传输的速度,波特率越高,数据传输速度越快。

3. 串行通信有哪几种传输方式?各有什么特点?

答:在串行通信中按照数据传送方向,串行通信可分为单工、半双工和全双工三种数据传输方式。

(1)单工 通信系统的A端只有发送器,B端只有接收器,信息数据只能单方向传送而不能反传。

(2)半双工 通信系统的每个通信设备都由一个发送器和一个接收器组成。在这种制式下,数据能从A站传送到B站,也可以从B站传送到A站,但是不能同时在两个方向上传送,即只能一端发送,一端接收。其收发开关一般是由软件控制的电子开关。

(3)全双工 通信系统的每端都有发送器和接收器,可以同时发送和接收,即数据可以在两个方向上同时传送。

4. 简述89C51串行口控制寄存器SCON各位的定义。 答:略。

5. 编写一个子程序,将累加器A中的一个字符从串行接口发送出去。

17

答:

SOUT:MOV SCON,#40H ;设置串行接口为工作方式 MOV TMOD,#20H ;定时器T1工作于模式2 MOV TL1,#0E8H; ;设置波特率为1200b/s MOV TH1,#0E8H SETB TR1 MOV SBUF,A JNB T1,$ CLB T1 RET

6. 编写一个子程序,从串行接口接收一个字符。 答:

START:MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0E8H ;设置波特率为1 200b/s MOV TL1,#0E8H

SETB TR1 ;启动T1

MOV SCON,#50H ;串行接口工作于方式1,充许接收

L1:JNB RI,L1 ;等待接收数据,末接收到数据,继续等待 CLR RI ;接收到数据,清RI MOV A,SBUF ;接收到数据送A RET

7. 某异步通信接口,其帧格式为10位,当接口每秒传送1800个字符时,计算其传送波特率。 答:10×1800=18000bps=18000波特率

8. 说明如何利用89C51串行口方式0,将串行口扩展为并行口。 答:

(1)方式0用于扩展并行输出口电路如下图所示,其中74LS164为串入并出移位寄存器。

RXD输出数据12TXD89C51D7D6…D0移位脉冲3SASBCLK34561011121374LS164

(2)利用两片74LS165扩展2个8位并行输入端口。扩展电路如下图所示。

P3.0/RXD D0 Q H S/L … D7 D0 … D7 74LS165 CLK Q H 74LS165 S/L CLK 89C51 P3.1/TXD P1.0 9. 请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设定为

方式2,采用偶校验方式。设晶振频率为6MHz。

解:查询方式发送程序如下

18

MOV SCON,#8OH M OV PCON,#80H MOV R0,#50H MOV R7,#16H LOOP: MOV A,@R0 MOV C,P MOV TB8,C MOV SBUF,A JNB T1,$ CLR T1 INC R0

DJNZ R7,LOOP RET

第7章

1. 简述89C51的三总线结构。

答:89C51单片机的三总线结构,即地址总线(AB)、数据总线(DB)和控制总线(CB)。

2. 单片机扩展片外存储器时,为何要加地址锁存电路,作用是什么?

答:单片机扩展片外存储器时,地址线是由P0和P2口提供的,但P0口同时分时用作数据线,因此当CPU访问外部存储单元时,先从P0口输出低8位地址,从P2口输出高8位地址,选择对应单元,然后利用P0口进行读写,所以应通过锁存器将P0口首先输出的低8位地址锁存保持住,才不致导致P0口使用上的冲突。

3. 对于错误!未找到引用源。所示的扩展16KB EPROM芯片27128的硬件实例,假设无关位为为1,请确定其地址范围。

答:假设无关位为为1,则其地址范围为C000H~FFFFH。

4. 假设89C51未扩展片外部ROM,而片外RAM扩展了一片6116,试编程将其片内ROM从0100H单元开始的10个单元的内容依次传送到片外RAM从0100H单元开始的10个单元中去。

答:

MOV R2,#00H ;源数据缓冲器地址偏移量00H→A MOV R3,#0AH ;字节长度→R3

19

MOV DPTR,#0100H ;源数据缓冲区首地址→DPTR MOV A,R2 ;源地址偏移量→A L1:MOVC A,@A+DPTR ;传送一个数据 MOVX @DPTR,A

INC DPTR ;源地址(目的地址)加1

DJNZ R3,L1 ;数据全部传送完?没传送完,转L1继续传送 SJMP $ ;结束

5. 在89C51扩展系统中,外部程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突?

答:这是因为外部程序存储器和外部数据存储器所使用的控制信号不同。对外部程序存储器的选读通是用PSEN控制线,而对外部数据存储器的读/写控制是用RD和WR读、写控制线,所以不会发生地址冲突。

6. 为什么要扩展并行口?常用什么方法来扩展并行口?

答:89C51单片机共有4个8位并行I/O端口P0~P3,当需要外部扩展存储器或I/O口时,P0和P2口作为数据和地址总线使用,因而提供给用户的I/O口就只有P1或P3口的部分口线,当所接的外设比较多时,就必须扩展I/O接口。

(1)通用锁存器、缓冲器的扩展。 (2)可编程并行接口芯片的扩展。

7. 简述可编程并行接口8255 A的内部结构?

答:8255 A的内部结构由三部分组成:总线接口部分,内部逻辑部分,外部接口部分。 外部接口部分 该部分有3个8位并行I/O端口,即A口、B口和C口。 总线接口部分 其中有数据总线驱动器,读/写控制逻辑 内部逻辑部分 由A组和B组控制电路。

8. 在89C51上扩展8255A,将PA口设置成输入方式,PB口设置成输出方式,PC口设置成输出方式,给出初始化程序。

答:根据题目要求,A口输入,B口输出,二者均采用工作方式0,则控制字为98H。编程如下: MOV A,#98H ;方式控制字 A MOV DPTR,#7FFFH ;选通控制寄存器

MOVX @TPTR,A ;方式控制字送入8255A MOV DPTR,#7FFCH

MOVX A,@DPTR ;读PA口数据 MOV DPTR,#7FFDH ;

MOVX @DPTR,A ;送PB口数据

9. 试编程对8155进行初始化,设A口为选通输出,B口为选通输入,C口作为控制联络口,并启动定时器/记数器按方式1工作,工作时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHz。

答:算得初值=5000=1388H

MOV DPTR,#7F04 ;定时器低八位寄存器地址→DPTR MOV A,#88H ;低8位初值→A

MOVX @DPTR,A ; 低8位初值→低8位寄存器 INC DPTR ;DPTR指向定时器高8位 MOV A,#13H ;高8位初值→A

MOVX @DPTR,A ;高8位初值→高8位寄存器 MOV DPTR,#7F00H ;8155命令寄存器地址→DPTR

20

MOV A,0C5H ;命令字→A

MOVX @DPTR,A ;命令字→命令寄存器 10. 什么是键抖动?如何消除?

答:由于机械触点的弹性作用,触点在接触和断开的瞬间的接触情况不稳定,造成了电压信号抖动现象,键的抖动时间一般为5~10ms,这种情况可能导致CPU对一次按键进行多次处理。

(1)硬件去抖。

(2)软件去抖:两次检测间隔10ms,都是同一状态即都为高或都为低,则这个状态为稳定状态。 11. 对于矩阵键盘,如何使用扫描法确定具体的按键位置?

答:首先确定是否有键按下:将所有列线均输出0,检查各行线是否有电平变化,若有,说明有键按下,若无,说明无键按下;然后识别按键具体位置:逐列输出0,其余各列置1,检查各行线电平变化。如果某行由1变0,则可确定此行、此列交叉点处的按键被按下。

12. 键盘有哪3种工作方式,各自的工作原理及特点是什么? 答:(1)编程扫描方式:当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。(2)定时扫描工作方式:单片机对键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。(3)中断工作方式:只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。

12. 说明LED的静态显示和动态显示的区别是什么? 答:区别如下:

静态显示:为固定显示方式,无闪烁,一个并行口接一个数码管,数码管的公共端按共阴或共阳分别接地或VCC。

动态显示:为各数码管轮流显示,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁现象,这种显示方式一个接口完成字形码的输出,另一个接口完成各数码管的轮流点亮。

13. 共阳极LED数码管加反相器驱动时显示字符“6”的字型编码是多少? 答:7DH。

14. 设计一个89C51外扩键盘和显示器电路,要求扩展8个键,4位LED显示器。 答:

硬件电路连接图如图所示。

15. A/D转换和D/A转换的区别是什么?为何要进行转换?

答:A/D转换器是一种用来将连续的模拟信号转换成二进制数的器件,D/A转换器是一种将数字信号转换成模拟信号的器件,为计算机系统的数字信号和模拟环境的连续信号之间提供了一种接

21

口。

16. 说明D/A转换器的单缓冲、双缓冲和直通工作方式的工作过程与特点。 答:

(1)直通方式:将/CS,/WR1,/WR2,和/XFER引脚都直接接数字地,ILE引脚接高电平,芯片处于直通状态,此时8位数字量只要输入到DI0~DI7端,就立即进行A/D转换。

(2)单缓冲方式:此方式是使两个寄存器中的一个处于直通状态,另一个工作于受控锁存状态。一般使DAC寄存器处于直通状态,即把/WR2和/XEFR端接数字地,或着将两个寄存器的控制信号并接,使之同时选通。此时数据只要写入DAC芯片就立即转化,此种工作方式接线简单,并可减少一条输出指令。

(3)双缓冲工作方式:在双缓冲工作方式下,单片机要对两个寄存器粉笔控制,要进行两步写操作:先将数据写入输入寄存器;再将输入寄存器的内容写入DAC寄存器并启动转换。

双缓冲工作方式可以使数据接受和启动转换异步进行,在D/A转换的同时接受下一个转换数据,因而提高了通道的转换速率。在要求多个输入通道同时进行D/A转换时使用双缓冲工作方式。

17. 在单片机应用系统中,什么情况下需要使用光电耦合器,目的是什么?

答:当需用单片机控制各种各样的高压、大电流负载,这些大功率负载如电动机、电磁铁、继电器、灯泡等,则不能用单片机的I/O线来直接驱动。而必须通过各种驱动电路和开关电路来驱动。此外,为了隔离和抗干扰,有时需加接光电耦合器。

18. 判断题。

(1)89C51单片机执行MOVX指令时,P0口作为地址线,专用于输出存储器的高8位地址;P2口专用于输出存储器的低8位地址。( )

(2)线选法是把单根的低位地址线直接接到存储器芯片的片选端。( ) (3)对于8031单片机而言,在外部扩展EPROM时,EA引脚应接地。( )

(4)对于89C51单片机而言,在外部扩展EPROM时,EA引脚可接+5V或接地。( )

(5)8155芯片的地址/数据线AD0~AD7是低8位地址和数据复用线引脚,当ALE=1时,输入的是数据信息,否则是地址信息。( ) (6)在接口芯片中,通常都有一个片选端CS(或CE),作用是当CS为低电平时该芯片才能进行读写操作。( )

(7)DAC0832是8位的D/A转换器,其输出量为数字电流量。( )

(8)ADC0809是8路8位A/D转换器,其工作频率范围是10KHz~1.28MHz。( ) (9)EPROM 27128有12根地址线,可寻址空间为16KB。( )

(10)DAC0832的片选信号输入线CS是低电平有效。( ) 答:

1 2 3 4 5 6 7 8 9 10 × √ × √ √ √ √ √ √ √ 第8章

1. C51的data、bdata、idata有什么区别?

答:

data 直接访问内部数据存储器(128字节),访问速度最快

bdata 可位寻址内部数据存储器(16字节),允许位与字节混合访问 idata 间接访问内部数据存储器(256字节),允许访问全部

2. 定义变量a、b、c,a为内部RAM的可位寻址区的字符变量;b为外部数据存储区浮点型变量;c为指向int型xdata区的指针。

22

答:

unsigned char bdata a,b,c,d; float xbyte b; int xdata *c;

3. 编制将内部RAM中40H单元和50H单元的数据相乘,结果存放到外部RAM 1000H和1001H单元的程序。

答:

#include #include main( ) {

char a,b; int c;

a=DBYTE[0X50]; b=DBYTE[0X40]; c=a*b;

XBYTE[0X1000]=c%6; XBYTE[0X1001]=c/256; while(1); }

4. 将外部RAM的20H~30H单元的内容传送到内部RAM 20H~30H单元。 答:

#include #include main() {

unsigned char i;

for(i=0x20;i<=0x30;i++) DBYTE[i]=XBYTE[i]; while(1); }

5. 求出内部RAM 50H~5FH单元中的最大数,存入内部RAM 60H单元中。 答:

#include #include main() {

unsigned char i,x,max;

max=0;

for( i=0x50;i<=0x5f;i++) { if(max

23

DBYTE[0X60]=max; while(1); }

6. 将下面为汇编语言程序转换成等效的C语言程序。 ORG 0030H MOV P1,#04H MOV R6,#0AH MOV R0,#30H CLR P1.0 SETB P1.3 ACALL TLC SJMP $ TLC:MOV A,#0 CLR P1.3 MOV R5,#08H LOP:MOV C,P1.2 RLC A SETB P1.0 CLR P1.0 DJNZ R5,LOP MOV @R0,A INC R0 DJNZ R6,TLC RET END 答:

#include #include

main() {

unsigned char i,addr; for(i=0;i<10;i++) {

DBYTE[addr]=0xff;

addr++; }

while(1); }

7. 编程实现对外部脉冲计数,当计到100时,从P1.1引脚输出一个正跳变。 答:

#include sbit P1_1=P1^1; main( ) {

24

unsigned char n; n=5; P1_1=0;

TMOD=0X06; TL0=0X96; TH0=0X96; ET0=1; TR0=1; EA=1; while(1);

}

void T0( ) interrupt 1 {

P1_1=1; while(n--); n=5; P1_1=0; }

8. 设系统时钟为6MHZ,用ADC0809设计一个数据采集系统,要求8个通道的地址为7FF8H~7FFFH,每10ms采样一路模拟信号,每路信号采样8次,采集的数据存放于外部RAM2000H开始的单元中,试编制对8个通道采样一遍的程序。

答:

#include #include

void delay( )//延时10ms { }

void main( ) {

unsigned char i,x;

unsigned int add1,add2; add1=0x7ff8; add2=0x2000; x=0;

for(i=0;i<=7;i++) { add1=add1+i; add2=add2+i;

XBYTE[add1]=x;//启动转化 delay();

x=XBYTE[add1]; XBYTE[add2]=x; }

while(1);

25

}

第9章

1. 简述单片机应用系统设计的一般流程。

答:总体设计、硬件设计、资源分配、软件设计、软件仿真。 2. 简述硬件设计的任务是什么?

答:硬件设计的任务是根据总体设计要求,在所选择机型的基础上,确定系统扩展所需的存储器、I/O电路、A/D电路以及有关外围电路等,然后设计出系统的电路原理图。

3. 设计一个电子称。要求称量范围是0~50Kg,最小分辨率0.01kg。 答:略。

26

}

第9章

1. 简述单片机应用系统设计的一般流程。

答:总体设计、硬件设计、资源分配、软件设计、软件仿真。 2. 简述硬件设计的任务是什么?

答:硬件设计的任务是根据总体设计要求,在所选择机型的基础上,确定系统扩展所需的存储器、I/O电路、A/D电路以及有关外围电路等,然后设计出系统的电路原理图。

3. 设计一个电子称。要求称量范围是0~50Kg,最小分辨率0.01kg。 答:略。

26

本文来源:https://www.bwwdw.com/article/4oqo.html

Top