《单片机原理与接口技术》源代码.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《单片机原理与接口技术》源代码 【例4.7】 将一个字节内的两个BCD十进制数拆开并变成相应的ASCII码,存入两个RAM单元。设两个BCD数已放在内部RAM的20H单元,变换后的ASCII码放在21H和22H单元并让高位十进制BCD数存放在21H单元。 MOV R0,#22H ;R0←22H MOV @R0,#00H ;22H清零 MOV A,20H ;两个BCD数送A XCHD A,@R0 ;低位BCD数送至22H单元 ORL 22H,#30H ;完成低位转换 SWAP A ;高位BCD放至低 4位 ORL A,#30H ;完成高位转换 MOV 21H,A ;存数 RET 【例4.8】 16位二进制数求补程序。设16位二进制数存放在R1、R0,求补以后的结果则存放于R3、R2。 MOV A,R0 ;低8位送A CPL A ;取反 ADD A,#1 ;加1 MOV R2,A ;送回 MOV A,R1 ;高8位送A XRL A,#7FH ;符号位不变,其余位取反 ADDC A,#0 ;加进位 MOV R3,A ;结果送回 RET 【例4.9】 将十六进制数转换为ASCII码。设十六进制数存放在R0寄存器的低4位,转换后的ASCII码仍送回R0寄存器。 MOV A,R0 ANL A,#0FH MOV DPTR, #ASCTAB MOVC A,@A+DPTR MOV R0,A RET ASCTAB: DB 0,1,2,3,4 DB 5,6,7,8,9 DB A,B,C,D,E,F END 【例4.10】 按下式的要求给Y赋值。 ORG 1000H X DATA 30H Y DATA 31H MOV A ,X ;A ← X JNB ACC.7 ,PLUS ;若X0,则转PLUS MOV A ,# 0FFH ;若X0,则Y=-1 SJMP DONE PLUS: MOV A ,# 01H ;若X0,则Y = 1 DONE: MOVE Y ,A ;存函数值 SJMP $ END 【例4.11】 按照下式的要求给Y赋值。 ORG 0000H X DATA 30H Y DATA 31H MOV A , X ;A ← X MOV R0 , #0FFH ;先设X0,R0 = FFH JB ACC.7 ,DONE ;若X0,则转DONE MOV R0, #0 JZ DONE MOV R0 ,# 01H ;若X0,R0=1 PLUS: MOV R0 ,# 01H ;若X0,则Y = 1 DONE: MOV Y ,R0 ;存函数值 SJMP $ END 【例4.12】 128分支程序。根据R3的值(00H-7FH),分支到128个不同的分支入口。 MOV A,R3 ;取地址序号送A RL A ;A←A×2 MOV DPTR,#BRTAB ;地址表首地址送DPTR JMP @A+DPTR ;转入转移表内 BRTAB: AJMP ROUT00 ;地址表 AJMP ROUT01 ┇ AJMP ROUT127 END 【例4.13】 编程根据R3(0~3)的值,转向相应的操作程序。 ORG 0000H MOV A,R3 MOV DPTR, #ADTAB ;地址表首地址送DPTR MOVC A, @A+DPTR ;偏移地址送A MOV DPTR,#ROUT0 ;首地址送DPTR JMP @A+DPTR ;转至序号对应的分支 ROUT0: ┇ SJMP DONE ROUT1: ┇ SJMP DONE ROUT2: ┇ SJMP DONE ROUT3: ┇ DONE?: RET ADTAB:DB 0,ROUT1-ROUT0,ROUT2-ROUT0,ROUT3-ROUT0 END 【例4.14】 编程根据R3的值,转向相应的操作程序。 ORG 0000H MOV A,R3 RL A MOV R1,A ;存2倍序号至R1 MOV

文档评论(0)

李leek + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档