ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:20.90KB ,
资源ID:8420578      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8420578.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机原理与应用练习题3答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机原理与应用练习题3答案.docx

1、单片机原理与应用练习题3答案练习题3答案1. 简述下列基本概念:指令,指令系统,机器语言,汇编语言。答:指令是单片机CPU执行某种操作的命令。指令系统是一台计算机所能执行的指令集合。机器语言即二进制代码语言,是计算机可以直接识别。汇编语言是用助记符、字符串和数字等来表示指令的程序语。2. 简述AT89S51单片机的指令格式答:该单片机的指令由两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作,而操作数则是指令操作的对象,操作数可能是一个具体的数据,也可能是指出到哪里取得数据的地址或符号。指令格式一般为: 标号: 操作码 操作数1,操作数2,操作数3 ;注释3. 简述AT89S51的寻

2、址方式和所能涉及的寻址空间 表3-2 寻址方式及相应的寻址存储器范围寻 址 方 式寻 址 存 储 器 范 围立即寻址程序存储器ROM直接寻址片内RAM低128B,特殊功能寄存器寄存器寻址工作寄存器R0R7,A, C, DPTR,AB 寄存器间接寻址片内RAM低128B,片外RAM 变址寻址程序存储器ROM(A+DPTR,A+PC)相对寻址程序存储器ROM (相对寻址指令的下一指令PC值加128127)位寻址片内RAM的20H2FH字节地址中所有的位,可位寻址的特殊功能寄存器答:共有7种寻址方式,见表3-2。分别是:(1)寄存器寻址:寻址围为通用寄存器组,共4组32个,但只能使用当前寄存器组,因

3、此使用前需要通过对PSW种的RS1、RS0位的状态进行设置;(2)直接寻址:寻址围为部RAM,包括低128位用户RAM区和高128位专用寄存器;(3)寄存器间接寻址:寻址围为部RAM低128位,外部RAM 64KB(低256单元可以使用DPTR和R0、R1作为间接寻址寄存器,而其他单元只能用DPTR作为间接寻址寄存器);(4)立即寻址:直接给出立即数,不涉及寻址空间;(5)变址寻址:只对程序寄存器进行寻址;(6)相对寻址:以PC的容为基值,加上指令机器代码中相对地址形成新的PC值转移;(7)位寻址:寻址空间包括部RAM位寻址区(202FH)和专用寄存器的可寻址位。4. 要访问片外程序存储器和片

4、外数据存储器,应采用哪些寻址方式?答:访问片外程序存储器采用变址寻址方式,片外数据存储器采用寄存器间接寻址方式,且用DPTR可以访问64KB,而用R0或者R1只可访问低256字节。5. 在AT89S51片RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。请分析下面各是什么指令,说明源操作数的寻址方式及按顺序执行每条指令后的结果。答:指令指令说明源操作数寻址方式结果MOV A, 40H将部RAM中40H容传送到累加器A中(A) (40H)直接寻址(A)48HMOV R0, A再将A中容传送给R0(R0) (A)寄存器寻址(R0)=48HMOV P1,

5、#0F0H将立即数0F0H送到P1口,即P1.4P1.7位1,其余为0(P1) 0F0H立即数寻址(P1)=0F0HMOV R0, 30H将30H中的容,传放到以R0单元容为地址的单元中(R0) (30H)直接寻址(R0)=(48H)=38HMOV DPTR, #3848H将立即数3848传送给DPTR数据指针(dptr) 3848H立即数寻址(DPTR)=3848HMOV 40H, 38H将部RAM中38H容传送到40H单元中(40H) (38H)直接寻址(40H)=40HMOV R0, 30H将30H中的容给R0寄存器(R0) (30H)直接寻址(R0)=38HMOV P0, R0将R0的

