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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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

2、 直接寻址 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) 指令 结果 (1) 7872

3、 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 A,B ;A

4、=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中的内容是什么?MOV R

5、0,#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 A2 MOV R0,A ADD A,R0 或 ADD A,ACC3 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=6EH,P=

7、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=12当A5BH时 ;ANL A,#7AH 0101 1011 0111 1010 0101 1010结果:A=5AH,P=03当A5BH时 ;XRL A,#7FH 0101 1011 0111 1111 0010 0100结果:A=24H,P=04当A5BH,CY1时 ;SUBB A,#0E8H 0101 1011 或将减

8、法转换成补码加法 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)=02H,(41H)=08H020

9、8 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执行程序后,SP42H,A30H,B30H27

10、试编一程序将外部数据存储器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,#81HMOV 40H,A29请用位操作指令,求下面逻辑方程:MOV P1.7,CMOV PSW.5,CANMOV P2.3,C 第五章 P112 1,3,6,7,11,20 1.编程将片内40H60H单元中内容送到以3000H为首的片

11、外RAM存储区中方法1: MOV R0,#40H MOV DPTR,#3000H MOV R2,#21HLOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,LOOP 方法2: MOV R0,#40H MOV DPTR,#3000H MOV R2,#0LOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR INC R2 CJNE R2,#21H,LOOP 方法3: MOV R0,#40H MOV DPTR,#3000HLOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR CJNE R0

12、,#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区50H57H 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

13、 R7,#3SHIFT: XCH A,R2 CLR C RRC A XCH A,R2 RRC A DJNZ R7,SHIFT MOV 5AH,A 6设有100个有符号数,连续存放在以2000H为首地址的片外RAM存储区中,试编程统计其中正数、负数、零的个数。方法1:CLR A MOV R5,A ;存零的个数 MOV R6,A ;存负数的个数 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 DOWNPL

14、US: 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 INC R5 SJMP DOWNNZERO: JC NEGATIVE INC R7 SJMP DOWNNEGATIVE: INC R6DOWN: DJNZ R2,LOOP 7请将片外数据存储器地址为1000H1030H的数据块,全部搬迁到片内RAM 30H60H中

15、,并将原数据块区域全部清“0”。解: ORG 1000H MOV DPTR,#1000H MOV R0,#30H MOV R2,#31HLOOP: MOVX A,DPTR MOV R0,A CLR A MOVX DPTR,A INC R0 INC DPTRDJNZ R2,LOOP 8试编写一子程序,使间址寄存器R1所指向的2个片外RAM连续单元中的高4位二进制数合并为1个字节装入累加器A中。已知R0指向低地址,并要求该单元高4位放在A的高4位中。 XX: MOVX A,R1 ANL A,#0F0H MOV B,A INC R1 MOVX A,R1 ANL A,#0F0H SWAP A ORL

16、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,AMOV A,BINC DPTRMOVX DPTR,ASJMP $NEXT: INC DPTR DJNZ R7,LOOPSJMP $11设在200H204H单元中存放有5个压缩BCD码,编程将它们转换成ASCII码,存放到以205H单元为首地址的存储

17、区中。方法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 INC 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,

18、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,LOOP 13试编程实现以下逻辑表达式的功能。设P1.7P1.0为8个变量的输入端,而其中P1.7又作为变量输出端。 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

19、C,/X7 MOV P1.7,C 解:ONE BIT 20H ;存第一项逻辑值 TWO BIT 21H ;存第二项逻辑值 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,C 20根据图5.6的线路设计灯亮移位程序,要求8只发光二极管每次亮一个,点亮时间为40ms。顺次一个一个地循环右移点亮,循环不止。已知时钟频率为

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

21、9CHCLR 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为方式

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

23、时LP0: MOV TH0,#0FFH ;赋初值定时50sMOV TL0,#9CHSETB TR0 ;启动T0工作LP1: JBC TF0,LP2 ;P1.2=1,输出50s高电平 SJMP LP1MOV TH0,#0FDH ;赋初值定时350sMOV TL0,#44HLP3: JBC TF0,LP4 ;P1.2=1,输出350s低电平 SJMP LP3LP4: SJMP LP06在80Cs的方波。方法1:选择T0工作于方式1定时250sfosc=12MHz216-X1S=250s X=65286=FF06HMOV TMOD,#01HMOV TH0,#0FFHMOV TL0,#06HSETB

24、TR0 DEL: MOV R7,#4 ;1ms=4250sD250: JBC TF0,D2 ;250s到清TF0,转移AJMP D250 ;250s未到,等待MOV TH0,#0FFH ;重装初值MOV TL0,#06H DJNZ R7,D250 ;4次未到,转D500AJMP DEL ;4次到,转DEL方法2:选择T0工作于方式2定时250s28-X1S=250s X=6MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0 DEL: MOV R7,#4 ;1ms=4250sD250: JBC TF0,D2 ;250s到清TF0,转移AJMP D250 ;

25、250s未到,等待 DJNZ R7,D250 ;4次未到,转D250AJMP DEL ;4次到,转DEL方法3:选择T0工作于方式2定时250s,中断28-X1S=250s X=6T1工作于方式1定时1ms,中断216-X1S=1000s X=64536=FC18HORG 0000HLJMP MAINORG 000BHLJMP T00ORG 001BHLJMP T11MAIN: MOV TMOD,#12HMOV TH0,#06HMOV TL0,#06HMOV TH1,#0FCHMOV TL1,#18HMOV IE,#8AHSETB TR0SETB TR1SJMP $ RETIT11: MOV

26、TH1,#0FCHMOV TL1,#18H RETI方法4:选择T0工作于方式3定时250s,中断。28-X1S=250s X=6 T0方式3时TL0占用TR0、TF0,TH0占用TR1、TF1。ORG 0000HLJMP MAINORG 000BHLJMP ITL0ORG 001BHLJMP ITH0MAIN: MOV SP,#50HMOV TMOD,#03HMOV TH0,#06HMOV TL0,#06HMOV R7,#4SETB TR0SETB TR1MOV IE,#8AHSJMP $ITL0: MOV TL0,#06H RETIITH0: MOV TH1,#06HDJNZ R7,ITH01MOV R7,#4ITH01: RETI7设系统时钟频率为24MHz,试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环不止。fosc=24MHzT0作外部计数器选择工作于方式1:1000=216-X X=64536=FC18HT1定时2ms选择工作于方式1:216-XS=2000s X=61536=F060HMOV TMOD,#15HST

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

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