《单片机应用大专期末复习卷》由会员分享,可在线阅读,更多相关《单片机应用大专期末复习卷(20页珍藏版)》请在金锄头文库上搜索。
1、10 级大专单片机应用期末复习卷(含答案)一、选择题1.下列不是单片机总线是( D)(A) 地址总线 (B)控制总线 (C)数据总线 (D)输出总线2. EEPROM 是指( D)(A)掩膜 ROM (B)紫外线可擦除的 ROM(C)闪存 (D)电擦除的 ROM3.在 80C51 的 4 个并行口中,能作为通用I/O 口和高 8 位地址总线的是( C ) 。(A)P0(B)P1(C)P2(D)P34.所谓 CPU 是指(A)(A)、运算器和控制器(B)、运算器和存储器 ( C)、输入输出设备(D)、控制器和存储5. 要用传送指令访问 MCS-51 片外 RAM,它的指令操作码助记符应是( B
2、)(A)MOV(B)MOVX(C)MOVC(D)以上都是6. PSW=18H 时,则当前工作寄存器是( D)(A)0 组(B) 1 组(C)2 组(D)3 组7. 定时器/计数器工作于模式 1 时,其计数器为几位(B)(A)8 位 (B)16 位 (C)14 位 (D)13 位8. 堆栈数据的进出原则是( B)(A)先进先出 (B)先进后出 (C)后进后出 (D)进入不出9. 若某存储器芯片地址线为12 根,那么它的存储容量为( C)(A)1KB (B)2KB (C)4KB (D)8KB10. 在中断服务程序中,至少应有一条( D )(A)传送指令()转移指令(C)加法指法(D)中断返回指令1
3、1.控制串行口工作方式的寄存器是(C)(A)TCON (B)PCON (C)SCON (D)TMOD12.下列说法正确的是: ( D )(A)各中断发出的中断请求信号,都会标记在MCS51 系统的 IE 寄存器中。(B)各中断发出的中断请求信号,都会标记在MCS51 系统的 TMOD 寄存器中。(C)各中断发出的中断请求信号,都会标记在MCS51 系统的 IP 寄存器中。(D)各中断发出的中断请求信号,都会标记在MCS51 系统的 TCON 与 SCON 寄存器中。13.下面哪一种传送方式适用于处理外部事件(C )(A)DMA (B)无条件传送 (C)中断 (D)条件传递14. MOV C,#
4、00H 的寻址方式是(A) 。(A)位寻址 (B)直接寻址 (C)立即寻址 (D)寄存器寻址51 系列中断源有(A) 。(A)5 个(B)2 个(C)3 个(D)6 个16.使用定时器 T1 时,有几种工作模式(C)()种()种()种()种17.执行 MOVX A,DPTR 指令时,MCS-51 产生的控制信号是(C) 。(A)/PSEN (B)ALE (C)/RD (D)/WR18. 当优先级的设置相同时,若以下几个中断同时发生, ( D )中断优先响应。(A)外部中断 1 (B)T1 (C)串口 (D)T019.当需要扩展一片 8K 的 RAM 时,应选用的存储器为(B) 。(A)2764
5、 (B)6264 (C)6116 (D)6212820.若想扩展键盘和显示,并希望增加256 字节的 RAM 时,应选择(A)芯片。(A)8155 (B)8255 (C)8279 (D)74LS164单片机要进行 10 位帧格式的串行通讯时,串行口应工作在(B ) 。(A)方式 0 (B)方式 1 (C)方式 2 (D)方式 322.要使 MCS-51 能够响应定时器 T1 中断、串行接口中断,它的中断允许寄存器IE 的内容应是(A)()98H()84H()42 H()22H寻 址 外 设 端 口地 址 的方 法 有 两 种 ,一 种 是统 一 编 址 , 还有 一 种是 (C)( A ) 混
6、 合 编 址 ( B ) 动 态 编 ( C ) 独 立 编 址 ( D ) 变 址 编 址24. MCS-51 外扩一个 8255 时,需占用(D) 个端口地址(A)1 个(B)2 个(C)3 个(D)4 个25MCS-51 用串行扩展并行 I/O 口时,串行接口工作方式选择(A)(A)方式 0 (B)方式 1 (C)方式 2 (D)方式 326使用 8255 可以扩展出的 I/O 口线是(B)(A)16 根 (B)24 根 (C)22 根 (D)32 根27当 8031 外出扩程序存储器 8KB 时,需使用 EPROM 2716(C)(A)2 片 (B)3 片 (C)4 片(D)5 片28
7、MCS-51 外扩 ROM,RAM 和 I/O 口时,它的数据总线是( B)(A)P0(B)P1(C)P2(D)P329MCS-51 在响应中断时,下列哪种操作不会发生(A ).(A)保护现场 (B)保护 PC (C)找到中断入口 (D)保护 PC 转入中断入口30MCS-51 响应中断时,下面哪一个条件不是必须的(D)(A)当前指令执行完毕(B)中断是开放的(C)没有同级或高级中断服务(D)必须有 RET1 指令31.计算机在使用中断方式与外界交换信息时,保护现场的工作方式应该是(C )(A)由 CPU 自动完成 (B)在中断响应中完成(C)应由中断服务程序完成 (D)在主程序中完成3262
8、64 芯片是(B)()EEPROM(B)RAM(C)FLASH ROM(D)EPROM338051 与 8751 的区别是: ( C)(A)内部数据存储但也数目的不同(B)内部数据存储器的类型不同(C)内部程序存储器的类型不同(D)内部的寄存器的数目不同34PC 的值是( C )(A)当前正在执行指令的前一条指令的地址(B)当前正在执行指令的地址(C)当前正在执行指令的下一条指令的地址(D)控制器中指令寄存器的地址35访问片外数据存储器的寻址方式是( D)(A)立即寻址(B)寄存器寻址(C)寄存器间接寻址(D)直接寻址36当 8031 外扩程序存储器 32KB 时,需使用 EPROM2764(
9、C)(A)2 片(B)3 片(C)4 片(D)5 片37当使用快速外部设备时,最好使用的输入/输出方式是(C)(A)中断(B)条件传送(C)DMA(D)无条件传送38MCS-51 的中断源全部编程为同级时,优先级最高的是(D)(A)INT1 (B)TI (C)串行接口 (D)INT039MCS-51 的并行 I/O 口信息有两种读取方法:一种是读引脚,还有一种是(A)(A)读锁存器(B)读数据库(C)读 A 累加器(D)读 CPU40MCS-51 的并行 I/O 口读-改-写操作,是针对该口的(D)(A)引脚(B)片选信号(C)地址线(D)内部锁存器41在 MCS51 中,需要外加电路实现中断
10、撤除的是: (D)(A)定时中断(B)脉冲方式的外部中断(C)外部串行中断(D)电平方式的外部中断42串行口工作方式 1 的波特率是: ( C )(A)固定的,为fOSC/32。(B)固定的,为fOSC/16。(C)可变的,通过定时器/计数器 T1 的溢出率设定。 (D)固定的,为fOSC/64。4380C51 单片机要进行 10 位帧格式的串行通讯时,串行口应工作在( B ) 。(A)方式 0 (B)方式 1 (C)方式 2 (D)方式 34480C51 复位初始化时未改变 SP 的内容,第一个入栈的单元地址为( A ) 。(A)08H(B)80H(C)00H(D)07H45. 51 系列单
11、片机有五个中断源,外中断 INT1 的入口地址是( C ),定时器 T0 的中断入口地址是( B )。(A) 、0003H(B) 、000BH(C) 、0013H(D) 、001BH(E) 、0023H46.执行下列 3 条指令后,30H 单元的内容是( C )。 MOV R0,#30H MOV 40H,#0EH MOV R0,40HA)40H B)30H C)0EH D)FFH47.在堆栈中压入一个数据时( B) 。 (A)先压栈,再令 SP+1 (B)先令 SP+I,再压栈 (C)先压栈,再令 SP-l (D)先令 SP-1,再压栈48.在堆栈操作中,当进栈数据全部弹出后,这时的SP 应指
12、向 ( A )。 (A)栈底单元 (B)7FH(C)栈底单元地址加 1 (D)栈底单元地址减 l A,DPTR 指令中源操作数的寻址方式是(B)(A)寄存器寻址 (B)寄存器间接寻址 (C)直接寻址 (D)立即寻址50. 指令 MOVC A,A+PC 源操作数的寻址方式是 (D )。(A)寄存器寻址方式 (B)寄存器间接寻址方式(C)直接寻址方式 (D)变址寻址方式二、填空题1单片机是把中央处理器、存储器、定时器/计数器以及 I/O 接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机。2.除了单片机这一名称之外,单片机还可称为微控制器、嵌入式控制器。3计算机的系统总线有地址总线、控制
13、总线和 数据总线。480C51 单片机基本型内部 RAM 有 128 个字节单元,这些单元可以分为三个用途不同的区域,一是工作寄存器区、二是位寻址区、三是数据缓冲区。58051 单片机有 2 个 16 位定时/计数器。6单片机存储器的主要功能是存储程序和数据。80C51 含 4 KB 掩膜 ROM。780C51 在物理上有 4 个独立的存储器空间。88051 的堆栈是向地址的高端生成的。入栈时 SP 先加 1 ,再压入数据。9MCS-51 特殊功能寄存器只能采用直接寻址方式。10在基址加变址寻址方式中,以累加器 A 作变址寄存器,以 DPTR 或 PC 作基址寄存器。11指令格式是由操作码和操
14、作数所组成,也可能仅由操作码组成。12通过堆栈操作实现子程序调用,首先就要把 PC 的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到PC。13MCS51 单片机程序存储器的寻址范围是由程序计数器PC 的位数所决定的,因为MCS51 的 PC 是 16 位的,因此其寻址的范围为64KB。14假定 A=55H,R3=0AAH,在执行指令 ANLA,R3 后,A=00H,R3=0AAH 。15若某 8 位 D/A 转换器的输出满刻度电压为+5V,则 D/A 转换器的分辨率为5/255=。16MCS-51 片内 20H2FH 范围内的数据存储器,即可以字节寻址又可以位寻址。1
15、7若用传送指令访问 MCS-51 的程序存储器,它的操作码助记符应为MOVC。18MCS-51 串行接口有 4 种工作方式,这可在初始化程序中用软件填写特殊功能寄存器SCON 加以选择。19当定时器 T0 工作在方式 3 时,要占用定时器 T1 的 TR1 和 TF1 两个控制位。20MCS-51 有 5 个中断源,有 2 个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择。21要串口为 10 位 UART,工作方式应选为方式 1。22十进制数47 用 8 位二进制补码表示为 1101 0001。19D 的二进制补码表示为 11101101。23累加器(A)=80H,执行完指令 ADD
16、 A,#83H 后,进位位 C=1。执行 ANL A,#0FH 指令后,累加器 A 的高 4 位=0000。24用串口扩并口时,串行接口工作方式应选为方式0。25在串行通信中,有数据传送方向单工、半双工、全双工三种工作方式。26MOV PSW,#10H 是将 MCS-51 的工作寄存器置为第 2 组。27指令格式由?操作码? 和?操作数或操作数地址? 这两部分组成。28寻址方式分为对?指令?的寻址和对?数据? 的寻址两大类。29确定 IO 接口芯片的片选信号的方法通常有两种:线选法和译码法30MCS-51 系列单片机的 IO 端口没有独立编址,而是与外部数据存储器统一编址。单片机共有 7种寻址
17、方式。访问外部数据存储器应采用寄存器间接寻址方式。32.访问外部数据存储器应采用寄存器间接寻址方式;查表应使用变址 寻址方式。33.在 8051 单片机中,堆栈操作的指令有 PUSH和 POP两个。34.在 8051 单片机中,子程序调用的指令有 ACALL和 LCALL两个。35. 在立即寻址方式中,在数前使用 #号来表示立即数。36. 在立即寻址方式中,立即数一定出现在源操作数中。37.十进制调整指令 DA A 不能单独执行,在执行该指令之前必须先执行 ADD指令或者 ADDC指令。38.位转移指令都是采用相对寻址方式实现转移的。39.子程序必须使用 RET 指令返回主程序,而中断服务程序
18、必须使用 RETI指令返回主程序。指令实现把数据压入堆栈的操作,POP 指令是实现把数据从堆栈中弹出的操作。41.执行了 DIV AB 指令后,则商存放在 A中,余数存放 B中。42.执行了 MUL AB 指令后,则积的高8 位存放在B 中,而积的低8 位存放在 A。43.在 MCS-51 单片机中,加法指令可以分为 ADD和 ADDC两种。44.读程序存储器指令有 MOVC A,A+DPTR和 MOVC A,A+PC 两个,它们的源操作数都属于变址寻址方式。45. 按键的抖动可以使用软件和硬件两种方法消除。46. 假定 A=55H,R3=0ABH,在执行指令 ANL A,R3 后,A=01H
19、,R3=0ABH 。47. 在执行 MOVX A,R0 指令时,源操作数的高 8 位是由 P2寄存器提供的。48.单片机对矩阵式键盘进行管理的三种方式分别是程控扫描方式、定时扫描方式和中断扫描方式。A 转换器是把数字量变换成模拟量的线性电路器件。其主要参数有:分辨率、转换时间、精度和线性度50.一个 DA 转换器能够转换 8 位二进制数, 若转换后的电压满量程是5v,则它能分辨的最小电压是5 mV。内部有两个独立的寄存器,即输入寄存器和 DAC 寄存器在几个引脚信号不同组合的控制下可以实现直通、单缓冲和双缓冲三种工作状态。D 转换器输出数字量的形式有两种:二进制和BCD 码。54.当 AD 转
20、换完毕时, DAC 将产生转换结束信号,这一信号可以作为查询的依据,或利用它产生中断请求。D 转换器与 8031 之间传送数据的方式有三种:程序查询、中断和DMA。56. ADC0809 是一种8路模拟输入,8 位数字输出的逐次逼近式 AD转换器。57. DAC0832 主要由一个8 位数据输入寄存器、一个8 位 DAC 寄存器和一个 8位 DA 转换器组成。58. 在基波传输时, 波特率用来表示每秒钟传送格式位的数目的。 因此 1 波特= l 位/秒。59. 中断服务程序必须使用 RETI指令返回到主程序。60.单片机中使用的串行通信都是异步方式。三、判断题1.调用子程序指令(如:CALL)
21、及返回指令(如:RET)与堆栈有关但与 PC 无关。 ()2.堆栈遵循数据先进后出,后进先出的原则。( )3.在 MCS-51 单片机中,堆栈的地址随着压栈数据从小到大递增。( )4.子程序返回可以使用 RET 指令,也可以使用 RETI 指令。( )5.空操作指令不占机器周期。( )6.减法指令只有带借位的减法,没有不带借位的减法。( )7.加法指令只有带进位的加法,没有不带进位的加法。( )8.不能使用无条件转移指令直接从子程序中转到主程序中去。( )9.使用可编程接口必须初始化。( ) 。10.当 MCS-51 上电复位时,堆栈指针SP=00H。(x) 。外扩 I/O 口与外 RAM 是
22、统一编址的。() 。存放的是当前执行的指令。 (x)的特殊功能寄存器分布在60H80H 地址范围内。 ( x)14.调用子程序指令 (如: CALL) 及返回指令 (如: RET) 与堆栈有关但与 PC 无关。(x)15.要进行多机通信,MCS-51 串行接口的工作方式应为方式1。( x)中的 GATE=1 时,表示由两个信号控制定时器的启停。( x) 。有 4 个并行 IO 口,其中 P0P3 是准双向口,所以由输出转输入时必须先写入0(x)的地址线为 11 条时,能访问的存储空间有4K。 (x)内部有 3 个 8 位并行口,即 A 口,B 口,C 口。 (x)芯片内具有 256B 的静态
23、RAM,2 个 8 位和 1 个 6 位的可编程并行 I/O 口,1 个 14 位定时期等常用部件及地址锁存器。(x )21DPTR 是可以访问的,而 PC 不能访问。()22DPTR 和 PC 都是 16 位的存储器。DPTR 可以分为两个 8 位的寄存器使用,但 PC 不能。()23PC 可以看成是程序存储器的地址指针。 (x)24内部 RAM 的位寻址区,只能供位寻址使用,而不能供字节寻址使用。 (x)25MCS-51 共有 21 个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。 (x)26立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。 ()2
24、7. 指令周期是执行一条指令的时间。 ()28指令中直接给出的操作数称为直接寻址。 (x)29串行口通信的第 9 数据位的功能可由用户定义。 ()30串行通讯发送时,指令把TB8 位的状态送入发送 SBUF。 (x)31串行通讯接收到的第9 位数据送 SCON 寄存器的 RB8 中保存。 ()32串行口方式 1 的波特率是可变的,通过定时器/计数器 T1 的溢出设定。 ()33以助记符形式表示的计算机指令就是它的汇编语言。 ()34. MCS-51 单片机共有五个中断源,相应地在芯片上就有五个中断请求输入引脚。 ( )35. 当全局中断允许位 EA=0 时,系统将不响应任何中断。( )36 在
25、 MCS-51 单片机中,高级中断可以打断低级中断形成中断嵌套。( )37.除了低优先级中断不能打断高优先级中断的情况外,其他情况都能形成中断嵌套。( )38.在定时工作方式 2 状态下,因为把TH 作为预置寄存器,所以在应用程序中应当在有计数溢出时从 TH 向 TL 加载计数初值的操作。( )39.中断初始化时,对中断控制寄存器的状态设置,只能使用位操作指令,而不能使用字节操作指令。( )单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源。来自于单片机内部的是定时,而来自于外部的则是计数。( )41P0 端口既可以作地址线,又可以作数据线,是分时复用的。()42 地址总线由 P
26、0 和 P2 端口组成。()43 内部数据存储器与外部数据存储器是统一编址的。( )44.在扩展系统中,总是可以将扩展芯片的片选信号接地的。( )45. T0 和 T1 都是减法定时器计时器。( )四、程序分析题1、写出下列程序的运行结果。(1)MOV SP,# 40HMOV A,#20HMOV B,#30HPUSH APUSH BPOP APOP B(SP)= (A)= (B)=解答:(SP)=40H,(A)=30H,(B)=20H2、在设 A=0FH,R0=30H,内部 RAM 的(30H)=0AH、 (31H)=0BH、 (32H)=0CH,请指出在执行下列程序段后上述各单元内容的变化。
27、 MOV A,R0 MOV R0,32H MOV 32H,A MOV R0,#31HMOV A,R0解答:R0=31H, A=0BH , (30H)=0CH、 (31H)=0BH、 (32H)=0AH3、请用数据传送指令来实现下列要求的数据传送。(1)R0 的内容输出到 R1解答:MOV A,R0MOV R1,A(2)内部 RAM20H 单元的内容传送到 A 中。解答:MOV A,20H(3)外部 RAM30H 单元的内容送到 R0。解答:MOV R0,#30HMOVX A,R0MOV R0,A(4)外部 RAM30H 单元的内容送内部 RAM20H 单元。解答:MOV R1,#30HMOVX
28、 A,R1MOV 20H,A(5)程序存储器 ROM2000H 单元的内容送 R1。解答:MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV R1,A(6)ROM2000H 单元的内容送外部 RAM1000H 单元。解答:MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV DPTR,#1000HMOVX DPTR,A4、A=83H, (R0)=17H, (17H)=34H,执行以下指令后,A 的内容为( ) 。答:0CBHANL A,#17HORL 17H,AXRL A,R0CPL A5、阅读下列程序段并回答问题 。(1).该程序执行何种操作 (2)
29、.已知初值 (60H)=23H,(61H)=61H,运行程序后 62H 内容() CLR C MOV A,#9AH SUBB A,60H ADD A,61H DA A MOV 62H,A答: 1) 、该程序是单字节 BCD 码运算,是将(61H)(60H)62H 2) 、 (62H)=38H6、试编写 1 个程序,将内部 RAM 中 45H 单元的高 4 位清 0,低 4 位置 1。答:MOV A, 45HANL A, #0FHORL A, #0FHMOV 45H, A7、试编写程序,查找在内部 RAM 的 30H50H 单元中是否有 0AAH 这一数据。若有,则将51H 单元置为“01H”
30、;若未找到,则将 51H 单元置为“00H” 。答:START:MOV R0,#30HMOV R2,#20HLOOP:MOV A,R0CJNEA,#0AAH,NEXTMOV 51H,#01HLJMPEXITNEXT:INCR0DJNZR2,LOOPMOV 51H,#00HEXIT:RET8、编写程序,要求使用 T0,采用方式 2 定时,在输出周期为 400s,占空比为 10:1 的矩形脉冲。解:根据题意,从输出的矩形脉冲的高低电平的时间为 10:1,则高低电平的时间分别为s 和s。如果系统采用 6MHz 晶振的话,Tcy 2s,因此高低电平输出取整,则约为 364s 和 36s。编写程序如下:
31、ORG 0000HLJMPMAINORG 000BHLJMPIT0PMAIN:MOV TMOD,#02H;定时器/计数器 T0 为定时方式 2MOV TL0,#4AH;定时 364s 初值赋值SETBTR0;启动 T0,开始计数SETBET0;允许 T0 中断SETBEA;CPU 开中断SETBWAIT:AJMPWAITIT0P:CLREACLR;关中断MOV R0,#9DLY:DJNZR0,DLY;延时 26sMOV TL0,#4AH;定时 364s 初值赋值SETBSETBEARETI9、将内部 RAM 40H 开始的 10 个单元,搬移到 50H 开始的 10 个单元中。MOV R0,#
32、40HMOV R1,#50HMOV R2, #10LOOP1:MOV A, R0MOV R1,AINC R0INC R1DJNZ R2 ,LOOP1RET10、 设单片机晶振频率为 6MHz,使用定时器 0,以工作方式 2, 在引脚输出一个周期为200us连续方波解: MOV TMOD,#02H MOV TH0, #0CEHMOV TL0 ,#0CEHSETB TR0LOOP: JBC TF0,LOOP1 AJMP LOOPLOOP1: CPL11、编写程序,采用 8255A 的 C 口按位置位/复位控制字,将 PC7 置 0,PC4 置 1, (已知8255A 各端口的地址为 7FFCH-7
33、FFFH) 。解:对 8255A 的 C 口的操作。其方式控制字的高位为0 时,低四位对C 口进行置位。由题目我们得到了方式控制字的地址为7FFFH。ORG 0000HMAIN:MOV DPTR,#7FFFH;控制字寄存器地址送 DPTRMOV A,#0EH;将 PC7 置 0MOVX DPTR,AMOV A,#09H;将 PC4 置 1MOVX DPTR,AEND12、试编写逻辑运算程序,功能为:F=XYZ其中 F X Y Z 均为位变量,依次存在以30H 为首址的位寻址区中。LOG2:MOV C,Y ;YC ANL C,Z ;YZC ANL C,X ;XYZC MOV F,C ;XYZF
34、RET ;13、试编写程序,统计内RAM 30H50H 单元中 FFH 的个数,并将统计结果存51H。LOKF:MOV 51H,#0 ;计数器清零 MOV R0,#30H ;置数据区首址LOP: MOV A,R0 ;读数据 CPL A ;取反 JNZ LP1 ;判 FFH,非 FFH,转 INC 51H ;FFH,计数LP1: INC RO ;指向下一数据CJNE R0,#51H,LOP;判循环RET14、已知ROM 中存有 0100 的平方表,首地址为TABDS,试根据累加器A(100)中的数值查找对应的平方值,存入内RAM31H30H(双字节)。解:编程如下: DSQR:MOV DPTR,
35、#TABDS;置 ROM 平方表首地址 ADD A,Acc;A2A MOVC A, A+DPTR ;读平方值高 8 位 MOV 31H,A;平方值高 8 位31H INC A;指向平方值低 8 位 MOVC A,A+DPTR;读平方值低 8 位 MOV 30H,A;平方值低 8 位30H RET TABDS:DW 0,0,0,1,0,4,0,9,0,16,0,25,27H,10H;0100 平方表(双字节)15、设在内部数据存储器中存放有20 个字节数据,其起始地址为M。试编写程序,找出数0AH 的存放地址,并送入N 单元。若 OAH 不存在,则将 N 单元清零。解:程序如下: M EQU 3
36、0H N EQU 2FHSECH:MOV R0,#M MOV R1,#20LOOP:CJNE R0,#0AH,LP1 MOV N,R0 RETLP1: INC R0 DJNZ R1,LOOP MOV N,#0 RET16、试编写统计数据区长度的程序,设数据区从内 RAM30H 开始,该数据区以 0 结束,统计结果送入 2FH 中。解:编程如下:ADUP:MOV 2FH,#0 MOV R0,#30HALOP:MOV A,R0 JNZ LP1 RETLP1: INC 2FH INC R0 SJMP ALOP17、利用定时、计数器 T1 测量某正脉冲宽度,并存入内 RAM31H30H。设 fosc=
37、12MHz,脉冲从引脚输入,宽度小于65536us。解:编程如下:PLUS: MOV TMOD,#90H MOV TH1,#0 MOV TL1,#0 JB ,$ SETB TR1 JNB ,$ JB ,$ CLR TR1 MOV 31H,THO MOV 30H,TLO RET18、 若有两个无符号数。x、y分别存放在内部存储器 50H、51H 单元中,试编写一个程序实现x10 y,结果存人 52H、53H 两个单元中。 ORG 0000H SJMP START ORG 0030H START: MOV A,50H MOV B,#10 MUL AB ;(50H)x10积的高、低字节分别在B、A
38、中 ADD A,51H MOV 53H,A ;积的低字节加(51H)其和存放在 53H 中 MOV A,#00H ADDC A,B MOV 52H,A ;积的高字节加进位位存放在52H 中。 SJMP $19、从内部存储器 20H 单元开始,有 30 个数据。试编一个程序,把其中的正数、负数分别送 51H 和 71H 开始的存储单元,并分别记下正数、负数的个数送50H 和 70H 单元。 ORG 0000H SJMP START ORG 0030H START: MOV 1EH,#51H ;正数存放首地址 51H 存暂存于 1EH 单元 MOV 1FH,#71H ;负数存放首地址 71H 存暂
39、存于 1EH 单元 MOV R0,#20H ;建立取数(源操作数)的地址指针 MOV R2,#30 ;预置数据长度 MOV 50H,#00H ;正数个数统计单元清零 MOV 70H,#00H ;负数个数统计单元清零 LOOP: MOV A,R0 ;取数 JB ,NEG ;是负数转 NEG 处理 POSI: MOV R1,1EH ;是正数,将暂存的地址送R1(间址寄存器) MOV R1,A ;将正数入存 INC 50H ;正数个数加 1 INC 1EH ;正数暂存地址加 1 修正 LOOP1: INC R0 ;取数地址加 1 修正 DJNZ R2,LOOP ;计数长度减 1,不等于零,继续循环统
40、计 SJMP $ ; 结束 NEG: MOV R1,1FH ;是负数,将暂存的地址送R1(间址寄存器) MOV R1,A ;将负数入存 INC 70H ;负数个数加 1 INC 1FH ;负数暂存地址加 1 修正 SJMP LOOP1 ;转取数地址修正20、 在 DATAl 单元中有一个带符号8 位二进制数。 编一程序, 按以下关系计算 y 值, 送 DATA2x5x0y xx=0x5x0设 DATA1、DATA2 为内部数据存储器的二个单元(假设为30H、31H)且y的值单字节不会产生溢除出 ORG 0000H SJMP START ORG 0030H START: MOV A,30H ;取
41、数 X 给 A JZ ZERO ;若 X=0,则 Y=0,转入存 JB ,NEG ;若 X0,则 X=5,入存 SJMP ZERO ; NEG: CLR C ; SUBB A,#05H ; ZERO: MOV 31H,A ; 结果入存 SJMP $ ; END21、 设内部 RAM 中 30H 和 31H 单元中有两个带符号数, 求出其中的大数存放在32H 单元中。(分析:若两数同号,则值大的数大;两数异号,正数值大 ) ORG 0000H SJMP START ORG 0030H START: MOV A,30H ; XRL A,31H ; 两数异或 JB ,YIHAO ; 两数异号 TON
42、GHAO: CLR C ; 两数同号 MOV A, 30H SUBB A, 31H JC LOOP1 LOOP0: MOV A,30H ;同号被减数大,值大 LOOED: MOV 32H ,A SJMP $ LOOP1: MOV A,31H ;异号被减数大,值小 SJMP LOOED ; YIHAO:MOV A,30H ;异号,哪个正,其值大 JNB ,LOOP0 SJMP LOOP1 END22、设定时器 Tl 处于工作方式 2,PCON=OOH,单片机处于串行工作方式 1,要产生 1200bs 的波特率,设单片机晶振频率 fosc分别为 6MHz 和 12MHz,分别求在这两种频率下,Tl
43、 的定时初值。SMOD计算公式:x=2562fosc(384波特率)已知:波特率=1200bps,PCON=00H,则 SMOD=06 (1)fosc=6MHz=610 Hz06 x=2562 610 (3841200)=243D=F3H定时初值为 F3H。6 (2)fosc=12MHz=1210 Hz06 x=2562 12 X10 (3841200)=30D=E6H定时初值为 E6H。23、设单片机晶振频率 fosc=6MHz,使用 Tl 以工作方式 0 工作,要求定时 250 u s,计算定时初值,并写出设置时间常数的指令。C=高 8 位为 0FCH低 5 位为 03H设置时间常数的指令
44、:MOV THI,#0FCHMOV TLl,#03H24、应用单片机内部定时器T0 工作在方式 1 下,从输出周期为 1ms 的方波脉冲信号,已知单片机的晶振频率为 6MHZ。 (计算时间常数,应用公式X=2t(f)解:X=216-t(F/12)=216-1*10-3*6*106/12=OFEOCHORG 3000HSTART:MOV TMOD,#01HMOV TL0,#OCHMOV THO,#OFEHSETB TR0LOOP: JBC TFO,DONESJMP LOOPDONE: MOV TL0,#OCHMOV THO,#OFEHCPLSJMP LOOP25设 fosc=12MHz,试编写一
45、段程序,功能为:对定时器T0 初始化,使之工作在模式 2,产生 200s 定时,并用查询 T0 溢出标志的方法,控制输出周期为2ms 的方波。解:先确定 T0 作为定时器时初值为:56程序: MOV TMOD,#02H MOV TL0,#56 MOV TH0,#56 MOV R7,#5 ;设置循环次数 SETB TR0AA: JBC TF0 ,AA DJNZ R7,AA CPL MOV R7,#5 SJMP AA END268155 TIN 端输入脉冲频率为 1MHz,编写能在 TOUT 引脚输出周期为 8ms 方波的程序。MOV DPTR,#7F04H; 指向定时器低 8 位MOV A,#4
46、0HMOVXDPTR,A; 计数常数低 8 位装入定时器INCDPTR; 指向定时器高 8 位MOV A,#5FH; 设定时器输出方式为连续方波输出MOVXDPTR,A; 装入定时器高 8 位MOV DPTR,#7F00H; 指向命令/状态口MOV A,#0C2H ; 命令字设定 PA 口为基本输入方式,PB 口为基本输出方式,并启动定时器MOVXDPTR,A27现要求 8155 的 A 口基本输入,B 口、C 口基本输出,启动定时器工作,输出连续方波,请编写 8155 的初始化程序。MOVDPTR,#data 1; 指向定时器低 8 位MOVA,#data2MOVXDPTR,A; 计数常数低
47、 8 位装入定时器INCDPTR; 指向定时器高 8 位MOVA,#40 H; 设定时器输出方式为连续方波输出MOVXDPTR,A; 装入定时器高 8 位MOVDPTR,#data3; 指向命令/状态口MOV A,#0CEH ;命令字设定 PA 口为基本输入方式,PB、PC 口为基本输出方式,并启动定时器MOVXDPTR,A五、问答题1、在 MCS-51 单片机中有几种寻址方式写出每一种寻址方式。解答:有 7 种寻址方式,分别是立即寻址方式、直接寻址方式、寄存器寻址方式、寄存器间接寻址方式、变址寻址方式、相对寻址方式和位寻址方式。2什么是堆栈解答:堆栈是一个特殊的存储空间,有一端是固定的,称为
48、栈底,另一端是活动的,称为栈项,数据的存取是在栈顶进行的。数据的存取遵循先进后出,后进先出的原则。3. NOP 指令的用途是什么解答:常常用于程序的等待或时间的延迟。4简述 MOVX 和 MOVC 指令的异同之处。 MOVX 和 MOVC 指令的相同之处;都是数据传送类指令。不同之处: MOVX 是在 A 累加器与片外数据存储器之间双向传送数据的指令;而 MOVC 则是将程序存储器中内容读入 A 累加器的指令。5.写出 AJMP 和 LJMP 指令的共同点和区别。解答:共同点是都是无条件转移,转到指定的标号执行程序。区别:(1)转移范围不同,LJMP 指令的转移范围为 64KB,AJMP 指令
49、的转移范围为 2KB。(2)指令字节数不同,LJMP 指令是 3 字节指令,AJMP 指令是 2 字节指令。(3)AJMP 指令的机器码特殊。6.写出 ACALL 和 LCALL 指令的共同点和区别。解答:共同点是都是调用子程序指令,转到指定的标号执行子程序。区别:(1)转移范围不同,LCALL 指令的调用范围为 64KB,ACALL 指令的调用范围为 2KB。(2)指令字节数不同,LCALL 指令是 3 字节指令,ACALL 指令是 2字节指令。(3)ACALL 指令的机器码特殊。和 RETI 指令主要有哪些区别区别:(1)使用场合不同,RET 指令在子程序中使用,RETI 指令在中断服务程
50、序中使用。(2)从功能上看,RET 指令从堆栈中自动取出断点地址给PC,使之返回到调用指令的下一个指令,继续执行主程序。而RETI 指令除了具有 RET指令的功能之外,还有清除中断响应时被设置的优先级状态、开放低级中断以及恢复中断逻辑等功能。8MCS-51 单片机通常内部包含哪些主要逻辑功能部件答: 51 单片机通常由下列部件组成:一个 8 位 CPU、一个片内振荡器及时钟电路、内部 Flash Rom 程序存储器、256B 的 RAM、2 个 16 位的定时/计数器、可寻址64KB 片外数据存储器和 64KB 片外数据存储器和64KB 片外程序存储器空间的控制电路、 4 个 8 位并行 I/
51、O端口及一个可编程全双工串行接口。9存储器空间在物理结构上可划分为几个部分答:MCS-51 存储器是采用将程序存储器和数据存储器分开寻址的结构, 其存储器空间在物理结构上可划分为如下四个空间: 片内程序存储器、 片外程序存储器、 片内数据存储器、片外数据存储器。10MCS-51 的时钟周期、机器周期、指令周期的如何分配的当振荡频率为8MHz 时,一个单片机时钟周期为多少微秒答:MCS-51 的时钟周期是最小的定时单位,也称为振荡周期或节拍。一个机器周期包含12 个时钟周期或节拍。不同的指令其指令周期一般是不同的,可包含有14 个机器周期。当振荡频率为 8MHz 时,一个单片机时钟周期为s 。1
52、1中断服务子程序与普通子程序有哪些异同之处答:相同点:都是让 CPU 从主程序转去实行子程序, 执行完毕后又返回主程序。 不同点:中断服务子程序是随机执行的,而普通子程序是预先安排好的;中断服务子程序以 RETI结束,而一般子程序以 RET 结束。RETI 除了将短点弹回 PC 动作之外,还要清除对应的中断优先标志位(片内不可寻址的触发器) ,以便新的中断请求能被响应。12单片机对中断优先级的处理原则是什么答:低级不能打断高级,高级能够打断低级;一个中断以被响应,同级的被禁止;同级,按查询顺序,INT0T0INT1T1串行接口13MCS-51 的外部中断有哪两种触发方式他们对触发脉冲或电平有什
53、么要求答: 有电平触发和脉冲触发。 电平方式是低电平有效。 只要单片机在中断要求引入端INT0和 INT1 上采样到低电平时,就激活外部中断。脉冲方式则是脉冲的下条沿有效。这种方式下,在两个相邻机器周期对中断请求引入端进行采样中,如前一次为高,后一次为低,即为有效中断请求。因此在这两种中断请求信号方式下,中断请求信号的高电平状态和低电平状态都应至少维持一个周期以保电平变化能被单片机采样用。14什么是中断和中断系统其主要功能是什么答:当 CPU 正在处理某件事情的时候,外部发生的某一件事情请求CPU 迅速去处理,于是,CPU 暂时终止当前的工作,转去处理发生的事情,中断处理完该事件以后,再回到原
54、来被终止的地方,继续原来的工作。这种过程称为中断,实现这种功能部件称中断系统。功能: (1)使计算机具有实时处理功能,能对外界异步发生的事件作出及时的处理。 (2)完全消除了 CPU 在查询方式中的等待现象, 大大提高了 CPU 工作效率。 (3) 实现实时控制。15MCS-51 响应中断的条件答: (1)有中断源发出中断请求。(2)中断总允许位 EA=1,即 CPU 开中断。(3)申请中断的中断源的中断允许位为1,即中断没有被屏蔽。(4)无同级或更高级中断正在服务。(5)当前指令周期已经结束。(6)若现行指令为 RETI 或访问 IE 或 IP 指令时,该指令以及紧接着的另一条指令已执行完毕
55、。16、简述 MCS-51 单片机的中断响应过程。答:CPU 在每个机器周期 S5P2 期间顺序采用每个中断源,CPU 在下一个机器周期 S6 期间按优先级顺序查询中断标志, 如查询到某个中断标志为1,将在接下来的机器周期S1 期间按优先级进行中断处理, 中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。一旦响应中断, MCS-51 首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把当前的 PC 值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC,于是 CPU 接着从中断服务程序的入口处开始执行。 对于有些中断源,CPU 在响应中断后
56、会自动清除中断标志。17什么是中断优先级中断优先级处理的原则是什么答:通常,在系统中有多个中断源,有时会出现两个或更多个中断源同时提出中断请求的情况。 这就要求计算机既能区分各个中断源的请求, 又能确定首先为哪一个中断源服务。为了解决这一问题,通常给各中断源规定了优先级别,称为优先权或中断优先级。中断优先级处理的原则是:当两个或者两个以上的中断源同时提出中断请求时,计算机首先为优先权最高的中断源服务,服务结束后,再响应级别较低的中断源。18中断响应过程中,为什么通常要保护现场如何保护答:因为一般主程序和中断服务程序都可能会用到累加器、PSW 寄存器和其他一些寄存器。CPU 在进入中断服务程序后
57、,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一旦中断返回,将会造成主程序的混乱。因而在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序前再恢复现场。保护现场的一般方法是把累加器、PSW 寄存器及其他一些与主程序有关的寄存器压入堆栈。在保护现场和恢复现场时,为了不使现场数据受到破坏或者造成混乱,一般规定此时 CPU 不响应新的中断请求。这就要求在编写中断服务程序时,注意在保护现场前要关中断,在恢复现场后要开中断。如果在中断处理时允许有更高级的中断打断它,在保护现场之后要再开中断,恢复现场之前关中断。19串行数据传送的主要优点和用途是什么答:串行数据传送是将数据
58、按位进行传送的方式。其主要优点是所需的传送线根数少,对于远距离数据传送的情况,采用串行方式是比较经济的。所以窜行方式主要用于计算机与远程终端之间的数据传送。208155 有哪几种工作方式怎样进行选择答:8155 有 3 种工作方式,即通用 I/O 口、片外 256B 的 RAM 及定时器/计数器方式。当作为通用 I/O 口时,将 IO/M 引角置高电平,I/O 工作方式选择是通过对 8155 内部命令寄存器送命令字来实现的。当作为片外 256B 的 RAM 时,将 IO/M 引角置低电平。这时 8155 内部的 RAM 只能作片外 RAM 使用,其选址范围由片选线 CE(高位地址译码)和 AD
59、0AD7决定,应与应用系统中其他数据存储器统一编址。当作为定时器/计数器使用时,将 IO/M 引角置高电平,然后分别选择定时器/计数器的高、低8 位寄存器地址,通过对高8 位的搞位的设置可定义4 种输出波形。高8 位中的低 6 位和低 8 位寄存器中的 8 位用于放 14 位计数器的初值。21什么是 D/A 转换器简述 T 形电阻网络转换器的工作原理。答:在计算机控制的实时控制系统中,有时被控对象需要用模拟量来控制,模拟量是连续变化的电量。此时,就需要将数字量转换为相应的模拟量,以便操纵控制对象。这一过程即为“数/模转换”D/A 。能实现 D/A 转换的期间称为 D/A 转换器或 DAC。T
60、形电阻网络整个电路是有相同的电路环节所组成的, 每节有二个电阻(R 和 2R) 、一个开关, 相当于二进制数的一位, 开关由该位的代码所控制。 由于电阻接成 T 形解码网络。此电路采用了分流原理实现对输入为数字量的转换。22简述 LED 显示器的静态和动态显示原理。 LED 显示器的静态显示原理是:将LED 的阴极(或阳极)点连接在一起接地(或+5v),每一个的段选线(a、b、c、d、e、f、g、dp)分别与一个 8 位端口线相连。 LED 显示器的动态显示原理是:段选码端口IO1 用来输出显示字符的段选码,I02输出位选码。 IO1 不断送待显示字符的段选码, IO2 不断送出不同的位扫描码
61、,并使每位 LED 显示字符轮流停留显示一段时间, 一般为 1ms5ms, 利用眼睛的视觉暂留现象,从显示器上便可以见到稳定的数字显示。23单片机对矩阵式键盘进行管理的方式有哪几种简述各种管理方式的原理。 (1)单片机对矩阵式键盘进行管理的方式有程控扫描方式、定时扫描方式和中断扫描方式。 (2)程控扫描方式是利用程序连续地对键盘进行扫描。定时扫描方式是单片机定时地对键盘进行扫描。中断扫描方式是当有按键按下时引起中断后,单片机对键盘进行扫描。24DA 转换器与单片机接口常见的三种形式是什么分别适用于哪类的DA 转换器三种形式是: (1)直接与单片机相连。 (2)利用外加三态缓冲器或数据寄存器与单
62、片机相连。 (3)用并行 IO 接口芯片与单片机相连。第(1)种形式适用于 DA 内部有三态输入寄存器的 DA 转换器,第(2)种和第(3)种形式适用于 DA 内部没有三态输入寄存器的DA 转换器,需要外加三态缓冲器来保存单片机的输出数据。25DAC 的分辨率和单片机系统数据总线宽度相同或高于系统数据总线宽度时,其连接方法有何不同当 DAC 的分辨率等于系统数据总线宽度时, 转换器的数据位数和单片机的数据总线位数相同,数据同时送出。当DAC 的分辨率高于系统数据总线宽度时,转换器的数据位数比单片机的数据总线位数多,因此必须分两次将数据送出,先送高字节,后送低字节,或者相反,先送低字节,后送高字节。响应的接口电路设置两个锁存器,分别锁存高字节和低字节。为了防止两次送数出现间隙,而引出输出产生毛刺,必须同时选通存放两个字节的两个锁存器,一起送数到 DAC,进行 DA 转换。所以当 DAC 的分辨率高于系统数据总线宽度时要采用两级锁存