程序设计62.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计62

第4章 程序设计 ;单片机系统设计由硬件设计和软件设计两部分组成,后者就是设计程序、编制表格,以指挥单片机完成用户交付的任务。本章介绍MCS-51单片机汇编语言程序设计的基本步骤、方法和技巧,并在最后简单地介绍了C51高级程序设计。;4.1编程的步骤、方法和技巧 ;4.1.1软件任务分析 ; 软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入、输出定义)。在为各执行模块进行定义时,将要牵涉到的数据结构和数据类型的问题也一并规划好。 各执行模块规划好后,就可以规划监控程序了。首先根据系统功能和键盘设置选择一种最合适的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程。而监控程序较易出问题。 ; 任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是很高,延误几十毫秒甚至几百毫秒也没关系,故通常将监控程序(键盘管理程序)、显示程序和打印程序等与操作者打交道的程序放在后台程序中来执行。而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断。在一些特殊场合,也可以将全部程序均安排在前台,后台为踏步等待循环或睡眠状态。 ;4.1.2数据类型和数据结构规划 ; 如果一个参数的变化范围有限,就可用定点数来表示,以简化程序设计和加快运行速度;当参数的变化范围太宽时,只好采用浮点数来表示。 如果某参数是一系列有序数据的集合,如采样信号系列,则不光有数据类型问题,还有一个数据存放格式问题,即数据结构问题。在单片机应用系统中,数据结构比较简单,大多采用线性结构,这样有利于数据处理。由于受RAM空间的限制,队列结构广泛采用环行队列结构,为此应规划好两样东西:队列区域和队尾(首)指针,并计算出总共需要的RAM字节数。对于数组,一般采用顺序存放的格式。这样就可以用简单的下标运算来访问数组中的任何一个元素。 ;4.1.3资源分配 ; 片内RAM指00H~7FH单元。这128个字节的功能并不完全相同,分配时应注意充分发挥???自的特长,做到物尽其用。 00H~1FH这32个字节可以作为工作寄存器,其中00H~0FH用来作为0区、1区工作寄存器。在一般的应用系统中,后台程序用0区工作寄存器,前台程序用1区工作寄存器。如果有高级中断,则高级中断可用2区工作寄存器(10H~17H)。如果前台程序中不使用工作寄存器,则系统只需0区工作寄存器。未作为工作寄存器的其它单元便可以转为其它目的使用了。系统上电复位时,自动定义0区为工作寄存器,1区为堆栈,并向2区、3区延伸。如果前台程序要用1区、2区作为工作寄存器,就应将堆栈空间重新规划 。 ; 在工作寄存器的8个单元中,R0和R1具有指针功能,是编程的重要角色,应充分发挥其作用,尽量避免用来做其它事情。 20H~2FH这16个字节具有位寻址功能,用来存放各种软件标志、逻辑变量、位输入信息、位输出信息副本、状态变量、逻辑运算的中间结果等。当这些项目安排好后,保留一两个字节备用,剩下的单元才可改作其它用途。 30H~7FH为一般通用寄存器,只能存入整字节信息。通常用来存放各种参数、指针、中间结果,或用作数据缓冲区。也常将堆栈安排在片内RAM的高端,如68H~7FH。 ; 如果将系统的各种开销安排后,所剩单元很少,这往往不是好的兆头。应该留有足够的余地,因为现在还处于规划阶段,随着软件设计的发展进程,几乎都会出现新的资源要求。如果在规划阶段资源已经很紧张,建议修改硬件设计,增加RAM资源。 RAM资源规划好后,应列出一张RAM资源的详细分配清单,作为编程依据。 ;4.1.4编程与调试 ;4.2汇编语言源程序的编辑和汇编 ;4.2.1汇编语言源程序的格式 ; 汇编程序只处理分号“;”以前的字符,对于注释部分,计算机在汇编时不予处理。注释部分便于程序的使用者更好地理解程序的功能,有助于程序的交流使用。软件工作者从一开始就要养成写好注释的良好习惯。 对于有些指令,操作数不止一个,有两个甚至三个,在输入计算机时,各操作数之间要用逗号作分割符。 ;一、标号 标号由8个或8个以下的字母数字构成,第一个必须是字母。另外还允许使用一个下横线符号“ ”。其它的符号都不允许在标号中使用。此外,系统中保留使用的字符或字符组不能用作标号,以免引起混淆。如各种特殊功能寄存器名、各个位地址记忆符、各种伪指令等都不能用作标号。 以下是一些合法的标号:A1,LOOP等。 以下的字符串不能用作标号:4G,F-G,D

文档评论(0)

rabbitco + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8126037011000004

1亿VIP精品文档

相关文档