单片机程序设计总结
经过多年的单片机领域研究,总结一下几点的程序设计的经验
要想设计程序就必须了解单片机一些基础知识
1 指令是指计算机执行某种操作的命令,仅仅是简单完一件细小工
作命令。如 MOVLW 06H 或 I=0X06;
就是将06H的立即数 移动给 单片机内的工作寄存器。
或 O6H的立即数赋予I......
1,程序是指众多的单片机指令构成有一定规模及次序,具有特定功
能、能完成特定任务的指令集合。
只要了解这些你就可以知道,程序是什么了,就是我们日常生活中的
一些做事流程,用指令书写的方式记下来。就这么简单。
接下来就是变量,他是为指令运行的提供操作对象空间,没有的变量
,指令与程序就是神马浮云。什么都不是。
空间是什么,说白就是可以放东西的地方,单片机的空间就是他的内
存是可以用来存放数据了-----单片机定义为寄存器。
那数据是什么呢,说白了就是个数----二进制的数,为什么用二进制
呢,就是因为计算机很傻了,他就走两个极端,要么没有电,要么有
电,没有中间态,所以就用二进制配他了。
现在知道的变量的作用就好办,
既然是个空间--变量,就要有存放与取出、清空的功能,变量的数据
处理有输入、输出、清零,而且单片机中的变量不是一个哦,是很多
数以百计千记的变量,且变量都有独立的房间与名字。
因此单片机在运行时,其实就是在指令控制下,完成变量与变量间
的数据交换与处理,而这些交换处理目的就是为完成程序特定的功能
而运行了。
说到这里就要提一下变量的性别与生命期,有点神哦,有生命的东
西。
变量的类别:
全局静态变量: 全局静态变量是用来保存程序运行中必须的全部
区域内不动产---数据不能变化了,编辑后,就固定了,他是用来保
存如显示需要的字符码,图像码,声音码及子程序(模块)内特殊用
途的一些特殊数据,且这种变量是不能被修改,永恒固定
生命期:活到整个程序的结束,且每个程序段--子程序都可以读
取他(但不能写)
局部静态变量: 局部静态变量是用来保存程序运行中必须的局部
区域的不动产---数据不能变化了,编辑后,就固定了,保存的如按
键时间,声音时间,及子程序(模块)内特殊用途等一些特殊数据,
且这种变量是不能被修改,永恒固定
生命期:活到整个程序的结束,且只能在规定的子程序内可以读
取他(但不能写) 超出不能使用。
局部动态变量: 局部动态变量是用来保存程序运行中必须的局部
区域的变化数据,他是用来保存如按键计数器,声音时间计数器,及
子程序(模块)内特殊用途等一些特殊数据,且这种变量是可以被修
改
生命期:活到整个程序的结束,且只能在规定的子程序内可以读
写与使用。
全局动态变量:
全局动态变量是用来保存程序运行中必须的全部区域内的变化数
据,他是用来保存如按键值,声音值,显示处理值,及子程序(模块
)内特殊用途等一些特殊数据,且这种变量是可以被修改
生命期:活到整个程序的结束,在整个程序内都可以读
写与使用。
随机动态变量
随机动态变量是用来保存程序运行中必须的全部区域内的变化临时
数据如,按键识别值,显示运算值,四则运算的临时空间及子程序(
模块)内特殊用途等一些临时特殊数据。这种变量是可以读写
生命期:使用他的程序段开始到结束,只有在改程序段内有效,
程序段结束,他的生命也没有了。
随机动态变量在程序中是用的最多的变量,因为他没有特定功能,
就是供所有的程序使用,谁要用就出生,不用时就结束,继续等待下
个被使用。这就是他的使命,晕感觉像让万人随意糟蹋的样子。
说完变量,现在说程序的灵魂------算法,很神秘吧,其实他妈
就是实现的方法,因为单片机是*运算与处理数据了来实现功能了
所以叫他---算法。
这是书上描述了
“ 算法可以理解为有基本运算及规定的运算顺序所构成的完整的解
题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这
样的步骤和序列可以解决一类问题
一个算法应该具有以下五个重要的特征: 算法可以使用自然语
言、伪代码、流程图等多种不同的方法来描述。
1、有穷性(Finiteness)
算法的有穷性是指算法必须能在执行有限个步骤之后终止
2、确切性(Difiniteness)
算法的每一步骤必须有确切的定义;
3、输入项(Input)
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0
个输入是指算法本身定出了初始条件;
4、输出项(Output)
一个算法有一个或多个输出,以反映对输入数据加工后的结果。
没有输出的算法是毫无意义的;
5、可行性(Effectiveness)
算法中执行的任何计算步都是可以被分解为基本的可执行的操作
步,即每个计算步都可以在
单片机程序设 相关文章:
- 学海拾贝状态机思路在单片机程序设计中的应用(11-20)
- PIC系列单片机程序设计基础(10-15)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)