6、容传送到P0(P0) (R0)寄存器寻址(P0)=38HMOV A, R0将R0容为地址的该单元容传送给A(A)(R0)寄存器间接寻址(A)=40HMOV P2, P1将P1的容传送给P2(P2) (P1)直接寻址(P2)=0F0H6. 指出下列指令的源操作数的寻址方式 MOV A, 65H 直接寻址MOV A, #65H 立即数寻址MOV A, R0 寄存器间接寻址MOV A, R2 寄存器寻址MOVC A, A+PC 变址寻址7. 部RAM和特殊功能寄存器各用什么寻址方式?答:部RAM有寄存器寻址方式、直接寻址方式和间接寻址方式; 特殊功能寄存器除A外只能进行直接寻址。8. 已知:(A)=

7、5BH,(R1)=30H,(30H)=0CEH,(P1)=71H,(PSW)=80H,(PC)=2000H,(205CH)=46H,(SP)=30H,(B)=78H。分别求各条指令执行后的结果(要求进行二进制运算验证)及标志位Cy、P的影响。(1)MOV A, R1 (A)=0CEH P=1, C不变(2)MOV 40H, 30H (40H)=0CEH P和C不变(3)MOV P1, R1 (P1)=30H P和C不变(4)MOVC A, A+PC (A)=46H P=1, C不变(5)PUSH B (31H)=78H,(SP)=31H P和C不变(6)POP DPH (DPH)=0CEH,(

8、SP)=29H P和C不变(7)XCHD A, R1 (A)=05EH,(30H)=CBH P=1, C不变(8)ADD A, 30H (A)=29H P=1, C=1(9)ADDC A, P1 (A)=CDH P=1, C=0(10)SUBB A, P1 (A)=E9H P=1, C=1(11)ANL P1, #0FH (P1)=01H P和C不变(12)CLR PSW.7 C=0(13)RLC A (A)=B7H P=0, C=0(14)ORL C, 90H C=1, P不变9. 对下面一段程序加上机器码和注释,并说明程序运行后寄存器A、R0和部RAM 50H、51H、52H单元的容。 M

9、OV 50H,#50H 75 50 50;(50H)50H MOV A,50H E5 50;(A)(50H) MOV R0,A F8;(R0)(A)MOV A,#30H 74 30;(A)30HMOV R0,A F6;(R0)(A)MOV A,#50H 74 50;(A)50HMOV 51H,A F5 51;(51H)(A)MOV 52H,#00H 75 52 00;(52H)00H答:运行后寄存器(A)=50H,(R0)=50H,(50H)=30H,(51)=50H,(52H)=00H10. 区别下列各指令中20H的含义,在每条指令后加上注释。MOV A , 20H 将20H立即数传送给AM

10、OV 45H, 20H 将部RAM中20H单元的容传送到45H中MOV C, 20H.0 将部RAM中20H单元容的第0位(最低位)传送给CMOV C, 20H 将部RAM中20H位地址容传送给C11. 写出完成以下功能的指令(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)使累加器

11、的低4位清零; (10)使P1.2与CY相与,结果送CY; (11)立即数45H、93H进行逻辑与、或、异或操作; (12)两立即数求和:1C0H45H,结果按高低8位存在30H、31H中。 答案:(1)MOV R1,30H (2) MOV 78H, 30H(3)MOV R0, #30H (4)MOV P1, R2(5) MOV A,60H; mov p2,#0; mov r0,#60h; movx r0,a(6) MOV A,60H; mov dptr,#1060; movx dptr,a(7) MOV A, #00H MOV DPTR,#1000H MOVC A, A+DPTR MOV 3

12、0H,A (8)SETB ACC.7 (9) ANL A, #0F0H(10) ANL C, p1.2(11) 与: MOV A,#45H ANL A,#59H 或: MOV A,#45H ORL A,#59H异或:PMOV A,#45H XRL A,#59H(12) CLR CMOV R2,#1MOV A,#0C0H ADD A,#45HMOV 31H,AMOV A,R2ADDC A,#0MOV 30H,A12. 写出下列指令执行过程中堆栈的变化设堆栈初值为X: MOV R6, #11H (SP)=X(堆栈不变) MOV R7, #23H (SP)=X(堆栈不变) ACALL 200H (S

