当前课程知识点:单片机原理及应用 >  4 汇编语言程序设计 >  4.9 计数控制循环程序 >  计数控制循环程序

返回《单片机原理及应用》慕课在线视频课程列表

计数控制循环程序在线视频

计数控制循环程序

下一节: 特征控制循环程序

返回《单片机原理及应用》慕课在线视频列表

计数控制循环程序课程教案、知识点、字幕

同学

你好

今天我们将继续学习一下

循环程序的设计方法

我们前面也提到过

对于循环控制程序可以采用计数控制的方式

也可以采用特征标志位控制的方式

这两种方式各自有各自的特点

今天我们首先来看一看采用计数控制的方式

如何来设计循环程序

首先我们来看一看

在计数控制的循环方式中

要设定一个循环计数器

控制循环的次数

计数器可以采用正计数的方式

也可以采用倒计数的方式

下面我们就来看一道例题

通过这道例题你可以体会到用技术方式

计数控制的方式来设计循环程序的精髓

这道例题我们看一下

为一串七位的ASCLL码数据的最高位

比如说第七位加上一个奇校验

我们假设数据是存放在

片外RAM的1001H开始的单元中

数据的长度

是放在片外RAM的1000H单元中

我们知道对于片外RAM的数据

无论是取数还是要输出数据

一定要用MOVX这个指令

这里面我们用工作寄存器

R2来作为计数器

并采用倒计数的方式来控制循环

循环控制的核心指令

我们可以看到循环控制的核心指令

L1:CJNZ R2,L0

该条指令将首先把R2中的内容

自减一个1

然后再判断R2是否为零

为零就结束循环

不为零就跳到标号为L0的指令处

继续循环执行相关的指令

在这个循环体中

我们每次都用MOVX A,@DPTR指令

从片外RAM指定单元中

取出相关的数据放到A中暂存

注意该指令采用的是寄存器间接寻址的方式

DPTR中存放的是片外RAM

欲取数据的地址

为了给取来的7位ASCII码数据的

最高位D7位加上奇校验

即7位ASCII码

如果说有奇数个1则最高位设为1

否则最高位不变还是为零

我们首先用 ORL A,#80H指令

把A中暂存的7位ASCII码的最高位都置1

因为我们前面也学习过

ORL是一条逻辑或的指令

该条指令相对就是把累加器A和

80H16进制数按位相或

由于80H对应的二进制的

10000000

相当于把累加器A的最高位第七位置1

其他的位保持不变

当这条指令执行完之后

我们再用判位转移指令JB P,L1

判断最高这样置1是否正确

如果正确

最高位就应该置一

否则就顺序执行后面的MOVX @DPTR,A指令

即把最高位置了1的结果返存到RAM的原单元中

如果说不正确的话

即最高位本来不应置一

那我们就跳到L1的指令处

即不需要把结果反存到原来的RAM单元中

因为RAM中的原数据的最高位

本来是对的

所以我们就不需要做任何处理

然后结束本次循环

你可以仔细的分析一下这段程序

体会一下用计数控制的方式

那么来设计循环程序的它的精髓

实际上这种方式核心就是

设定一个计数器

把计数器赋予我们想要程序

循环执行的次数

通过DJNZ这条核心的指令

来实现计数循环

好的

今天我们主要介绍了一下

用计数控制的方式如何来设计循环程序

下面我们还会进一步的介绍其他的方式

如何来设计循环程序

好的

希望同学们今天能够

下去之后仔细的体会一下

这种计数控制方式的特点

今天课程就到这里

同学们再见

单片机原理及应用课程列表:

1 单片机系统概述

-1.1 单片机的名称

--单片机的名称

-1.2 单片机的相关概念

--单片机的相关概念

-1.3 单片机的设计语言及软件

--单片机的设计语言及软件

-1.4 单片机的发展

--单片机的发展

-1.5单片机的应用

--单片机的应用

-1.6 第一单元作业

2 单片机的硬件结构

-2.1 单片机的结构框图

--单片机的结构框图

-2.2 80C51内部结构

--80C51内部结构

-2.3 信号引脚

--信号引脚

-2.4 内部数据存储器RAM

--内部数据存储器RAM

-2.5 特殊功能寄存器

--特殊功能寄存器

-2.6 堆栈

--堆栈

-2.7 内部程序存储器ROM

--内部程序存储器ROM

-2.8 存储器的结构特点

--存储器的结构特点

-2.9 并行输入输出接口电路

--并行输入输出接口电路

-2.10 并口功能与时序

--并口功能与时序

-2.11 工作方式

--工作方式

-2.12 最小应用系统

