单片机程序设计 PPT

合集下载

《单片机的程序设计》课件

《单片机的程序设计》课件
3 程序无法正常输出
解决程序无法正确输出结果的常见问题。
单片机的进一步学习方法
1 学习资料推荐
2 学习心得交流
推荐一些优质的学习资料和教程。
分享学习心得,与其他学习者交流经验。
3 提高单片机技术的方法总结
总结提高单片机编程技术的有效方法和技巧。
了解汇编语言对于底层控制的重要性。
3 其他语言的应用
认识其他语言在单片机应用中的作用和优势。
程序设计实例
数码管的显示
编写程序控制数码管显示各种数字和字符。
LED灯的控制
学习如何使用单片机控制LED灯的亮灭。
按键的检测
掌握通过单片机检测和响应按键操作的方法。
蜂鸣器的控制
编写程序控制蜂鸣器发出不同的音频信号。
《单片机的程序设计》 PPT课件
概述
单片机基础知识
了解单片机的基本概念、结构和工作原理。
程序设计基本概念
掌握程序设计的基本概念,如变量、条件语句和循环结构。
单片机程序设计流程
学习如何编写单片机程序的基本流程和步骤。
单片机的程序设计语言
1 C语言
掌握C语言在单片机程序设计中的应用和特点。
2 汇编语言
单片机的扩展应用
1 串口通信
了解如何通过单片机与外部设备进行串口通信。
2 蓝牙通信
学习使用蓝牙模块实现单片机与其他设备的无线通信。
3 红外遥控
掌握使用红外技术实现单片机的遥控功能。
程序设计中的常见错误和解决解决方法。
2 程序运行不稳定
了解程序运行不稳定的原因和调试技巧。

教学课件PPT 89C51单片机的C51程序设计

教学课件PPT 89C51单片机的C51程序设计

程序存储器(64K字节)
对应MOVC @DPTR访问
可位寻址片内数据存储器(16字节,128位) 允许位和字节混合访问
间接寻址片内数据存储器(256字节)
可访问片内全部RAM空间
分页寻址片外数据存储器(256字节)
对应MOVX @R0访问
4.2 C51程序设计基础
C51存储类型定义举例:
unsigned char data x,y,z; /*在内部RAM区定义了3个无符号字节型变量x,y,z*/
40M/80M/100M,而且还有很多是单周期的。
4.2 C51程序设计基础
4.2.1 C51变量/常量存储类型
C51存储类型 对应89C51单片机存储器空间
data
直接寻址片内数据存储器(128字节)
xdata
片外数据存储器(64K字节)
说明 访问速度快 对应MOVX @DPTR访问
code bdata idata pdata
序号 语句
1
=
2
if
3
表达式1 ? 表达式2 : 表达式3
4
switch/case
5
while
6
do-while
7
for
8
函数
含义 赋值语句 条件语句 条件运算符 多分支语句 循环语句 循环语句 循环语句 模块化程序设计
4.2 C51程序设计基础
表4-6 常用语句
序号 语句
1
=
2
if
3
表达式1 ? 表达式2 : 表达式3
4.3 C51程序举例
例4:把外部数据RAM中从地址2000H单元开始的100个有符号 数逐一取出,若为正数则放回原单元,若为负数则求补后放回。

单片机程序设计 PPT

单片机程序设计 PPT

