当前课程知识点:单片机原理及应用 >  7 I/O扩展及应用 >  7.2 并口举例 >  并口举例

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

并口举例在线视频

并口举例

下一节:并口扩展芯片

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

并口举例课程教案、知识点、字幕

同学

你好

今天我们将看一道并口应用的实例

通过这个实例

同学们可以领会到如何对并口来进行操作

我们先来看这样一道例题

请你用四个开关

分别来控制四个发光二极管

比如说当P0.0的开关闭合时

则把P0.4引脚控制的灯点亮

当P0.0对应的开关打开时

你要把相应的P0.4灭掉

其余的开关和灯的控制的方式类似

具体的硬件配置

我们看就如这个图所示

对于这样的一个控制的应用

我们如何来通过程序来实现

我们可以用两种方式来实现

第一种是用无条件的方式来控制

通过开关来控制这个灯的亮面

第二种方式我们可以用中断的方式

我们先来看一看用无条件传送的方式

如何来实现开关去控制灯

具体的思路就是首先通过查询的方式

方式输入P0口的开关的状态

然后再根据开关的状态改变指示灯的亮面

我们下面来看一看这个具体的程序

该程序的第一条指令ORG 0000H

这是一条伪指令

功能我们也讲过

表示下面的这条指令AJMP MAIN

表示下面的这条指令AJMP MAIN

就放到我们的ROM单元的第一个单元

就是0000H这个单元来存放

我们单片机在上电复位时

默认情况下就会首先执行ROM的0000H这个地址

这个地址单元里面的指令

这里面我们放的是一个

无条件转移指令AJMP

所以我们单片机在上电复位时

首先就执行AJMP

就是转移 转到MAIN

所以我们真正的主程序是在MAIN处

MAIN的上一条也是一条伪指令ORG 0200H

就表示我们真正的MAIN这个程序

是从ROM单元的0200H单元来存放

了解了我们这个MAIN程序具体存放的位置之后

下面我们来看一看主程序MAIN具体的功能

首先利用MOV A , # 0FFH

就是像累加器A赋一个初值

然后再用MOV P0 , A

就是把A里面的FFH这个内容

通过P0口输出

那么这个时候相当于我们这个灯就全灭了

然后下一步再用MOV A , P0

这条指令来输入开关的状态

因为开关的状态是从P0口的第四位

就是P0.0到P0.3低四位来表示开关的状态

一旦把开关状态输入到累加器A之后

相当于累加器A中的低四位

表示的是目前开关的闭合的状态

然后通过一个SWAP

这是一个半字节交换指令

实际累加器A的高四位和低四位的交换

因为我们知道这目前而言

累加器A中的低四位是目前开关的状态

把它通过一个交换 交换到A的高四位中

这个时候再通过MOV P0 , A

A把相当于是把A里面的高四位的

开关的状态的信息通过P0口输出

这个时候就会把P0口的高四位

根据开关的开还是合的状态来相应的改变

这四个发光二极管的亮灭

这种是利用无条件传送的方式来实现

怎么样通过查询开关的状态

继而去控制相应的灯的亮灭

下面我们再来看一看中断方式是如何

来实现同样的功能的

具体的思路就是先设定好

P0口的开关状态

然后再通过开关K向单片机

发出一个外部中断0的中断请求信号

最后在中断程序中改变指示灯的亮灭状态

我们一样的我们来看一看这边具体的程序

程序分成了两大部分

一部分是主程序

一部分是外部中断0的中断服务程序

主程序从MAIN开始到L0这条指令为止

中断服务程序从L1这条指令开始

到RETI这条指令为止

整个程序的运行的逻辑

就和我们前面讲的外部中断0的

中断程序的逻辑是一样

首先我们在利用ORG 0000H

这条伪指令

在ROM单元的0000H单元中

放一条无条件的转移指令AJMP

这时候我们知道单片机只要一上电复位

首先就执行AJMP MAIN

就转到主程序去执行主程序

主程序干什么呢

主程序通过三条SETB指令三条置1的指令

来实现外部中断0的初始化

就是第一条指令SETB IT0

把外部中断0设为是负脉冲触发

然后SETB EX0 就是外部中断0的

中断允许的分开关把它闭合

允许中断0响应

再是SETB EA 就是允许的总开关把它置1

这个时候通过三条SETB指令

我们单片机就可以来响应外部中断0的申请

这个时候主程序最后一条指令

L0 :SJMP L0这是一条原地跳转指令

这个时候我们的主程序就原地跳

在原地跳的过程中

我们就可以来设定四个开关的状态

把四个开关状态设定好之后

通过K这个按键可以向INT0引脚

向单片机发出一个外部中断0的申请

一旦申请发送之后

我们的单片机就会暂停主程序中

正在执行的原地跳的这条指令

转而去执行外部中断0的中断服务程序

而我们前面也说过

单片机默认的对应的是要执行

执行ROM单元0003H里面的

外部中断0的中断服务程序

而这里面我们放的也是一条AJMP L1的

一条无条件转移指令

一条无条件转移指令

所以真正的中断服务程序会转移到L1处

去执行中断服务程序

在L1处中断服务程序中

也是首先通过三条MOV指令

就输入我们开关的状态

然后再根据开关的状态去控制P0口

高四位的这四个灯的亮灭

最后再通过RETI指令

指令有两个功能

第一个要清除掉外部中断0的中断这个标志位

然后再返回到主程序原地跳的指令中

继续去执行主程序

以上就是利用中断的方式

如何来实现相同的功能

今天我们就通过一个例题

使同学们能够看到如何的来利用并口

实现外部硬件信息的状态的读取

以及相关外部硬件的控制

并口的控制是我们51单片机

一个十分重要的功能

请同学们下去之后仔细的看一看我们这道例题

从中领会51单片机并口程序设计的方法

这节课就到这里

同学们再见

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

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 第八章作业-作业

并口举例笔记与讨论

也许你还感兴趣的课程:

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