单片机课程设计指导书
一、 设计内容及步骤
1、 方案设计
先要明确设计任务的要求,根据设计任务及要求,确定设计所要实现的具体功能,例如“流水灯”具体怎么“流”、有几种“花样”、如何操作、等等。这是一项见仁见智的工作,没有统一的要求,各人可根据自己的理解自行设计。
2、 硬件电路设计
设计能使单片机工作并实现所需功能的基本硬件电路,包括选择和确定元器件的规格、参数。
3、 软件程序设计
单片机由于内存小、速度低,因此一般不用高级语言编程而多用汇编语言编程,这样软件程序和硬件电路就要有严格的对应关系。单片机电路的功能主要是由软件程序实现的,因此硬
件电路比较简单而软件程序相对复杂,软件程序设计是整个课程设计的难点和重点。
4、 烧写调试程序
由于软件程序一般都比较复杂,设计时难免会有考虑不周的问题,或是有一些疏漏,而这些问题或疏漏仅凭在纸上的分析是很难发现的,因此软件程序设计好后还要经过运行调试,才能知道所设计的软件程序能否实现之前确定的功能。这个过程往往要经过多次反复才能最终达到目的。一般先用计算机仿真进行调试,成功后再把程序写到单片机中并制作实际电路进行验证。
二、 设计方法及要求
1、 方案设计
首先要完整、准确地理解设计任务(虽然课程设计只是做个电路模型进行一下验证演示,但设计时要假象是设计一个实用的产品),然后通过必要的调研、分析,综合考虑各方面的因素,定出一个具体的设计目标。
例如,可先把自己当作用户,从用户的角度考虑这个“产品”应该具备哪些功能、怎样操作使用比较方便,同时又安全可靠;再从厂家的角度,结合实际的客观条件,考虑怎样既能满足用户的基本需求,又能最大限度地降低生产成本。
因此设计目标不要追求尽善尽美,但也不能过于简单,要从实际出发,用足用够给定的硬件条件,充分开发可以用软件实现的功能以使整体功能最大化。
2、 硬件设计
硬件设计包括确定电路的结构组成、绘制电气原理图、确定元器件的规格参数。
由于是课程设计,多数题目采用最小系统即可,如果要求高一点,还要考虑抗干扰措施、电路的功耗、数据的断电保护、元器件的来源和性价比等。
最小系统基本上是一种固定的模式,需要设计的就是合理分配单片机的资源,分配、确定输入输出端口用途,这没有固定的模式,只要符合单片机的端口功能和性能就行。例如,输入输出应优先采用P1口,还要注意各口作输出口时带负载的能力,即高电平时所能输出的最大电流,或低电平时允许灌入的最大电流,以及高阻态时所能承受的最高电压。原则
上输出口所接负载的电流消耗不能超过输出口允许进出的最大电流值,最好是让输出口通过缓冲驱动器(例如三极管)带负载而不是直接带负载,以免造成单片机的损坏。
硬件结构应结和应用软件一并考虑,若某种功能既可以用硬件实现,也可以用软件实现,应优先选择用软件实现,以尽可能地简化硬件结构。
3、 软件设计
软件设计要结合功能设计和硬件设计进行,或者说在做功能设计和硬件设计时就要对软件设计有所考虑,即那些功能应由软件完成。
设计软件不要一来就急于用指令写程序,要先做总体规划设计,明确软件要实现的功能是什么,分那些步骤、按什么顺序来实现设计的功能,画出程序的流程图。程序的流程也就是单片机的工作过程,从通电工作开始,程序的第一步做什么,后面又做什么……;怎样结束,等等。由于单片机是靠程序进行工作的,程序怎么规定它就怎么做,程序没有规定它就无法工作,很死板。因此设计程序流程时要作仔细、周全的考虑,只要出现所设计的“产品”在正常操作使用过程中可能出现的任何一种情况,都要让单片机知道该如何应对处理,否则就会出现死机无法工作的情况。
程序的流程是编写程序的纲领、指导、前提,有了正确的程序流程,就容易编写出正确的程序,单片机也才能实现所设计的功能。俗话说,磨刀不误砍柴工,所以构思、设计程序的流程要给予高度的重视,要花大的气力,有时一次两次难以考虑周全,可能需要反反复复地进行多次。
如果整个流程实现一个总体功能,则流程的每一分支或步骤即可看成是一个子功能。对于比较复杂的功能,则子功能下还可再分解出孙功能,即总体功能画一个流程图,再针对较大的子功能画细致的流程图。总之流程图画的越细致,程序越容易编写。
流程设计好后,也不要就急于写具体的程序,因为那样写程序缺乏条理,很容易出错,而且可读性差,难以发现和纠正错误。因此写程序前还应对程序的编写结构进行认真的规划设计。
程序的结构总体上可分为两大部分,即主程序和子程序(或中断程序)。主程序可按程序的功能分块、分段进行编写,每块、每段完成一个特定的功能。如果某一块或段在主程序中需多次出现,应把它作为子程序,以减少整个程序的长度。
程序设计的重点在于搭建程序的框架,框架搭成,工作就完成了大半,剩下的就是填充框架。填充框架不一定要自己去一条一条地想该用什么指令,可根据某一块或某一段程序的功能,寻具有相同功能的现成的程序块、段去填充,对于一些“通用”的程序段,例如按键消抖程序、延时程序等,应优先采用成熟的“标准”程序,这样既可减少工作量,又可减少出错。事实上,程序设计大多数时候就是用一些零散、成熟的程序快(段)拼凑成一个自己所需的完整程序。
程序运行中,可能需要在不同的功能模块间进行跳转,这就需要在跳转的入口处加上标号。为便于阅读,在符合指令的语法规则的前提下,标号应能简要地反映该段程序的功能,例如采取常见的英文缩写或汉语拼音缩写(通常是缩写单字拼音的首字母)。
运用跳转指令时要注意避免进入死循环。若不可避免进入死循环,或有意要进入死循环,除复位外,最好能有其他退出死循环的措施。
单片机程序的运行离不开单片机的内存,因此编写程序前还应充分了解所用单片机的内存情况,尤其是要搞清楚那些具有特定用途的特殊内存的用途、位置及长度,同时还要搞清楚所用程序指令(包括常数表格)以及依程序流程产生的各项数据要占用的存储空间,编
写程序前,要合理地分配利用内存空间,注意不要占用特殊内存。
最后,为了便于以后(以及其他人)对程序的阅读、分析,所编写的程序应该条理清楚,程序各块、段、条的功能作用明确,在一些重要、关键或用意不是很明确的指令后最好加以注释。
三、 设计报告的内容及要求
1、 方案设计说明
从总体上概括介绍所设计项目的构成、功能及操作使用方法,详细说明该方案是怎么设计出来的。
2、 硬件设计说明
画出完整、规范的电路图,说明单片机I/O口分配使用的情况以及为何这样分配使用,分析介绍电路的工作原理,介绍电路中主要元器件在电路中的作用以及他们的规格或参数是怎样确定的。
3、 软件设计说明
1) 说明软件设计的思路,介绍软件的总体功能,画出完整、规范的程序的流程图;
2) 介绍程序的总体框架结构,即整个程序由哪些模块构成,各模块的功能是什么,其中又包含哪些子功能,等等,从总体上说明整个程序的执行及工作过程;
3) 以一些重要或关键的程序段为例,说明该段程序的功能、作用和编写思路;
4) 列出完整的程序清单,重要、关键或难以理解用意的模块、语句要加以注释;
4、 制作调试说明
介绍制作调试的过程、结果,以及在过程中出现的问题和解决问题的方法。
5、 操作使用说明
介绍所设计“产品”的操作及使用方法。
6、 总结说明
介绍本次课程设计的收获、体会或经验教训,要求客观、具体。
报告不要盲目追求篇幅,只要能说清楚问题即可,不必大量拷贝或摘抄资料文献。正文采用宋体四号字,若用手写,要求字迹工整。
四、 进度安排
本课程设计共两周的时间,按10个工作日算,进度安排如下:
明确设计任务,调研、查阅资料,构思、确定总体方案,用两天时间;
设计硬件电路,设计软件功能,画程序流程图,用一天时间;
设计程序结构,编写程序,用两天时间;
通过计算机仿真验证调试程序,用一天时间;
制作硬件电路,用一天时间;
通过硬件电路验证调试程序,用一天时间;
汇编语言指导书
撰写设计报告,验收设计成果,用两天时间。
五、 成绩评定
及格标准如下:
1、 按期完成设计并提交设计报告和交验根据设计制作的实物,出勤良好;
2、 报告的内容、格式符合要求,能反映设计过程的实际情况,设计制作的实物的功能和性能基本能达到设计任务的要求。
在及格的基础上,根据设计成果的质量酌情评定为优秀、良好或中等。
不交设计报告或报告的内容大部分是抄来的,以及不交验设计制作的实物或用别人的实物来交验,出勤很少,将判为不及格。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。