;相加分支 ;相减分支 ;乘法分支
MEMSP3:MOV A,R0
;除法分支
MOV B,R1
CLR C
DIV AB
MOV RESULT,A
MOV RESULT+1,B
LJMP END1
MEMSP4:MOV A,R0
;逻辑与分支
ANL A,R1
MOV RESULT,A
LJMP END1
MEMSP5:MOV A,R0
图3-3 单分支选择结构
(a)当条件满足时执行分支程序1,否则执行分支程序2。 (b)当条件满足时跳过程序段1,从程序段2顺序执行;否则,顺序
执行程序段1与程序段2。 (c)当条件满足时程序顺序执行程序段2;否则,重复执行程序段
1,直到条件满足为止。 由于条件转移指令均属相对寻址方式,其相对偏移量rel就是个 带符号得8位二进制数,可正可负。因此,它可向高地址方向 转移,也可向低地址方向转移。 对于第三种形式,可用程序段1重复执行得次数作为判断条 件,当重复次数达到某一数值时,停止重复,程序顺序往下 执行。这就是分支结构得一种特殊情况,这实际就是循环结构
开始 设置地址指针R1、计数器R0初值
取数,A←((R1))
Y A←64H
A为负数?
N A=0?
N A←X+2
Y A←∣X∣
存数,((R1))←A(30H)
R1←R1+1;R0←R0-1
N R0=0? Y 结束
图4-8 例4、5得程序流程图
返回本节
参考源程序如下:
ORG 2000H
MOV R0,#10
MOV R1,#30H
START: MOV A,R1 ;取数
JB ACC、7,NEG ;若为负数,转NEG

第4章单片机C语言程序设计ppt课件

第4章单片机C语言程序设计ppt课件

第4章 单片机C语言程序设计
第4章 单片机C语言程序设计
第4章 单片机C语言程序设计
三.long长整型 分signed long和unsigned long。默认为signed long。它们的长
度均为四个字节,用于存放一个四字节数据。对于signed long,用于 存放四字节带符号数,补码表示,数的范畴为2147483648~+2147483647。对于unsigned long,用于存放四字节无 符号数,数的范围为0~4294967295。
指明变量在存储器中占用的字节数。可以是基本数据类型说明符,也 可以是组合数据类型说明符,还可以是用typedef或#define定义的类 型别名。
在C51中,为了增加程序的可读性,允许用户为系统固有的数据 类型说明符用typedef或#define起别名,格式如下:
typedef c51固有的数据类型说明符 别名; 或 #define 别名 C51固有的数据类型说明符;
C语言程序在书写时格式十分自由,一条语句可以写成一行,也 可以写成几行;还可以一行内写多条语句;但每条语句后面必须以分 号“;”作为结束符。C语言程序对大小写字母比较敏感,在程序中, 同一个字母的大小写系统是作不同的处理。在程序中可以用 “/*………*/”或“//”对C程序中的任何部分作注释,以增加程序的可读 性。
C语言本身没有输入输出语句。输入和输出是通过输入输出函数 scanf()和printf()来实现的。输入输出函数是通过标准库函数形式提供 给用户。
第4章 单片机C语言程序设计
4.1.2 C语言与MCS-51单片机
用C语言编写MCS-51单片机程序与用汇编语言编写MCS–51单片机程序 不一样,用汇编语言编写MCS–51单片机程序必须要考虑其存储器结构, 尤其必须考虑其片内数据存储器与特殊功能寄存器的使用以及按实际地址 处理端口数据。用C语言编写的MCS–51单片机应用程序,则不用像汇编 语言那样须具体组织、分配存储器资源和处理端口数据,但在C语言编程 中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则 编译器不能正确地映射定位。

《单片机简单程序》PPT课件

《单片机简单程序》PPT课件

42H,@R1
A,42H,NOM ;是否相等?不相等转移
R0
;相等,修改指针
R1
R2,CHC
;全部比较完?
A,#0
;完全相等
PEND
A,#0FFH ;不完全相等
精选PPT
20
4-5-3 多重循环
循环体中套循环结构。以双重循环使用较多。
软件延时程序。 用循环程序将指令重复多次执行,实现软件延时。
试计算延时程序的执行时间。
4-5-1 循环程序的构成 各个环节任务: 一.初始化部分
循环准备工作。如:清结果单元、 设指针、设循环控制变量初值等。
二.循环体
循环工作部分:
循环初始化
循环工作
循环控制 ?
Y
N
循环结束
需多次重复处理的工作。
循环控制部分:
1.修改指针和循环控制变量。
2.检测循环条件:满足循环条件,继续循环,否则退出循环。 三.结束部分

