当前课程知识点:单片机原理及应用 > 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.2 单片机的相关概念
--单片机的相关概念
-1.3 单片机的设计语言及软件
-1.4 单片机的发展
--单片机的发展
-1.5单片机的应用
--单片机的应用
-1.6 第一单元作业
-2.1 单片机的结构框图
--单片机的结构框图
-2.2 80C51内部结构
-2.3 信号引脚
--信号引脚
-2.4 内部数据存储器RAM
-2.5 特殊功能寄存器
--特殊功能寄存器
-2.6 堆栈
--堆栈
-2.7 内部程序存储器ROM
-2.8 存储器的结构特点
--存储器的结构特点
-2.9 并行输入输出接口电路
-2.10 并口功能与时序
--并口功能与时序
-2.11 工作方式
--工作方式
-2.12 最小应用系统
-- 最小应用系统
-2.13 第二单元作业
-3.1 指令格式
--指令格式
-3.2 立即寻址与直接寻址
-3.3 寄存器寻址与寄存器间接寻址
-3.4 变址间接寻址与位寻址
-3.5 内部RAM传送指令
-3.6 外部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.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.1 系统扩展
--系统扩展
-5.2 51单片机扩展方法
-5.3 存储器单元位数扩充方法
-5.4 存储器容量单元扩充方法
-5.5 译码线选法
--译码线选法
-5.6 程序存储器的类型
--程序存储器的类型
-5.7 程序存储器的扩展
--程序存储器的扩展
-5.8 数据存储器的扩展
--数据存储器的扩展
-5.9 存储器综合扩展
--存储器综合扩展
-5.10 单片机存储器系统的特点
-- 单片机存储器系统的特点
-5.11 第五单元作业
-6.1 中断技术
--中断技术
-6.2 中断优先级及中断系统内部结构
-6.3 中断控制寄存器及中断响应过程
-6.4 中断请求的撤消
--中断请求的撤消
-6.5 外部中断举例
--外部中断举例
-6.6 定时器/计数器
--定时器/计数器
-6.7 定时计数器工作方式及程序编写
-6.8 定时器举例
--定时器举例
-6.9 第六单元作业
-7.1 并行接口
-- 并行接口
-7.2 并口举例
--并口举例
-7.3 并口扩展芯片
--并口扩展芯片
-7.4 8155连接方式及编程
-7.5 键盘接口技术
--键盘接口技术
-7.6 按键处理程序及举例
-7.7 键盘扫描子程序
-- 键盘扫描子程序
-7.8 显示接口技术
--显示接口技术
-7.9 多位字符静态显示
--多位字符静态显示
-7.10 多位字符动态显示
--多位字符动态显示
-7.11 第七单元作业
-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 第八章作业-作业