合肥工业大学单片机第四章.docVIP

合肥工业大学单片机第四章.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
合肥工业大学单片机第四章

4-1.?若晶振为12MHz,试编制延时2ms和1s子程序。 ????(1)延时2ms子程序 ? ORG 1000H DELY: MOV R7, #10 ;1周期,设置外层循环值 LOOP2: MOV R6, #98 ;1周期,设置内层循环值 NOP ;1周期,空操作,匹配时间 LOOP1: DJNZ R6, LOOP1 ;2周期,内层循环 DJNZ R7, LOOP2 ;2周期,外层循环 RET ;2周期,子程序返回 END ????延时子程序耗时为:(2*98+4)*10+3=2003us≈2ms ? ????(2)延时1s子程序 ? ORG 1000H DELY: MOV R7, #250 ;1周期,设置外层循环值 LOOP3: MOV R6, #36 ;1周期,设置中层循环值 LOOP2: MOV R5, #54 ;1周期,设置内层循环值 LOOP1: DJNZ R5, LOOP1 ;2周期,内层循环 DJNZ R6, LOOP2 ;2周期,中层循环 NOP ;1周期,空操作,匹配时间 DJNZ R7, LOOP3 ;2周期,外层循环 RET ;2周期,子程序返回 END ????延时子程序耗时为: ????????((2*54+3)*36+4)*250+3=1000003us=1.000003s≈1s ????4-7.?在内部RAM的BLOCK开始的单元有一无符号数据块,数据块长度存入LEN单元。试编程求其中的最小数并存入MINI单元。 ? ORG 0000H ? ? ? ? LJMP MAIN ? ? ? ? ? ? ? ? ? ORG 0200H BLOCK DATA 32H ;定义数据块首址 MIN DATA 30H ;定义存放数据最小值单元 LEN DATA 31H ;定义数据包长度值单元 MAIN: MOV R0, #BLOCK ;R0指向数据块首 DEC LEN ;数据包长度-1 MOV A, @R0 ;取第一个数据 LOOP: CLR C ;清除进位标志位 MOV B, A ;第一个数据作为减数 INC R0 ;指针后移一位 MOV A, @R0 ;取下一数据 SUBB A, B ;后一数据减前一数据 JNC NEXT ;若A大,则跳转 ADD A, B ;若A小,则恢复A SJMP NEXT1 ;跳转判断数据包是否读完 NEXT: MOV A, B ;A大,保存B NEXT1: DJNZ LEN, LOOP ;数据块读完判定 MOV MIN, A ;保存最小值 SJMP $ ;原地踏步 END ? ????4-12.?在内部RAM的ONE和TWO单元各存有一带符号数X和Y。试编程按下式要求运算。 ? ORG 0000H ? ? ? ? LJMP MAIN ? ? ? ? ? ? ? ? ? ORG 0200H X DATA 30H ;X变量地址定义 Y DATA 31H ;Y变量地址定义 F DATA 32H ;F变量地址定义 MAIN: MOV A, X ;取X值 JNB ACC.7, NNEG ;IF X=0则跳转 ;X0处理程序 MOV C, ACC.0 ;取X二进制最低位 JNC PLUS ;X为负偶数,跳转 ORL A, Y ;X为负奇数,XvY SJMP SAVE ;跳转保存计算结果 ;X=0处理程序 NNEG: JZ SAVE ;X=0,直接保存X MOV C, ACC.0 ;取X二进制最低位 JC PLUS ;X为正奇数,跳转 ANL A, Y ;X为正偶数,X·Y SJMP SAVE ;跳转保存计算结果 PLUS: ADD A, Y ;X为负偶和正奇数的 ;处理程序 SAVE: MOV F, A ;保存计算结果 SJMP $ ;原地踏步 END ? ????4-18.?试编一查表求平方子程序SQR。 ????功能:用指令MOVC A,@A+PC求平方值(x15) ????入口:(A)=x ????出口:(A)=x2 ? ORG 1000H X DATA 30H ;设置X的存放地址 SQR: MOV A, X ;取X值 INC A ;调整偏移量 MOVC A, @A+PC ;通过查表得X2的值 RET

文档评论(0)

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

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

1亿VIP精品文档

相关文档