宏指令名 实际参数

宏指令名 实精际选PP参T 数
5
二.汇编控制指令(伪指令)
伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的 操作指令一样,并可加在汇编程序的任何地方,但它们并不产 生机器指令
不同汇编程序允许的伪指令并不相同,但一些基本的伪指令 在大部份汇编程序中都能使用
精选PPT
6
汇编控制指令(伪指令)
片 内 R A M 4 2 H 0 十 4 1 H 0 个 4 0 H 十 个
MOV @R0,A ;保存数据个位
MOV A,R2
SWAP A
;十位换到低半字节
ANL A,#0FH
INC R0
MOV @R0,A ;保存数据十位

《单片机程序设计》PPT课件

《单片机程序设计》PPT课件
根据程序区、数据区、暂存区、堆栈区等预计所占空间大小, 对片内外存储区进行合理分配并确定每个区域的首地址,便于 编程使用。
2021/3/8
4
(4) 编制汇编源程序。 (5) 仿真、调试程序。 (6) 固化程序。 程序编写做到:占用存储空间少;运行时间短;
程序的编制、调试及排错所需时间短;结构清晰,易读、易
简单程序也就是顺序程序,它是最简单、最基本的程序 结构,其特点是按指令的排列顺序一条条地执行,直到全部 指令执行完毕为止。不管多么复杂的程序,总是由若干顺序 程序段所组成的。本节通过实例介绍简单程序的设计方法。
例3.1 4字节(双字)加法。将内部RAM 30H开始的4个 单元中存放的4字节十六进制数和内部RAM 40H单元开始的4 个单元中存放的4字节十六进制数相加,结果存放到40H开始 的单元中。
;最低字节加法并送结果 ;第二字节加法并送结果
2021/3/8
9
MOV A,32H ADDC A,42H MOV 42H,A MOV A,33H ADDC A,43H MOV 43H,A SJMP $ END
;第三字节加法并送结果
;第四字节加法并送结果,进位 ; 位在CY中
2021/3/8
10
例3.2、设在外RAM的60H单元存有1个字节 代码,要求将其分解成两个4位字段,高4位存 入原单元的低4位,其低4位存入61H单元的低 4位,且要求这两个单元的高4位均为0,试编 制完整程序。
SJMP DONE
MINUS: ADD A,B
DONE: SJMP $
END
2021/3/8
15
分支程序实例 1.两分支程序设计 例3.4 两个无符号数比较(两分支)。内部RAM的
20H单元和30H单元各存放了一个8位无符号数,请比较这 两个数的大小,比较结果显示在实验板上:

单片机的程序设计ppt课件

