- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章-51系列单片机的汇编语言设计
例2:设变量 x 以补码形式存放在片内RAM的30H单元,变量y与x有如下关系式: 试编制程序,根据x的取值求出y,并放回原单元。 ORG 0000H MOV A, 30H JZ NEXT ANL A, #80H JZ ED MOV A, #05H ADD A, 30H MOV 30H,A SJMP ED NEXT: MOV 30H, #20H ED: SJMP $ END 当程序中的某些指令需要反复执行多次时,采用循环程序的方式,这样会使程序缩短,节省存储单元(并不节省执行时间)。 循环次数的控制,有两种控制方式: 第一种方法:先判断再处理。即先判断满不满足循环条件,如满足,就循环;否则,就不循环。大多以循环条件控制。 第二种方法:先处理再判断。即执行一遍循环体后,再判断循环还需不需要进行,多以循环次数控制。 在多重循环中,内外循环不能交叉,也不允许外循环跳入内循环。 通过几个实例说明循环程序的设计方法。 * 例: 设计一个延时10ms的延时子程序,已知单片机使用的晶振为6MHz。 分析:通过重复执行某些指令(如:NOP)来实现。延时时间与两个因素有关:晶振频率和循环次数。由于晶振采用6MHz,一个机器周期是2μs。 方案:用单循环可以实现1ms延时,外循环10次即可达10ms延时。 1.内循环如何实现1ms延时呢?循环次数? 2.实际延时总时间如何计算? * 机器周期 ORG 0020H 1 MOV R0,#0AH ;外循环10次 1 DL2: MOV R1,#MT ;内循环MT次 1 DL1: NOP 1 NOP ;空操作指令 2 DJNZ R1,DL1 2 DJNZ R0,DL2 RET 内循环:DL1到指令DJNZ R1,DL1 时间的计算: (1+1+2)×2μS×MT=1000μS MT=125=7DH 将7DH代入上面程序的MT,计算总的延时时间: {1+[1+(1+1+2)×125+2]×10}×2μS=10062μS=10.062mS 若需要延时更长时间,可以采用多重循环。 * 例: 把片内RAM中地址30H ~ 39H中的10个无符号数逐一比较并按从小到大的顺序依次排列在这片单元中。 如: 12 23 65 09 19 比较 23 65 09 19 不交换(0) 12 23 65 09 19 不交换(0) 12 23 65 09 19 交换(1) 12 23 09 65 19 交换(1) 12 23 09 19 65 * 结 束 清 0 0 位 作 为 标 记 取 出 下 一 单 元 数 置 位 0 0 位 两 数 互 换 预 置 循 环 次 数 开 始 已 比 较 9 次 ? 从 3 0 H 单 元 取 数 取 出 大 数 该 单 元 数 大 于 下 一 单 元 ? N N N Y Y Y 0 0 位 为 0 ? ORG 0000H START: CLR 00H CLR C MOV R7,#09H MOV R0,#30H MOV A,@R0 LOOP: INC R0 MOV R2,A SUBB A, @R0 MOV A, R2 JC NEXT SETB 00H XCH A, @R0 DEC R0 XCH A, @R0 INC R0 NEXT: MOV A, @R0 DJNZ R7,LOOP JB 00H, START SJMP $ END ORG 0000H MOV 40H,#09H START: CLR C MOV R7,40H MOV R0,30H MOV A,@R0 LOOP: INC R0 MOV R2,A SUBB A, @R0 MOV A, R2 JC NEXT SETB 00H XCH A, @R0 DEC R0 XCH A, @R0 INC R0 NEXT: MOV A, @R0 DJNZ R7,LOOP DJNZ 40H, START SJMP $ END MCS-51单片机具有优异的位逻辑处理功能,可以方便地实现各种复杂的逻辑运算,这种用软件替代
您可能关注的文档
最近下载
- Siemens 西门子工业 SINAMICS G110M 变频器 SINAMICS G110M 变频器 使用手册.pdf
- 典范英语4a Lesson1The Balloon 课件.ppt VIP
- 理财教材《小狗钱钱》.pdf VIP
- 建筑识图与构造楼梯及电梯识图与构造教案.pdf VIP
- 高中语文课件:《复活》.pptx
- 国家大气颗粒物组分及光化学监测网建设进展.pdf VIP
- 不同年龄皮肤的护理课件.pptx
- 材料类核心期刊.docx VIP
- 2025年广东省粤科金融集团有限公司人员招聘笔试备考题库及答案解析.docx VIP
- 2025年新沪科版8年级上册物理全册教学课件(新版教材).pptx
文档评论(0)