欢迎来到天天文库
浏览记录
ID:39652744
大小:245.19 KB
页数:79页
时间:2019-07-08
《《程序设计》PPT课件(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章程序设计●教学目标介绍单片机汇编程序设计方法介绍单片机汇编程序常用结构及设计方法介绍典型智能仪表单片机系统应用软件设计介绍目前流行的MCS-51单片机高级语言C51●学习要求熟悉单片机编程的步骤、方法和技巧掌握单片机汇编程序的常用结构及设计方法掌握典型汇编语言应用程序的编制了解单片机高级程序设计语言C51单片机系统设计由硬件设计和软件设计两部分组成,后者就是设计程序、编制表格,以指挥单片机完成用户交付的任务。本章介绍MCS-51单片机汇编语言程序设计的基本步骤、方法和技巧,并在最后简单地介绍了C51高级程序设计。4.1编程的步骤、方法和技巧单片
2、机常用于工业测控装置和智能仪表等,这些应用场所往往对实时性提出了要求。使用汇编语言设计程序,虽然比高级语言烦琐,但它能最充分地发挥指令系统的功能与效率,获得最简练的目标程序,能满足实时性要求。用汇编语言设计单片机应用程序往往要经历以下几个步骤:(1)软件任务分析;(2)数据类型和数据结构规划;(3)资源分配;(4)编程与调试。4.1.1软件任务分析软件任务分析是为软件设计作一个总体规划。从功能来看,软件可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量、计算、显示、打印、输出控制和通信等;另一类是监控软件,它是专门用来协调各执行模块和操作
3、者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切。监控软件着眼全局,逻辑严密。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入、输出定义)。在为各执行模块进行定义时,将要牵涉到的数据结构和数据类型的问题也一并规划好。各执行模块规划好后,就可以规划监控程序了。首先根据系统功能和键盘设置选择一种最合适的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程。而监控程序较易出问题。任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可
4、分为后台程序和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是很高,延误几十毫秒甚至几百毫秒也没关系,故通常将监控程序(键盘管理程序)、显示程序和打印程序等与操作者打交道的程序放在后台程序中来执行。而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断。在一些特殊场合,也可以将全部程序均安排在前台,后台为踏步等待循环或睡眠状态。4.1.2数据类型和数据结构规划前面的软件任务分析只是一个粗糙的分析和大体上的安排,还不能开始编程。为了避免系统中各个执行模块之间的脱节现象,就必须严格规定好各个接口条件,即各接口参数的数据结构和数据
5、类型。从数据类型上来分类,可分为逻辑型和数值型,但通常将逻辑型数据归到软件标志中去考虑。而将数据类型分类理解为数值类型分类。数值类型可分为定点数和浮点数。如果一个参数的变化范围有限,就可用定点数来表示,以简化程序设计和加快运行速度;当参数的变化范围太宽时,只好采用浮点数来表示。如果某参数是一系列有序数据的集合,如采样信号系列,则不光有数据类型问题,还有一个数据存放格式问题,即数据结构问题。在单片机应用系统中,数据结构比较简单,大多采用线性结构,这样有利于数据处理。由于受RAM空间的限制,队列结构广泛采用环行队列结构,为此应规划好两样东西:队列区域和队
6、尾(首)指针,并计算出总共需要的RAM字节数。对于数组,一般采用顺序存放的格式。这样就可以用简单的下标运算来访问数组中的任何一个元素。4.1.3资源分配完成数据类型和数据结构的规划后,便可开始分配系统的资源了。在微机测控系统中,往往需要定时检测某个物理参数,或按一定的时间间隔来进行某种控制等。这种定时的获得常采用定时/计数器,它还可以对某种事件进行计数,然后根据计数结果来进行控制;单片机在及时处理实时测、控中的许多随机的参数和信息、对外界异步事件包括故障的处理常使用中断,在任务分析时一般要将定时/计数器和中断源等资源分配好。ROM资源用来存放程序和表
7、格,这也是明显的。系统资源ROM、RAM、定时/计数器、中断源等。因此,资源分配的主要工作是RAM资源的分配。片外RAM的容量比片内RAM大,通常用来存放大批量的数据,如采样数据系列。真正需要认真考虑的是片内RAM的分配。片内RAM指00H~7FH单元。这128个字节的功能并不完全相同,分配时应注意充分发挥各自的特长,做到物尽其用。00H~1FH这32个字节可以作为工作寄存器,其中00H~0FH用来作为0区、1区工作寄存器。在一般的应用系统中,后台程序用0区工作寄存器,前台程序用1区工作寄存器。如果有高级中断,则高级中断可用2区工作寄存器(10H~1
8、7H)。如果前台程序中不使用工作寄存器,则系统只需0区工作寄存器。未作为工作寄存器的其它单元便可以转为其它目
此文档下载收益归作者所有