13、P)=X+2 ;(X+1)=第4条指令的首址PC低8位 (X+2)=第4条指令的首址PC高8位 POP 50H (SP)=X-1 POP 51H (SP)=X-2 SJMP $ ORG 200H RET答:执行过程中,前面两条为立即寻址指令,堆栈不变;执行第三条ACALL指令时,首先将程序寄存器PC的当前值加2,接着先后将PC的低八位和高八位分别进栈,(SP)= (SP)+2;然后再将PC容中的低11位用200H来替代,同时程序跳到第七条ORG200H中,接着RET表示子程序返回,将原先压入堆栈的PC值弹出,(SP) =(SP)-2;最后两条POP指令执行后将SP所指地址中的容赋给50H,SP

14、减1后再将SP所指地址中的容赋给51H,SP容再减1给SP,最后程序结束。13. 请写出能实现下列功能的程序段:(1)一个16位数据,高低字节分别放在20H和21H中,试将该数乘以2MOV A, 21H CLR C RRC AMOV 21H, AMOV A, 20HRRC AMOV 20H, A(2)16位二进制数由高位到低位放在30H和31H单元,将其容加1; MOV A, 31H ADD A, #01HMOV 31H, AMOV A, 30HADDC A, #00HMOV 30H, A(3)将DPTR中的数据减5;CLR CMOV A, DPL SUBB A, #05H MOV DPL,

15、A MOV A, DPH SUBB A, #00H MOV DPh, A(4)有3个位变量X,Y,Z,请编写程序实现Y=X+YZ的逻辑关系式。X BIT 30HY BIT 31HZ BIT 32HMOV C,YANL C,ZMOV 20H,CMOV C,XORL C,20HMOV Y, C14. 将一个按高低字节存放在21H、20H中的一个双字节乘以2后,再按高低次序将结果存放到22H、21H、20H单元ORG 0STAR: CLR CMOV 20H,#0E2H ;设低字节的数据 是E2HMOV 21H,#0F3H ;设高字节的数据是F3HMOV A, 20HMOV B,#2HMUL ABMO

16、V 20H,AMOV 23H,BMOV A,21HMOV B,#2HMUL ABADDC A,23HMOV 21H,AMOV 22H,BSJMP $END15.试编程,将片外RAM 1000H1050H单元的容置为55H。MOV P2,#10HMOV R0,#00HMOV A,#55HMOVX R0,AMOV R0,#50HL0: MOVX R0,A DJNZ R0,L0 SJMP $END16. 试编程统计数据区长度的程序,设数据区从片RAM 30H单元开始,该数据区以0结束,统计结果放入2FH中。MOV R0,#30HL0: MOV A,R0 JZ L1 INC R1 INC R0SJMP

17、 L0 L1:MOV 2FH, R117. 试编写程序,将片外RAM 2000H200FH数据区中的数据由大到小排列起来。ORG 0L0: MOV P2,#20H MOV R0,#00H MOV R7,#0FH CLR F0LOOP: MOVX A,R0 MOV 31H,A INC R0 MOVX A,R0 CLR C CJNE A,31H,L1L1: JC L2 DEC R0 MOVX R0,A MOV A,31H INC R0 MOVX R0,A SETB F0L2: DJNZ R7,LOOP JB F0,L0 SJMP $ END18. 若晶振频率位6MHZ,试计算下面延时子程序的延时时

18、间 DELAY: MOV R7, #0F6H ;1个机器周期 LP: MOV R6, #0FAH ;1个机器周期 DJNZ R6, $ ;2个机器周期 DJNZ R7, LP ;2个机器周期 RET ;2个机器周期答: 机器周期为2us,则有:1+(1+2250+2)246+22 us =247482 us19. 试分别编写延时20ms和1s的程序设晶振频率为12M20ms:ORG 0MOV R1,#102L1: MOV R0,#48L2: NOP NOP DJNZ R0,L2 NOP DJNZ R1,L1NOPNOPNOPNOPNOPNOPNOPEND 1s:-ORG 0MOV R2,#50

