单片机原理与应用练习题3答案Word格式文档下载.docx
- 文档编号:21556834
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:16
- 大小:20.90KB
单片机原理与应用练习题3答案Word格式文档下载.docx
《单片机原理与应用练习题3答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用练习题3答案Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
以PC的容为基值,加上指令机器代码中‘相对地址’形成新的PC值转移;
(7)位寻址:
寻址空间包括部RAM位寻址区(20~2FH)和专用寄存器的可寻址位。
4.要访问片外程序存储器和片外数据存储器,应采用哪些寻址方式?
访问片外程序存储器采用变址寻址方式,片外数据存储器采用寄存器间接寻址方式,且用DPTR可以访问64KB,而用R0或者R1只可访问低256字节。
5.在AT89S51片RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。
请分析下面各是什么指令,说明源操作数的寻址方式及按顺序执行每条指令后的结果。
指令
指令说明
源操作数寻址方式
结果
MOVA,40H
将部RAM中40H容传送到累加器A中
(A)←(40H)
(A)=48H
MOVR0,A
再将A中容传送给R0
(R0)←(A)
(R0)=48H
MOVP1,#0F0H
将立即数0F0H送到P1口,即P1.4~P1.7位1,其余为0
(P1)←0F0H
立即数寻址
(P1)=0F0H
MOVR0,30H
将30H中的容,传放到以R0单元容为地址的单元中
((R0))←(30H)
((R0))=(48H)=38H
MOVDPTR,#3848H
将立即数3848传送给DPTR数据指针
(dptr)←3848H
(DPTR)=3848H
MOV40H,38H
将部RAM中38H容传送到40H单元中
(40H)←(38H)
(40H)=40H
将30H中的容给R0寄存器
(R0)←(30H)
(R0)=38H
MOVP0,R0
将R0的容传送到P0
(P0)←(R0)
(P0)=38H
MOVA,R0
将R0容为地址的该单元容传送给A
(A)←((R0))
(A)=40H
MOVP2,P1
将P1的容传送给P2
(P2)←(P1)
(P2)=0F0H
6.指出下列指令的源操作数的寻址方式
MOVA,65H直接寻址
MOVA,#65H立即数寻址
MOVA,R0寄存器间接寻址
MOVA,R2寄存器寻址
MOVCA,A+PC变址寻址
7.部RAM和特殊功能寄存器各用什么寻址方式?
部RAM有寄存器寻址方式、直接寻址方式和间接寻址方式;
特殊功能寄存器除A外只能进行直接寻址。
8.已知:
(A)=5BH,(R1)=30H,(30H)=0CEH,(P1)=71H,(PSW)=80H,(PC)=2000H,(205CH)=46H,(SP)=30H,(B)=78H。
分别求各条指令执行后的结果(要求进行二进制运算验证)及标志位Cy、P的影响。
(1)MOVA,R1(A)=0CEHP=1,C不变
(2)MOV40H,30H(40H)=0CEHP和C不变
(3)MOVP1,R1(P1)=30HP和C不变
(4)MOVCA,A+PC(A)=46HP=1,C不变
(5)PUSHB(31H)=78H,(SP)=31HP和C不变
(6)POPDPH(DPH)=0CEH,(SP)=29HP和C不变
(7)XCHDA,R1(A)=05EH,(30H)=CBHP=1,C不变
(8)ADDA,30H(A)=29HP=1,C=1
(9)ADDCA,P1(A)=CDHP=1,C=0
(10)SUBBA,P1(A)=E9HP=1,C=1
(11)ANLP1,#0FH(P1)=01HP和C不变
(12)CLRPSW.7C=0
(13)RLCA(A)=B7HP=0,C=0
(14)ORLC,90HC=1,P不变
9.对下面一段程序加上机器码和注释,并说明程序运行后寄存器A、R0和部RAM50H、51H、52H单元的容。
MOV50H,#50H755050 ;
(50H)←50H
MOVA,50HE550 ;
(A)←(50H)
MOVR0,AF8 ;
(R0)←(A)
MOVA,#30H7430 ;
(A)←30H
MOVR0,AF6 ;
((R0))←(A)
MOVA,#50H7450 ;
(A)←50H
MOV51H,AF551 ;
(51H)←(A)
MOV52H,#00H755200 ;
(52H)←00H
运行后寄存器(A)=50H,(R0)=50H,(50H)=30H,(51)=50H,(52H)=00H
10.区别下列各指令中20H的含义,在每条指令后加上注释。
MOVA,#20H将20H立即数传送给A
MOV45H,20H将部RAM中20H单元的容传送到45H中
MOVC,20H.0将部RAM中20H单元容的第0位(最低位)传送给C
MOVC,20H将部RAM中20H位地址容传送给C
11.写出完成以下功能的指令
(1)将立即数30H送到R1;
(2)将RAM30H中的数据送到RAM78H单元;
(3)将立即数30H送到 以R0中容为地址的存储器中;
(4)将R2中的容送到 P1;
(5)将RAM60H单元的数据送到 外RAM60H单元;
(6)将RAM60H单元的数据送到外RAM1060H单元;
(7)将ROM1000H单元的容送到RAM30H单元;
(8)使ACC.7置位;
(9)使累加器的低4位清零;
(10)使P1.2与CY相与,结果送CY;
(11)立即数45H、93H进行逻辑与、或、异或操作;
(12)两立即数求和:
1C0H+45H,结果按高低8位存在30H、31H中。
答案:
(1)MOVR1,#30H
(2)MOV78H,30H
(3)MOVR0,#30H(4)MOVP1,R2
(5)MOVA,60H;
;
movp2,#0;
movr0,#60h;
movxr0,a
(6)MOVA,60H;
movdptr,#1060;
movxdptr,a
(7)MOVA,#00H
MOVDPTR,#1000H
MOVCA,A+DPTR
MOV30H,A
(8)SETBACC.7
(9)ANLA,#0F0H
(10)ANLC,p1.2
(11)与:
MOVA,#45H
ANLA,#59H
或:
ORLA,#59H
异或:
PMOVA,#45H
XRLA,#59H
(12)CLRC
MOVR2,#1
MOVA,#0C0H
ADDA,#45H
MOV31H,A
MOVA,R2
ADDCA,#0
MOV30H,A
12.写出下列指令执行过程中堆栈的变化
设堆栈初值为X:
MOVR6,#11H(SP)=X(堆栈不变)
MOVR7,#23H(SP)=X(堆栈不变)
ACALL200H(SP)=X+2
;
(X+1)=第4条指令的首址PC低8位(X+2)=第4条指令的首址PC高8位
POP50H(SP)=X-1
POP51H(SP)=X-2
SJMP$
ORG200H
RET
执行过程中,前面两条为立即寻址指令,堆栈不变;
执行第三条ACALL指令时,首先将程序寄存器PC的当前值加2,接着先后将PC的低八位和高八位分别进栈,(SP)=(SP)+2;
然后再将PC容中的低11位用200H来替代,同时程序跳到第七条ORG200H中,接着RET表示子程序返回,将原先压入堆栈的PC值弹出,(SP)=(SP)-2;
最后两条POP指令执行后将SP所指地址中的容赋给50H,SP减1后再将SP所指地址中的容赋给51H,SP容再减1给SP,最后程序结束。
13.请写出能实现下列功能的程序段:
(1)一个16位数据,高低字节分别放在20H和21H中,试将该数乘以2
MOVA,21H
CLRC
RRCA
MOV21H,A
MOVA,20H
RRCA
MOV20H,A
(2)16位二进制数由高位到低位放在30H和31H单元,将其容加1;
MOVA,31H
ADDA,#01H
MOV31H,A
MOVA,30H
ADDCA,#00H
MOV30H,A
(3)将DPTR中的数据减5;
CLRC
MOVA,DPL
SUBBA,#05H
MOVDPL,A
MOVA,DPH
SUBBA,#00H
MOVDPh,A
(4)有3个位变量X,Y,Z,请编写程序实现Y=X+YZ的逻辑关系式。
XBIT30H
YBIT31H
ZBIT32H
MOVC,Y
ANLC,Z
MOV20H,C
MOVC,X
ORLC,20H
MOVY,C
14.将一个按高低字节存放在21H、20H中的一个双字节乘以2后,再按高低次序将结果存放到22H、21H、20H单元
ORG0
STAR:
MOV20H,#0E2H;
设低字节的数据是E2H
MOV21H,#0F3H;
设高字节的数据是F3H
MOVB,#2H
MULAB
MOV20H,A
MOV23H,B
MOVA,21H
ADDCA,23H
MOV21H,A
MOV22H,B
SJMP$
END
15.试编程,将片外RAM1000H~1050H单元的容置为55H。
MOVP2,#10H
MOVR0,#00H
MOVA,#55H
MOVXR0,A
MOVR0,#50H
L0:
MOVXR0,A
DJNZR0,L0
16.试编程统计数据区长度的程序,设数据区从片RAM30H单元开始,该数据区以0结束,统计结果放入2FH中。
MOVR0,#30H
MOVA,R0
JZL1
INCR1
INCR0
SJMPL0
L1:
MOV2FH,R1
17.试编写程序,将片外RAM2000H~200FH数据区中的数据由大到小排列起来。
MOVP2,#20H
MOVR0,#00H
MOVR7,#0FH
CLRF0
LOOP:
MOVXA,R0
MOV31H,A
INCR0
CJNEA,31H,L1
L1:
JCL2
DECR0
MOVA,31H
SETBF0
L2:
DJNZR7,LOOP
JBF0,L0
END
18.若晶振频率位6MHZ,试计算下面延时子程序的延时时间
DELAY:
MOVR7,#0F6H;
1个机器周期
LP:
MOVR6,#0FAH;
DJNZR6,$;
2个机器周期
DJNZR7,LP;
RET;
机器周期为2us,则有:
[1+(1+2×
250+2)×
246+2]×
2us=247482us
19.试分别编写延时20ms和1s的程序
设晶振频率为12M
20ms:
MOVR1,#102
MOVR0,#48
NOP
DJNZR0,L2
NOP
DJNZR1,L1
NOP
1s:
----------------------------------------------
MOVR2,#50
MOVR1,#100
MOVR0,#49
DJNZR2,L0
20.试编写利用调用子程序的方法延时1min的程序。
ORG0H
MOVR2,#60
A0:
LCALLDLY
DJNZR2,A0
DLY:
MOVR1,#100
MOVR0,#49
NOP
DJNZR0,L2
NOP
DJNZR1,L1
RET
21.用查表程序求0~6之间的整数的立方。
已知整数存在A中,查表结果存入片RAM31H中。
MOVA,#DATA
MOVDPTR,#TAB
MOVCA,A+DPTR
MOV30H,A
TAB:
DB0,1,8,27,64,125,216
若立方数超过一个字节,在两个字节以,由以下程序实现。
ORG0000H
MOVA,#5
RLA
MOVR0,A
MOV31H,A;
高位
MOVA,R0
INCA
MOVCA,A+DPTR
MOV30H,A;
低位
DW0,1,8,27,64,125,216
22.编写程序,查找在部RAM的30H~50H单元中出现FFH的次数,并将查找结果存入51H单元。
MOVR1,#00H
MOVR2,#21H
CJNEA,#0FFH,L1
INCR1
DJNZR2,L0
MOV51H,R1
23.试用子程序求多项式:
Y=(A+B)2+(B+C)2(要求:
两数之和不能超过16)
XEQU30H;
X代表A
YEQU31H;
Y代表B
ZEQU32H;
Z代表C
FEQU33H;
F中存放计算结果Y
MOVR1,X
MOVR2,Y
LCALLL0
MOVR3,A
MOVR1,Y
MOVR2,Z
ADDA,R3
MOVF,A
Sjmp$
MOVA,R1
ADDA,R2
MOVB,A
MULAB
end
24.已知(60H)=33H,(61H)=43H,试写出程序的功能和运行结果。
ORG0000h
SS:
MOVR0,#61H
MOVR1,#70H
ACALLCRR
SWAPA
MOVR1,A
XCHDA,R1
CRR:
SUBBA,#30h
CJNEA,#0AH,NEQ
AJMPBIG
NEQ:
JCCEN
BIG:
SUBBA,#07H
CEN:
该程序的运行结果是:
(60H)=33H,(61H)=43H,(70H)=C3H
25.部RAM的30H单元开始存放着一组无符号数,其数目存放在21H单元中。
试编写程序,求出这组无符号数中的最小的数,并将其存入20H单元中。
DEC21H
CJNEA,20H,L1
JNCL2
MOV20H,A
DJNZ21H,LOOP
26.写程序实现散转功能:
(R2)=0转向RR0
(R2)=1转向RR1
(R2)=2转向RR2
MOVR2,#2H;
设(R2)=2
MOVA,R2
JMPA+DPTR
DBRR0-TAB
DBRR1-TAB
DBRR2-TAB
RR0:
MOVA,#1;
RR0:
将立即数1赋给A
SJMPENDF
RR1:
MOVA,#2;
RR1:
将立即数2赋给A
RR2:
MOVA,#3;
RR2:
将立即数3赋给A
ENDF:
27.试按子程序形式编程,将单字节二进制数高4位、低4位分别转换成两个字节的ASCII码。
MOVA,R0;
将R0中的容作为贝转换对象
ANLA,#0FH;
取低四位
MOVDPTR,#TAB
MOVCA,A+DPTR
MOV20H,A;
低四位转换后存放于20H中
MOVA,R0
ANLA,#0F0H;
取高四位
SWAPA
MOV21H,A;
高四位转换后存放于21H中
DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB41H,42H,43H,44H,45H,46H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 练习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)