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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机习题参考答案0812.docx

1、单片机习题参考答案0812单片机习题参考答案第四章 P97 6,7,9,10,12,16,17,18,19,23,27,28,296 在80C51片RAM中,已知(30H)38H,(38H)40H,(40H)48H,(48H)90H,请分析下段程序中各指令的作用,并翻译成相应的机器码;说明源操作数的寻址方式与顺序执行每条指令后的结果。机器码(H) 指令 结果 源操作数的寻址方式E540 MOV A,40H ;A=(40H)=48H 直接寻址F8 MOV R0,A ;R0=48H 寄存器寻址7590F0 MOV P1,#0F0H ;P1=0F0H 立即寻址A630 MOV R0,30H ;(48

2、H)= 38H 直接寻址 901246 MOV DPTR,#1246H;DPTR=1246H 立即寻址853840 MOV 40H,38H ;(40H)=40H 直接寻址A830 MOV R0,30H ;R0=38H 直接寻址8890 MOV 90H,R0 ;(90H)=38H 寄存器寻址754830 MOV 48H,#30H ;(48H)=30H 立即寻址E6 MOV A,R0 ;A=40H 寄存器间接寻址8590A0 MOV P2,P1 ;P2=P1=38H 直接寻址7 试说明以下指令的作用,并将其翻译成机器码,执行最后一条指令对PSW有何影响?A的终值为多少?机器码(H) 指令 结果 (

3、1) 7872 MOV R0,#72H ;R0=72HE8 MOV A,R0 ;A=72H,P=0244B ADD A,#4BH ;A=BDH,CY=0,OV=1,AC=0,P=0(2) 7402 MOV A,#02H ;A=02H,P=1F5F0 MOV B,A ;B=02H740A MOV A,#0AH ;A=0AH,P=025F0 ADD A,B ;A=0CH,CY=0,OV=0,AC=0,P=0A4 MUL AB ;A=18H,B=0,CY=0,OV=0,AC=0,P=0(3) 7420 MOV A,#20H ;A=20H,P=1F5F0 MOV B, A ;B=20H25F0 ADD

4、 A,B ;A=40H,CY=0,OV=0,AC=0,P=19410 SUBB A,#10H ;A=30H,CY=0,OV=0,AC=0,P=084 DIV AB ;A=01H,B=10H,CY=0,OV=0,AC=0,P=19 试编程将片外数据存储器60H中的容传送到片RAM 54H单元中。MOV DPTR,#0060HMOVX A,DPTR MOV 54H,A(MOV P2,#0MOV R0,#60H MOVX A,R0MOV 54H,A)10试编程将寄存器R7容传送到R1中去。MOV A,R7MOV R1,A12试说明下段程序中每条指令的作用,并分析当执行完指令后,R0中的容是什么?MO

5、V R0,#0A7H ;R0=A7HXCH A,R0 ;A=A7H,A的容暂存R0SWAP A ;A=7AHXCH A,R0 ;R0=7AH,A的容恢复16试编程将片外RAM中30H和31H单元的容相乘,结果存放在32H和33H单元中,高位存放在33H单元中。MOV P2,#0MOV R0,#30HMOVX A,R0MOV B,AINC R0MOVX A,R0MUL ABINC R0MOVX R0,AINC R0MOV A,BMOVX R0,AMOV DPTR,#30HMOVX A,DPTRMOV B,AINC DPTRMOVX A,DPTRMUL ABINC DPTRMOVX DPTR,AI

6、NC DPTRMOV A,BMOVX DPTR,A17试用三种方法将累加器A中无符号数乘2。(1) CLR C RLC A(2) MOV R0,A ADD A,R0 或 ADD A,ACC(3) MOV B,#2 MUL AB18请分析依次执行下面指令的结果:MOV 30H,#0A4H ;(30H)=A4HMOV A,#0D6H ;A=D6H,P=1MOV R0,#30H ;R0=30HMOV R2,#47H ;R2=47HANL A,R2 ;A=46H,P=1ORL A,R0 ;A=E6H,P=1SWAP A ;A=6EH,P=1CPL A ;A=91H,P=1XRL A,#0FFH ;A=

