《单片机基础》练习题及答案Word文档下载推荐.docx

上传人:b****1 文档编号:3157450 上传时间:2023-05-01 格式:DOCX 页数:26 大小:70.53KB
下载 相关 举报
《单片机基础》练习题及答案Word文档下载推荐.docx_第1页
第1页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第2页
第2页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第3页
第3页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第4页
第4页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第5页
第5页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第6页
第6页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第7页
第7页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第8页
第8页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第9页
第9页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第10页
第10页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第11页
第11页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第12页
第12页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第13页
第13页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第14页
第14页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第15页
第15页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第16页
第16页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第17页
第17页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第18页
第18页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第19页
第19页 / 共26页
《单片机基础》练习题及答案Word文档下载推荐.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《单片机基础》练习题及答案Word文档下载推荐.docx

《《单片机基础》练习题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《单片机基础》练习题及答案Word文档下载推荐.docx(26页珍藏版)》请在冰点文库上搜索。

《单片机基础》练习题及答案Word文档下载推荐.docx

因此,一个机器周期应包含(12)个振荡脉冲周期。

5.80C51中惟一一个可供用户使用的16位寄存器是(DPTR),它可拆分为两个8位寄存器使用,名称分别为(DPH)和(DPL)。

6.单片机程序存储器的寻址范围由PC的位数决定。

80C51的PC为16位,因此程序存储器地址空间是(64KB)。

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单片机指令系统

1.假定累加器A中的内容为30H,执行指令“1000H:

MOVCA,@A+PC”后,会把程序存储器(1031H)单元的内容送累加器A。

2.假定(A)=85H,(R0)=20H,(20H)=0AFH,执行指令“ADDA,@R0”后,累加器A的内容为(34H),CY的内容为

(1),AC的内容为

(1),OV的内容为

(1)。