19、L0: MOV R1,#100L1: MOV R0,#49L2: NOP NOP DJNZ R0,L2 NOP DJNZ R1,L1DJNZ R2,L0SJMP $END20. 试编写利用调用子程序的方法延时1min的程序。ORG 0HMOV R2,#60A0: LCALL DLY DJNZ R2,A0SJMP $DLY:MOV R2,#50L0: MOV R1,#100L1: MOV R0,#49L2: NOP NOP DJNZ R0,L2 NOP DJNZ R1,L1DJNZ R2,L0RETEND21. 用查表程序求06之间的整数的立方。已知整数存在A中,查表结果存入片RAM 31H中。

20、ORG 0MOV A, #DATAMOV DPTR,#TABMOVC A, A+DPTRMOV 30H,A SJMP $TAB: DB 0,1,8,27,64,125,216END若立方数超过一个字节,在两个字节以,由以下程序实现。ORG 0000HMOV A,#5RL AMOV R0,AMOV DPTR,#TABMOVC A, A+DPTRMOV 31H,A ;高位MOV A,R0INC AMOVC A,A+DPTRMOV 30H,A ;低位SJMP $TAB: DW 0,1,8,27,64,125,216END22. 编写程序,查找在部RAM的30H50H单元中出现FFH的次数,并将查找结

21、果存入51H单元。MOV R1,#00HMOV R0,#30HMOV R2,#21HL0: MOV A,R0 CJNE A,#0FFH,L1 INC R1L1: INC R0 DJNZ R2,L0 MOV 51H,R1SJMP $END23. 试用子程序求多项式:Y=(A+B)2+(B+C)2 (要求:两数之和不能超过16)X EQU 30H ;X代表AY EQU 31H ;Y代表BZ EQU 32H ;Z代表CF EQU 33H ;F中存放计算结果YMOV R1,XMOV R2,YLCALL L0MOV R3,AMOV R1,YMOV R2,ZLCALL L0ADD A,R3MOV F,AS

22、jmp $L0: MOV A,R1 ADD A,R2 MOV B,A MUL AB RETend24. 已知(60H)=33H,(61H)=43H,试写出程序的功能和运行结果。ORG 0000hSS: MOV R0,#61H MOV R1,#70H ACALL CRR SWAP A MOV R1,A DEC R0 ACALL CRR XCHD A,R1 SJMP $CRR: MOV A,R0 CLR C SUBB A,#30h CJNE A,#0AH,NEQ AJMP BIGNEQ: JC CENBIG: SUBB A,#07HCEN: RET该程序的运行结果是:(60H)=33H, (61H

23、)=43H, (70H)=C3H25. 部RAM的30H单元开始存放着一组无符号数,其数目存放在21H单元中。试编写程序,求出这组无符号数中的最小的数,并将其存入20H单元中。MOV R0,#30HMOV A,R0MOV 20H,ADEC 21HLOOP: INC R0 MOV A,R0 CJNE A,20H,L1L1: JNC L2 MOV 20H,AL2: DJNZ 21H,LOOP SJMP $END26. 写程序实现散转功能: (R2)=0 转向RR0 (R2)=1 转向RR1(R2)=2 转向RR2ORG 0MOV R2,#2H ;设(R2)=2MOV DPTR,#TABMOV A,

24、R2MOVC A,A+DPTRJMP A+DPTRTAB: DB RR0-TAB DB RR1-TAB DB RR2-TABRR0: MOV A,#1 ;RR0:将立即数1赋给A SJMP ENDFRR1: MOV A,#2 ;RR1:将立即数2赋给A SJMP ENDFRR2: MOV A,#3 ;RR2:将立即数3赋给A SJMP ENDFENDF: SJMP $27. 试按子程序形式编程,将单字节二进制数高4位、低4位分别转换成两个字节的ASCII码。MOV A,R0 ;将R0中的容作为贝转换对象ANL A,#0FH ;取低四位MOV DPTR,#TABMOVC A,A+DPTRMOV 20H,A ;低四位转换后存放于20H中MOV A,R0ANL A,#0F0H ;取高四位SWAP AMOVC A,A+DPTRMOV 21H,A ;高四位转换后存放于21H中TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1