- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机程序分析
有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。)
源程序如下:
ORG 1000H
MOV R0,#40H
MOV R7,#10
NEXT: MOV A, ①
ACALL SEPA
MOV @R0,A
INC R0
DJNZ ② ,NEXT
SJMP $
SEPA: ADD A,#00H
③ PSW.0,SRET
ORL A, ④
SRET: ⑤
@R0 ② R7 ③ JNB ④ #80H ⑤ RET
4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?(8分)
MOV R0,#30H ;R0=30H
MOV A,@R0 ;A=5AH
MOV R1,A ;R1=5AH
MOV B,R1 ;B=5AH
MOV @R1,P1 ;(5AH)=7FH
MOV A,P1 ;A=7FH
MOV 40H,#20H ;(40H)=20H
MOV 30H,40H ;(30H)=20H
解:每一条指令执行后的结果如注释字段所标。最后结果为:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。
四、程序阅读与分析题
1、试阅读下面的程序,指出该程序结束后累加器ACC和寄存器TH0的值,并说明该程序完成了怎样的功能。
ORG 0000H
MOV SP,#60H
MOV A,#10H
MOV TH0,#20H
PUSH ACC
PUSH TH0
POP ACC
POP TH0
END
答:利用堆栈交换了ACC和TH0的内容,(A)=20H,(TH0)=10H
2、程序段如下,试说明其功能。
MOV R0,#50H
MOV R1,#60H
MOV A,@R0
ADD A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R0
ADDC A,@R1
MOV @R0,A
MOV 00H,C
答:双字节无符号数加法。被加数存放在内部RAM的51H、50H单元,加数存放在内部RAM的61H、60H单元,相加的结果存放在内部RAM的51H、50H单元,进位存放在位寻址区的00H位中。
五、综合应用题
3、设80C51单片机晶振频率为6MHz,定时器T0工作于方式1。要求80C51以中断方式工作并在P1.0引脚输出周期为500微秒的方波。试:计算初值、编写含有初始化功能的主程序和完成方波输出的中断服务程序。
答:机器周期为2微秒。定时时间250微秒。需要计数N=125
初值为65536-125=65411=FF83H,所以(TH0)=FFH,(TL0)=83H
工作方式设置:0000 0001B,即(TMOD)=01H
主程序: 中断服务程序: (整体结构!)
MOV TMOD,#01H MOV TH0,#0FFH
MOV TH0,0FFH MOV TL0,#83H
MOV TL0,#83H CPL P1.0
SETB EA RETI
SETB ET0
SETB TR0
SJMP $
四、读程序(每小题4分,共20分)
1.执行下列程序段中第一条指令后,(1)(P1.7)=__0__ (P1.3)=__0___,(P1.2)=____0_____;执行第二条指令后,(2)(P1.5)=_____1____,(P1.4)=_____1____,(P1.3)=______1___.
ANL P1,#73H
ORL P1,#38H
2.下列程序段执行后,(A)=__0DH_______,(B)=_____11H____.
MOV A,#0FBH
MOV B,#12H
DIV AB
3.下列程序段执行后,(R0)=____7EH_____,(7EH)=__FFH_______,(7FH)=____3FH_____.
MOV R0,#7FH
MOV 7EH,#0
MOV 7FH,#40H
DEC
文档评论(0)