单片机的程序设计ppt课件
是和最近的if配对
2、ch语句
实践问题中,往往遇到以一个变量或表达式的值为判别条件,将此变量或 表达式的值分成几段,每一段对应一种选择或操作,这种情况用if语句来嵌套非 常费事,于是,C51提供了switch语句。
switch语句的普通构造如下: switch (表达式) { case 常量表达式1:语句1,break;
(2)自增,自减运算符 + +自增 - -自减
注:1、+ +和- -是单目运算符 2、+ +和- -只能用于变量,不能用与常量和表达式。 3、+ +j 先自增,再运用 j+ + 先运用,后自增 如:a=2 b=++a 后 b=3 a= 3 b=a++ 后 b=2 a=3
2.2.3 关系运算符和关系表达式
for语句的普通方式为: for(表达式1;表达式2;表达式3) {语句}
for循环语句的执行过程如下。 (1) 先求解表达式1。 (2) 求解表达式2,假设结果为“真〞,即条件成立,那 么执行循环体语句;假设结果为“假〞,转到第(5)步。 (3) 求解表达式3。 (4) 转回第(2)步。 (5) 退出for循环语句,执行下面的语句。
当表达式的判别为“真〞时,执行大括号内的语句,否那么不执
假 条件表达式 真 循环体语句
2、do-while 循环语句
do-while语句是先执行循环体,然后判别循环条件是 否成立,其普通方式为:
do {语句} while(表达式);
分析程序: P33 例2.4
循环体语句


循环条件表达式
3、for 循环语句
#include "regx51.h" void Delay( unsigned int delaytime)

《单片机C程序设计》课件

《单片机C程序设计》课件

额外资料
教材推荐
介绍电子工程、计算机科学、物联网等专业的学生及从事嵌入式系统开发的工程师所需的参考书籍。
相关网站和论坛
介绍国内外嵌入式系统及相关技术的网站和论坛,为学生提供全面深入地学习资料。
demo代码分享
分享部分软件和硬件的demo代码和程序,为学习者提供参考和模板。
《单片机C程序设计》 PPT课件
本课件旨在帮助初学者掌握单片机C语言程序设计知识,适用于电子工程、计 算机科学、物联网等专业的学生及从事嵌入式系统开发的工程师。
前言
1 目的
介绍单片机编程基础知识和常用技能,让学生能够掌握基础技术并能够应用于实践。
2 适用范围
电子工程、计算机科学、物联网等专业的学生及从事嵌入式系统开发的工程师。
3 学习要求
具有一定的电子电路和计算机相关基础知识,熟悉C语言基本语法。
基础知识
单片机概述
介绍单片机的基本原理、各种 单片机的特性和应用场景,以 及单片机编程所需的软硬件工 具。
C语言基础
介绍如何使用C语言编写单片 机程序,包括基本程序结构、 变量、控制结构等内容。
工具链介绍
介绍单片机编译链接工具及与 硬件的交互原理,包括开发板、 下载器等硬件设备。
介绍各类引脚的控制方法,包括数字
输入输出实现
2
引脚、模拟引脚和PWM等引脚。
介绍如何使用输入输出操作,包括数
字输出、PWM输出、模拟输出、数字 输入和模拟输入等操作。
3
呼吸灯实现
介绍了如何使用LED呼吸灯实现不同 的亮灯效果,包括使用PWM、软件延 时等方法。
定时器操作
定时器的原理
介绍定时器的结构、定时 器输入捕获原理、PWN输 出原理和定时器工作模式。

《单片机程序设计》课件

《单片机程序设计》课件
探讨嵌入式系统的概念和特点,并了解其在 实际应用中的广泛使用。
ARM 架构
1
ARM 处理器的特点
介绍ARM处理器的特点,包括低功耗、
ARM 内核的优点
2
高性能和可扩展性。
分析ARM内核的优点,如高效率、灵
活性和广泛支持。
3
ARM 产品线介绍
概述ARM芯片的不同系列和型号,以
ARM 芯片参数说明
4
及它们的特点和应用场景。
2
示范如何使用温度传感器和单片机设
计温度检测程序,应用于智能家居等
领域。
3
LED 闪烁程序设计
实例演示如何通过单片机控制LED灯 的闪烁,展示单片机的实际应用。
电机驱动程序设计
展示如何使用单片机设计电机驱动程 序,实现智能机器人等项目的运动控 制。
结束语
单片机的未来发展
展望单片机技术的未来发 展方向,以及其在物联网 和人工智能等领域的应用。
单片机程序设计
汇编语言
探索使用汇编语言 进行单片机编程的 基础知识和常用技 巧。
C 语言
介绍使用C语言进行 单片机编程的优势 和实践技巧。
接口设计
讨论单片机与外部 设备的接口设计方 法,包括串口、并 口和SPI等。
电路设计
探索通过电路设计 实现单片机功能的 方温度检测程序设计
基本概念
计算机
探索计算机的基本原理和 结构,了解计算机是如何 工作的。
单片机
深入了解单片机的定义、 特性和功能,并探讨其在 嵌入式系统中的重要性。
MCU
介绍嵌入式系统中常用的 微控制器单元(MCU),并 分析其特点和优势。
D SP
了解数字信号处理器(DSP)在嵌入式系统中 的应用和优势。

02-Keil C单片机程序设计教学课件

02-Keil C单片机程序设计教学课件

包含到库中, 共享-
新的快
名称 4
firstplg _] firstuvopt
卿 firstuvproj
_] first_uvopt.bak
〕first_uvprqj.bak
1/
Y修改日期
▼|» II捜索…了
□O
冒 11.