3.执行如下指令序列后,所实现的逻辑运算式为(

MOVC,P1.0

ANLC,P1.1

ANLC,/P1.2

MOVP3.0,C

4.假定addr11=00100000000B,标号qaz的地址为1030H,执行指令“qaz:

AJMPaddr11”后,程序转移到地址(1100H)去执行。

5.累加器A中存放着一个其值小于或等于127的8位无符号数,CY清0后执行“RLCA”指令,则A中的数变为原来的

(2)倍。

6.已知A=7AH,R0=30H,(30H)=A5H,PSW=80H,请按要求填写各条指令的执行结果(每条指令均按已给定的原始数据进行操作)。

XCHA,R0A=(30H),R0=(7AH)

XCHA,30HA=(0A5H)

XCHA,@R0A=(0A5H)

XCHDA,@R0A=(75H)

SWAPAA=(0A7H)

ADDA,R0A=(0AAH),CY=(0),OV=

(1)

ADDA,30HA=(1FH),CY=

(1),OV=(0)

ADDA,#30HA=(0AAH),CY=(0),OV=

(1)

ADDCA,30HA=(20H),CY=

(1),OV=(0)

SUBBA,30HA=(0D4H),CY=

(1),OV=

(1)

SUBBA,#30HA=(49H),CY=(0),OV=(0)

1.下列指令或指令序列中,不能实现PSW内容送A的是(C)

(A)MOVA,PSW(B)MOVA,0D0H

(C)MOVR0,0D0H(D)PUSHPSW

MOVA,@R0POPACC

2.在相对寻址方式中,“相对”两字是指相对于(C)

(A)地址偏移量rel(B)当前指令的首地址

(C)下一条指令的首地址(D)DPTR值

3.下列指令或指令序列中,能将外部数据存储器3355H单元内容传送给A的是(B)

(A)MOVXA,3355H(B)MOVDPTR,#3355H

MOVXA,@DPTR

(C)MOVP0,#33H(D)MOVP2,#33H

MOVR0,#55HMOVR2,#55H

MOVXA,@R0MOVXA,@R2

4.对程序存储器的读操作,只能使用(D)

(A)MOV指令(B)PUSH指令

(C)MOVX指令(D)MOVC指令

5.执行返回指令后,返回的断点是(C)

(A)调用指令的首地址(B)调用指令的末地址

(C)调用指令的下一条指令的首地址(D)返回指令的末地址

6.以下各项中不能用来对内部数据存储器进行访问的是(A)

(A)数据指针DPTR(B)按存储单元地址或名称

(C)堆栈指针SP(D)由R0或R1作间址寄存器

(三)其他类型题

1.判断下列指令的合法性(合法打“√”,非法打“×

”)

MOVA,@R2(×

)MOVR0,R1(×

)INCDPTR(√)

MOVPC,#2222H(×

)DECDPTR(×

)RLCR0(×

MOV0E0H,@R0(√)CPLR5(×

)CLRR0(×

CPLF0H(×

)PUSHDPTR(×

)POP30H(√)

MOVXA,@R1(√)MOVA,1FH(√)MOVC,1FH(√)

MOVF0,ACC.3(×

)MOVF0,C(√)MOVP1,R3(√)

MOVDPTR,#0FCH(×

)CPL30H(√)PUSHR0(×

MOVC,#0FFH(×

)MOVA,#0D0H(√)

2.利用位操作指令序列实现下列逻辑运算。

(1)

ORLC,/10H

MOVF0,C

ORLC,11H

ANLC,F0

MOVD,C

(2)

MOVC,ACC.2

ANLC,P2.7

ORLC,ACC.1

ANLC,P2.0

MOVE,C

3.编写程序将内部RAM20H~23H单元的高4位写1,低4位写0。

分析:

就是把内部RAM20H~23H这4个单元写入0F0H。

用一个DJNZ的循环。

ORG0000H

MOVR0,#20H;

R0指向20H单元

MOVR1,#04H;

4个单元

LOOP:

MOV@R0,#0F0H;

写入

INCR0

DJNZR1,LOOP;

循环4次

END

4.在m和m+1单元中存有两个BCD数,将他们合并到m单元中,编写程序完成。

ORG0030H

MOVR0,#m

MOVA,@R0;

将m单元中的BCD数送入累加器A

ANLA,#0FH;

把m单元的高4位清0

SWAPA;

将m单元中的BCD数移入高4位

MOV@R0,A;

m单元高4位为BCD数,低4位为0

INCR0;

指向m+1单元

将m+1单元中的BCD数送入累加器A

ANLA,#0FH;

把m+1单元的高4位清0

DECR0;

指向m单元

ORLA,@R0;

将和m+1单元和m单元内容合并

合并后结果送m单元

END

5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元。

假定相加结果小于255。

编写程序完成。

MOVR0,#10;

给R0置计数器初值

MOVR1,#data;

数据块首址送R1

CLRA;

A清零

ADDA,@R1;

加一个数

INCR1;

修改地址,指向下一个数

DJNZR0,LOOP;

R0减1,不为零循环

MOVsum,A;

存10个数相加和

6.假定8位二进制带符号数存于R0中,要求编写一个求补(取反)程序,所得补码放入R1中。

对存于R0中的二进制带符号数,如果是正数,则将其变成绝对值相等的负数(用补码表示);

如果是负数(用补码表示),则将其变成绝对值相等的正数。

MOVA,R0;

将带符号数送入A

CPLA

ADDA,#01H;

末位加1

MOVR1,A;

补码存入R1

第4章单片机汇编语言程序设计

1.假定A=40H,R1=23H,(40H)=05H。

执行以下两条指令后,A=(25H),R1=(40H),(40H)=(03H)。

XCHA,R1;

A=23H,R1=40H

XCHDA,@R1;

A=20H,(40H)=03H

2.假定80C51的晶振频率为6MHz,执行下列程序后,在P1.1引脚产生的方波宽度为(5.804ms)

START:

SETBP1.1;

P1.1置1(1周期)

DL:

MOV30H,#03H;

30H置初值(1周期)

DL0:

MOV31H,#0F0H;

31H置初值(1周期)

DL1:

DJNZ31H,DL1;

31H减1,不为0重复执行(2周期)

DJNZ30H,DL0;

30H减1,不为0转DL0(2周期)

CPLP1.1;

P1.1取反(1周期)

SJMPDL;

转DL(2周期)

方波宽度={[(2*15*16+2+1)*3]+[(2*15*16+2+1)*3+1+2+1]}*2=5804μs

3.下列程序中,X、Y和Z为输入的8位无符号二进制数,F为输出的逻辑运算结果。

试画出该程序所模拟的组合逻辑电路。

MOVA,X

ANLA,Y

MOVR1,A

MOVA,Y

XRLA,Z

ORLA,R1

MOVF,A

4.分析下列跳转程序,程序中A与30H单元中的数都是符号数,说明当(A=(30H))时转向LOOP1,当(A>

(30H))时转向LOOP2,当(A<

(30H))时转向LOOP3。

MOVR0,A;

R0←A

ANLA,#80H

JNZNEG;

A<

0,转NEG

MOVA,30H

ANLA,#80H

JNZLOOP2;

A≥0,(30H)<

0,转LOOP2

SJMPCOMP;

A≥0,(30H)≥0,转COMP

NEG:

MOVA,30H

JZLOOP3;

0,(30H)≥0,转LOOP3

COMP:

MOVA,R0

CJNEA,30H,NEXT;

A≠(30H),转NEXT

SJMPLOOP1;

A=(30H),转LOOP1

NEXT:

JNCLOOP2;

A>(30H),转LOOP2

JCLOOP3;

A<(30H),转LOOP3

综上分析可知,当A=(30H)时转向LOOP1,A>

(30H)时转向LOOP2,A<

(30H)时转向LOOP3。

5.假定80C51的晶振频率为6MHz,下列程序的执行时间为(30.696ms)。

已知程序中前2条指令机器周期数为1,后4条指令机器周期数为2。

MOVR3,#151周期

MOVR4,#2551周期

DL2:

MOVP1,R32周期

DJNZR4,DL22周期

DJNZR3,DL12周期

RET2周期

执行时间:

T={[(2+2)*255+2+1]*15+2+1}*2=30696μs

(二)编程题

1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位于外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕,试编程实现。

MOVR0,#inbuf

MOVDPTR,#outbuf

MOVR4,#10H

MOVA,@R0;

从内部RAM取数

CJNEA,#0DH,LL;

是否为回车符CR

SJMPSTOP;

是回车符,则转STOP,停止传送

LL:

MOVX@DPTR,A;

不是回车符,则传送到外部RAM

INCR0

INCDPTR

DJNZR4,LOOP;

沒传送完则循环

STOP:

SJMP$

2.内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以﹣1作结束标志。

编程实现找出表中最小数。

从list+1单元开始判断其中的数是否为-1,将比较得到的小数放入累加器A

MOVR0,#list

MOVA,@R0;

取第一个正数

INCR0;

指向下一个正数

MOV30H,@R0

CJNEA,30H,CHK;

前一个数与后一个数比较

CHK:

JCLOOP1;

前一个数小,则转LOOP1

MOVA,30H;

前一个数大,取后一个数

LOOP1:

XCHA,30H

CJNEA,#0FFH,LOOP;

判断后一个数是否为-1

XCHA,30H;

取最小数

SJMP$

3.内部RAM的X,Y单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。

若X为正奇数,Z=X+Y;

若X为正偶数,Z=X∨Y;

若X为负奇数,Z=X∧Y;

若X为负偶数,Z=X⊕Y。

正数:

第7位为0,负数:

第7位为1;

奇数:

第0位为1,偶数:

第0位为0

方法1:

利用ANL指令判断正负、奇偶

ANLA,#80H;

判断X正负

JNZNEG;

若X为负,转NEG

MOVA,X;

X为正

ANLA,#01H;

判断X奇偶

JZEVEN1;

若X为偶数,转EVEN1

ADDA,Y;

若X为正奇数,Z=X+Y

SJMPRESULT

EVEN1:

MOVA,X

ORLA,Y;

若X为正偶数,Z=X∨Y

NEG:

MOVA,X;

X为负

ANLA,#01H;

JZEVEN2;

若X为偶数,转EVEN2

MOVA,X

ANLA,Y;

若X为负奇数,Z=X∧Y

EVEN2:

若X为负偶数,Z=X⊕Y

XRLA,Y

RESULT:

MOVZ,A

方法2:

RL指令将符号位移入CY判断正负,RR指令将最低位移入CY判断奇偶

MOVA,X

CLRC

RLCA

JCNEG;

X为负,转至NEG

RRCA

RRCA

JNCEVEN1;

X为偶数,转至EVEN1

ADDA,Y;

X为正奇数,Z=X+Y

SJMPRETULT

MOVA,X

ORLA,Y;

X为正偶数,Z=X∨Y

RRCA,

JNCEVEN2

ANLA,Y;

X为负奇数,Z=X∧Y

XRLA,Y;

X为负偶数,Z=X⊕Y

RETULT:

MOVZ,A

END

4.把一个8位二进制数的各位用ASCII码表示之(例如,为0的位用30H表示,为1的位用31H表示等)。

该数存放在内部RAM的byte单元中。

变换后得到的8个ASCII码存放在外部RAM以buf开始的存储单元中,试编程实现。

MOVDPTR,#buf

MOVR0,#byte

MOVR7,#08H

MOVA,@R0

LOOP1:

RRCA

MOVR6,A

JCONE

MOVA,#30H

SJMPLOOP2

ONE:

MOVA,#31H

LOOP2:

MOVX@DPTR,A

INCDPTR

MOVA,R6

DJNZR7,LOOP1

5.编程实现运算式

假定a、b、c3个数分别存放于内部RAM的DA、DB、DC单元中,另有平方运算子程序SQR供调用。

MOVA,DA

PUSHACC

ACALLSQR

POPACC

MOVDC,A

MOVA,DB

ADDA,DC

MOVDC,A

SQR:

POPACC

MOVB,A

MULAB

PUSHACC

RET

6.试编程实现两个ASCII码字符串是否相等。

字符串的长度在内部RAM41H单元中,第1个字符串的首地址为42H,第2个字符串的首地址为52H。

如果两个字符串相等,则置内部RAM40H单元为00H;

否则置40H单元为FFH。

MOVR0,#42H

MOVR1,#52H

MOVR7,41H

MOVA,@R0

MOV30H,@R1

CJNEA,30H,LK

INCR1

DJNZR7,LOOP

MOV40H,#00H

SJMPDD

LK:

MOV40H,#0FFH

DD:

SJMPDD

7.在外部RAM首地址为table的数据表中,有10字节数据。

试编程实现将每个字节的最高位无条件置1。

ORG0030H

MOVDPTR,#table

MOVR6,#10

MOVXA,@DPTR

SETBA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2