1、填空题1. MCS-51 的 P0 口作为输出端口时,每位能够驱动 8 个 LSTTL 负载。2. MCS-51 有四个并行 I/O 口,其中 p1p3 是准双向口,所以由输出转输入时必须写入1。3. MCS-51 有四组工作寄存器,他们的地址范围是 00H1FH4. MCS-51 片内 20H2FH 范围内的数据存储器,既可以字节寻址又可以位寻址。5. 若用传送指令访问 MCS-51 的程序存储器,它的指令是 MOVC.6. 若用传送指令访问 MCS-51 的片内数据存储器,它的指令是 MOV.7. 指令是通知计算机完成某种操作的命令8. 汇编语言中可以使用伪指令,它不是真正的指令,只是用来
2、对汇编过程进行某种控制.9. MCS-51 串行接口有四种工作方式,可以在初始化程序中用软件填写 SCON 特殊功能寄存器加以设定。10. MCS-51 有 5 个中断源,有两个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以设定。11. 累加器 A=80H,执行完指令 ADD A,#83 后,进位位 C1_.12. 执行完指令 ANL A,#0FH 后,累加器的高四位0000 . 13. 累加器 A=7EH,(20H)=#04H,执行完 ADD A,20H 后 PSW.0_0.14. ORL A,#0F0H 是将 A 的高四位置 1,而低四位不变.15. 设 DPTR= 2000H,
3、(A)= 80H,则 MOVC A,A + DPTR 的操作数的实际地址为 2080H_16. 一个十进制数一 47 用 8 位二进制补码表示为 11010001B_17. 单片机中最常用的字符信息编码是 ASC码18. 要串口为 10 位 UART,工作方式应选为 方式 119. 用串口扩并口时,串行接口的工作方式应选为方式方式 020. 在串行通信中有数据传送方向单工,_半双工,全双工三种方式。21. 一个机器周期=12 节拍、一个机器周期=l2 个振荡周期,一个振荡周期=1 节拍。22. 8051 在物理上有 4 个独立的存储器空间。23. 外部中断 INT1 的入口地址为 0013H2
4、4. 8051 含 4 KB 掩膜 ROM, 8751 是 EPROM 型,内含 4 KB EPROM, 8031 是无型号25. MCS 一 51 中,TO 中断服务程序入口地址为 000BH.26. 执行当前指令后 PC 内容为下一条将要读取的指令码首地址27. MOV C,20H 源寻址方式为位寻址28. INC 不影响 CY 位。29. 指令 LCALL 37B0H,首地址在 2000H,所完成的操作是 2003H_入栈,37B0HPC30. MOVX A, DPTR 的源操作数寻址方式为寄存器间接寻址31. 8051 的中断有_2_个优先级。32. 8051 中断嵌套最多 2 级。3
5、3. 外中断请求标志位是 IE0 和 IE1。34. MCS - 51 单片机片内 RAM 的寄存器区共有个 32 单元,分为_4_组寄存器,每组_8_个单元,以_R7R0_作为寄存器名称。35. 单片机系统复位后,PSW =00H,因此片内 RAM 寄存区的当前寄存器是第_0_组,8 个寄存器的单元地址为_00H_- _07H_.36. 在 MCS - 51 中 PC 和 DPTR 都用于提供地址,但 PC 是为访问程序_存储器提供地址,而 DPTR 是为访问_数据 存储器提供地址。37. 在位操作中,能起到与字节操作中累加器作用的是 CY 38. 累加器 A 中存放着一个其值小于或等于 1
6、27 的 8 位无符号数,CY 清“0”后执行RLC A 指令,则 A 中数变为原来的 2 倍。39. 计算机的数据传送有两种方式,即并行方式和串行方式,其中具有成本低特点的是串行数据传送。40. 异步串行数据通信的帧格式由_起始_位、数据_位、_奇偶校验位_和停止位位组成。41. 异步串行数据通信有单工、全双工、和半双工共三种传送方向形式。42. 使用定时器 T1 设置串行通信的波特率时,应把定时器 TI 设定为自动重装载工作模式。43. 假定(A)56, (R5)67。执行指令:ADD A,R5DA A 后,累加器 A 的内容为 00100011B , CY 的内容为 144. 假定(A)
7、=0FH, (R7)=19H , (30H)=00H (R1)=40H , (40H )=0FFH 。执行指令:DEC ADEC R7DEC 30HEEC R1后,累加器 A 的内容为 0EH_,R7 的内容为 18H_30H 的内容为 0FFH,40H 的内容为0FEH45.假定(A)=50H, (B)=0A0H。执行指令:MUL AB后,寄存器 B 的内容为 32H,累加器 A 00H 的内容为,CY 的内容为 0 ,OV 的内容为_1 46.假定(A)=0FBH, (B)=12H。执行指令:DIV AB后累加器 A 的内容为 0DH ,寄存器 B 的内容为 11H ,CY 的内容为 0
8、,OV 的内容为 0 47.假定(A) =0C5H。执行指令:SWAP A后累加器 A 的内容为 5CH 48. DITR 是 MCS-51 中惟一个 16 位寄存器,在程序中常用来作为 MOVC 指令访问程序存储器的_基址寄存器_使用。49堆栈设在片内数据_存储区、程序存放在_程序_存储区,外部 I/O 接口设在片外数据 存储区,中断服务程序存放在程序存储区。50. 若单片机使用频率为 6 MHz 的晶振,那么状态周期为 1/3s、机器周期 2s、指令周期为 2s8s 。51.复位时 A0,PSW=0,SP=07H,P0P3=FFH 单项选择题1在中断服务程序中,至少应有一条(D )(A)
9、传送指令,(B)转移指令, (C)加法指令, (D)中断返回指令2当 MCS 一 51 复位时,下面说法正确的是(A) 。(A)PC 0000 H, (B)SP00H , (C )SBUF 00H(D) (30H )00H3要用传送指令访问 MCS 一 51 片外 RAM,它的指令操作码助记符应是(B)(A)MOV,(B) MOVX , (C)MOVC (D)以上都行4. 下面哪一种传送方式适用于电路简单且时序已知的外设(B) 。(A)条件传送 (B)无条件传送 (C)DMA (D)中断5MCS 一 51 在响应中断时,下列哪种操作不会发生(D) 。(A)保护现场, (B)保护 PC(C)找到
10、中断入口, (D )保护 PC 转入中断入口6用 MCS-51 串行接口扩展并行 IO 口时,串行接口工作方式应选择( A) 。(A)方式 0 , (B)方式 1, (C)方式 2, (D)方式 37. JNZ e 指令的寻址方式是(C ) 。(A)立即寻址, (B)寄存器寻址,(C) 相对寻址,(D) 位寻址8执行 LCALL 4000H 指令时, MCS 一 51 所完成的操作是(D) 。(A)保护 PC, (B ) 4000H-PC(C)保护现场 (D) PC+3 入栈,4000 H PC9. MCS 一 51 有中断源(A) 。(A) 5 个(B) 2 个(C) 3 个(D) 6 个1
11、0. MCS - 51 上电复位后 ,SP 的内容应是(B) 。(A)00H (B) 07H (C)60H (D ) 70H11下面哪一个部件不是 CPU 的指令部件(C) 。(A)PC (B) IR(C) PSW (D ) ID12ORG 0003HLJMP 2000HORG 000BHLJMP 3000H当 CPU 响应外部中断 0 后,PC 的值是(B ) 。(A)0003H (B)2000H (C)0000BH (D ) 3000H13. 控制串行接口工作方式的寄存器是(C ) 。(A)TCON (B) PCON (C) SCON (D ) TMOD14MCS 一 51 响应中断时,下
12、面哪一个条件不是必须的( D ) 。(A)当前指令执行完毕 (B)中断是开放的(C)没有同级或高级中断服务 (D)必须有 RETI 指令15.使用定时器 T1 时,有几种工作模式( C ) 。(A)l 种 (B) 2 种 ( C) 3 种 (D )4 种15执行 PUSH ACC 指令,MCS 一 51 完成的操作是(A ) 。(A)SP1=SP ,(ACC)=(SP) (B) (ACC)=(SP) SP 一 1=SP(C)SP 一 1=SP, (ACC)=(SP) (D) (ACC)=(SP) SP1=SP16P1 口的每一位能驱动( B ) 。(A) 2 个 TTL 低电平负载 (B) 4
13、 个 TTL 低电平负载(C) 8 个 TTL 低电平负载 (D) 10 个 TTL 低电平负载17. PC 中存放的是( A ) 。(A)下一条指令的地址 , (B)当前正在执行的指令(C) 当前正在执行指令的地址( D)下一条要执行的指令188031 是(C) 。(A) CPU (B) 微处理器 (C) 单片微机 (D) 控制器19.所谓 CPU 是指( A ) 。(A) 运算器与控制器 (B) 运算器与存储器(C) 输入输出设备 (D)控制器与存储器20LCALL 指令操作码地址是 2000H,执行完相应子程序返回指令后 PC=( D ) 。(A)2000H(B)2001 H (C)20
14、02H (D )2003H21MCS 一 51 执行完 MOV A,# 08H 后, PSW 的哪一位被置位( D ) 。(A)C (B)FO (C)OV (D)P22.计算机在使用中断方式与外界交换信息时,保护现场的工作应该是(C) 。(A)由 CPU 自动完成 (B)在中断响应中完成(C)应由中断服务程序完成 (D)在主程序中完成23要访问 MCS - 51 的特殊功能寄存器应使用的寻址方式是( C ) 。(A)寄存器间接寻址 (B)变址寻址 (C)直接寻址 (D)相对寻址24下面哪条指令将 MCS 一 51 的工作寄存器置成 3 区( B) 。(A) MOV PSW,13H (B)MOV
15、 PSW,井 18H(C) SETB PSW.4 CLR PSW.3 (D) SETB PSW. 3 CLR PSW.425 若 MCS - 51 中断源都编程为同级,当它们同时申请中断时 CPU 首先响应( B )(A)INTl (B )INTO (C )T1( D) T026当 MCS - 51 进行多机通信时,串行接口的工作方式应选择( C ) 。(A) 方式 0。 (B)方式 1 (C )方式 2( D)方式 0 或方式 227.MCS-51 的相对转移指令的最大负跳转距离为( B )(A)2 KB(B)128 B (C )127 B(D)256 B28.指令寄存器的功能是(B) 。(
16、A)存放指令地址 (B)存放当前正在执行的指令(C)存放指令与操作数 (D)存放指令地址及操作数29. MOV C,00H 的寻址方式是( A ) 。(A)位寻址 (B)直接寻址 (C) 立即寻址 (D)寄存器寻址30.ORG OOOOHALMP 0040HORG 0040HMOV SP,#00H当执行完左边的程序后,PC 的值是( C )(A)0040H (B)0041 H (C)0042H (D )0043H31.当 CPU 响应串行接口中断时,程序应转移到( C ) 。(A)0003H(B)0013H(C)0023H (D )0033H32. 当 ALE 信号有效时,表示( B ) 。(
17、A) 从 ROM 中读取数据 (B)从 P0 口可靠地送出地址低 8 位(C)从 PO 口送出数据 (D)从 RAM 中读取数据33MCS 一 51 复位时,下述说法正确的是( D ) 。(A) (20H)=00H (B)SP00H(C)SBUF=00H(D )TH0=00H34. MCS 一 51 的中断源全部编程为同级时,优先级最高的是( D ) 。(A) INT1 (B)TI (C) 串行接口 (D) INTO35. 外部中断 1 固定对应的中断人口地址为( C ) 。(A) 0003H (B)0003H (C )0013H (D )001BH36MCS - 51 单片机可分为两个中断优
18、先级别。各中断源的优先级别设定是利用寄存器( B ) 。(A)IF (B)IP (C)TCON (D) SCON37. MCS 一 51 的并行 I/O 口信息有两种读取方法:一种是读引脚,还有一种是( A ) 。(A)读锁存器 (B) 读数据 (C)读 A 累加器 (D)读 CPU38.( C )并非单片机系统响应中断的必要条件。(A) TCON 或 SOON 寄存器内的有关中断标志位为 1(B) IF 中断允许寄存器内的有关中断允许位置 1(C) IP 中断优先级寄存器内的有关位置 1(D) 当前一条指令执行完39. 指令 AJMP 的跳转范围是(C ) 。(A)256 B (B) 1 K
19、B (C )2 KB (D ) 64 KB40MCS 一 51 响应中断的不必要条件是(C) 。(A) TCON 或 SCON 寄存器内的有关中断标志位为 1(B) IE 中断允许寄存器内的有关中断允许位置 1(C) IP 中断优先级寄存器内的有关位置 1(D)当前一条指令执行完41. 以下运算中对溢出标志 OV 没有影响或不受 OV 影响的运算是( A ) 。(A)逻辑运算 (B)有符号数加减法运算(C) 乘法运算 ( D) 除法运算42.在算术运算中,与辅助进位位 AC 有关的是(C) 。(A)二进制数 (B)八进制数(C) 十进制数(D) 十六进制数43. PC 的值是( C ) 。(A
20、)当前指令前一条指令的地址 (B) 当前正在执行指令的地址(C)下一条指令的地址 (D)控制器中指令寄存器的地址44.假定设置堆栈指针 SP 的值为 37H,在进行子程序调用时把断点地址进栈保护后,SP的值为( D ) 。(A) 36H (B)37H (C) 38H (D ) 39H45. 在相对寻址方式中, “相对”两字是指相对于(C ) 。(A)地址偏移量 rel (B)当前指令的首地址(C)当前指令的末地址, (D) DPTR 值46.在寄存器间接寻址方式中,指定寄存器中存放的是( B ) 。(A)操作数 (B)操作数地址(C)转移地址 (D )地址偏移量47. 对程序存储器的读操作,只
21、能使用( D ) 。(A) MOV 指令 (B) PUSH 指令(C) MOVX 指令 (D) MOVC 指令48. 必须进行十进制调整的十进制运算( C ) 。(A)有加法和减法 (B)有乘法和除法(C)只有加法 (D)只有减法49 .执行返回指令时,返回的断点是( C ) 。(A)调用指令的首地址 (B)调用指令的末地址(C)调用指令下一条指令的首地址( D)返回指令的末地址50. 可以为访问程序存储器提供或构成地址的有( C ) 。(A)只有程序计数器 PC (B)只有 PC 和累加器 A(C)只有 PC,A 和数据指针 DPTR (D) PC,A,DPTR 和堆栈指针 SP简答题1.
22、什么是指令系统? 答:计算机所能执行的全部指 令 的集合2. 什么是指令? 答:是指示计算机执行某些操作的命令3. 什么是汇编语言? 答:采用助记符表示的指令4. 什么是寻址方式? 答:就是找到存放操作数的地址,并把操作数提取出 来的方法,即寻找操作数或者是操作 数地址的方法5. 什么是堆栈? 答:是一种执行“后进先出”算法的数据结构 6. 什么是指令周期? 答:取出并执行一条指令的时间7. 串行数据传送的主要优点和用途是什么? 答:串行数据传送是将数据按位进行传送的方式。其主要优点是所需的传送线根数少(单向传送只需一根数据线、双向仅需两根) ,对于远距离数据传送的情况,采用串行方式是比较经挤
23、的。所以串行方式主要用于计算机与远程终端之间的数据传送。8. MC S 一 51 指令集中有无 “程序结束”指令?怎样实现“程序结束”功能? 答:没有这样的指令。但实现“程序结束“ 至少可以借助 4 种办法:用原地踏步指令 SJMP $死循环;在最后一条指令后面设断点,用断点执行方式运行程序;用单步方式执行程序;在末条指令之后附加一条 LJMP 0000H,由软件返回监控状态。9. 中断服务子程序与普通子程序有哪些异同之处? 答:相同点:都是让 CPU 从主程序转去执行子程序,执行完毕后又返回主程序。不同点:中断服务子程序是随机执行的,而普通子程序是预先安排好的; 中断服务子程序以 RETI结
24、束,而一般子程序以 RET 结束。RETI 除了将断点弹回 PC 动作之外,还要清除对应的中断优先标志位(片内不可寻址的触发器 ),以便新的中断请求能被响应。10. 说明 DA A 指令的用法答:DA A 为十进制调整指令。在进行 BCD 数加法运算时,该指令要跟在加法指令后面,对 A 的内容进行十进制调整。11. 8051 有几种寻址方式?各涉及哪些存储器空间? 答:立即寻址(程序寄存器) ;直接寻址(内部 RAM 和特殊功能寄存器) ;寄存器寻址() ;寄存器间接寻址(内部 RAM);相对寻址(程序寄存器) ;变址寻址(程序、数据寄存器) ;位寻址(内部 RAM 和特殊功能寄存器的位地址空
25、间)12. 8051 响应中断的条件是什么?CPU 响应中断后,CPU 要进行哪些操作?不同的中断源的中断入口地址是多少? 答:(l)CPU 响应中断的条件如下:首先要有中断源发出有效的中断申请;CPU 中断是开放的,即中断总允许位 EA=l,CPU 允许所有中断源申请中断;申请中断的中断源的中断允许位为 1,即此中断源可以向 CPU 申请中断。以上是 CPU 响应中断的基本条件。如果上述条件满足,则 CPU 一般会响应中断。但是,若有下列任何一种情况存在,则中断响应会被阻止。CPU 正处在为一个同级或高级的中断服务中。现行机器周期不是所执行的指令的最后一个机器周期。作此限制的目的在于便当前指
26、令执行完毕后,才能进行中断响应,以确保当前指令的完整执行。当前指令是返回指令(RET、RETI) 或访问 IE、IP 的指令。因为按 MCS-51 中断系统的特性规定,在执行完这些指令之后,还应再继续执行一条指令,然后才能响应中断。若存在上述任何一种情况,CPU 将丢弃中断查询结果;否则,将在紧接着的下一个机器周期内执行中断查询结果,响应中断。(2)CPU 响应中断后,保护断点,硬件自动将(PC)堆栈,寻找申断源,中断矢量PC,程序转向中断服务程序入口地址。(3)INT0=0003H,T0=000BH,INT1=0013H,Tl=00lBH,串行接口 =0023H。13. 单片机对中断优先级的
27、处理原则是什么?答:(1)低级不能打断高级,高级能够打断低级;(2)一个中断已被响应,同级的被禁止;(3)同级,按查询顺序,INT0T0INT1 Tl串行接口。14. 80C51 的外部中断有哪两种触发方式?它们对触发脉冲或电平有什么要求?答:(1)有电平触发和脉冲触发。(2)电平方式是低电平有效。只要单片机在中断请求引入端 INT0 和 INT1 上采样到低电平时,就激活外部中断。脉冲方式则是脉冲的下跳 G 有效。这种方式下,在两个相邻机器周期对中断请求引入端进行采样中,如前一次为高,后一次为低,即为有效中断请求。因此在这种中断请求信号方式下,中断请求信号的高电平状态和低电平状态都应至少维持
28、一个周期以确保电平变化能被单片机采样到。15. 单片机怎样管理中断?怎样开放和禁止中断?怎样设置优先级?答:(1)由中断源提出中断,再由中断控制端决定是否中断,再按设定好的优先级的顺序响应中断。如同一级优先级的中断按:外部中断 0,定时中断 0,外部中断 1,定时中断 1,串行中断。中断后如果是:脉冲触发, TEl(0)被清 0;电平触发,IEl(0)不被清零,要用软件清 0。(2)它由中断允许寄存器 IE 控制:如开放中断 EA 必须为 1,再使要求中断的申断源的中断允许位为 1:要禁止中断,EA=0 即可。(3)由 IP 控制 ,1 为高级, 0 为低级,PS 为串行中断优先级,PTl(0
29、)为定时中断 1(0)优先级,PXl(0)外部中断 1(0)优先级。使哪个中断源为优先级,就置哪个优先设定位为 1。16. 8051 单片机定时器一计数器作定时和计算用时,其计数脉冲分别由谁提供?答:作定时器时:计数脉冲来自单片机内部,其频率为振荡频率的 1/12。作计数器时:计数脉冲来自单片机的外部,即 P3.4(T0)和 P3.5(Tl)两个引脚的输入脉冲。17. 8051 单片机定时器/计数器的门控信号 GATE 设置为 1 时,定时器如何启动?答:80C51 单片机定时器/计数器的门控信号 GATE 设置为 1 时,定时器的启动受外部INT0(INTl)引脚的输人电平控制: 当 INT
30、0(INTl)引脚为高电平时,置 TR0(TRl)为 1 时启动定时器/计数器 0(1)工作。18. 8051 单片机片内设有几个定时器计数器?它们是由哪些特殊功能寄存器组成?答:80C51 单片机片内设有 2 个定时器/ 计数器:定时器/ 计数器 0 和定时器/计数器 1,由TH0、TL0 、THl、TLl、TMOD、TCON 特殊功能寄存器组成。18什么是单片机的机器周期、状态周期、振荡周期和指令周期.答:某条指令的执行周期由若干个机器周期(简称 M 周期) 构成,一个机器周期包含 6 个状态周期(又称时钟周期,简称 S 周期),而一个状态周期又包含两个振荡周期 (P1 和 P2,简称 p
31、 周期)。也就是说,指令执行周期有长有短,但一个机器周期恒等于 6 个状态周期或12 个振荡周期,即 lM=6S=l2P。请见教材P28 图。19当定时器 T0 工作于模式 3 时,如何使运行中的定时器 T1 停止下来?答:TRl 为定时器 Tl 的运行控制位,通常将该位置 1 就可启动定时器 Tl 使之运行起来;把 TRl 清 0 便停止定时器 Tl 的运行。但在定时器 T0 被设定为模式 3 运行时,就不能再用这种方法来控制定时器 Tl 的启停了。因为在这种情况下,如教材Pl06 图 6-11 所示,TRl 借给定时器 T0 作为 8 位定时器 TH0 的运行控制位了。当定时器 T0 在模
32、式 3 下运行时,若把定时器 1 设定为模式 3,即将 TMOD 寄存器的位 5 (Ml)和位 4(M0)写成 ll B,则定时器 Tl 便停止运行;若此后将其从模式 3 中切换出来,例如,把这两位再次写成 0lB,则定时器 Tl 将按模式 1 运行起来。20波特率、比特率和数据传送速率的含意各是什么?答:在数据通信申,描述数据传送速度的方式有 3 种:波特率:每秒传送多少个信号码元(或每秒信号码元变换的总个数) ,单位是波特(Bd)。比特率:每秒传送多少个二进制位(或每秒传送二进制码元的个数) ,单位是 b/s。数据传送速率(或字符传送速率 ):每秒传送多少个字符 (或单位时间内平均数据传移
33、速率),单位是字符/秒。当传输的信号是二进制数位时,波特率和比特率就变成了一回事,尤其是计算机通信中,信号码元常与二进制码元相同,此时可以统一起来。例如,甲乙双方传送二进制数据的速度是每秒传送 300 个字符,每个字符附加了起始、停止和校验各一位,此时描述该速度有3 种方式:数据字符传送速率是 300 字符/秒。忍比特率 300(8+1+1+l)b/s=300ll b/s=3300b/s。波特率与比特率相同,亦为 300ll Rd=3300 Bd。21开机复位后,CPU 使用的是哪组工作寄存器?它们的地址是什么?CPU 如何确定和改变改变当前工作寄存器组?答:系统复位后,CPU 选用第 0 组
34、工作寄存器即地址分别为 00H07H。如需改变当前工作寄存器,可设置 PSW 状态字中的 RSl、RS0 。如 RSl、RS0 为 00 则指向第 0 组; 为 01则指向第 1 组;为 10 则指向第 2 组; 为 ll 则指向第 3 组。22程序状态寄存器 PSW 的作用是什么?常用状态有哪些位?作用是什么?答:程序状态字寄存器 PSW 主要用于保存程序运行中的各种状态信息。各位功能如下:CY(PSW7)为进位标志。在进行加或减运算中,表示有无进位或借位。位操作时,又可认为是位累加器。AC(PSW6)为辅助进位标志。加或减操作中,表示低 4 位数向高 4 位有无进位或借位,以用作 BCD
35、码调整的判断位。F0(PSW5)为用户标志位。用户可自行定义的一个状态标记。RSl、RS0(PSW 4 PSW3)为工作寄存器组指针。用以选择 CPU 当前工作寄存器组。OV(PSW2)为溢出标志。算术运算时,表示是否溢出。Fl(PSWl)为用户标志位。同 F0。P(PSW0)为奇偶标志位。表示累加器 A 中“1“的位数的奇偶数。该位多用作串行通信中的奇偶检验。23.位地址 7CH 与字节地址 7CH 如何区别?位地址 7CH 具体在片内 RAM 的位置?答:字节地址是片内 RAM 的单元地址,而位地址是片内 RAM 单元申的某一位。7CH字节地址为 RAM 的 7CH 单元,而 7CH 位地
36、址是 RAM 2FH 单元中的 D4 位。24MCS 一 51 单片机的时钟周期与振荡周期之间有什么关系?一个机器周期如何划分?答:时钟周期为最基本的时间单位。机器周期则是完成某一个规定操作所需的时间。一个机器周期为 6 个时钟周期,共 12 个振荡周期,依次可表示为SlPl、SlP2、S6Pl、S6P2 ,即一个时钟周期包含有二个振荡周期。25MCS 一 51 单片机有几种复位方法?应注意什么事项?答:单片机的复位有上电自动复位和按钮手动复位两种。使用时应注意:上电复位的最短时间应保证为振荡周期建立时间加上两个机器周期的时间。当单片机运行程序出错或进入死循环时,可用按钮复位来重新启动。26M
37、CS 一 51 单片机内部包含哪些主要逻辑功能部件?答:89C51 单片机主要由下列部件组成 :一个 8 位 CPU、一个片内振荡器及时钟电路、4KB Flash ROM 程序存储器、256B 的 RAM、2 个 16 位的定时 /计数器、可寻址 64KB 片外数据存储器和 64KB 片外程序存储器空间的控制电路、4 个 8 位并行 I/O 端口及一个可编程全双工串行接口。27MCS 一 51 单片机的存储器从物理结构上和逻辑上分别可划分几个空间?答:MCS-51 系列单片机的存储器配置从物理结构上可分为:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。从逻辑上可分为:片内外统
38、一编址的 64KB的程序存储器、片内 256B 的数据存储器以及片外 64KB 的数据存储器。28存储器中有几个具有特殊功能的单元?分别作什么用?答:MCS-51 系列单片机的存储器中有 6 个保留特殊功能单元,其中 0000H 为复位入)0003H 为外部中断 0 矢量入口、 000BH 为 T0 溢出中断人口、 0013H 为外部中断 1 矢量入口、00lBH 为 Tl 溢出中断入口、0023H 为串行接口中断入口。29MCS 一 51 单片机片内 256 B 的数据存储器可分为几个区?分别作什么用?答:MCS-51 单片机片内数据存储器可分为二个区:00H7FH 单元组成的低 128B
39、的片内RAM 区、80HFFH 单元组成的高 128B 的专用寄存器区。其中低 128B 的 RAM 区又分为:00HlFH 单元为工作寄存器区、20H2FH 单元为位寻址区以及 30H7FH 单元为用户 RAM区。工作寄存器区可作通用寄存器用,用户 RAM 区可作堆栈和数据缓冲用。专用寄存器区又称特殊功能寄存器。30什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系?答:某条指令的执行周期由若干个机器周期(简称 M 周期) 构成,一个机器周期包含 6 个状态周期(又称时钟周期,简称 S 周期),而一个状态周期又包含两个振荡周期 (P1 和 P2,简称p 周期)。也就是说
40、,指令执行周期有长有短,但一个机器周期恒等于 6 个状态周期或 12个振荡周期,即 lM=6S=l2P。请见教材P28 图。31. MCS - 51 单片机的 PO-P3 四个 I/O 端口在结构上有何异同?使用时应注意什么事项?答:MCS-51 单片机的四个端口在结构上相同之处,P0P3 都是准双向 I/O 口,作输入时,必须先向相应端口的锁存器写入“1“。不同之处:P0 口的输出级与 PlP3 口不相同,它无内部上拉电阻,不能提供拉电流输出,而 PlP3 则带内部上拉电阻,可以提供拉电流输出。当 P0 口作通用 I/O 口输出使用时,需外接上拉电阻才可输出高电平;但作地址/数据总线时,不需
41、要外接上拉电阻。PlP3 作 I/O 输出时,均不需外接上拉电阻。32MCS 一 51 单片机有几种低功耗方式?如何实现?答:MCS-51 单片机有两种低功耗方式,分别为待机( 休闲)方式和掉电方式。置 PCON 中的 D0 位即 IDL 为“1“ ,单片机即迸人待机方式 ;置 Dl 位即 PD 为“1“,则进入掉电方式。33.试说明指令 CJNE R1,7AH,10H 的作用。若本指令地址为 8100H,其转移地址是多少?答:CJNE Rl,#7AH,l0H 指令是进行以 Rl 间址单元的内容与一个立即数进行比较。当(Rl)=7AH 时:(PC)+3PC,0CY当(Rl)7AH 时:(PC)
42、+3+10H PC,0CY当(Rl)7AH 时:(PC)+3+10HPC,lCY若本指令地址为 8100H,其转移地址为 :目的地址=8100H 十 3 十 10H=8113H。34如何将 8051 当 8031 使用?答:把 80C51 的 EA 引脚接地,片外扩接 EPROM 芯片,就等于宣布片内 ROM 作废,完全执行片外 EPROM 中的程序。这样,80C51 就可当 80C31 使用。35.设(R0) = 7 EH , DPTR= 10FEH ,片内 RAM 7EH 和 7FH 两单元的内容分别是 FFH和 38H,请写出下列程序段的每条指令的执行结果。INC RoINC ROINC
43、 ROINC DPTRINC DPTRINC DPTR答:(1) (7EH)=00H(2) R0=7FH(3) (7FH)=39H(4) DPTR=10FFH(5)DPTR=l100H(6)DPTR=l10lH36设片内 RAM 中(59H)=-50H,执行下列程序段。MOV A,59HMOV R0,AMOV A, #0HMOV R0,AMOV A, #25HMOV 51H, AMOV 52H,#70H问 A25H, (50H)=0, (51H)25H, (52H )70H编程题1编一个子程序,将寄存器 R0 中的内容乘 10(积256)。1解 STRAT: MOV A,R0MOV B,#10
44、MUL ABMOV R0,ARET2.编程将片内 RAM 30H 单元开始的 15 B 的数据传送到片外 RAM 3000H 开始的单元中去。2解 STRAT: MOV R0,#30HMOV R7,#0FHMOV DPTR,#3000HLOOP: MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R7,LOOPRET3.用查表法编一子程序,将 40H 单元中的 BCD 码转换成 ASCII 码。3START: MOV A,40HMOV DPTR,#TARMOVC A,A 十 DPTRMOV 40H.ARETTAB DB 30H,31H,32H,33H,34HDB 35
45、H,36H,37H,38H,39H4片内 RAM 50H,51 H 单元中有一个 2B 的二进制数,高位在前,低位在后,请编程将其求补,存回原单元中去。4解 START: CLR CMOV A,5lHCPL AADD A,#03HMOV 5lH,AMOV A,50HCPL AADDC A,#00HMOV 50H,ARET5片内 RAM 30H 开始的单元中有 10 B 的二进制数,请编程求它们之和(和256) 。5解 ADDIO: MOV R0,30HMOV R7,#9MOV A,R0LOOP: INC R0ADD A,R0DJNZ R7,LOOPMOV 30H,ARET6R1 中存有一 BC
46、D 码,请编程将它转换成 ASCII 码,存人外 RAM IO00H 单元中去。6解 RIB-AI: MOV A,RlORL A,#30H (也可以 ADD A,#30H)MOV DPTR,#1000HMOVX DPTR,ARET7. 编一个程序,将累加器中的一个字符从串行接口发送出去。7解 SOUT: MOV SCON,#40H ;设置串行接为工作方式 1MOV TMOD,#20H ;定时器 Tl 工作于模式 2MOV TLl,#0E8H; 设置波特率为 1200b/sMOV THl,#0E8HSETB TRlMOV SBUF,ANB TI,$CLR TIRET8. 片外 RAM 2000H
47、 开始的单元中有 5B 的数据,编程将它们传送到片内 RAM 20H 开始的单元中去。8解 CARY: MOV DPTR,#2000HMOV R0,#20HMOV R3,#05HNEXT: MOVX A,DPTRMOV R0,AINC DPTRINC R0DJNZ R3,NEXTRET9. 用查表法编一子程序,将 R3 中的 BCD 码转换成 ASCII 码。9解 MAIN: MOV A,R3 ;待转换的数送 AMOV DPTR,#TAB ;表首地址送 DPTRMOVC A,A+DPTR ;查 ASCII 码表MOV R3,A ;查表结果送 R3RETTAB DB 30H ,31H ,32H
48、,33H ,34HDB 35H ,36H ,37H ,38H ,39H10片内 RAM 40H 开始的单元内有 10 B 二进制数,编程找出其中最大值并存于 50H 单元中。10解 START: MOV R0,#40H ;数据块首地址送 R0MOV R7,#09H ;比较次数送 R7MOV A,R0 ;取数送 ALOOP: INC R0MOV 30H,R0 ;取数送 30HCJNE A,30H ,NEXT ;(A)与(30H)相比NEXT: JNC BIEl ;(A)(30H)转 BIElMOV A,30H ;(A)(30H),大数送 ABIE1: DJNZ R7,LOOP ;比较次数减 1,不为 0,继续比较MOV 50H,A ;比较结束,大数送 50HRET11.编程将片外 RAM 3000H 开始的 20 B 的数据传送到片内 RAM 30H 开始的单元中去。11解 START: MOV DPTR,#300