第四章 MCS-51单片机的程序设计.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORG 0000H MOV R0,#40H ;设指针 MOV DPTR,#4000H ;设指针 MOV R7,#50 ;设计数器 LOOP:MOV A,@R0 ;取数 MOVX @DPTR,A ;存数 INC DPTR ;移指针 INC R0 ; DJNZ R7,LOOP ;循环 SJMP $ END 开始 设指针,赋初值 取片内数→A 存到片外 R7-1=0? N Y 结束 移指针 2、流程图 3、源程序 片内到片外 ORG 0000H MOV R0,#40H ;设指针 MOV A,#10H ;初始值 MOV R7,#10H ;设计数器 LOOP:MOV @R0 , A ;存A的值 INC R0 ;移指针 INC A ;修改A的值 DJNZ R7,LOOP ;循环 SJMP $ END 开始 设指针,赋初值 存A的值 移指针 R7-1=0? N Y 结束 修改A的值 循环置数程序 将片内RAM40H~4FH单元依次写入10H~1FH。 11H 40H 41H 42H 10H 12H ┇ ┇ 片内RAM R0 R0指向40H,R7=10H,A=10H 统计正负数 例4 在片内RAM30H~3FH单元中存放有16个带符号数,编程求正、负数个数,分别存入40H和41H单元中。 设指针R0指向数据块首地址,取数到A中 解: 1、确定算法 ACC.7=0,为正数,(40H)+1 ACC.7=1,为负数,(41H)+1 设一个循环计数器R7=16 XX 30H 31H 32H XX XX ┇ ┇ 片内RAM R0 有分支和循环两种结构 用JB或JNB位测试指令判ACC.7: 开始 设指针,赋初值 取数→A R7-1=0? N Y (40H)+1 结束 A>0? N Y 移指针R0+1 (41H)+1 指针R0=30H 统计正数: (40H)=0 统计负数: (41H)=0 循环计数器: R7=16 2、流程图 统计正负数 ORG 0000H MOV R0,#30H ;设指针 MOV 40H,#00H ;统计正数 MOV 41H,#00H ;统计负数 MOV R7,#16 ;设计数器 LOOP:MOV A,@R0 ;取数 JB ACC.7,NEG ;为负转移 INC 40H ;正数 SJMP LP ; NEG:INC 41H ;负数 LP:INC R0 ;移指针 DJNZ R7,LOOP ;循环 SJMP $ END 3、源程序 开始 设指针,赋初值 取数→A R7-1=0? N Y (40H)+1 结束 A>0? N Y 移指针R0+1 (41H)+1 统计正负数 返 回 §4-5 子程序设计 一、子程序的概念 具有某种独立的功能模块,程序中多次出现,可写成子程序,由主程序调用。 主程序 转移 子程序 返回 断点 继续 断点保护在堆栈中,由CPU在调子程序时自动保存 二、调用及返回指令 LCALL addr16 长调用 ACALL addr11 绝对调用 RET

文档评论(0)

经管专家 + 关注
实名认证
内容提供者

各类文档大赢家

版权声明书
用户编号:6055234005000000

1亿VIP精品文档

相关文档