- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
习 题(我注意红色标注的去年有过相关题型或者整合)这个习题可以应付差不多三个编程题,都要懂啊。;; 30H addr = len 31H =ARRAY DATA
START: MOV R0, #31H
MOV R7, 30H
CLR A
LOOP: ADD A, @R0
INC R0
DJNZ R7, LOOP
MOV @R0, A
HERE: SJMP HERE
;External RAM BLOCK1 ? Internal RAM BLOCK2
LEN = #30H
START: MOV DPTR, #BLOCK1
MOV R0, #BLOCK2
MOV R1, #30H
LOOP: MOVX A, @DPTR
MOV @R0, A
INC DPTR
INC R0
DJNZ R1, LOOP
SJMP $
;3、已知2个多字节BCD数,按照低位在前的顺序分别存放在内部数据存储器的30H和50H开始的地址单元中,字节长度在2FH单元。求两数的和,存于30H开始的单元中,仍按低位在前。注意最高位进位处理。;4、使用位操作指令实现逻辑操作:(1)设RES为内部数据存储器中的一个位地址:RES = (/10H ∨ P1.0) ∧ 11H ∨ CY(这个去年也有,只不过是想给框图,自己写出逻辑运算表达式,然后再写代码);(2) P1.5 = ACC.2 ∧ P2.7 ∨ ACC.1 ∧ P2.0;5、编写程序查找在内部RAM的20H到50H地址内00H出现的次数,将结果存入51H中。(去年有个类似的编程题,好像是比较大小排序什么的,就是这种类型的);5、另一种方法:;6、编程求内部RAM20H和21H地址中两个有符号数的差的绝对值|(20H)-(21H)|,将结果存在A中。若计算中出现溢出,则将PSW中的F0位置1,否则置0。;7、外部RAM中有首地址SOURCE开始的长度为LEN的数据块,要求将该数据区传送到内部RAM以DEST地址开始的区域,直到遇见字符“$”(“$”也传送),或整个字符串传送完毕。;8、内部RAM区中从BLOCK地址开始有1个正数数据区,其中的数据为无序排列以-1作结束标志。编程找出数据区中的最小数。;AGAIN:MOV R2, #10;
TIMER:MOV TMOD,#01;T0定时,方式1
MOV TH0,#3CH;==100ms定时
MOV TL0,#0B0H;
CLR ET0 ;禁止T0中断
SETB TR0 ;启动定时
WAIT: JBC TF0,OK ;等待定时到
SJMP WAIT;;10、在内部RAM的VAL单元有二进制数x,计算y,结果存入RES.(去年有这个类型的,只不过函数没这么复杂);START:MOV A, VAL
CLR C
SUBB A, #20
JC BR1 ;20,JMP
MOV RES,#50 ;=20
AJMP DONE
BR1: MOV A,VAL
MOV B,#04
MUL AB ;4*x
MOV RES,A ;存
MOV A,VAL;START:MOV A,VAL
CJNE A,#20,BR0;=20?
BR0: JC BR1 ;20,JMP
MOV RES,#50;=20
AJMP DONE
BR1: CJNE A,#5,BR2
BR2: CLR F0
JC BR3
SETB F0
BR3: MOV A,VAL
MOV B,#4
MUL AB
文档评论(0)