单片机程序设计实用教程文档格式.doc
- 文档编号:15406904
- 上传时间:2022-10-30
- 格式:DOC
- 页数:40
- 大小:939.50KB
单片机程序设计实用教程文档格式.doc
《单片机程序设计实用教程文档格式.doc》由会员分享,可在线阅读,更多相关《单片机程序设计实用教程文档格式.doc(40页珍藏版)》请在冰豆网上搜索。
程序从地址0000H开始存放
START:
MOVP1,#00H ;
把立即数00H送P1口,点亮所有发光二极管
ACALLDELAY ;
调用延时子程序
MOVP1,#0FFH ;
灭掉所有发光二极管
AJMPSTART ;
重复闪动
DELAY:
MOVR3,#7FH ;
延时子程序
DEL2:
MOVR4,#0FFH
DEL1:
NOP
DJNZR4,DEL1
DJNZR3,DEL2
RET
END ;
汇编程序结束
程序2:
用开关控制发光二极管的显示方式。
ORG 0000H
MOV P3,#00010000B ;
使P3口锁存器的P3.4置位
MOV A,P3 ;
读P3口引脚线信号
ANL A,#00010000B ;
“逻辑与”操作,屏蔽掉无关位
JZDDPING ;
判断P3.4是否接地,若是,跳转到DDPING执行
MOV P1,#00H ;
否则,P3.4接高电平,点亮所有发光二极管
SJMP$
DDPING:
MOV P1,#55H ;
P3.4接地,发光二极管交叉亮灭
SJMP $
END
程序3:
使8个发光二极管顺序点亮。
ORG0000H
MOV R2,#08H ;
设置循环次数
MOV A,#0FEH ;
送显示模式字
NEXT:
MOV P1,A ;
点亮连接P1.0的发光二极管
ACALLDELAY
RL A ;
左移一位,改变显示模式字
DJNZ R2,NEXT ;
循环次数减1,不为零,继续点亮下面一个二极管
SJMP START
MOV R3,#0FFH;
延时子程序开始
MOV R4,#0FFH
DJNZ R4,DEL1
DJNZ R3,DEL2
RET
END
4.实训分析与总结
(1)程序1的运行结果是:
8个发光二极管同时闪动,该程序的运行过程用流程图表示如图4.2所示。
程序1的执行过程是按照指令的排列顺序逐条执行,直到全部指令执行完毕为止。
这种按照指令的排列顺序逐条执行的程序结构称为顺序结构程序,如图4.2表示该程序结构的图称为程序流程图。
关于顺序程序的详细介绍参见4.2节。
图4.2程序1流程图
(2)程序2的运行结果是:
若开关K0接+5V,8个发光二极管全部处于点亮状态;
若开关K0拨到接地状态,8个发光二极管处于“亮灭亮灭亮灭亮灭”状态。
程序2的流程图如图4.3所示。
图4.3程序2流程图
程序2的特点是:
程序不按照指令的排列顺序执行,而是根据开关K0的状态,分别执行不同的内容,即程序有两个分支,执行时根据给定的条件选择其中分支,这样的程序结构称为分支结构程序。
分支结构程序的关键是如何根据条件选择正确的分支。
关于分支结构程序的详细介绍参见4.3节。
(3)程序3的运行结果是:
顺序点亮8个发光二极管。
该程序的流程图如图4.4所示。
图4.4程序3流程图
程序3的特点是“点亮-延时-移位”这一程序段重复执行了8次,这样重复执行某一程序段的程序结构称为循环结构程序。
该程序的设计过程见例4.6。
关于循环程序结构的详细介绍参见4.4节。
(4)在程序1和程序3中都使用了一段相同的延时子程序DELAY,这种供其它程序反复使用的程序或程序段称为子程序。
关于子程序的详细介绍参见4.6节。
5.思考
在程序1和程序3中,如果去掉程序中ACALLDELAY,程序运行结果是否有变化,为什么?
如果想改变8个发光二极管的闪动或点亮速度,如何修改程序?
4.1概述
实训4中,我们使用的程序都是用单片机汇编语言设计的。
除了汇编语言外,单片机程序设计语言还有两类:
机器语言和高级语言。
机器语言(MachineLanguage)是指直接用机器码编写程序、能够为计算机直接执行的机器级语言。
机器码是一串由二进制代码“0”和“1”组成的二进制数据,执行速度快,但是可读性极差。
机器语言一般只在简单的开发装置中使用,程序的设计、输入、修改和调试都很麻烦,在实训1和实训3中直接固化或输入的程序都是机器语言程序。
汇编语言(AssemblyLanguage)是指用指令助记符代替机器码的编程语言。
程序结构简单,执行速度快,程序易优化,编译后占用存储空间小,是单片机应用系统开发中最常用的程序设计语言。
汇编语言的缺点是可读性比较差,只有熟悉单片机的指令系统,并具有一定的程序设计经验,才能研制出功能复杂的应用程序,实训4中的3个程序都是用汇编语言设计的。
高级语言(High-LevelLanguage)是在汇编语言的基础上用高级语言来编写程序,例如PL/M-51、FranklinC51、MBASIC51等,程序可读性强,通用性好,适用于不熟悉单片机指令系统的的用户。
高级语言编写程序的缺点是实时性不高,结构不紧凑,编译后占用存储空间比较大,这一点在存储器有限的单片机应用系统中没有优势。
目前,大多数用户仍然使用汇编语言进行单片机应用系统的软件设计,本章介绍MCS-51单片机汇编语言的程序设计方法。
单片机汇编语言程序设计的基本步骤如下:
(1)题意分析
熟悉并了解汇编语言指令的基本格式和主要特点,明确被控对象对软件的要求,设计出算法等。
(2)画出程序流程图
编写较复杂的程序,画出程序流程图是十分必要的。
程序流程图也称为程序框图,是根据控制流程设计的,它可以使程序清晰,结构合理,按照基本结构编写程序,便于调试,在实训4中,我们给出了3个实训程序的流程图。
(3)分配内存工作区及有关端口地址
分配内存工作区,要根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。
(4)编制汇编源程序。
(5)仿真调试程序。
(6)固化程序。
4.2 简单程序设计
简单程序也就是顺序程序,实训4中的程序1就是顺序程序结构,它是最简单、最基本的程序结构,其特点是按指令的排列顺序一条条地执行,直到全部指令执行完毕为止。
不管多么复杂的程序,总是由若干顺序程序段所组成的。
本节通过实例介绍简单程序的设计方法。
例4.1四字节(双字)加法。
将内部RAM30H开始的4个单元中存放的四字节16进制数和内部RAM40H单元开始的4个单元中存放的四字节16进制数相加,结果存放到40H开始的单元中。
题目的要求如图4.5所示。
图4.5例4.1题意分析示意图
(2)汇编语言源程序
按照双字节加法的思路,实现四字节加法的源程序如下:
ORG 0000H
MOV A,30H
ADD A,40H
MOV 40H,A ;
最低字节加法并送结果
MOV A,31H
ADDC A,41H
MOV 41H,A ;
第二字节加法并送结果
MOV A,32H
ADDC A,42H
MOV 42H,A ;
第三字节加法并送结果
MOV A,33H
ADDC A,43H
MOV 43H,A ;
第四字节加法并送结果,进位位在Cy中
显然,上面程序中每一步加法的步骤很相似,因此我们可以采用循环的方法来编程,使得源程序更加简洁,结构更加紧凑。
用循环方法编制的源程序见习题4.3题。
例4.2数据拼拆程序。
将内部RAM30H单元中存放的BCD码十进制数拆开并变成相应的ASCII码,分别存放到31H和32H单元中。
题目要求如图4.6所示。
图4.6例4.2题意分析示意图
本题中,首先必须将两个数拆分开,然后再拼装成2个ASCII码。
数字与ASCII码之间的关系是:
高4位为0011H,低四位即为该数字的8421码。
ORG 0000H
MOV R0,#30H
MOV A,#30H
XCHD A,@R0 ;
A的低4位与30H单元的低4位交换
MOV 32H,A;
A中的数值为低位的ASCII码
MOV A,@R0
SWAP A ;
将高位数据换到低位
ORL A,#30H ;
与30H拼装成ASCII码
MOV 31H,A
END
4.3分支程序设计
通常,单纯的顺序结构程序只能解决一些简单的算术、逻辑运算,或者简单的查表、传送操作等。
实际问题一般都是比较复杂的,总是伴随有逻辑判断或条件选择,要求计算机能根据给定的条件进行判断,选择不同的处理路径,从而表现出某种智能。
根据程序要求改变程序执行顺序,即程序的流向有两个或两个以上的出口,根据指定的条件选择程序流向的程序结构我们称为分支程序结构,实训4中的程序2就是这样的程序结构。
本节通过实例介绍分支程序设计方法。
4.3.1分支程序实例
1.两分支程序设计
例4.3两个无符号数比较(两分支)。
内部RAM的20H单元和30H单元各存放了一个8位无符号数,请比较这两个数的大小,比较结果显示在实训的实验板上。
如下:
若(20H)>
=(30H),则P1.0管脚连接的LED发光;
若(20H)<
(30H),则P1.1管脚连接的LED发光;
(1)题意分析
本例是典型的分支程序,根据两个无符号数的比较结果(判断条件),程序可以选择两个流向之中的某一个,分别点亮相应的LED。
比较两个无符号数常用的方法是将两个数相减X-Y,然后判断有否借位Cy,若Cy=0,无借位,X>
=Y;
若Cy=1,有借位,X<
Y。
程序的流程图如图4.7所示。
图4.7两数比较流程图
X DATA 20H;
数据地址赋值伪指令DATA
Y DATA 30H
MOV A,X ;
(X)→A
CLR C ;
Cy=0
SUBB A,Y ;
带借位减法,A-(Y)-Cy→A
JC L1 ;
Cy=1,转移到
L1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程序设计 实用教程