2 C\Users\Andy\Desktop\ [Realplay]浙软• 4 0\Kei^51\Examples\Hello^ello.uvproj 5D:\Keil\C51\Eiample$\Me8sure',Mea$ure.UVi 6 D:\Keif\C51伽Tiny心mp 厨血 IfWr砒(.UV2 Z D:\KeM51\Eiamples\BhnmBlin 切 UV2
te an empty document 一
'
口 〔Tg
finclude <reg51.h> fInclude <stdio.h>
一2.输入代码
▼X
1.新建文件
02 ^include <intrins.b> #define uint
03 unsigned Inc #define uchar unsigned
Database: |Generic CPU Data Base
Vendor Atmel
Device AT89C51
Toolset C51
□ □ □ □ □ □ □ □ □ □ □ □ □
n
, L
AT83C5135
AT8X5136 AT83FR5114 AT85C51SND3 AT87F51 AT87F51RC AT87F52 AT87F55WD AT89C1051 AT89C1051U AT89C2051 AT89C4051

单片机课件 汇编语言程序设计PPT

单片机课件 汇编语言程序设计PPT
可以使人们抓住程序的基本线索,对全局有完整的了解。
4.1 概述
好处: (1)容易发现设计思想上的错误和矛盾,便于找出解 决问题的途径。 (2)便于把较大的程序分成若干个模块,从而分头进 行设计,最后合在一起联调。 5、按所使用计算机的指令系统,依据框图写出汇编语言 程序。 编程的三个原则:尽可能的节省数据存储单元;缩 短程序长度;减少执行时间。
须是事先未定义过的。
4.1 概述
例4.6 A1 BIT P1.0 A2 BIT 02H
(7)源程序结束END 格式:标号:END 表达式 1、标号和表达式是可有可无的。 2、END是一个结束标志,在一个程序中只允许出 现一个END语句,而且它必须放在整个程序的最后面。 (8)定义存储空间DS 格式: 标号:DS 表达式 1、由标号指定单元开始,定义一个存储区,以备源 程序使用。
际问题处理程序编写能力。
4.1 概述
4.1 概述 程序设计:为了解决某一个问题,将所设计应用
系统(单片机类型)的指令按一定顺序组合在一起。即用 计算机所能接受的语言把解决问题的步骤描述出来。
单片机汇编源程序结构与通用微机汇编源程序结构 略有不同,原因是:
1、一般没有可以直接利用的监控程序,所有程 序均要自己编写。
结构如下:
4.1 概述
---- 程序头( 即定义变量和等值符号)---SCL BIT P1.2 ;定义SCL位变量 SDA BIT P1.3 ;定义SDA位变量 ByteCon DATA 30H ;定义字节变量
ByteCon ……
ORG nnnn ;CPU复位后,第一指令机器码存 放单元地址,具体值由CPU类型决定。
…… ;子程序实体,具体指令由程序功能决定 POP Acc POP PSW ;恢复现场 RET ;子程序最后一条指令,使子程序指令运行结 束后,返回主程序断点。

《单片机程序设计》课件

