C单片机汇编语言程序设计p副本祥解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
流程图常采用的图形和符号: 菱形框 :表示要判断的事情,菱形框内的表达式表示要判断的内容。 圆圈 :表示连接点 指向线 :表示程序的流向 称为:判断框 F5? Y N 四、编写程序 用89C51汇编语言编写的源程序。 程序设计步骤流程图 编程的方法和技巧 一、模块化的程序设计方法 二、编程技巧 一、模块化的程序设计方法 1、程序功能模块化的优点 2、划分模块的原则 1、程序功能模块化的优点 单个模块结构的程序功能单一,易于编写、调试和修改。 便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快软件研制进度。 程序可读性好,便于功能扩充和版本升级。 对程序的修改可局部进行,其它部分可以保持不变。 对使用频繁的子程序建立子程序库,便于多模块调用。 2、划分模块的原则 每个模块应具有独立的功能,能产生一个明确的结果,即单模块的功能高内聚性。 模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间的低耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换方式、交换量的多少及交换频繁程度。 模块长度适中。20条~100条的范围较合适。 二、编程技巧 1、尽量采用循环结构和子程序。 2、尽量少用无条件转移指令。 3、对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回前再弹出),即保护现场。 4、在中断处理程序中,除了要保护处理程序中用到的寄存器外,还要保护标志寄存器。 5、用累加器传递入口参数或返回参数比较方便,子程序中,一般不必把累加器内容压入堆栈。 4.3 80C51单片机汇编语言程序设计举例 本节课本上的例题以自学为主。 大部分程序没用,重点看查表程序。 ORG 1000H ONE DATA 30H TWO DATA 31H MAX DATA 32H CLR C MOV A ,ONE SUBB A ,TWO JZ XMAX JB ACC.7,NEG JB OV,YMAX SJMP XMAX NEG: JB OV,XMAX YMAX: MOV A ,TWO SJMP RMAX XMAX: MOV A ,ONE RMAX: MOV MAX,A SJMP $ END [例] ONE和TWO单元中的两个带符号数比较大小,将较大者存入MAX单元中。两数相等则任一个存入MAX即可。 若X-Y为负,则OV=0,XY OV=1,XY 若X-Y为正,则OV=0,XY OV=1,XY 例:内部数据区清零 ORG 0000H Zero: mov R0, #30H mov R7,#10 mov A,#00H Loop: mov @R0, A inc R0 djnz R7,Loop sjmp $ END 内部RAM 30H R0 23H 98H 0A8H 0FDH … 0 0 0 0 0 0 10个 例 将两个半字节数合并成一个一字节数。 设内部RAM 40H#, 41H单元中分别存放着 8 位二进制数, 要求取出两个单元中的低半字节, 并成一个字节后, 存入50H单元中。 程序如下: START: MOV R1, #40H ; 设置R1为数据指针 MOV A, @R1 ; 取出第一个单元中的内容 ANL A, #0FH ; 取第一个数的低半字节 SWAP A ; 移至高半字节 INC R1 ; 修改数据指针 XCH A, @R1 ; 取第二个单元中的内容 ANL A, #0FH ; 取第二个数的低半字节 ORL A, @R1 ; 拼字 MOV 50H, A ; 存放结果 RET ASCII码?二进制 ORG 0000H AtoH: MOV A,#’A’ CLR C SUBB A,#30H C

文档评论(0)

光光文挡 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档