专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

单片机程序设计总结

作者:佚名   来源:本站原创   点击数:  更新时间:2012年04月16日   【字体:

经过多年的单片机领域研究,总结一下几点的程序设计的经验
要想设计程序就必须了解单片机一些基础知识
1 指令是指计算机执行某种操作的命令,仅仅是简单完一件细小工

作命令。如  MOVLW  06H 或  I=0X06;
        就是将06H的立即数 移动给 单片机内的工作寄存器。
             或 O6H的立即数赋予I......
1,程序是指众多的单片机指令构成有一定规模及次序,具有特定功

能、能完成特定任务的指令集合。


只要了解这些你就可以知道,程序是什么了,就是我们日常生活中的

一些做事流程,用指令书写的方式记下来。就这么简单。

接下来就是变量,他是为指令运行的提供操作对象空间,没有的变量

,指令与程序就是神马浮云。什么都不是。
空间是什么,说白就是可以放东西的地方,单片机的空间就是他的内

存是可以用来存放数据了-----单片机定义为寄存器。
那数据是什么呢,说白了就是个数----二进制的数,为什么用二进制

呢,就是因为计算机很傻了,他就走两个极端,要么没有电,要么有

电,没有中间态,所以就用二进制配他了。
  现在知道的变量的作用就好办,
既然是个空间--变量,就要有存放与取出、清空的功能,变量的数据

处理有输入、输出、清零,而且单片机中的变量不是一个哦,是很多

数以百计千记的变量,且变量都有独立的房间与名字。
 因此单片机在运行时,其实就是在指令控制下,完成变量与变量间

的数据交换与处理,而这些交换处理目的就是为完成程序特定的功能

而运行了。
  说到这里就要提一下变量的性别与生命期,有点神哦,有生命的东

西。
   变量的类别:
   全局静态变量: 全局静态变量是用来保存程序运行中必须的全部

区域内不动产---数据不能变化了,编辑后,就固定了,他是用来保

存如显示需要的字符码,图像码,声音码及子程序(模块)内特殊用

途的一些特殊数据,且这种变量是不能被修改,永恒固定
   生命期:活到整个程序的结束,且每个程序段--子程序都可以读

取他(但不能写)
   
     
   局部静态变量: 局部静态变量是用来保存程序运行中必须的局部

区域的不动产---数据不能变化了,编辑后,就固定了,保存的如按

键时间,声音时间,及子程序(模块)内特殊用途等一些特殊数据,

且这种变量是不能被修改,永恒固定
    生命期:活到整个程序的结束,且只能在规定的子程序内可以读

           取他(但不能写) 超出不能使用。          

   局部动态变量: 局部动态变量是用来保存程序运行中必须的局部

区域的变化数据,他是用来保存如按键计数器,声音时间计数器,及

子程序(模块)内特殊用途等一些特殊数据,且这种变量是可以被修


    生命期:活到整个程序的结束,且只能在规定的子程序内可以读

            写与使用。

全局动态变量:
   全局动态变量是用来保存程序运行中必须的全部区域内的变化数

据,他是用来保存如按键值,声音值,显示处理值,及子程序(模块

)内特殊用途等一些特殊数据,且这种变量是可以被修改
    生命期:活到整个程序的结束,在整个程序内都可以读        

    写与使用。
  
    随机动态变量
 随机动态变量是用来保存程序运行中必须的全部区域内的变化临时

数据如,按键识别值,显示运算值,四则运算的临时空间及子程序(

模块)内特殊用途等一些临时特殊数据。这种变量是可以读写
    生命期:使用他的程序段开始到结束,只有在改程序段内有效,

程序段结束,他的生命也没有了。
  随机动态变量在程序中是用的最多的变量,因为他没有特定功能,

就是供所有的程序使用,谁要用就出生,不用时就结束,继续等待下

个被使用。这就是他的使命,晕感觉像让万人随意糟蹋的样子。
    说完变量,现在说程序的灵魂------算法,很神秘吧,其实他妈

就是实现的方法,因为单片机是*运算与处理数据了来实现功能了
所以叫他---算法。
 这是书上描述了
 “ 算法可以理解为有基本运算及规定的运算顺序所构成的完整的解

题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这

样的步骤和序列可以解决一类问题
一个算法应该具有以下五个重要的特征:   算法可以使用自然语

言、伪代码、流程图等多种不同的方法来描述。
1、有穷性(Finiteness)
  算法的有穷性是指算法必须能在执行有限个步骤之后终止
2、确切性(Difiniteness)
  算法的每一步骤必须有确切的定义;
3、输入项(Input)
  一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0

个输入是指算法本身定出了初始条件;
4、输出项(Output)
  一个算法有一个或多个输出,以反映对输入数据加工后的结果。

没有输出的算法是毫无意义的;
5、可行性(Effectiveness)
  算法中执行的任何计算步都是可以被分解为基本的可执行的操作

步,即每个计算步都可以在有限时间内完成。(也称之为有效性)

。”
 我的理解就是算法:为实现你想要做到的特定事情或解决某个问题

而采取的方法或策略就是算法
  说到算法就要说架构了,他们两个一个骨 一个是肉,说也说不清
 什么是架构,架构就是为完整该事情或任务而设计的程序结构,
  就像一个刚盖大楼的骨架,有的他,才可以隔间变为房间再用算法

来装修他。
  一个好的算法与架构可以让程序高效、高速、稳定的运行,且不占

用太多的空间-----这也是每个工程师、程序员必身追求着梦想。
写累待续

关闭窗口

相关文章