《单片机程序设计》课件
《单片机程序设计》PPT课件
目录
• 单片机概述 • 单片机程序设计基础 • 单片机开发环境与工具 • 单片机程序设计的实践案例 • 单片机程序设计的常见问题与解决方案 • 单片机程序设计的未来发展与展望
01
单片机概述
单片机的定义与特点
总结词
功能强大、集成度高、体积小、可靠性高
详细描述
单片机是一种集成电路芯片,集成了CPU、存储器、定时器/计数器、输入/输 出接口等功能,具有功能强大、集成度高、体积小、可靠性高等特点,广泛应 用于智能仪表、工业控制、智能家居等领域。
03
单片机开发环境与工具
单片机开发环境的组成
硬件开发工具
用于单片机硬件设计的工具,如原理图编辑器、电路仿真器等。
软件开发工具
用于单片机软件开发的工具,如集成开发环境(IDE)、编译器、 调试器等。
辅助工具
用于单片机开发过程中的辅助工具,如烧写器、仿真器、逻辑分析 仪等。
单片机开发工具的种类与选择
详细描述
温度传感器程序设计是单片机应用中较为复 杂的案例,通过编写程序读取温度传感器数 据,实现温度的测量和控制。这个案例可以 帮助初学者了解单片机的A/D转换、传感器 接口应用等知识,提高程序设计的综合应用 能力。
液晶显示程序设计
要点一
总结词
通过液晶显示程序设计,掌握单片机的显示接口应用。
要点二
01
通用型工具
适用于多种单片机的开发工具, 如Keil、IAR等。
02
03
专用型工具
选择依据
针对特定单片机的开发工具,如 针对ARM Cortex-M核的 STM32CubeIDE等。
根据项目需求、开发人员习惯、 工具性能和价格等因素进行选择 。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ZER0:MOV A,# 64H ;数据为零,Y=100
AJMP SAVE
;转到SAVE,保存数据
NEG:DEC A
CPL A
;求∣X∣
SAVE: MOV 31H,A
;保存数据
SJMP $ ;暂停
2.多分支选择结构 当程序的判别输出有两个以上的出口流向时,称为多分支选 择结构。8051的多分支结构程序还允许嵌套,即分支程序中 又有另一个分支程序。汇编语言本身并不限制这种嵌套的层 次数,但过多的嵌套层次将使程序的结构变得十分复杂和臃 肿,以致造成逻辑上的混乱。多分支选择结构通常有两种形 式,如图4-4所示。
DONE:SJMP $
;等待
END
2.双向分支程序设计举例 【例4.3】 设X存在30H单元中,根据下式
X+2 X>0
Y = 100 X=0
∣X∣ X<0
求出Y值,将Y值存入 31H单元。
解:根据数据的符号位判别该数的正负, 若最高位为0,再判别该数是否为0。程序 流程如图4-4所示。
开始 取数,A←(30H)
START:MOV R0,#00H
;初始化
MOV R1,#00H
MOV R2,#00H
MOV R3,#00H
MOV P1,#00H
MOV R4,#0FFH MOV R5,#0FFH MOV 30H,#00H MOV 40H,#00H HERE:SJMP HERE ;反复执行该指令,相当于等待
END 用立即数比较直观,但用MOV A,#00H ,MOV R0, A 指 令赋值,效果更好。
Y A←64H
A为负数? N
A=0? N
A←X+2
A←|X|
存数,(31H)←A(30H) 结束
参考程序如下:ORG 1000H
MOV A,30H
;取数
JB ACC.7,NEG
;负数,转NEG
JZ ZER0
;为零,转ZER0
ADD A,#02H
;为正数,求X+2
AJMP SAVE
;转到SAVE,保存数据
3.2 顺序程序设计
【例】程序初始化。初始化就是为变量、寄存器、存储单元
赋一初值,是最简单、最常用的操作。如将R0-R3,P1,
30H,40H单元初始化为00H,把R4,R5初始化为0FFH。
参考程序如下:
ORG 0000H
;PC起始地址
LJMP START
;转主程序
ORG 0100H
;主程序起始地址
对于第三种形式,可用程序段1重复执行的次数作为判断条 件,当重复次数达到某一数值时,停止重复,程序顺序往下
执行。这是分支结构的一种特殊情况,这实际是循环结构程
序。用这种方式可方便实现状态检测。
【例】:LOOP: JB P1.1,LOOP 单分支程序一般要使用状态标志,应注意标志位的建立。
【例】设a存放在累加器A中,b存放在寄存器B中,若a≥0,
大家应该也有点累了,稍作休息
大家有疑问的,可以询问和交流
图3-3 单分支选择结构
(a)当条件满足时执行分支程序1,否则执行分支程序2。 (b)当条件满足时跳过程序段1,从程序段2顺序执行;否则,
顺序执行程序段1和程序段2。 (c)当条件满足时程序顺序执行程序段2;否则,重复执行程
序段1,直到条件满足为止。 由于条件转移指令均属相对寻址方式,其相对偏移量rel是个 带符号的8位二进制数,可正可负。因此,它可向高地址方向 转移,也可向低地址方向转移。
Y=a-b;若a<0,则Y=a+b。
这里的关键是判a是正数,还是负数;可通过判断ACC.7确定。
ORG 0000H
LJMP BR
ORG 0100H
BR: JB ACC.7,MINUS
;负数,转到MINUS
CLR C
;清进位位
SUBB A,B
;A-B
SJMP DONE
MINUS:ADD A,B
;A+B
单片机程序设计
3.1汇编语言程序设计方法
汇编语言程序设计同高级语言程序设计一样,是有章可循 的,只要按照一定的方法步骤去做,程序设计就会变成一 件轻松愉快的事情,设计的程序也会规范、清晰、易读、 易懂。使用汇编语言设计程序大致上可分为以下几个步骤。 1. 分析题意,明确要求。 2. 确定算法。 3. 画程序流程图。 4. 分配内存工作单元。 5. 编写源程序。 6. 程序优化。 7. 上机调试。
;把结果在P1.5口输出
3.3 分支程序设计
分支程序的主要特点是程序包含有判断环节,不同的条件
对应不同的执行路径。编程的关键任务是合理选用 具有逻辑判断功能的指令。由于选择结构程序的走
向不再是单一的,因此,在程序设计时,应该借助程序 框图(判断框)来明确程序的走向,避免犯逻辑错误。一 般情况下,每个选择分支均需单独一段程序,并有特定 的名字,以便当条件满足时实现转移。 1.单分支选择结构 当程序的判断是二选一时,称为单分支选择结构。通常用 条件转移指令实现判断及转移。单分支选择结构有三种 典型表现形式。
ORG 0100H MOV P1,#0FFH LOOP:MOV C,P1.1 ORL C, P1.2
CPL C ANL C,P1.0
CPL C MOV 07H,C MOV C,P1.3 ANL C,/P1.4
CPL C ORL C,07H MOV P1.5,C
SJMP $
END
;P1口初始化 ;P1.1与P1.2逻辑或运算 ;取反 ;C与P1.0逻辑与运算 ;暂存于07H单元中 ;P1.3与P1.4的反逻辑与运算
【例】 逻辑运算。逻辑操作是控制过程中经常使用的,掌握 逻辑运算的特点是提高程序效率的重要途径。在逻辑运算 中,进位标标志CY的地位很特殊,它是逻辑累加器,大多 数逻辑操作要通过CY来完成。用程序实现图4-2所示的逻 辑电路功能。
图3-2 逻辑电路参考ຫໍສະໝຸດ 序如下:ORG 0000H
LJMP START
图4-4 多分支选择结构
8051的散转指令和比较指令均可以实现多分支转移。 散转指令 JMP @A+DPTR 比较指令 CJNE A,direct,rel (共有4条)
使用散转指令前,先将各分支程序编写好,存放在程序存 储器中,并将各分支程序的入口地址组成一个表格放在 一起,把表首地址送入DPTR,把子程序的序号放入A中。
在8051指令中,还有4条功能极强的比较转移指令: CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel 这4条指令对指定单元内容进行比较,当不相等时程序作相
相关文档
最新文档