7、6EH,P=1ORL 30H,A ;(30H)=EEH19求执行以下指令后,累加器A与PSW中进位位CY、奇偶位P和溢出位OV的值。(1)当A5BH时 ;ADD A,#8CH 0101 1011+) 1000 1100 1110 0111 结果:A=E7H,CY=0,OV=0,P=0,AC=1(2)当A5BH时 ;ANL A,#7AH 0101 1011)0111 1010 0101 1010结果:A=5AH,P=0(3)当A5BH时 ;XRL A,#7FH 0101 1011)0111 1111 0010 0100结果:A=24H,P=0(4)当A5BH,CY1时 ;SUBB A,#0E8H

8、 0101 1011 或将减法转换成补码加法 0101 1011 1110 1000 -E8H的补码 0001 1000-) 1 -1的补码 +) 1111 1111 0111 0010 10111 0010 结果:A=72H,CY=1,OV=0,P=0,AC=023执行下述程序后,SP?A?B?解释每一条指令的作用,并将其翻译成机器码。地址(H) 机器码(H) ORG 200H0200 758140 MOV SP,#40H ;SP=40H0203 7430 MOV A,#30H ;A=30H0205 120250 LCALL 250H ;调用250H开始的子程序SP=42H,;(42H)=0

9、2H,(41H)=08H0208 2410 ADD A,#10H ;此句没有执行020A F5F0 MOV B,A ;B=30H020C 80FE L1:SJMP L1 ;ORG 0250H0250 90020A MOV DPTR,#20AH;DPTR=020AH0253 C082 PUSH DPL ;DPL进栈,SP=43H,(43H)=0AH0255 C083 PUSH DPH ;DPH进栈,SP=44H,(44H)=02H0257 22 RET ;返回,此处是利用RET将栈顶容弹出PC=020AH,SP=42H44H02H43H0AH栈区 42H02H41H08H40H执行程序后,SP4

10、2H,A30H,B30H27试编一程序将外部数据存储器2100H单元中的高4位置“1”,其余位清”0”。 MOV DPTR,#2100H MOVX A,DPTR ANL A,#0F0H MOV A,#0F0H ORL A,#0F0HMOVX DPTR,A28试编程将部数据存储器40H单元的第0位和第7位置”1”,其余位变反。MOV A,40HCPL ASETB ACC.0 (或ORL A,#81H)SETB ACC.7MOV 40H,A29请用位操作指令,求下面逻辑方程:MOV C,P2.1ORL C,B.0ANL C,ACC.0ORL C,/P3.2MOV P1.7,CMOV C,P1.3A

11、NL C,ACC.2ORL C,B.5ANL C,/P1.1MOV PSW.5,CMOV C,B.4ANL C,/P1.5ORL C,/ACC.7ANL C,P1.0MOV P2.3,C第五章 P112 1,3,6,7,11,201.编程将片40H60H单元中容送到以3000H为首的片外RAM存储区中方法1: MOV R0,#40H MOV DPTR,#3000HMOV R2,#21HLOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTRDJNZ R2,LOOP方法2: MOV R0,#40H MOV DPTR,#3000HMOV R2,#0LOOP: MOV A

12、,R0 MOVX DPTR,A INC R0 INC DPTRINC R2 CJNE R2,#21H,LOOP方法3: MOV R0,#40H MOV DPTR,#3000HLOOP: MOV A,R0MOVX DPTR,A INC R0 INC DPTR CJNE R0,#61H,LOOP补充:编程将ROM中3000H3020H单元的容送片RAM40H60H单元中去。 MOV R0,#40H MOV DPTR,#3000H MOV R2,#21HLOOP: CLR AMOVC A,A+DPTR MOV R0,A INC R0 INC DPTR DJNZ R2,LOOP3.编程计算片RAM区5

13、0H57H 8个单元中数的算术平均值,结果存放在5AH中。解: ORG 2000H MOV R0,#50H CLR A MOV R2,ALOOP: ADD A,R0 JNC DOWN INC R2DOWN: INC R0 CJNE R0,#58H,LOOP MOV R7,#3SHIFT: XCH A,R2 CLR C RRC A XCH A,R2 RRC A DJNZ R7,SHIFT MOV 5AH,A6设有100个有符号数,连续存放在以2000H为首地址的片外RAM存储区中,试编程统计其中正数、负数、零的个数。方法1:CLR A MOV R5,A ;存零的个数 MOV R6,A ;存负数的

