还剩21页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《单片机基础》练习题及答案第1章计算机基础知识
(一)填空题
1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(OEH)o十进制数TOO的补码为(9CH),+100的补码为(64H)o
2.在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的
(4)倍
3.8位无符号二进制数能表示的最大十进制数是
(255)带符号二进制数11001101转换成十进制数是(-51)
4.可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)
5.已知字符D的ASCH码是十六进制数44,则字符T的ASCH码是十进制数
(84)
6.若某存储器容量为640KB,则表示该存储器共有
(655360)个存储单元
7.在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)
8.设二进制数A=10101101,B=01110n0,则逻辑运算AVB=
(11111111),A AB二
(00100100),A㊉B二
(11011011)o
9.机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+157或-115),机器数10001101的真值是(+206或-50)
(二)单项选择题
1.用8位二进制补码数所能表示的十进制数范围是(D)(A)-127〜+127(B)-128〜+128(C)-127〜+128(D)-128〜+
1272.下列等式中,正确的是(B)A1KB=1024X1024B B1MB=1024X1024B
3.下列程序中,X、Y和Z为输入的8位无符号二进制数,F为输出的逻辑运算结果试画出该程序所模拟的组合逻辑电路MOV A,X ANL A,Y MOV RI,A MOV A,Y XRLA,Z CPLA ORL A,RI MOVF,A
4.分析下列跳转程序,程序中A与30H单元中的数都是符号数,说明当A二30H时转向L00P1,当A30H时转向L00P2,当A30H时转向L00P3MOV RO,A;RO-A ANL A,#8011JNZ NEG;A0,转NEG MOV A,30H ANLA,#80H JNZL00P2;A20,30H0,转L00P2SJMP COMP;A20,30H20,转COMP NEG:MOV A,30H ANLA,#8011JZ L00P3;A0,30H20,转L00P3COMP:MOV A,R0CJNE A,30H,NEXT;AW30H,转NEXT SJMPL00P1;A=30H,转LOOP1NEXT:JNC L00P2;A30H,转L00P2JC LOOP3;A3011,转L00P3综上分析可知,当A=3011时转向L00P1,AX30II时转向L00P2,A30H时转向L00P
35.假定80c51的晶振频率为6MHz,下列程序的执行时间为
30.696ms o已知程序中前2条指令机器周期数为1,后4条指令机器周期数为2MOV R3,#151周期DL1:MOV R4,#2551周期DL2:MOV Pl,R32周期DJNZ R4,DL22周期DJNZ R3,DL12周期RET2周期执行时间:T={[2+2*255+2+1]*15+2+1}*2=30696u s二编程题
1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位于外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕,试编程实现ORG0030H MOV R0,ttinbuf MOV DPTR,ttoutbuf MOV R4,#1011LOOP:MOV A,@R0;从内部RAM取数CJNE A,#0DH,LL;是否为回车符CR SJMPSTOP;是回车符,则转STOP,停止传送LL:MOVX@DPTR,A;不是回车符,则传送到外部RAM INC RO INC DPTR DJNZ R4,LOOP;没传送完则循环STOP:SJMP$
2.内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以-1作结束标志编程实现找出表中最小数分析从list+1单元开始判断其中的数是否为T,将比较得到的小数放入累加器A ORG0030H MOV RO,ftlist MOV A,@R0;取第一个正数LOOP:INC RO;指向下一个正数MOV30H,@R0CJNE A,30H,CHK;前一个数与后一个数比较CHK:JC LOOP1;前一个数小,则转LOOP1MOV A,30H;前一个数大,取后一个数LOOP1:XCH A,30H CJNE A,#OFFH,LOOP;判断后一个数是否为T XCH A,30H;取最小数SJMP$
3.内部RAM的X,Y单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中若X为正奇数,Z=X+Y;若X为正偶数,Z=XVY;若X为负奇数,Z=XAY;若X为负偶数,Z二乂㊉丫分析正数第7位为0,负数第7位为1;奇数第0位为1,偶数第0位为0方法1利用ANL指令判断正负、奇偶ORG0030H MOV A,X ANLA,#8011;判断X正负JNZ NEG;若X为负,转NEG MOV A,X;X为正ANLA,#01H;判断X奇偶JZ EVEN1;若X为偶数,转EVEN1MOV A,X ADD A,Y;若X为正奇数,Z=X+Y SJMPRESULT EVEN1:MOV A,X ORLA,Y;若X为正偶数,Z=XVY SJMPRESULT NEG:MOV A,X;X为负ANLA,#01H;判断X奇偶JZ EVEN2;若X为偶数,转EVEN2MOV A,X ANLA,Y;若X为负奇数,Z=XAY SJMPRESULT EVEN2:MOV A,X;若X为负偶数,Z=XeY XRLA,Y方法2RL指令将符号位移入CY判断正负,RR指令将最低位移入CY判断奇偶MOV A,X CLRC RLC A JCNEG;X为负,转至NEG RRC A RRC A JNC EVEN1;X为偶数,转至EVEN1MOV A,X ADD A,Y;X为正奇数,Z=X+Y SJMPRETULT EVEN1:MOV A,X ORLA,Y;X为正偶数,Z=XVY SJMPRETULT NEG:RRC A,RRC AJNCEVEN2MOV A,X ANLA,Y;X为负奇数,Z=XAY SJMPRETULT EVEN2:MOV A,X XRLA,Y;X为负偶数,Z=X©Y RETULT:MOV Z,A END
4.把一个8位二进制数的各位用ASCII码表示之(例如,为0的位用30H表示,为1的位用31H表示等)该数存放在内部RAM的byte单元中变换后得到的8个ASCH码存放在外部RAM以buf开始的存储单元中,试编程实现ORG0030H MOV DPTR,#buf MOVRO,#byte MOVR7,#08H MOV A,@RO CLRC LOOP1:RRC A MOVR6,A JCONE MOV A,#30H SJMPL00P2ONE:MOV A,#31H LOOP2:MOVX@DPTR,A INCDPTR MOV A,R6DJNZR7,LOOP
15.编程实现运算式假定a、b、c3个数分别存放于内部RAM的DA、DB、DC单元中,另有平方运算子程序SQR供调用ORG0030H MOVA,DA PUSH ACC ACALLSQR POP ACC MOVDC,AMOVA,DB PUSH ACC ACALLSQR POP ACC ADD A,DC MOVDC,A SQR:POPACC MOV B,A MULAB PUSH ACC RETEND
6.试编程实现两个ASCH码字符串是否相等字符串的长度在内部RAM41H单元中,第1个字符串的首地址为42H,第2个字符串的首地址为52H如果两个字符串相等,则置内部RAM40H单元为00H;否则置40H单元为FFH ORG0030H MOVRO,#42H MOV RI,#5211MOVR7,4111LOOP:MOVA,@R0MOV30H,@R1CJNEA,30H,LK INC RO INC RI DJNZR7,LOOP MOV40H,#0011SJMP DDLK:MOV40H,#OFFH DD:SJMP DD7•在外部RAM首地址为table的数据表中,有10字节数据试编程实现将每个字节的最高位无条件置1ORG0030H MOVDPTR,#table MOVR6,#10LOOP:MOVX A,@DPTR SETB ACC.7MOVX@DPTR,A INCDPTR DJNZR6,LOOP第6章80C51单片机的中断与定时
(一)填空题1,中断技术是解决资源竞争的有效方法,因此,可以说中断技术实质上是一种资源(共享)技术
2.上电复位后,各中断优先级从高到低的次序为(外部中断0)、(定时器/计数器0中断)、(外部中断1)、(定时器/计数器1中断)和(串行中断)
3.响应中断后,产生长调用指令LCALL,执行该指令的过程包括首先把(PC)的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(PC),使程序执行转向(ROM)中的中断地址区
4.当计数器产生计数溢出时,把定时器控制寄存器的TFO(TFl)位置1对计数溢出的处理,在中断方式时,该位作为(中断请求标志位)使用;在查询方式时,该位作(查询状态位)使用
5.定时器1工作于方式3做波特率发生器使用时,若系统晶振频率为12MHz,可产生的最低波特率为(
15.26b/s),最高波特率为(1000000b/s)对于12MHz的晶振,一个机器周期为lus,定时器1做波特率发生器使用时,若工作于方式1,计数初值为3则波特率最低,为若计数初值为65535,则波特率最高,为
6.定时器0工作于方式2的计数方式,预置的计数初值为156,若通过引脚T0输入周期为1ms的脉冲,则定时器0的定时时间为(100ms)o
7.用于定时测试压力和温度的单片机应用系统,以定时器0实现定时压力超限和温度超限的报警信号分别由和输入,中断优先顺序为压力超限一温度超限一定时检测为此,中断允许控制寄存器IE最低3位的状态应是
(111),中断优先级控制寄存器IP最低3位的状态应是
(101)O
8.可利用定时器来扩展外部中断源若以定时器1扩展外部中断源,则该扩展外中断的中断请求输入端应为(T1)引脚,定时器1应取工作方式
(2),预置的计数初值应为(OFFII),扩展外中断的入口地址应为(001BH)
(二)单项选择题
1.下列有关80c51中断优先级控制的叙述中错误的是(D)(A)低优先级不能中断高优先级,但高优先级能中断低优先级(B)同级中断不能嵌套(C)同级中断请求按时间的先后顺序响应(D)同一时刻,同级的多中断请求,将形成阻塞,系统无法响应
2.80c51有两个定时器,下列有关这两个定时器级联定时问题的叙述中,正确的是(C)(A)可以实现软件级联定时,而不能实现硬件级联定时(B)可以实现硬件级联定时,而不能实现软件级联定时(C)软件级联定时和硬件级联定时都可以实现(D)软件级联定时和硬件级联定时都不能实现
3.在工作方式0下,计数器由TH的全部8位和TL的低5位组成,因此,其计数范围是(A)A1〜8192B0〜8191C0〜8192D1〜
40964.对于由80c51构成的单片机应用系统,中断响应并自动生成长调用指令LCALL后,应B A转向外部程序存储器去执行中断服务程序B转向内部程序存储器去执行中断服务程序C转向外部数据存储器去执行中断服务程序D转向内部数据存储器去执行中断服务程序
5.中断查询确认后,在下列各种单片机运行情况中,能立即进行响应的是D A当前正在进行高优先级中断处理B当前正在执行RETI指令C当前指令是DIV指令,且正处于取指机器周期D当前指令是“MOVA,Rn”指令
6.下列条件中,不是中断响应必要条件的是C ATCON或SCON寄存器中相关的中断标志位置1B IE寄存器中相关的中断允许位置1C IP寄存器中相关位置1D中断请求发生在指令周期的最后一个机器周期
7.在单片机的下列功能或操作中,不使用中断方法的是D A串行数据传送操作B实时处理C故障处理D存储器读/写操作第6章单片机并行存储器扩展一填空题C1KB=1024M BD1MB=1024B
3.程序与软件的区别是(C)(A)程序小而软件大(B)程序便宜而软件昂贵(C)软件包括程序(D)程序包括软件
4.存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A)(A)地址(B)字节(C)列号(D)容量
5.8位二进制数所能表示的最大无符号数是(B)(A)255(B)256(C)128(D)
1276.下列4个无符号数中,最小的数是(B)(A)11011001(二进制)(B)37(八进制)(C)75(十进制)(D)24(十六进制)
7.下列字符中,ASCH码最小的是(B)(A)a(B)A(C)x(D)X
8.下列字符中,ASCH码最大的是(C)(A)a(B)A(C)x(D)X
9.有一个数152,它与十六进制数6A相等,那么该数是(B)(A)二进制数(B)八进制数(C)十进制数(D)十六进制数第2章80C51单片机的硬件结构
(一)填空题
1.通过堆栈实现子程序调用,首先要把(PC)的内容入栈,以进行断点保护调用返回时再进行出栈操作,把保护的断点送回(PC)O
2.80C51单片机的时钟电路包括两部分内容,即芯片内的(高增益反相放大器反相器)和芯片外跨接的(石英晶体振荡器晶振)与(两个微调电容)若调高单片机的晶振频率,则单片机的机器周期会变(短)L使用8KBX8位的RAM芯片,用译码法扩展64KBX8位的外部数据存储器,需要
(8)片存储芯片,共需使用
(16)条地址线,其中
(13)条用于存储单元选择,
(3)条用于芯片选择
2.三态缓冲器的三态分别是(低电平)、(高电平)和(高阻抗)
3.80C51单片机系统整个存储空间由4部分组成,分别为
(256)个地址单元的内部(数据)存储器,(4KB)个地址单元的内部(程序)存储器,(64KB)个地址单元的外部(数据)存储器,(60KB)个地址单元的外部(程序)存储器
4.在80C51单片机系统中,为外扩展存储器准备了
(16)条地址线,其中低位地址线由(P0口)提供,高位地址线由(P2口)提供
5.在80c51单片机系统中,存储器并行外扩展涉及的控制信号有(ALE)、()、()、()和(),其中用于分离低8位地址和数据的控制信号是(ALE),它的频率是晶振频率的
(6)分之一
6.起止地址为0000H〜3FFFH的外扩展存储器芯片的容量是(16KB)o若外扩展存储器芯片的容量为2KB,起始地址为3000H,则终止地址应为(37FFH)
7.与微型机相比,单片机必须具有足够容量的程序存储器是因为它没有(外存)
8.在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的(片选)引脚端提供信号
9.由一片80C51和一片2716组成的单片机最小系统若2716片选信号接地,则该存储芯片连接共需
(11)条地址线除数据线外,系统中连接的信号线只有()和(ALE)
(二)单项选择题
1.下列有关单片机程序存储器的论述中,错误的是(D)(A)用户程序保存在程序存储器中(B)断电后程序存储器仍能保存程序(C)对于程序存储器只使用MOVC一种指令(D)执行程序需要使用MOVC指令从程序存储器中逐条读出指令
2.下列有关单片机数据存储器的论述中,错误的是(A)(A)数据存储器只使用MOV指令进行读/写(B)堆栈在数据存储器中开辟C数据存储器只用于保存临时数据D专用寄存器也是数据存储器的一部分
3.在单片机系统中,1KB表示的二进制位数是D A1000B8X1000C1024D8X
10244.在下列信号中,不是供外扩展程序存储器使用的是DAB C ALE D
5.RAM是随机存储器的意思,随机存储器的准确含义是B A存储器的各存储单元的存取时间相等B可以在任何时刻随机读/写存储器内各存储单元C随机表示既可读又可写D随机是易失的意思,因为随机存储器具有易失的特点
6.若在系统中只扩展一片Intel27324KX8位,除应使用P0口的8条口线外,至少还应使用P2口的口线A A4条B5条C6条D7条
7.下列叙述中,不属于单片机存储器系统特点的是DA程序和数据两种类型的存储器同时存在B芯片内外存储器同时存在C扩展数据存储器与片内数据存储空间重叠D扩展程序存储器与片内程序存储空间重叠
8.在80c51单片机系统中,为解决内外程序存储器衔接问题所使用的信号是A AB CALE D第7章单片机并行I/O扩展一填空题L80C51单片机I/O扩展占据的是外部数据存储器的地址空间,因此,其扩展连接只涉及ALE、和3个控制信号2,在单片机中,为实现数据的I/O传送,可使用3种控制方式,即(无条件)方式、(查询)方式和(中断)方式其中效率较高的是(中断方式)
3.简单输入口扩展是为了实现输入数据的(缓冲)功能,而输出口扩展是为了实现输出数据的(锁存)功能第8章80C51单片机串行通信
(一)填空题
1.异步串行数据通信的帧格式由(起始)位、(数据)位、(奇偶校验)位、(停止)位组成若串行异步通信每帧为11位,串行□每秒传送250个字符,则波特率应为(2750b/s)o
2.串行通信有(单工)、(双工)和(半双工)共3种数据通路形式
3.串行接口电路的主要功能是(串行)化和(反串行)化,把帧中格式信息滤除而保留数据位的操作是(反串行)化
4.串行异步通信,传送速率为2400b/s,每帧包含1个起始位、7个数据位、1个奇偶校验位和1个停止位,则每秒传送字符数为(240个)
5.80C51串行口使用定时器1作波特率发生器时,应定义为工作方式2,即(8位自动加载)方式假定晶振频率为12MHz,则可设定的波特率范围是(122b/s)〜(62500b/s)分析定时器1工作方式2时的波特率为当SMOD=0,X=0时,(最小波特率)当SM0D=l,X=255时,(最大波特率)
6.在80c51串行通信中,方式
(0)和方式
(2)的波特率是固定的,波特率的大小只与(晶振)频率有关而方式
(1)和方式
(3)的波特率是可变或可设置的,波特率大小与定时器(T1)的(溢出)率有关
(二)单项选择题
1.下列特点中,不是串行数据传送所具有的是(A)(A)速度快(B)成本低(C)传送线路简单(D)适用于长距离通信
2.下列有关串行同步通信与异步通信的比较中,错误的是(B)A它们采用的是相同的数据传输方式,但采用不同的数据传输格式B它们采用的是相同的数据传输格式,但采用不同的数据传输方式C同步方式适用于大批量数据传输,而异步方式则适用于小批量数据传输D同步方式对通信双方同步的要求高,实现难度大,而异步方式的要求则相对较低
3.调制解调器的功能是A A数字信号与模拟信号的转换B电平信号与频率信号的转换C串行数据与并行数据的转换D基带传输方式与频带传输方式的转换
4.帧格式为1个起始位、8个数据位和1个停止位的异步串行通信方式是BA方式0B方式1C方式2D方式
35.通过串行口发送或接收数据时,在程序中应使用A AMOV指令B MOVX指令C MOVC指令D SWAP指令
6.下列有关第9数据位的说明中,错误的是CA第9数据位功能可由用户定义B发送数据的第9数据位内容在SCON寄存器的TB8位中预先准备好C帧发送时使用指令把TB8位的状态送入发送SBUF中D接收到的第9数据位送SCON寄存器的RB8位中保存
7.下列有关串行通信的说明中,错误的是A A80C51串行□只有异步方式而无同步方式,因此,只能进行串行异步通信B80C51串行口发送和接收使用同一个数据缓冲寄存器SBUF C双机通信时要求两机的波特率相同D偶校验是指给校验位写入一个0或1,以使得数据位和校验位中1的个数为偶数
3.通常单片机有两种复位操作,即(上电复位)和(手动复位)复位后,PC值为(0000H),SP值为(07H),通用寄存器的当前寄存器组为(第0)组,该组寄存器的地址范围是从(00H)到(07H)o
4.80C51单片机中,一个机器周期包含
(6)个状态周期,一个状态周期又可划分为
(2)个拍节,一个拍节为
(1)个振荡脉冲周期因此,一个机器周期应包含
(12)个振荡脉冲周期
5.80C51中惟一一个可供用户使用的16位寄存器是(DPTR),它可拆分为两个8位寄存器使用,名称分别为(D用)和(DPL)
6.单片机程序存储器的寻址范围由PC的位数决定80C51的PC为16位,因此程序存储器地址空间是(64KB)o
(二)单项选择题
1.下列概念叙述正确的是(D)(A)80C51中共有5个中断源,因此在芯片上相应地有5个中断请求输入引脚(B)特殊的存取规则使得堆栈已不是数据存储区的一部分(C)可以把PC看成是数据存储空间的地址指针(D)CPU中反映程序运行状态和运算结果特征的寄存器是PSW
2.取指操作后,PC的值是(C)(A)当前指令前一条指令的地址(B)当前正在执行指令的地址(C)下一条指令的地址(D)控制寄存器中指令寄存器的地址
3.80c51单片机中,设置堆栈指针SP为37H后就发生子程序调用,这时SP的值变为(C)(A)37H(B)38H(C)39H(D)3AH
4.设置堆栈指针SP二30H后,进行一系列的堆栈操作当进栈数据全部弹出后,SP应指向(A)(A)30H单元(B)07H单元(C)31H单元(D)2FH单元
5.下列关于堆栈的描述中,错误的是(C)(A)80C51的堆栈在内部RAM中开辟,所以SP只需8位就够了(B)堆栈指针SP的内容是堆栈栈顶单元的地址(C)在80c51中,堆栈操作过程与一般RAM单元的读/写操作没有区别(D)在中断响应时,断点地址自动进栈
6.在单片机芯片内设置通用寄存器的好处不应该包括(A)(A)提高程序运行的可靠性(B)提高程序运行速度(C)为程序设计提供方便(D)减小程序长度
7.下列叙述中正确的是(D)(A)SP内装的是堆栈栈顶单元的内容(B)在中断服务程序中没有PUSH和POP指令,说明此次中断操作与堆栈无关(C)在单片机中配合实现“程序存储自动执行”的寄存器是累加器(D)两数相加后,若A中数据为66H,则PSW中最低位的状态为0第3章80C51单片机指令系统
(一)填空题L假定累加器A中的内容为30H,执行指令“1000HMOVC A,@A+PC”后,会把程序存储器(1031H)单元的内容送累加器A
2.假定(A)=85H,(RO)=20H,(20H)=OAFH,执行指令“ADD A,@R0”后,累加器A的内容为(34H),CY的内容为
(1),AC的内容为
(1),0V的内容为
(1)
3.执行如下指令序列后,所实现的逻辑运算式为()MOV C,Pl.0ANL C,Pl.1ANL C,/Pl.2MOV P
3.0,C4假定addrll=00100000000B,标号qaz的地址为1030H,执行指令qaz:AJMP addrlT,后,程序转移到地址(U00H)去执行
5.累加器A中存放着一个其值小于或等于127的8位无符号数,CY清0后执行“RLC A”指令,则A中的数变为原来的2倍
6.已知A=7AH,R0=30H,30H=A5H,PSW=80H,请按要求填写各条指令的执行结果每条指令均按已给定的原始数据进行操作XCH A,RO A=30H,R0=7AH XCH A,30HA=0A5H XCHA,@R0A=0A5H XCHD A,@R0A二75H SWAP A A=0A7H ADD A,RO A二OAAII,CY=0,OV=1ADD A,30HA=1FH,CY=1,0V=0ADD A,#30HA=OAAH,CY=0,0V=1ADDC A,30HA=20H,CY=1,0V=0SUBB A,30HA=0D4H,CY=1,0V=1SUBB A,#3011A=4911,CY=0,0V=0二单项选择题
1.下列指令或指令序列中,不能实现PSW内容送A的是CAMOVA,PSW BMOVA,ODOH CMOVR0,ODOH DPUSH PSWMOVA,@R0POPACC
2.在相对寻址方式中,“相对”两字是指相对于CA地址偏移量rel B当前指令的首地址C下一条指令的首地址D DPTR值
3.下列指令或指令序列中,能将外部数据存储器3355H单元内容传送给A的是(B)A MOVX A,3355H BMOVDPTR,#3355H MOVX A,@DPTR CMOV PO,#3311D MOVP2,#33H MOVRO,#5511MOVR2,#5511MOVXA,@RO MOVXA,@R
24.对程序存储器的读操作,只能使用DAMOV指令B PUSH指令CMOVX指令D MOVC指令
5.执行返回指令后,返回的断点是CA调用指令的首地址B调用指令的末地址C调用指令的下一条指令的首地址D返回指令的末地址
6.以下各项中不能用来对内部数据存储器进行访问的是A A数据指针DPTR B按存储单元地址或名称C堆栈指针SP D由R0或R1作间址寄存器三其他类型题
1.判断下列指令的合法性合法打“,非法打义”MOVA,@R2X MOVRO,RI XINCDPTRV MOVPC,#2222H XDEC DPTRXRLC RO X MOVOEOH,@R0VCPL R5X CLRRO XCPL FOHX PUSHDPTR XPOP30HVMOVXA,@R1V MOVA,1FHVMOV C,1FHJ MOVFO,ACC.3X MOVFO,CVMOV Pl,R3VMOVDPTR,#OFCH XCPL30HV PUSHROXMOV C,#OFFH XMOVA,#ODOHV
2.利用位操作指令序列实现下列逻辑运算1MOV C,P
1.0ORL C,/10II MOVFO,C ORL C,11H ANL C,FO MOVD,C2MOV C,ACC.2ANL C,P
2.7ORLC,ACC.1ANLC,P
2.0MOV E,C
3.编写程序将内部RAM20H〜23H单元的高4位写1,低4位写0分析:就是把内部RAM2011〜23H这4个单元写入OFOH用一个DJNZ的循环ORG0000H MOVRO,#20H;R0指向20H单元MOV RI,#04H;4个单元LOOP:MOV@R0,#OFOH;写入INCRODJNZ RI,LOOP;循环4次END4,在m和m+1单元中存有两个BCD数,将他们合并到m单元中,编写程序完成ORG0030H MOVRO,#m MOVA,@RO;将小单元中的BCD数送入累加器A ANLA,#0FII;把m单元的高4位清0SWAPA;将m单元中的BCD数移入高4位MOV@R0,A;m单元高4位为BCD数,低4位为0INCRO;指向m+1单元MOVA,@R0;将川+1单元中的BCD数送入累加器A ANLA,#OFH;把m+1单元的高4位清0DEC RO;指向m单元ORLA,@R0;将和m+1单元和m单元内容合并MOV@R0,A;合并后结果送m单元END
5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元假定相加结果小于255编写程序完成ORG0030H MOVR0,#10;给R0置计数器初值MOV RI,#data;数据块首址送R1CLR A;A清零LOOP:ADDA,@R1;加一个数INCRI;修改地址,指向下一个数DJNZ RO,LOOP;R0减1,不为零循环MOV sum,A;存10个数相加和END
6.假定8位二进制带符号数存于R0中,要求编写一个求补(取反)程序,所得补码放入R1中分析对存于RO中的二进制带符号数,如果是正数,则将其变成绝对值相等的负数(用补码表示);如果是负数(用补码表示),则将其变成绝对值相等的正数ORG0030H MOVA,RO;将带符号数送入A CPLA ADDA,#01H;末位加1MOVRI,A;补码存入RI END第4章单片机汇编语言程序设计
(一)填空题[假定A=40H,R1=23H,(40H)=05Ho执行以下两条指令后,A=(25H),Rl=(40H),
(4011)=
(0311)o XCIIA,RI;A=23H,RI=4011XCHDA,@R1;A=20H,(40H)=03H
2.假定80c51的晶振频率为6MHz,执行下列程序后,在PL1引脚产生的方波宽度为(
5.804ms)START:SETB Pl.1;Pl.1置1(1周期)DL:MOV30H,#03H;30H置初值(1周期)DLO:MOV31H,#OFOH;31H置初值(1周期)DL1:DJNZ3111,DL1;31H减L不为0重复执行(2周期)DJNZ30H,DLO;30H减1,不为0转DLO(2周期)CPL Pl.l;Pl.l取反(1周期)SJMP DL;转DL(2周期)方波宽度={[2*15*16+2+1*3]+[2*15*16+2+1*3+1+2+1]}*2=5804u s。