正文

【010】单片机中编程的方法和技巧2006-05-26 21:12:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wentao/14928.html

分享到:

选自《单片机原理及及接口技术(简明修订版)》(李朝青)



一、模块化的程序设计方法

1. 程序功能模块化的优点

    实际的应用程序一般都由一个主程序(包括若干个功能模块)和多个子程序构成。每一程序模块都能完成一个明确的任务,实现某个具体功能,如发送、接收、延时、显示、打印等。采用模块化的程序设计方法,有下术优点:

    <> 单个模块结构的程序功能单一,易于编写、调试和修改;
    <> 便于分工,从而可使多个程序员同时进行程序的编写和调试,加快软件研制进度;
    <> 程序可读性好,便于功能扩充和版本升级;
    <> 对程序的修改可局部进行,其他部分可以保持不变;
    <> 对于使用频繁的子程序可以建立子程序库,便于多个模块调用。

2. 划分模块的原则

    在进行模块划分时,应首先弄清楚每个模块的功能,确定其数据结构以及与其他模块的关系;其次是对主要任务进一步细化,把一些专用的子任务交由下一级即第二级子模块完成,这时也需要弄清楚它们之间的相互关系。按这种方法一直细分成易于理解和实现的小模块为止。
    模块的划分有很大的灵活性,但也不能随意划分。划分时应遵循下述原则:

    <1> 每个模块应具有独立的功能,能产生一个明确的结果,这就是单模块的功能高内聚性。
    <2> 模块之间的控制耦合应尽量简单,数据耦合应尽量少,这就是模块间的低耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换(传递)方式、交换量的多少及交换的频繁程度。
    <3> 模块长度适中。模块语句的长度通常在20条~100条的范围较合适。模块太长时,分析和调试比较困难,失去了模块化程序结构的优越性;过短则模块的连接太复杂,信息交换太频繁,因而也不合适。

二、编程技巧

    在进行程序设计时,应注意以下事项及技巧。

    <1> 尽量采用循环结构和子程序。这样可以使程序的总容量大大减少,提高程序的效率,节省内存。在多重循环时,要注意各重循环的初值和循环结束条件。

    <2> 尽量少用无条件转移指令。这样可以使程序条理更加清楚,从而减少错误。

    <3> 对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回前再弹出),即保护现场。一般不必把标志寄存器压入堆栈。

    <4> 由于中断请求是随机产生的,所以在中断处理程序中,除了要保护处理程序中用到的寄存器外,还要保护标志寄存器。因为在中断处理过程中,难免对标志位产生影响,而中断处理结束后返回主程序时,可能会遇到以中断前的状态标志为依据的条件转移指令,如果标志位被破坏,则整个程序就被打乱了。

    <5> 累加器是信息传递的枢纽。用累加器传入口参数或返回参数比较方便,即在调用子程序时,通过累加器传递程序的入口参数,或反过来,通过累加器向主程序传递返回参数。所以,在子程序中,一般不必把累加器内容压入堆栈。

阅读(3960) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册