-- 最小应用系统

-2.13 第二单元作业

3 指令系统

-3.1 指令格式

--指令格式

-3.2 立即寻址与直接寻址

--立即寻址与直接寻址

-3.3 寄存器寻址与寄存器间接寻址

--寄存器寻址与寄存器间接寻址

-3.4 变址间接寻址与位寻址

--变址间接寻址与位寻址

-3.5 内部RAM传送指令

--内部RAM传送指令

-3.6 外部RAM传送指令

--外部RAM传送指令

-3.7 ROM传送指令

--ROM传送指令

-3.8 交换指令

--交换指令

-3.9 堆栈操作指令

--堆栈操作指令

-3.10 传送类指令习题讲解

--传送类指令习题讲解

-3.11 算术运算类指令特点

--算术运算类指令特点

-3.12 加法指令

--加法指令

-3.13 加法习题、减法和乘除指令

--加法习题、减法和乘除指令

-3.14 逻辑运算指令

--逻辑运算指令

-3.15 布尔变量操作指令

--布尔变量操作指令

-3.16 无条件转移指令

--无条件转移指令

-3.17 条件转移指令

--条件转移指令

-3.18 循环转移指令

--循环转移指令

-3.19 子程序相关指令

--子程序相关指令

-3.20 并口访问指令及指令小结

--并口访问指令及指令小结

-3.21 第三单元作业

4 汇编语言程序设计

-4.1 汇编程序约定

--汇编程序约定

-4.2 宏指令

--宏指令

-4.3 汇编控制指令

--汇编控制指令

-4.4 汇编语言程序设计步骤

--汇编语言程序设计步骤

-4.5 顺序程序举例

-- 顺序程序举例

-4.6 单重分支结构

--单重分支结构

-4.7 多重分支结构

--多重分支结构

-4.8 单重循环结构

--单重循环结构

-4.9 计数控制循环程序

--计数控制循环程序

-4.10 特征控制循环程序

-- 特征控制循环程序

-4.11 多重循环程序

--多重循环程序

-4.12 子程序的概念

--子程序的概念

-4.13 子程序设计注意事项

--子程序设计注意事项

-4.14 子程序举例

--子程序举例

-4.15 第四单元作业

5 单片机存储器扩展

-5.1 系统扩展

--系统扩展

-5.2 51单片机扩展方法

--51单片机扩展方法

-5.3 存储器单元位数扩充方法

--存储器单元位数扩充方法

-5.4 存储器容量单元扩充方法

--存储器容量单元扩充方法

-5.5 译码线选法

--译码线选法

-5.6 程序存储器的类型

--程序存储器的类型

-5.7 程序存储器的扩展

--程序存储器的扩展

-5.8 数据存储器的扩展

--数据存储器的扩展

-5.9 存储器综合扩展

--存储器综合扩展

-5.10 单片机存储器系统的特点

-- 单片机存储器系统的特点

-5.11 第五单元作业

6 中断与定时系统

-6.1 中断技术

--中断技术

-6.2 中断优先级及中断系统内部结构

--中断优先级及中断系统内部结构

-6.3 中断控制寄存器及中断响应过程

--中断控制寄存器及中断响应过程

-6.4 中断请求的撤消

--中断请求的撤消

-6.5 外部中断举例

--外部中断举例

-6.6 定时器/计数器

--定时器/计数器

-6.7 定时计数器工作方式及程序编写

--定时计数器工作方式及程序编写

-6.8 定时器举例

--定时器举例

-6.9 第六单元作业

7 I/O扩展及应用

-7.1 并行接口

-- 并行接口

-7.2 并口举例

--并口举例

-7.3 并口扩展芯片

--并口扩展芯片

-7.4 8155连接方式及编程

--8155连接方式及编程

-7.5 键盘接口技术

--键盘接口技术

-7.6 按键处理程序及举例

--按键处理程序及举例

-7.7 键盘扫描子程序

-- 键盘扫描子程序

-7.8 显示接口技术

--显示接口技术

-7.9 多位字符静态显示

--多位字符静态显示

-7.10 多位字符动态显示

--多位字符动态显示

-7.11 第七单元作业

8 单片机实验

-8.1 流水灯控制系统设计

--html

-8.2 数码管显示系统设计

--html

-8.3 按键控制系统设计

--html

-8.4 中断控制系统设计

--html

-8.5 定时计数器系统设计

--html

-8.6 串口通信系统设计

--html

-8.7 汉字显示系统设计

--html

-8.8 单片机烧录方法

--单片机烧录方法

-8.9 第八章作业-作业

计数控制循环程序笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。