14、个数 MOV R7,A ;存正数的个数 MOV R2,#100 MOV DPTR,#2000HLOOP: MOVX A,DPTR JNZ NZERO INC R5 SJMP DOWNNZERO: JNB ACC.7,PLUS INC R6 SJMP DOWNPLUS: INC R7DOWN: INC DPTRDJNZ R2,LOOP方法2: CLR A MOV R5,A ;存零的个数 MOV R6,A ;存负数的个数 MOV R7,A ;存正数的个数 MOV R2,#100 MOV DPTR,#2000HLOOP: MOVX A,DPTR INC DPTR CJNE A,#0,NZERO IN

15、C R5 SJMP DOWNNZERO: JC NEGATIVE INC R7 SJMP DOWNNEGATIVE: INC R6DOWN: DJNZ R2,LOOP7请将片外数据存储器地址为1000H1030H的数据块,全部搬迁到片RAM 30H60H中,并将原数据块区域全部清“0”。解: ORG 1000H MOV DPTR,#1000H MOV R0,#30H MOV R2,#31HLOOP: MOVX A,DPTR MOV R0,ACLR A MOVX DPTR,A INC R0 INC DPTRDJNZ R2,LOOP8试编写一子程序,使间址寄存器R1所指向的2个片外RAM连续单元中

16、的高4位二进制数合并为1个字节装入累加器A中。已知R0指向低地址,并要求该单元高4位放在A的高4位中。#:MOVX A,R1 ANL A,#0F0H MOV B,A INC R1 MOVX A,R1 ANL A,#0F0H SWAP A ORL A,BRET10试编一查表程序,从首地址为1000H、长度为100的数据块中找出ASCII码A,将其地址送到10A0H和10A1H单元中。 MOV DPTR,#1000H MOV R7,#100LOOP: MOVX A,DPTR CJNE A,#A,NXET MOV A,DPL MOV B,DPH MOV DPTR,#10A0HMOVX DPTR,AM

17、OV A,BINC DPTRMOVX DPTR,ASJMP $NEXT: INC DPTR DJNZ R7,LOOPSJMP $11设在200H204H单元中存放有5个压缩BCD码,编程将它们转换成ASCII码,存放到以205H单元为首地址的存储区中。方法1: ORG 1000H MOV P2,#02H MOV R0,#00H MOV R1,#05H MOV R2,#05LOOP: MOVX A,R0 ANL A,#0FH ORL A,#30H MOVX R1,A INC R1 MOVX A,R0 SWAP A ANL A,#0FH ORL A,#30H MOVX R1,A INC R1 IN

18、C R0 DJNZ R2,LOOP方法2: ORG 1000H MOV R2,#02H MOV R3,#00H MOV R4,#05H MOV R7,#05 MOV DPH,R2LOOP: MOV DPL,R3MOVX A,DPTRMOV B,AINC DPTR MOV R3,DPLMOV DPL,R4 ANL A,#0FH ORL A,#30H MOVX DPTR,A INC DPTR MOV A,B SWAP A ANL A,#0FH ORL A,#30H MOVX DPTR,A INC DPTRMOV R4,DPL DJNZ R7,LOOP13试编程实现以下逻辑表达式的功能。设P1.7P

19、1.0为8个变量的输入端,而其中P1.7又作为变量输出端。解:X0 BIT P1.0 X1 BIT P1.1 X2 BIT P1.2 X3 BIT P1.3 X4 BIT P1.4 X5 BIT P1.5 X6 BIT P1.6 X7 BIT P1.7 ORG 2000H MOV C,X0 ANL C,X1 ANL C,/X2 ORL C,/X3 ORL C,X4 ANL C,X5 ANL C,X6 ORL C,/X7 MOV P1.7,C解:ONE BIT 20H ;存第一项逻辑值 TWO BIT 21H ;存第二项逻辑值 X0 BIT P1.0 X1 BIT P1.1 X2 BIT P1.

20、2 X3 BIT P1.3 X4 BIT P1.4 X5 BIT P1.5 X6 BIT P1.6 X7 BIT P1.7 ORG 2000H MOV C,X0 ANL C,X1 CPL CMOV ONE,C MOV C,X2 ANL C,X3 ANL C,X4 CPL C MOV TWO,C MOV C,X5 ANL C,X6 ANL C,X7 CPL C ORL C,TWO CPL C ORL C,ONE MOV P1.7,C20根据图5.6的线路设计灯亮移位程序,要求8只发光二极管每次亮一个,点亮时间为40ms。顺次一个一个地循环右移点亮,循环不止。已知时钟频率为24MHz。解: MOV

