MCS-51系列单片机程序的设计论文一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MCS-51系列单片机程序的设计论文
程序设计是单片机开发最重要的工作,程序设计就是利用单片机的指令系统,根据应用系统(即目标产品)的要求编写单片机的应用程序,其实我们前面已经开始这样做过了,这一课我们不是讲如何来设计具体的程序,而是教您设计单片机程序的基本方法。不过在讲解程序设计是单片机开发最重要的工作,程序设计就是利用单片机的指令系统,根据应用系统(即
目标产品)的要求编写单片机的应用程序,其实我们前面已经开始这样做过了,这一课我们不是讲如何
来设计具体的程序,而是教您设计单片机程序的基本方法。不过在讲解之前还是有必要先了解一下单片
机的程序设计语言。
一.程序设计语言
这里的语言与我们通常理解的语言是有区别的,它指的是为开发单片机而设计的程序语言,如果
您没有学过程序设计可能不太明白,我给大家简单解释一下,您知道微软的VB,VC 吗?VB,VC 就是为
某些工程应用而设计的计算机程序语言,通俗地讲,它是一种设计工具,只不过这种工具是用来设计计
算机程序的。要想设计单片机的程序当然也要有这样一种工具(说设计语言更确切些),单片机的设计
语言基本上有三类:
1.完全面向机器的机器语言
机器语言就是能被单片机直接识别和执行的语言,计算机能识别什么?以前我们讲过--是数字“0”
或“1”,所以机器语言就是用一连串的“0”或“1”来表示的数字。比如:MOV A,40H;用机器语言
来表示就是11100101 0100000,很显然,用机器语言来编写单片机的程序不太方便,也不好记忆,我
们必须想办法用更好的语言来编写单片机的程序,于是就有了专门为单片机开发而设计的语言:
2.汇编语言
汇编语言也叫符号化语言,它使用助记符来代替二进制的“0”和“1”,比如:刚才的MOV A,
40H 就是汇编语言指令,显然用汇编语言写成的程序比机器语言好学也好记,所以单片机的指令普遍采
用汇编指令来编写,用汇编语言写成的程序我们就叫它源程序或源代码。可是计算机不能识别和执行用
汇编语言写成的程序啊?怎么办?当然有办法,我们可以通过“翻译”把源代码译成机器语言,这个过
程就叫做汇编,汇编工作现在都是由计算机借助汇编程序自动完成的,不过在以前,都是靠手工来做的。
值得注意的是,汇编语言也是面向机器的,它仍是一种低级语言。每一类计算机
都有它自己的汇
编语言,比如:51 系列有它的汇编语言,PIC 系列也有它的汇编语言,微机也有它自己的汇编语言,它
们的指令系统是各不相同的,也就是说,不同的单片机有不同的指令系统,它们之间是不通用的,这就
是为什么世界上有很多单片机类型的缘故。为了解决这个问题,人们想了很多的办法,设计了许多的高
级计算机语言,而其中最适合单片机编程的要数C 语言。
3.C 语言—高级单片机语言
C 语言是一种通用的计算机程序设计语言,它既可以用来编写通用计算机的系统程序,也可以用
来编写一般的应用程序,由于它具有直接操作计算机硬件的功能,所以非常适合用来编写单片机程序,
与其他的计算机高级程序设计语言相比,它具有以下的特点:
。语言规模小,使用简单
1)
(
ANSIC 标准的C 语言一共只有32个关键字,
在现有的计算机设计程序中,C 语言的规模是最小的,
9 种控制语句,然而它的书写形式却比较灵活,表达方式简洁,使用简单的方法就可以构造出相当复杂
的数据类型和程序结构。
(2)。可以直接操作计算机硬件
C 语言能够直接访问单片机的物理空间地址(KEIL C51 软件中的C51 编译器更具有直接操作51
单片机内部存储器和I/O 口的能力),亦可直接访问片内或片外存储器,还可以进行各种位操作。
(3)。表达能力强,表达方式灵活
C 语言有丰富的数据结构类型,可以采用整型、实型、字符型、数组类型、指针类型、结构类型、
联合类型、枚举类型等多种数据类型来实现各种复杂数据结构的运算。利用C 语言提供的多种运算符,
我们可以组成各种表达式,还可以采用多种方法来获得表达式的值,从而使程序设计具有更大的灵活性。
(4)。可进行结构化设计结构化程序是单片机程序设计的组成部分,C 语言中的函数相当于汇编语言中的子程序,KEIL
C51 的编译器提供了一个函数库,其中包含有许多标准函数,如各种数学函数、标准输入输出函数等,
此外还可以根据用户需要编制满足某种特殊需要的自定义函数。C 语言程序就是由许多个函数组成的,
一个函数即相当于一个程序模块,所以 C 语言可以很容易地进行结构化程序设计。
(5)。可移植性
前面我们讲过,由于单片机的结构不同,所以不同类型的单片机就要用不同的汇
编语言来编写程
序,而C 语言则不同,它是通过汇编来得到可执行代码的,所以不同的机器上有80%的代码是公用的,
一般只要对程序稍加修改,甚至不加修改就可以方便地把代码移植到另一种单片机中。这对于已经掌握
了一种单片机的编程原理,又想用另一种单片机的人来说,可以大大地缩短学习周期,我们将在教程的下册中专门来讲解C 语言的应用及其编程原理。
不过作为单片机初学者想要学会 C 语言并不是一件容易的事,因此对于大多数人来说,汇编语言
仍是编写单片机程序的主要语言。我们上册的教程将全部以汇编语言来编写单片机的程序。了解了单片
机编程的设计语言,下面我们来看单片机编程的基本过程和步骤。
二.单片机程序设计的步骤
单片机的程序设计通常包括根据任务建立数学模型、绘制程序流程图、编写程序及汇编三个步骤。
1.建立数学模型
数学实在是太有用了,在单片机的程序设计领域,根据任务建立数学模型是程序设计的关键工作。
比如,在一个测量系统中,从模拟通道输入的温度、压力、流量等信息与该信号的实际值是非线性关系,
这就需要我们对其进行线性化处理,此时就要用到指数和函数等数学变量来进行计算;再比如,在直接
数字化控制的系统中,常采用PID 控制算法来进行系统的运算,此时又要用到数学中的微分和积分运算
等等。因此,数学模型对于单片机的程序设计是非常重要的。只不过作为初学者,我们还没有复杂到如
此程度,因此,详细的内容就不讲解了。下面的绘制程序流程图可是初学者的基本功,请大家务必仔细
看一下。
2.绘制流程图
所谓流程图,就是用各种符号、图形、箭头把程序的流向及过程用图形表示出来。绘制流程图是
单片机程序编写前最重要的工作,通常我们的程序就是根据流程图的指向采用适当的指令来编写的,下
面的图形和箭头就是我们绘制流程图用的工具(图中所示)。