还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一、填空题1.单片机是把中央处理器、存储器、定时器/计数器以及I/O接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机
2.除了单片机这一名称之外,单片机还可称为微控制器、嵌入式控制器3.计算机的系统总线有地址总线、控制总线和数据总线4.80C51单片机基本型内部RAM有128个字节单元,这些单元可以分为三个用途不同的区域,一是工作寄存器区、二是位寻址区、三是数据缓冲区5.8051单片机有2个16位定时/计数器6.单片机存储器的主要功能是存储程序和数据80C51含4KB掩膜ROM7.80C51在物理上有4个独立的存储器空间8.通常、单片机上电复位时PC=0000H,SP=07H;而工作寄存器则缺省采用第00组,这组寄存器的地址范围是从00H~07H9.8051的堆栈是向地址的高端生成的入栈时SP先加1,再压入数据10.使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器11.MCS-51特殊功能寄存器只能采用直接寻址方式12.汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制13.半导体存储器的最重要的两个指标是存储容量和存储速度14.当PSW4=1PSW3=0时,工作寄存器Rn,工作在第2组15.在8051单片机中,由2个振荡(晶振)周期组成1个状态(时钟)周期,由6个状态周期组成1个机器周期16.假定累加器A的内容30H,执行指令1000H MOVCA,@A+PC后,把程序存储器1031H单元的内容送累加器A中17.MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号18.内部RAM中,位地址为30H的位,该位所在字节的字节地址为26H19.若A中的内容为63H,那么,P标志位的值为020.在基址加变址寻址方式中,以累加器A作变址寄存器,以DPTR或PC作基址寄存器21.指令格式是由操作码和操作数所组成,也可能仅由操作码组成22.通过堆栈操作实现子程序调用,首先就要把PC的内容入栈,以进行断点保护调用返回时,再进行出栈保护,把保护的断点送回到PC23.MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为64KB24.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址25.假定累加器A中的内容为30H,执行指令1000H MOVCA@A+PC后,把程序存储器1031H单元的内容送入累加器A中26.12根地址线可寻址4KB存储单元27.假定A=55H,R3=0AAH,在执行指令ANLAR3后,A=00H,R3=0AAH28.MCS-51的P0口作为输出端口时,每位能驱动8个LSTTL负载29.MCS-51有4个并行I/O口,其中P1~P3是准双向口,所以由输出转输入时必须先写入“1”30.MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域31.若不用MCS-51片内存储器,引脚EA必须接地32.MCS-51在外扩ROM、RAM或I/O时,它的地址总线是P
0、P2口33.MCS-51中凡字节地址能被8整除的特殊功能寄存器均能位寻址34.执行当前指令后,PC内容为下一条将要读取的指令码首地址35.当串口接收到一个数据,此时RI=1当串口发送完一个数据,此时TI=136.对于80C51无嵌套的单级中断,响应时间至少3个机器周期,最多8个机器周期37.晶振的频率为6MHz时,一个机器周期为2μS38当允许定时器1工作在方式1时控制字TMOD应为10H39.MCS-51单片机8031中有2个16位的定时/计数器,可以被设定的工作方式有四种40.MCS-51单片机有5个中断源,可分为2个中断优先级上电复位时外部中断0中断源的优先级最高41.用串行口扩展并行口时,串行接口的工作方式应选为方式042.若某8位D/A转换器的输出满刻度电压为+5V,则D/A转换器的分辨率为5/255=
0.0196V43.在串行通讯中,收发双方对波特率的设定应该是相等的44.单片机复位时P0的值为0FFH、PC为0000H45.外部中断1所对应的中断入口地址为0013H,T0中断服务程序入口地址为000BH46MCS-51系统中,当PSEN信号有效时,表示CPU要从程序存储器读取信息47.MCS-51片内20H~2FH范围内的数据存储器,即可以字节寻址又可以位寻址48.若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为MOVC49.MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器SCON加以选择50.当使用慢速外设时,最佳的传输方式是中断51.当定时器T0工作在方式3时,要占用定时器T1的TR1和TF1两个控制位52.MCS-51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP加以选择53.要串口为10位UART,工作方式应选为方式154.用串口扩并口时,串行接口工作方式应选为方式055.在串行通信中,有数据传送方向单工、半双工、全双工三种工作方式56.MOVPSW,#10H是将MCS-51的工作寄存器置为第2组57.指令DJNZR7,e操作码所在地址为3000H,e=EFH则它的转移目的地址应为2FF1H58.累加器(A)=80H,执行完指令ADDA,#83H后,进位位C=1执行ANLA,#0FH指令后,累加器A的高4位=000059.SJMPe的指令操作码地址为0050H,e=65H那么它的转移目的地址为00B7H60.设DPTR=2000H,(A)=80H,则MOVCA,@A+DPTR的操作数的实际地址为2080H61.十进制数—47用8位二进制补码表示为11010001—19D的二进制补码表示为11101101判断题
三、判断题1.8051单片机必须使用内部ROM ( x )
2、当EA脚接高电平时,对ROM的读操作只访问片外程序存储器( x )
3.51单片机只能做控制用,不能完成算术运算 ( x )
4.单片机内部RAM和外部RAM是统一编址的,它们的访问指令相同( x )
5.判断寻址方式
(1).MOVA,11H,是直接寻址√
(2).MOVAR0是寄存器寻址√
(3).MOVA#22HSUBBA#11HCy=1x
(4).MOVA@R0是寄存器间接寻址√
(5).MOVA#11H是立即数寻址√
6.下面几条指令是否正确
(1)MOV@R180Hx
(2)INCDPTR√
(3)CLRR0x
(4)MOV@R1#80H(√)
(5)ANLR1#0FH(x)
(6)ADDCAC(x)
(7)XORP1#31Hx
7.判断下面指令的运行结果
(1)MOVA#11HANLA#FFHA=11H√
(2)MOVA#11HORLA#FFHA=11HX8.累加器A中存放着一个其值小于等于127的8位无符号数,CY清“0”后执行RLCA指令,则A中数变为原来的2倍(√)
9.必须有中断源发出中断请求,并且CPU打开中断,CPU才可能响应中断( √ )
10.E2PROM不需紫外线能擦除,如2816在写入时就能自动完成擦除( √ )
11.8155是一种8位单片机 ( x )
12.MCS-51的中断源全部编程为同级时,优先级最高的是INT1(x)
13.指令AJMP的跳转范围是1KB(x)
14.外部中断0的入口地址是0003H(√)
15.MCS-51有中断源5个√
16.A/D转换器的作用是将模拟量转换为数字量;D/A转换器的作用是将数字量转为模拟量( Y )
17.MOVXA,3057H(x)
18.ANLR1,#0FH(x)
19.MCS-51单片机的CPU能同时处理8位二进制数据 ( √ )
20.当EA脚接高电平时,对ROM的读操作只访问片外程序存储器 ( x )
21.读内部ROM时使用的是“MOV”指令,读外部RAM时使用的是“MOVX”指令( x )
22.51单片机只能做控制用,不能完成算术运算 (x )
23.单片机内部RAM和外部RAM是统一编址的,它们的访问指令相同( x )
24.扩展I/O口占用片外数据存储器的地址资源( √ )
25.8051单片机必须使用内部ROM ( x )
26.指令AJMP的跳转范围是1KB(x)
27.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称(√)
28.MCS-51上电复位时,SBUF=00H(x)
29.使用可编程接口必须初始化(√)
30.8155的复位引脚可与89C51的复位引脚直接相连(√)
31.MCS-51是微处理器(x)
32.MCS-51系统可以没有复位电路(x)
33.MCS-51系统中,一个机器周期等于
1.5μs(x)
34.计算机中常用的码制有原码、反码和补码(√)
35.若不使用MCS-51片内存储器,引脚EA必须接地.(√)
36.十进制数-29的8位补码表示为11100010(x)
37.MCS-51的相对转移指令最大负跳距是127B(x)
38.MCS-51的程序存储器只是用来存放程序的(x)
39.MCS-51的时钟最高频率是18MHz.x.
40.使用可编程接口必须初始化(√)
41.当MCS-51上电复位时,堆栈指针SP=00H(x)
42.MCS-51外扩I/O口与外RAM是统一编址的(√)
43.使用8751且=1时,仍可外扩64KB的程序存储器(x)
44.PC存放的是当前执行的指令(x)
45.MCS-51的特殊功能寄存器分布在60H~80H地址范围内(x)
46.调用子程序指令(如CALL)及返回指令(如RET)与堆栈有关但与PC无关(x)
47.MCS-51的5个中断源优先级相同(x)
48.要进行多机通信,MCS-51串行接口的工作方式应为方式1(x)
49.TMOD中的GATE=1时,表示由两个信号控制定时器的启停(x)
50.MCS-51有4个并行I\O口其中P0~P3是准双向口所以由输出转输入时必须先写入0(x)
51.片内RAM与外部设备统一编址时,需要专门的输入/输出指令(x)
52.8031片内有程序存储器和数据存储器(x)
53.EPROM的地址线为11条时,能访问的存储空间有4K(x)
54.8255A内部有3个8位并行口即A口,B口,C口(x)
55.8155芯片内具有256B的静态RAM,2个8位和1个6位的可编程并行I/O口,1个14位定时期等常用部件及地址锁存器x
56.为了消除按键的抖动,常用的方法有硬件和软件两种方法√
57.8031的CPU是由RAM和EPROM所组成x
58.区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端x
59.在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1√
60.PC可以看成是程序存储器的地址指针(x)61.DPTR是可以访问的,而PC不能访问(√)62.DPTR和PC都是16位的存储器(√)63.DPTR可以分为两个8位的寄存器使用,但PC不能(√)64.程序计数器PC不能为用户编程时直接使用,因为它没有地址(√)65.内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用(x)66.8031共有21个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的(x)67.PC是1个不可寻址的特殊功能寄存器(x)68.单片机的主频越高,其运算速度越快(√)69.在MCS-51单片机中,1个机器周期等于1us(x)70.特殊功能寄存器SP内装的是栈顶首地址单元的内容(x)71.立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中(√)72.指令周期是执行一条指令的时间(√)73.指令中直接给出的操作数称为直接寻址(x)74.串行口通信的第9数据位的功能可由用户定义(√)75.发送数据的第9数据位的内容在SCON寄存器的TB8位预先准备好的(√)76.串行通讯发送时,指令把TB8位的状态送入发送SBUF(x)77.串行通讯接收到的第9位数据送SCON寄存器的RB8中保存(√)78.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出设定(√)79.一台计算机的指令系统就是它所能执行的指令集合(√)80.以助记符形式表示的计算机指令就是它的汇编语言(√)81.PC、A、DPTR、PSW都能为程序存储器提供和构成地址(x)82.假定累加器A的内容为30H,执行指令1000H MOVCA,@A+PC后,把程序存储器1030H单元的内容送累加器A中(x)
三、选择题
1.80C51基本型单片机内部程序存储器容量为(C)(A)16K(B)8K(C)4K(D)2K
2.在80C51单片机应用系统中,可以作为时钟输出的是(C)引脚(A)RXD(B)RST(C)ALE(D)XTAL
13.在80C51的4个并行口中,能作为通用I/O口和高8位地址总线的是(C)(A)P0(B)P1(C)P2(D)P
34.所谓CPU是指( A )A、运算器和控制器 B、运算器和存储器C、输入输出设备 D、控制器和存储
5.在80C51中,要访问SFR使用的寻址方式为(A)(A)直接寻址(B)寄存器寻址(C)变址寻址(D)寄存器间接寻址
6.以下的4条指令中,不合法的指令为(D)(A)INCA(B)DECA(C)INCDPTR(D)SWAPACC
7.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是(B)(A)MOV(B)MOVX(C)MOVC(D)以上都是
8.指令AJMP的跳转范围是(C)(A)256B(B)1KB(C)2KB(D)64KB
9.在CPU内部,反映程序运行状态或反映运算结果的一些特征的寄存器是(B)(A)PC(B)PSW(C)A(D)SP
10.下列四条叙述中,有错误的一条是(A)(A)16根地址线的寻址空间可达1MB(B)内存储器的存储单元是按字节编址的(C)CPU中用于存放地址的寄存器称为地址寄存器(D)地址总线上传送的只能是地址信息
11.PSW=18H时,则当前工作寄存器是(D)(A)0组 B1组 (C)2组 (D)3组
12.8051与8751的区别是(C)(A)内部数据存储单元数目的不同(B)内部数据存储器的类型不同(C)内部程序存储器的类型不同(D)内部的寄存器的数目不同
13.在家用电器中使用单片机应属于微计算机的(B)(A)辅助设计应用(B)测量、控制应用(C)数值计算应用(D)数据处理应用
14.中断查询确认后,在下列各种8031单片机运行情况中,能立即进行响应的是(D)(A)当前正在执行高优先级中断处理(B)当前正在执行RETI指令(C)当前指令是DIV指令,且正处于取指令的机器周期(D)当前指令是MOVAR
315.下列说法错误的是(B)(A)同一级别的中断请求按时间的先后顺序响应(B)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应(C)低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求(D)同级中断不能嵌套
16.定时器/计数器工作于模式1时,其计数器为几位?( B )A8位 B16位 C14位 D13位
17.堆栈数据的进出原则是(B)A先进先出B先进后出C后进后出D进入不出
18.开机复位后,CPU使用的是寄存器第一组,地址范围是(B)A00H-10HB00H-07HC10H-1FHD08H-0FH
19.若某存储器芯片地址线为12根那么它的存储容量为(C)A1KBB2KBC4KBD8KB
20.控制串行接口工作方式的寄存器是(C)ATCONBPCONCSCONDTMOD
21.要使MCS-51能够响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是(A)(A)98H(B)84H(C)42H(D)22H
22.51执行完MOVA,#08H后,PSW的一位被置位(D)(A)C(B)F0(C)OV(D)P
23.计算机中最常用的字符信息编码是(A)AASCIIBBCD码C余3码D循环码
24.某种存储器芯片是8KB*4/片,那么它的地址线根数是(C)A11根(B)12根(C)13根(D)14根
25.在MCS-51系统中,若晶振频率是8MHz,一个机器周期等于Aμs(A)
1.5(B)3(C)1(D)
0.
526.MCS-51的时钟最高频率是A.(A)12MHz(B)6MHz(C)8MHz(D)10MHz
27.P1口的每一位能驱动( B )(A)2个TTL低电平负载 (B)4个TTL低电平负载(C)8个TTL低电平负载 (D)10个TTL低电平负载
28.对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令
29.要想测试INT0引脚上的一个正脉冲宽度那么特殊功能寄存器TMOD的内容应为AA09HB87HC00HD80H
30.在中断服务程序中至少应有一条D(A)传送指令(B)转移指令(C)加法指法(D)中断返回指令
31.控制串行口工作方式的寄存器是( C )(A)TCONBPCONCSCONDTMOD
32.下列说法正确的是(D)(A)各中断发出的中断请求信号,都会标记在MCS-51系统的IE寄存器中(B)各中断发出的中断请求信号,都会标记在MCS-51系统的TMOD寄存器中(C)各中断发出的中断请求信号,都会标记在MCS-51系统的IP寄存器中(D)各中断发出的中断请求信号,都会标记在MCS-51系统的TCON与SCON寄存器中
33.下面哪一种传送方式适用于处理外部事件CADMAB无条件传送C中断D条件传递
34.MOVC,#00H的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址
35.MCS-51系列中断源有( A )(A)5个 (B)2个 (C)3个 (D)6个
36.使用定时器T1时,有几种工作模式( C )(A)1种 B)2种C)3种(D)4种
37.执行MOVXA,@DPTR指令时,MCS-51产生的控制信号是(C)(A)/PSEN(B)ALE(C)/RD(D)/WR
38.当优先级的设置相同时,若以下几个中断同时发生,(D)中断优先响应(A)外部中断1(B)T1(C)串口(D)T
039.当需要扩展一片8K的RAM时,应选用的存储器为(B)(A)2764(B)6264(C)6116(D)
6212840.若想扩展键盘和显示,并希望增加256字节的RAM时,应选择(A)芯片(A)8155(B)8255(C)8279(D)74LS1644180C51单片机要进行10位帧格式的串行通讯时,串行口应工作在(B)(A)方式0(B)方式1(C)方式2(D)方式
342.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是(A)(A)98H(B)84H(C)42(D)22H
43.CPU寻址外设端口地址的方法有两种,一种是统一编址,还有一种是(C)(A)混合编址(B)动态编址(C)独立编址(D)变址编址
44.MCS-51外扩一个8255时,需占用(D)个端口地址(A)1个(B)2个(C)3个(D)4个45.MCS-51用串行扩展并行I/O口时,串行接口工作方式选择(A)(A)方式0(B)方式1(C)方式2(D)方式346.使用8255可以扩展出的I/O口线是(B)(A)16根(B)24根(C)22根(D)32根47.当8031外出扩程序存储器8KB时,需使用EPROM2716(C)(A)2片(B)3片(C)4片(D)5片48.MCS-51外扩ROM,RAM和I/O口时,它的数据总线是(B)(A)P0(B)P1(C)P2(D)P349.MCS-51在响应中断时下列哪种操作不会发生A.A保护现场B保护PCC找到中断入口D保护PC转入中断入口50.MCS-51响应中断时,下面哪一个条件不是必须的(D)(A)当前指令执行完毕(B)中断是开放的(C)没有同级或高级中断服务(D)必须有RET1指令
51.计算机在使用中断方式与外界交换信息时保护现场的工作方式应该是CA由CPU自动完成B在中断响应中完成C应由中断服务程序完成D在主程序中完成52.6264芯片是(B)(A)EEPROM (B)RAM (C)FLASHROM (D)EPROM53.8051与8751的区别是(C)(A)内部数据存储但也数目的不同(B)内部数据存储器的类型不同(C)内部程序存储器的类型不同(D)内部的寄存器的数目不同54.PC的值是(C)(A)当前正在执行指令的前一条指令的地址(B)当前正在执行指令的地址(C)当前正在执行指令的下一条指令的地址(D)控制器中指令寄存器的地址55.访问片外数据存储器的寻址方式是(D)(A)立即寻址(B)寄存器寻址(C)寄存器间接寻址(D)直接寻址56.当8031外扩程序存储器32KB时,需使用EPROM2764(C)(A)2片(B)3片(C)4片(D)5片57.当使用快速外部设备时,最好使用的输入/输出方式是(C)(A)中断(B)条件传送(C)DMA(D)无条件传送58.MCS-51的中断源全部编程为同级时,优先级最高的是(D)(A)INT1(B)TI(C)串行接口(D)INT059.MCS-51的并行I/O口信息有两种读取方法一种是读引脚,还有一种是(A)(A)读锁存器(B)读数据库(C)读A累加器(D)读CPU60.MCS-51的并行I/O口读-改-写操作,是针对该口的(D)(A)引脚(B)片选信号(C)地址线(D)内部锁存器61.在MCS-51中,需要外加电路实现中断撤除的是(D)(A)定时中断(B)脉冲方式的外部中断(C)外部串行中断(D)电平方式的外部中断62.串行口工作方式1的波特率是(C)(A)固定的,为(B)固定的,为(C)可变的,通过定时器/计数器T1的溢出率设定(D)固定的,为63.80C51单片机要进行10位帧格式的串行通讯时,串行口应工作在(B)(A)方式0(B)方式1(C)方式2(D)方式364.80C51复位初始化时未改变SP的内容,第一个入栈的单元地址为(A)(A)08H(B)80H(C)00H(D)07H
65.51系列单片机有五个中断源外中断INT1的入口地址是C,定时器T0的中断入口地址是BA、0003HB、000BHC、0013HD、001BHE、0023H
四、程序分析及编程
1.设A=04HCY=1写出下列各条指令的结果RLA;(A)=08HRRA;(A)=02HRLCA;(A)=09HRRCA;(A)=82H
2.设A=7AHR0=30H30H=A5HCY=1写出下列各条指令的结果MOVAR0A=30HR0=30HXCHAR0A=30HR0=30HXCHDA@R0A=A5HR0=30H30H=30HADDA#30HA=D5HCY=1ADDCA30HA=06HCY=1SUBBA#30HA=D5HCY=
13.下列程序段的功能是什么?PUSHAPUSHBPOPAPOPB答交换A、B的内容
4.已知程序执行前有A=02H,SP=52H,(51H)=FFH,52H=FFH下述程序执行后请问A=(),SP=(),(51H)=(),(52H)=(),PC=()POPDPHPOPDPLMOVDPTR#4000HRLAMOVBAMOVCA@A+DPTRPUSHAMOVABINCAMOVCA@A+DPTRPUSHARETORG4000HDB10H80H30H50H30H50H答(A)=50H(SP)=50H51H=30H52H=50H(PC)=5030H
5.假定A=83H,(R0)=17H,(17H)=34H,执行以下指令后,A的内容为()ANLA#17HORL17HAXRLA@R0CPLA答0CBH
6.如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后则DPH=(),DPL=(),SP=()POPDPHPOPDPLPOPSP答DPH=3CHDPL=5FHSP=4FH
7.假定,SP=60H,A=30H,B=70H,执行下列指令后,SP的内容为(),61H单元的内容为(),62H单元的内容为()PUSHAPUSHB答62H30H70H
8.计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为12MHz)MOVR3#15H;1个机器周期DL1:MOVR4#255;1个机器周期DL2:MOVP1R3;2个机器周期DJNZR4DL2;2个机器周期DJNZR3DL1;2个机器周期RET;2个机器周期答15348us析((2+2)×255+1+2)×15+1+2=15348us
9.假定A=83H,(R0)=17H,(17H)=34H,执行以下指令后,A的内容为()ANLA#17HORL17HAXRLA@R0CPLA答0CBH
10.如果DPTR=507BH,SP=32H,30H=50H,31H=5FH,32H=3CH则执行下列指令后DPH内容为(),DPL内容为(),SP内容为()POPDPH;POPDPL;POPSP;答DPH=3CH,(DPL)=5FH,(SP)=50H
11.假设外部数据存储器2000H单元的内容为80H,执行下列指令后,累加器A中的内容为()MOVP2,#20HMOVR0,#00HMOVXA,@R0答累加器A中的内容为(80H)
12.阅读下列程序段并回答问题1).该程序执行何种操作2).已知初值(60H)=23H,(61H)=61H,运行程序后62H内容()CLRCMOVA,#9AHSUBBA,60HADDA,61HDAAMOV62H,A答1)、该程序是单字节BCD码运算,是将(61H)—(60H)→62H2)、(62H)=38H
13.试编写1个程序,将内部RAM中45H单元的高4位清0,低4位置1答MOVA45HANLA#0FHORLA#0FHMOV45HA
14.试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”答START:MOVR0#30HMOVR2#20HLOOP:MOVA@R0CJNEA#0AAHNEXTMOV51H#01HLJMPEXITNEXT:INCR0DJNZR2LOOPMOV51H#00HEXIT:RET
15.编写程序,要求使用T0,采用方式2定时,在P
1.0输出周期为400μs,占空比为10:1的矩形脉冲解根据题意,从P
1.0输出的矩形脉冲的高低电平的时间为10:1,则高低电平的时间分别为
363.63μs和
36.37μs如果系统采用6MHz晶振的话,,因此高低电平输出取整,则约为364μs和36μs编写程序如下ORG0000HLJMPMAINORG000BHLJMPIT0PMAIN:MOVTMOD#02H;定时器/计数器T0为定时方式2MOVTL0#4AH;定时364μs初值赋值SETBTR0;启动T0,开始计数SETBET0;允许T0中断SETBEA;CPU开中断SETBP
1.0WAIT:AJMPWAITIT0P:CLREACLRP
1.0;关中断MOVR0#9DLY:DJNZR0DLY;延时26μsMOVTL0#4AH;定时364μs初值赋值SETBP
1.0SETBEARETI
16.设在外部RAM中有三个连续单元2001H,2002H,2003H,其中2001H和2002H单元中分别存放两个8位无符号二进制数,比较这两个数的大小,然后将大数送到2003H单元COMPARE:MOVDPTR#2001HMOVXA@DPTRMOVR0AINCDPTRMOVXA@DPTRSUBBAR0JNCLOOPMOVAR0INCDPTRMOVX@DPTRARETLOOP:INCDPTRMOVX@DPTRARET
17.将内部RAM40H开始的10个单元,搬移到50H开始的10个单元中MOVR0#40HMOVR1#50HMOVR2#10LOOP1:MOVA@R0MOV@R1AINCR0INCR1DJNZR2LOOP1RET
18.设单片机晶振频率为6MHz使用定时器0以工作方式2,在P
1.5引脚输出一个周期为200us连续方波?解MOVTMOD#02HMOVTH0#0CEHMOVTL0#0CEHSETBTR0LOOP:JBCTF0LOOP1AJMPLOOPLOOP1:CPLP
1.
019.编写一段程序,功能要求为当P
1.0引脚的电平正跳变时,对P
1.1的输入脉冲进行计数;当P
1.2引脚的电平负跳变时,停止计数,并将计数值写入R
0、R1高位存R1,低位存R0答将P
1.1的输入脉冲接入INT0,即使用T0计数器完成对P
1.1口的脉冲计数编写程序如下ORG0000HLJMPMAINORG000BHLJMPIT0PMAIN:JNBP
1.0MAINMOVTMOD#05H;定时器/计数器T0为计数方式1SETBTR0;启动T0,开始计数SETBET0;允许T0中断SETBEA;CPU开中断WAIT:JBP
1.2WAITCLREACLRTR0MOVR1TH0MOVR0TL0AJMP$IT0P:INCR2RETI
20.试编写一个程序(例如将05H和06H拼为56H),设原始数据放在片外数据区2001H单元和2002H单元中,按顺序拼装后的单字节数放入2002H答编程思路首先读取2001H的值,保存在寄存器A中,将寄存器A的高四位和低四位互换,再屏蔽掉低四位然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后将寄存器A的值与30H进行或运算,将运算后的结果保存在2002H中ORG0000HMAIN MOVDPTR,#2001H;设置数据指针的初值MOVXA,@DPTR;读取2001H的值SWAPAANLA,#0F0H;屏蔽掉低四位MOV30H,A;保存AINCDPTR;指针指向下一个MOVXA,@DPTR;读取2002H的值ANLA,#0FH;屏蔽掉高四位ORLA,30H;进行拼装MOVX@DPTR,A;保存到2002HEND
21.编写程序,将外部数据存储器中的4000H—40FFH单元全部清零解本题主要考察了对外部数据块的写操作;编程时只要注意循环次数和MOVX指令的使用就可以了ORG0000HMAIN MOVA,#0;送预置数给AMOVR0,#0FFH;设置循环次数MOVDPTR,#4000H;设置数据指针的初值LOOP MOVX@DPTR,A;当前单元清零INCDPTR;指向下一个单元DJNZR0,LOOP;是否结束END
22.编写程序,采用8255A的C口按位置位/复位控制字,将PC7置0,PC4置1,(已知8255A各端口的地址为7FFCH-7FFFH)解本题主要考察对8255A的C口的操作其方式控制字的高位为0时,低四位对C口进行置位由题目我们得到了方式控制字的地址为7FFFHORG0000HMAIN:MOVDPTR#7FFFH;控制字寄存器地址送DPTRMOVA#0EH;将PC7置0MOVX@DPTRAMOVA#09H;将PC4置1MOVX@DPTRAEND
23.试编写逻辑运算程序,功能为F=XY+Z;F=XYZ其中FXYZ均为位变量,依次存在以30H为首址的位寻址区中解
(1)FBIT30HXBIT31HYBIT32HZBIT33HLOG1:MOVCY;Y→CORLCZ;Y+Z→CANLCX;XY+Z→CMOVFC;XY+Z→FRET;解
(2)LOG2:MOVCY;Y→CANLCZ;YZ→CANLC/X;XYZ→CCPLC;XYZ→CMOVFC;XYZ→FRET;
24.试编写程序,统计内RAM30H~50H单元中FFH的个数,并将统计结果存51H解编程如下LOKF:MOV51H#0;计数器清零MOVR0#30H;置数据区首址LOP:MOVA@R0;读数据CPLA;取反JNZLP1;判FFH,非FFH,转INC51H;FFH,计数LP1:INCRO;指向下一数据CJNER0,#51H,LOP;判循环RET25.试编写程序,找出外RAM2000H~200FH数据区中的最小值,并放入R2中解编程如下SECH:MOVDPTR,#2000H;置外RAM数据区首址MOVR2,#OFH;置外RAM数据区长度(N-1)MOVXA,@DPTR;读第一个数据MOVBA;假设第一个数据为最小值SLOP:INCDPTR;指向下一个数据MOVXA,@DPTR;读下一个数据CJNEA,B,SLP1;新数据与最小值比较SLP1:JNCSLP2;新数据≥最小值,判断循环MOVBA;新数据<最小值,新数据→BSLP2:DJNZR2,SLOP;判循环结束否?MOVR2,B;最小值→R2RET26.已知ROM中存有0~100的平方表,首地址为TABDS,试根据累加器A≤100中的数值查找对应的平方值,存入内RAM31H30H双字节解编程如下DSQR:MOVDPTR,#TABDS;置ROM平方表首地址ADDA,Acc;A×2→AMOVCA,@A+DPTR;读平方值高8位MOV31H,A;平方值高8位→31HINCA;指向平方值低8位MOVCA,@A+DPTR;读平方值低8位MOV30H,A;平方值低8位→30HRETTABDS DW0,0,0,1,0,4,0,9,0,16,0,25,…,27H,10H;0~100平方表(双字节)
27.试编程实现3字节无符号数加法R7R6R5+R4R3R2→@R03个连续单元解编程如下ADD3MOVAR5ADDA,R2;低位加MOV@R0,A;存低位和INCR0;修改存储单元MOVA,R6;ADDCA,R3;中位加MOV@R0,A;存中位和INCR0;修改存储单元MOVA,R7;ADDCA,R7;高位加MOV@R0,A;存高位和RET
28.试编写程序,将外部RAM2000H~20FH数据块,传送到3000H~30FFH区域解编程如下DMOV:MOVDPTR,#2000H;置源数据区首址MOVR2,#00H;置数据长度(256个)DLOP:MOVXA,@DPTR;读数据MOVDPH,#30H;置目的数据区高8位地址MOVX@DPTR,A;存数据MOVDPH,#20H;置源数据区高8位地址INCDPTR;修改源数据区地址DJNZR2,DLOP;判循环结束否?RET
29.从内RAM20H单元开始存有一组带符号数(补码),其个数已存放在1FH单元要求统计其中大于0,等于0和小于0的数的个数,并把统计结果分别存入ONE,TWO,THREE3个单元解编程如下ONEEQU30HTWOEQU31HTHREEEQU32HSTOR MOVR0#20H;置数据区首址SLOP:MOVA@R0;读数据JZLP1;数据=0,转JBAcc.7,LP2;数据<0,转INCONE;数据>0,ONE单元加1LP0:INCRO;指向下一数据DJNZ1FH,SLOP;判统计结束否?未结束循环RET;统计结束,TWO单元加1LP1:INCTWO;数据=0,TWO单元加1SJMPLPO;返回循环体LP2:INCTHREE;数据<0,THREE单元加1SJMPLPO;返回循环体
30.设在内部数据存储器中存放有20个字节数据,其起始地址为M试编写程序,找出数0AH的存放地址,并送入N单元若OAH不存在,则将N单元清零解程序如下MEQU30HNEQU2FHSECH:MOVR0#MMOVR1#20LOOP:CJNE@R0#0AHLP1MOVNR0RETLP1:INCR0DJNZR1LOOPMOVN#0RET
31.试编写程序,求出内RAM20H单元中“1”的个数,并将结果存入21H单元解编程如下LOK1:MOV21H#OMOVR2#08HMOVA20HLOP:RLCAJNCLP1JNC21HLP1DJNER2LOPRET
32.试编写统计数据区长度的程序,设数据区从内RAM30H开始,该数据区以0结束,统计结果送入2FH中解编程如下ADUP:MOV2FH#0MOVR0#30HALOP:MOVA@R0JNZLP1RETLP1:INC2FHINCR0SJMPALOP
33.从内RAM30H单元开始存放着一组无符号数,其个数存在21H单元中试编写程序,找出其中最小的数,并将其存入20H单元中解编程如下SECH:MOVRO#3OHMOV20H#FFHSLOP:MOVA@R0CJNEA20HNEXTNEXT:JNCSLP1MOV20HASLP1:INCR0DJNZ21HSLOPRET
34.用程序实现c=a2+b2设a2b2存于内RAMAABB单元;c为双字节,存于内RAMCCDD单元解该题可用于程序来实现通过两次调用查平方表子程序来得到a和b,并在主程序中完成相加编程如下AAEQU40HBBEQU41HCCEQU42HDDEQU43HFUNC:MOVAAALCALLDSQRMOVDDAMOVCC31HMOVABBLCALLDSQRADDADDMOVDDAADDCACCMOVCCARET35.利用定时、计数器T1测量某正脉冲宽度,并存入内RAM31H30H设fosc=12MHz,脉冲从P
3.3引脚输入,宽度小于65536us解编程如下PLUS:MOVTMOD#90HMOVTH1#0MOVTL1#0JBP
3.3$SETBTR1JNBP
3.3$JBP
3.3$CLRTR1MOV31HTHOMOV30HTLORET
36.设在内部RAM中50H开始有连续的10个单元,求这10个单元之和,结果放在60H61H低位放在60H,高位在61H.解程序编写如下ORG0000HACALLADDTENWAIT:AJMPWAITADDTEN:MOVR050HMOVR1#10MOVA#00HMOV60HAMOV61HALOOP1:ADDA@R0INCR0MOV60HAJCLOOP2DJNZR1LOOP1RETLOOP2:MOVA61H;ADDA#01HDJNZR1LOOP1RETEND。