21、 A,#01HLOOP: MOV P1,A LCALL D40MS RR A SJMP LOOPD40MS: MOV R2,#160EXTERNAL: MOV R3,#250INTERNAL: DJNZ R3,INTERNALDJNZ R2,EXTERNAL RET第六章 P155 5,6,85已知80C51单片机系统时钟频率为24MHz,请利用定时器T0和P1.2输出矩形脉冲其波形如下:选择T0工作于方式2(8位重置初值)定时50sfosc=24MHz(28-X)0.5S=50s X=156=9CH 方法1: MOV TMOD,#02HMOV TH0,#9CHMOV TL0,#9CHCLR

22、P1.2 ;P1.2=0SETB TR0HIGH: SETB P1.2 ;P1.2=1,输出50s高电平HIGH1: JBC TF0,LOW ;50s到清TF0,转输出低电平AJMP HIGH1 ;50s未到,转HIGH1等待LOW: MOV R7,#7 ;350s=750sCLR P1.2 ;P1.2=0输出350s低电平LOW1: JBC TF0,LOW2 ;50s到清TF0,转LOW2 AJMP LOW1LOW2: DJNZ R7,LOW1 ;7次未到,转LOW1AJMP HIGH ;7次到,转HIGH,输出50s高电平方法2: MOV TMOD,#02H ;设置T0为方式2定时MOV

23、TH0,#9CH ;赋初值MOV TL0,#9CHCLR P1.2SETB TR0 ;启动T0工作L1: SETB P1.2 ;P1.2=1,输出50s高电平 MOV R7,#8 DEL: JBC TF0,REP ;50s到清TF0,转输出低电平AJMP DELREP: CLR P1.2 ;P1.2=0输出350s低电平 DJNZ R7,DEL AJMP L1 方法3: 选择T0工作于方式1定时50s(216-X)0.5S=50s X=65436=FF9CH 选择T0工作于方式1定时350s(216-X)0.5S=350s X=64836=FD44H START: MOV TMOD,#01H

24、;设置T0为方式1定时LP0: MOV TH0,#0FFH ;赋初值定时50sMOV TL0,#9CHCLR P1.2SETB TR0 ;启动T0工作SETB P1.2LP1: JBC TF0,LP2 ;P1.2=1,输出50s高电平 SJMP LP1LP2: CLR P1.2MOV TH0,#0FDH ;赋初值定时350sMOV TL0,#44HLP3: JBC TF0,LP4 ;P1.2=1,输出350s低电平 SJMP LP3LP4: SJMP LP06在80C51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500s的方波。方法1:选择T0工作于方

25、式1定时250sfosc=12MHz(216-X)1S=250s X=65286=FF06HMOV TMOD,#01HMOV TH0,#0FFHMOV TL0,#06HSETB TR0 DEL: MOV R7,#4 ;1ms=4250sD250: JBC TF0,D2 ;250s到清TF0,转移AJMP D250 ;250s未到,等待D2: CPL P1.1MOV TH0,#0FFH ;重装初值MOV TL0,#06H DJNZ R7,D250 ;4次未到,转D500CPL P1.0AJMP DEL ;4次到,转DEL方法2:选择T0工作于方式2定时250s(28-X)1S=250s X=6M

26、OV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0 DEL: MOV R7,#4 ;1ms=4250sD250: JBC TF0,D2 ;250s到清TF0,转移AJMP D250 ;250s未到,等待D2: CPL P1.1 DJNZ R7,D250 ;4次未到,转D250CPL P1.0AJMP DEL ;4次到,转DEL方法3:选择T0工作于方式2定时250s,中断(28-X)1S=250s X=6T1工作于方式1定时1ms,中断(216-X)1S=1000s X=64536=FC18HORG 0000HLJMP MAINORG 000BHLJMP

27、T00ORG 001BHLJMP T11MAIN: MOV TMOD,#12HMOV TH0,#06HMOV TL0,#06HMOV TH1,#0FCHMOV TL1,#18HMOV IE,#8AHSETB TR0SETB TR1SJMP $T00: CPL P1.1 RETIT11: MOV TH1,#0FCHMOV TL1,#18HCPL P1.0 RETI方法4:选择T0工作于方式3定时250s,中断。(28-X)1S=250s X=6T0方式3时TL0占用TR0、TF0,TH0占用TR1、TF1。ORG 0000HLJMP MAINORG 000BHLJMP ITL0ORG 001BHLJ

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

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