版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理与应用练习题3答案练习题3答案1. 简述下列基本概念:指令,指令系统,机器 语言,汇编语言。答:指令是单片机CPU执行某种操作的命令。 指令系统是一台计算机所能执行的指令集合。 机器语言即二进制代码语言,是计算机可以直 接识别。汇编语言是用助记符、字符串和数字等来表示 指令的程序语。2. 简述AT89S51单片机的指令格式答:该单片机的指令由两部分组成,即操作码和 操作数。操作码用来规定指令进行什么操作,而 操作数则是指令操作的对象,操作数可能是一个 具体的数据,也可能是指出到哪里取得数据的地 址或符号。指令格式一般为:标号:操作码操作数1,操作数2,操作数3;注释3. 简述AT89
2、S51的寻址方式和所能涉及的寻址 空间答:共有7种寻址方式,见表3-2。分别是:(1)寄存器寻址:寻址范围为通用寄存器 组,共4组32个,但只能使用当前寄存器组, 因此使用前需要通过对PSW种的RS1、RS0位 的状态进行设置;(2)直接寻址:寻址范围为内部RAM,包括低128位用户RAM区和高128位 专用寄存器;(3)寄存器间接寻址:寻址范围为内部RAM 低128位,外部 RAM 64KB (低256表3-2 寻址方式及相应的寻址存储器范围寻址方式寻址存 储器范围立即寻址程序存储器ROM直接寻址片内RAM低128B,特殊功能寄存器寄存器寻址工作寄存器 R0R7,A, C, DPTR,AB寄
3、存器间接寻址片内RAM 低128B,片外 RAM变址寻址程序存储器 ROM (A+DPTR,A+PC )相对寻址程序存储器ROM (相对寻址指令的下一指令 PC值加128+ 127)位寻址片内RAM的20H2FH字节地址中所有的位,可位寻址的特殊功能寄存器单元可以使用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。请分析 下面各是什么指令,说明源操作数的寻址方式及 按顺序执行每条指令后的结果。指令指令说明源 操 作 数 寻 址 方 式结果MOVA, 40H将内部RAM中40H内容传送到累加器A中(A )(40H)直 接 寻 址(A) = 48
5、HMOVR0, A再将A中内 容传送给R0(R0 )(A)寄 存 器 寻 址(R0)=48HMOVP1,#0F0H将立即数0F0H送到P1 口,即P1.4P1.7位1,其余为0(P1)J0F0H立 即 数 寻 址(P1)=0F0HMOVR0,将30H中的内容,传直接(R0)=(48H)=38H30H放到以R0 单元内容为 地址的单元 中(R0) (30H)寻 址MOV DPTR, #3848H将立即数3848传送 给DPTR数 据指针 (dptr) 3848H立 即 数 寻 址(DPTR)=3848HMOV40H,38H将内部 RAM中38H内容传 送到40H单元中(40H)J(38H)直 接
6、 寻 址(40H)=40HMOVR0,30H将30H中的内容给R0寄存器直接寻(R0)=38H(RO)J(30H)址MOVP0, R0将RO的内 容传送到PO(PO)J(RO)寄 存 器 寻 址(PO)=38HMOVA,R0将RO内容 为地址的该 单元内容传 送给A(A) J (RO)寄 存 器 间 接 寻 址(A)=4OHMOVP2, P1将P1的内 容传送给P2(P2)J(P1)直 接 寻 址(P2)=OFOH6.指出下列指令的源操作数的寻址方式MOV A, 65H直接寻址MOV A, #65H立即数寻址MOV A, R0寄存器间接寻址MOV A, R2寄存器寻址MOVC A, A+PC变
7、址寻址7.内部RAM和特殊功能寄存器各用什么寻址 方式?答:内部RAM有寄存器寻址方式、直接寻址方 式和间接寻址方式;特殊功能寄存器除A外只能进行直接寻址。& 已知:(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)=3
8、0HP和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
9、(14) ORLC, 90HC=1, P不变9.对下面一段程序加上机器码和注释,并说明 程序运行后寄存器 A、R0和内部RAM 50H、 51H、52H单元的内容。MOV50H , #50H7550 50;(50H) 50HMOVA, 50HE550;(A)( 50H)MOVR0,AF8;(R0)J( A)MOVA, #30H7430;(A ) 30HMOVR0,AF6;(R0)(A)MOVA, #50H7450;(A ) 50HMOV51H , AF551;(51H)( A)MOV52H, #00H75 5200; (52H ) 00H答:运行后寄存器(A)=50H , (R0)=50H ,
10、 (50H)=30H , (51)=50H , (52H)=00H10. 区别下列各指令中20H的含义,在每条指令 后加上注释。MOV A ,# 20H 将20H立即数传送给AMOV 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)将R
11、2中的内容送到 P1;(5) 将内RAM60I单元的数据送到 外RAM60I单元;(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)M0V R1,井 30H(2) MOV 78H, 30H(3)MOV R0, #30H(4) MOV P1, R2(5) MOV A,
12、60H;MOV P2,#0;MOV R0,#60H;MOVX R0,A(6) MOV A,60H;MOV DPTR,#1060;MOVX DPTR,A(7) MOV A, #00HMOV DPTR,#1000H MOVC A, A+DPTRMOV 30H , A(8)SETB ACC.7(9) ANL A, #0F0H(10) ANL C, p1.2(11) 与:MOV A,#45HANL A,#59H或:MOV A,#45HORL A,#59H异或:PMOV A,#45HXRL A,#59H(12) CLR CMOV R2,#1MOV A,#0C0HADD A,#45HMOV 31H, AM
13、OV A,R2 ADDC A , #0MOV 30H , A12.写出下列指令执行过程中堆栈的变化设堆栈初值为X:MOV R6,#11H(SP)=X (堆栈不变)MOV R7,#23H(SP)=X (堆栈不变)ACALL 200H(SP)=X+2;(X+1)=第 4条指令的首址PC低8位(X+2)=第4条指令的首址PC高8位POP 50H( SP)=X-1POP 51H( SP)=X-2SJMP $ORG 200HRET答:执行过程中,前面两条为立即寻址指令,堆 栈不变;执行第三条ACALL指令时,首先将程 序寄存器PC的当前值加2,接着先后将PC的 低八位和高八位分别进栈,(SP)= (SP
14、)+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中,试将该数乘以2MOV A, 21HCLR CRRC AMOV 21H, AMOV A, 20HRRC AMOV 20H, A(2) 16位二进制数由高位到低位放在 30H和 3
15、1H单元,将其内容加1;MOV ADD MOV MOV ADDC MOVA, 31HA, #01H31H, AA, 30HA, #00H30H, A(3)将DPTR中的数据减5;CLRCMOVA, DPLSUBBA, #05HMOVDPL, AMOVA, DPHSUBBA, #00HMOVDPh, A(4)有3个位变量X,丫 , Z,请编写程序实现Y=X+YZ的逻辑关系式。XBIT30HYBIT31HZBIT32HMOV C,YANL C,ZMOV 20H,CMOV C,XORL C,20HMOV Y, C14.将一个按高低字节存放在 21H、20H中的一 个双字节乘以2后,再按高低次序将结果
16、存放到 22H、21H、20H 单元ORG 0STAR: CLR CMOV 20H,#0E2H;设低字节的数据是E2HMOV 21H,#0F3H;设高 字节的数据是F3HMOV A, 20HMOV B,#2HMUL ABMOV 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,ADJNZ R0,
17、L0SJMP $END16. 试编程统计数据区长度的程序,设数据区从 片内RAM 30H单元开始,该数据区以0结束, 统计结果放入2FH中。MOV R0,#30HL0: MOV A,R0JZ L1INC R1INC R0SJMP L0L1 : MOV 2FH, R117. 试编写程序,将片外RAM 2000H200FH 数 据区中的数据由大到小排列起来。ORG 0L0: MOV P2,#20HMOV R0,#00HMOV R7,#0FHCLR F0LOOP: MOVX A,R0MOV 31H,AINC R0MOVX A,R0 CLR CCJNE A,31H,L1L1: JC L2DEC R0M
18、OVX R0,A MOV A,31H INC R0MOVX R0,A SETB F0L2: DJNZ R7,LOOP JB F0,L0 SJMP $ END18.若晶振频率位6MHZ,试计算下面延时子程 序的延时时间DELAY:器周期LP:MOV R7, #0F6H; 1 个机MOV R6, #0FAH; 1 个机器周期期DJNZR7, LP; 2个机器周期RET;2个机器周期答:机器周期为2us,则有:1+ (1+2X 250+2)X 246+2 X 2 us =247482 us19.试分别编写延时20ms和1s的程序 设晶振频率为12M20ms:ORG 0MOV R1,#102L1: M
19、OV R0,#48L2: NOPNOPDJNZ R0,L2NOPDJNZ R1,L1NOPNOPNOPNOPNOPNOPNOPENDORG 0MOV R2,#50L0: MOV R1,#100L1: MOV R0,#49L2: NOPNOPDJNZ R0,L2NOPDJNZ R1,L1DJNZ R2,L0 SJMP $END1min 的20.试编写利用调用子程序的方法延时 程序。ORG 0HMOV R2,#60A0:LCALL DLYDJNZ R2,A0 SJMP $DLY : MOV R2,#50L0: MOV R1,#100L1: MOV R0,#49L2: NOPNOPDJNZ R0,L
20、2NOPDJNZ R1,L1DJNZ R2,L0RETEND21.用查表程序求06之间的整数的立方。已 知整数存在 A中,查表结果存入片内 RAM 31H 中。ORG 0MOV A, #DATAMOV DPTR,#TABMOVC A, A+DPTRMOV 30H,ASJMP $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
21、;低位SJMP $TAB: DW 0,1,8,27,64,125,216END22.编写程序,查找在内部 RAM的30H50H单元中出现FFH的次数,并将查找结果存入 51H 单元。MOV R1,#00HMOV R0,#30HMOV R2,#21HL0: MOV A,R0CJNE A,#0FFH,L1INC R1L1: INC R0DJNZ R2,L0MOV 51H,R1SJMP $END23.试用子程序求多项式: Y=(A+B) 2+(B+C)2(要求:两数之和不能超过16)F计算结果YEQU 30HEQU 31HEQU 32HEQU 33H;X代表A ;Y代表B ;Z代表C ;F中存放MO
22、V R1,XMOV R2,YLCALL L0MOV R3,AMOV R1,YMOV R2,ZLCALL L0ADD A,R3MOV F,ASjmp $L0: MOVA,R1ADDA,R2MOVB,AMULABRETend24.已知(60H) =33H,(61H)=43H,试写出程序的 功能和运行结果。ORG 0000hSS: MOV R0,#61HMOV R1,#70HACALL CRRSWAP AMOV R1,ADEC R0ACALLCRRXCHD A,R1SJMP $CRR: MOV A,R0CLR CSUBB A,#30hCJNE A,#0AH,NEQAJMP BIGNEQ: JC CENBIG: SUBB A,#07HCEN: RET该程序的运行结果是:(60H)=33H,(61
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季小学数学开学第一课 学科趣味入门课件
- 2026年秋季开学高中秋季开学家长会课件
- 租房居住房屋安全责任补充协议 消防燃气安全专项约定
- 数学试卷山东青岛市平度市2025年(届)高三高考模拟检测(三)(平度三模)(5.24-5.26)
- 客舱设施与服务(第2版)04餐饮服务
- 高考志愿填报与动态调整机制研究
- 银行业绿色金融产品创新设计框架与实践路径研究
- 制造业转型升级研究
- 平台经济可持续发展机制与规范化路径研究
- 基于数字化技术的企业碳排放全过程追踪与碳资产价值管理研究
- Unit3SeaExploration单词讲解教学设计-2023-2024学年高中英语人教版(2019)选择性必修第四册
- DL∕T 2553-2022 电力接地系统土壤电阻率、接地阻抗和地表电位测量技术导则
- JT-T-1213-2018陆港设施设备配置和运营技术规范
- 汽车加油加气加氢站技术标准
- ISO14001:2015环境管理体系培训教材
- 低血糖性昏迷的护理课件
- 中国建设银行个人住房贷款抵押合同
- 中国石油天然气股份有限公司油气田地面建设工程(项目)竣工验收手册修订版
- 注塑机点检表
- 《无能的力量》到《给你一点颜色》谈崔健的摇滚之路,音乐论文
- GB/T 23914.2-2009道路车辆装载物固定装置安全性第2部分:合成纤维栓紧带总成
评论
0/150
提交评论