




已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章单片机的I O扩展 本章内容 系统扩展的含义I O口的扩展利用I O接口芯片 82C51 81C51的I O口扩展 8 1单片机的系统扩展概述 系统扩展的含义在单片机芯片外加相应的芯片 电路 使得有关功能得以扩充 称为系统扩展 系统扩展包括 外部存储器扩展 I O接口扩展 总线扩展等系统扩展分类单一功能的扩展综合功能的扩展 8 1单片机I O扩展概述 扩展I O接口电路的功能 速度协调输出数据锁存输入数据三态缓冲数据转换 为什么要扩展I O口单片机本身接口功能有限单片机控制应用中的复杂接口要求 常用编址方法有 独立编址和统一编址 MCS 51单片机采用与外部RAM统一编址方法 即每一个扩展的I O口相当于一个扩展的RAM单元 访问外部I O口的指令同访问外部数据存储器指令 51单片机扩展I O接口编址方法 例如 MOVX DPTR AMOVXA DPTRMOVX RI AMOVXA RI 其中 DPTR RI中装I O对应的地址 1 无条件传送方式无条件传送也称为同步程序传送 只有那些能一直为数据I O传送作好准备的设备 才能使用无条件传送方式 因为在进行I O操作时 不测试设备的状态 可以根据需要随时进行数据传送操作 该方式适用于两类设备的数据输入 输出 具有常驻的数据信号变化缓慢的数据信号的设备 无条件传送接口逻辑示于图8 1 单片机I O控制方式 图8 1无条件传送的接口逻辑 在I O操作之前 要先检浏设备的状态 以了解设备是否已为数据I O作好了准备 只有在确认设备已 准备好 的情况下 单片机才能执行数据I O操作 操作流程见图8 2为了实现查询方式的数据传送 需要由接口电路提供设备状态 并以软件方法进行状态测试 这是一种软硬件方法结合的数据传送方式 程序查询方式 电路简单 查询软件也不复杂 而且通用性强 2 查询方式 有条件传送方式 图8 2查询传送流程 中断方式又称程序中断方式 它与查询方式的主要区别在于知何知道设备是否为数据传送作好了准备 查询方式是单片机的主动形式 而中断方式则是单片机等待通知 中断请求 的被动形式 采用中断方式进行数据传送时 当设备为数据传送作好准备之后 就向单片机发出中断请求 单片机接收到中断请求之后 即作出响应 暂停正在执行的原程序 而转去为设备的数据输入 输出服务待服务完成之后 程序返回 单片机再继续执行被中断的原程序 中断传送逻辑见图8 3 3 中断方式 图8 3中断方式数据传送逻辑 I O扩展的分类 利用锁存器 缓冲器进行并行口简单扩展用可编程并行接口芯片进行扩展I O接口扩展常用芯片51单片机常用I O扩展芯片示于表8 1 表8 1MCS 51单片机I O扩展常用芯片 8 2简单I O口扩展 8 2 1简单接口常用锁存器 缓冲器芯片 I O口的简单扩展输出口 利用锁存器扩展输入口 利用缓冲器扩展 74LS377 74LS273 74LS244 74LS245 8位数据 地址锁存器74LS273 373 1 74LS27374LS273是一种带清除功能的8D触发器其内部结构如图8 4所示引脚分布如图8 5所示真值表见表8 2所示1D 8D为数据输入端1Q 8Q为数据输出端 正脉冲触发 低电平清除 常用作8位地址锁存器 表8 274LS273真值表 图8 474LS273内部结构图 图8 574LS273封装图 2 74LS373 74LS373是一种带有三态输出门的8D触发器其内部结构如图8 6所示引脚分布如图8 7所示数据输入由允许端G控制数据输出由数据输出控制端控制各触发器仅输出单一状态D1 D8为数据输入端Q1 Q8为数据输出端触发器的功能如表8 3所示常用作数据 地址锁存器 图8 674LS373内部结构图 表8 374LS373真值表 图8 774LS373引脚功能图 3 74LS244 74LS244是三态八缓冲器 线驱动器 线接收器 3S 两组控制 内部结构逻辑图 见图8 8 图8 874LS244引脚功能图 3 74LS244 续 引出端符号 1A1 1A4 2A1 2A4 输入端1G 2G 三态允许端 低电平有效 1Y1 1Y4 2Y1 2Y4 输出端 真值表 见表8 4 表8 474LS244真值表 4 74LS245 74LS245 8位双向3态缓冲电路 主要用在数据的双向缓冲内部结构逻辑见图8 9 图8 974LS245引脚功能图 4 74LS245 续 74LS245的真值表见表8 5 表8 574LS245真值表 8 2 2简单I O口扩展 简单输入口扩展 图8 1074LS244扩展输入接口电路 简单输出口扩展 图8 1174LS377扩展输出接口电路 简单并行口扩展应用举例 图8 1274LS系列扩展输入 输出接口电路 例8 1 如图8 12所示为一个利用74LS244和74LS273芯片 将P0口扩展成简单的输入 输出口的电路 74LS244和74LS273的工作受AT89S51的P2 0 RD WR 3条控制线控制 74LS244作为扩展输入口 8个输入端分别接8个按钮开关 74LS273是8D锁存器扩展输出口 接8个LED发光二极管 以显示8个按钮开关状态 当某条输入口线的按钮开关按下时 该输入口线为低电平 读入单片机后 其相应位为 0 然后再将口线的状态经74LS273输出 某位低电平时二极管发光 从而显示出按下的按钮开关的位置 简单并行口扩展应用举例 该电路的工作原理如下当P2 0 0 RD 0 WR 1 时 选中74LS244芯片 此时若无按钮开关按下 输入全为高电平 当某开关按下时则对应位输入为 0 74LS244的输入端不全为 1 其输入状态通过P0口数据线被读入AT89S51片内 当P2 0 0 WR 0 RD 1 时 选中74LS273芯片 CPU通过P0口输出数据锁存到74LS273 74LS273的输出端低电平位对应的LED发光二极管点亮 总之 在图8 12中只要保证P2 0为 0 其他地址位或 0 或 1 即可 如地址用FEFFH 无效位全为 1 或用0000H 无效位全为 0 都可 例8 1 分析 输入程序段 MOVDPTR 0FEFFH I O地址 DPTRMOVXA DPTR RD 为低 74LS244数据被读入A中输出程序段 MOVA data 数据 data AMOVDPTR 0FEFFH I O地址 0FEFFH DPTRMOVX DPTR A WR 为低 数据经74LS273口输出 例8 1 输入 输出程序 程序如下 DDIS MOVDPTR 0FEFFH 输入口地址 DPTRLP MOVXA DPTR 按钮开关状态读入A中MOVX DPTR A A中数据送显示输出口SJMPLP 反复连续执行由程序可看出 对于扩展接口的输入 输出就像从外部RAM读 写数据一样方便 图8 12仅仅扩展了两片 如果仍不够用 还可扩展多片74LS244 74LS273之类的芯片 但作为输入口时 一定要求有三态功能 否则将影响总线的正常工作 例8 1 程序编写程序把按钮开关状态通过图8 12的发光二极管显示出来 8 3用51单片机的串行口扩展并行口 串口的方式0用于I O扩展 方式0为同步移位寄存器工作方式 波特率为fosc 12 数据由RXD端 P3 0 输入 同步移位时钟由TXD端 P3 1 输出 用74LS165扩展并行输入口如图8 13 用51单片机的串口扩展两个8位并行输入口 74LS165是8位并行输入串行输出的寄存器 当74LS165的S L 端由高到低跳变 并行输入端的数据被置入寄存器 当S L 1 且时钟禁止端 15脚 为低时 允许TXD P3 1 移位时钟输入 在该脉冲作用下 数据由右向左方向移动 用74LS165扩展并行输入口 TXD与所有74LS165的CP相连 RXD与74LS165的串行输出端QH相连 P1 0与S L 相连 控制74LS165的串行移位或并行输入 15脚接地 允许时钟输入 当扩展多个8位输入口时 相邻两芯片的首尾 QH与SIN 相连 图8 13利用74LS165扩展16位并行输入口 例8 2 从16位扩展口读入5组数据 每组2B 把它们转存到内部RAM20H开始的单元 编程如下 MOVR7 05H 设置读入组数MOVR0 20H 设置内部RAM数据区首址START CLRP1 0 并行置入数据 S L 0SETBP1 0 允许串行移位 S L 1MOVR2 02H 设每组字节数 即74LS165的个数RXDATA MOVSCON 00010000H 设置串口方式0 允许 接收 启动接收过程WAIT JNBRI WAIT 未接收完一帧 循环等待CLRRI RI标志清 0 准备下次接收MOVA SBUF 读入数据MOV R0 A 送至RAM缓冲区INCR0 指向下一个地址DJNZR2 RXDATA 未读完一组数据 继续DJNZR7 START 5组数据未读完重新并行置入 对数据进行处理串行接收过程采用查询等待的方式 如必要 可改中断方式 用74LS164扩展并行输出口 图8 14为51单片机的串口外接两片74LS164 8位串入并出移位寄存器 扩展两个8位并行输出口的接口电路 图8 14利用74LS164扩展16位并行输出口 当串口工作在方式0的发送 串行数据由P3 0 RXD 送出 移位时钟由P3 1 TXD 送出 注意 由于74LS164无并行输出控制端 在串行输入中 其输出端的状态会不断变化 故某些场合 在74LS164输出端应加接输出三态门控制 以便保证串行输入结束后再输出数据 用74LS164扩展并行输出口 START MOVR7 02H 设置要发送的字节个数MOVR0 30H 设置地址指针MOVSCON 00H 设置串行口为方式0SEND MOVA R0MOVSBUF A 启动串行口发送过程WAIT JNBTI WAIT 一帧未发完 等待CLRTIINCR0 取下一个数DJNZR7 SEND 未发完 继续 从子程序返回RET 例8 3 将内部RAM单元30H 31H的内容经串行口由74LS164并行输出的子程序 8 4可编程并行接口芯片的扩展 8 4 1利用可编程并行接口芯片8255的I O扩展 常用的外围I O接口芯片 82C55 可编程通用并行接口 3个8位I O口 81C55 可编程的IO RAM扩展接口电路 2个8位I O口 1个6位I O口 256RAM单元 1个14位的减法计数器 都可以和AT89S51直接连接 接口逻辑简单 8255的结构 图8 158255的内部结构框图 图8 168255的扩展逻辑电路图 8255的扩展逻辑电路 MCS 51单片机可以和8255直接连接 图8 16给出了一种扩展电路 8255并口扩展举例 例8 4 8255与8031连接如图8 17所示 要求 试确定8255A的端口地址欲使A口 方式0 输出口 B口 方式1 输入口 上C口 方式0 输出 编写初始化程序欲使8051内部RAM30H的内容从PA口输出 试编程 欲使PC7向外输出一个正脉冲信号 试编程 图8 178255与8031连接图 例8 4 解答 P2P00 00A口 7FFCH 0000H 0 01B口 7FFDH 0001H 0 10C口 7FFEH 0002H 0 11控制口 7FFFH 0003H MOVDPTR 7FFFH 控制口地址MOVA 86H 方式字 10000110B 86HMOVX DPTR A 初始化编程 确定地址 程序段MOVA 30HMOVDPTR 7FFCHMOVX DPTR A 程序段MOVDPTR 7FFFHMOVA 86H 设工作方式MOVX DPTR AMOVA 0EH C口置位字 PC7 0MOVX DPTR AACALLDELAY1 延时MOVA 0FH C口置位字 PC7 1MOVX DPTR AACALLDELAY1 延时DECA C口置位字 PC7 0MOVX DPTR AACALLDELAY2 延时 例8 4解答 例8 5 设单片机通过8255来控制一顺序控制过程 该系统连接如图8 18 A口输出6路顺序控制信号 以指示灯指示 6道工序 每道工序时间为10秒 PC0输入启动信号 PC7输入停止信号 分别与SA1和SA2相连 试编写此应用程序 图8 188255A的应用举例 2 端口的工作方式为方式0 A口为输出口 C口为输入口 8255的控制字为89H 1 8255四个端口的地址 00 00BA口地址 FCFCH 00 01BB口地址 FCFDH 00 10BC口地址 FCFEH 00 11B控制口地址 FCFFH 例8 5 解答 ORG0100HMA MOVDPTR 0FCFFH 控制寄存器地址MOVA 89H 控制字MOVX DPTR A 控制字送控制寄存器MOVDPTR 0FCFEH C口地址QD MOVXA DPTR 读C口JNBACC 0 QD 判断有无启动信号LOOP MOVDPTR 0FCFCH A口地址MOVA 01H 第一路控制信号LOOP1 MOVX DPTR A 输出第一路控制信号ACALLDELAY 延迟10秒RLA 下一路控制信号JNBACC 6 LOOP1 判断6路控制信号有无输出完 控制程序如下 MOVDPTR 0FCFEH C口地址MOVXA DPTR 读C口JBACC 7 TZ 判断有无停止信号JMPLOOP 无停止信号则进行下一轮控制TZ MOVDPTR 0FCFCH 有停止信号则使A口输出清零CLRAMOVX DPTR ASJMP ORG1000H 延时子程序DELAY MOV22H 50HL1 MOV21H 100HL2 MOV20H 250HL3 NOPNOPDJNZ20H L3DJNZ21H L2DJNZ22H L1RET 控制程序 续 8 4 2可编程并行接口芯片8155的扩展 8155的结构 8155芯片内部逻辑由三部分组成 存储单元为256字节静态RAM三个可编程I O口 PA口 8位PB口 8位PC口 6位14位二进制减法计数器 8155芯片的内部结构 图8 19 图8 198155芯片的内部结构 8155的引脚功能 8155芯片40引脚 采用双列直插式封装 如图8 20所示 8155芯片的引脚功能见表8 6 图8 208155芯片的引脚 表8 68155芯片的引脚功能 8155各引脚功能如下地址 数据线AD7 AD0 与AT89S51单片机的P0口相连 用于分时传送地址 数据信息 I O总线 22条 PA7 PA0为通用I O线 数据传送方向由写入81C55的命令字决定 图9 13 PB7 PB0为通用I O线 用于传送PB口上的外设数据 数据传送方向也由写入81C55的控制字决定 PC5 PC0为数据 控制线 共有6条 在通用I O方式下 用作传送I O数据 在选通I O方式下 用作传送命令 状态信息 见表9 3 8155的引脚功能 控制引脚RESET 复位输入线 在RESET线上输入一个大于600ns宽的正脉冲时 81C55即可处于复位状态 PA PB PC三口也定义为输入方式 CE 片选线 若CE 0 则AT89S51单片机选中本81C55工作 否则 本81C55未被选中 IO M I O端口或RAM存储器选择线 若IO M 0 则AT89S51单片机选中81C55片内的RAM存储器 若IO M 1 则AT89S51单片机选中81C55的某一I O端口 RD 读控制 当RD 0且WR 1时 81C55为读出数据状态 WR 写控制 当WR 0且RD 0时 81C55为写入数据状态 8155的引脚功能 控制引脚ALE 允许地址输入线 高有效 若ALE 1 则81C55允许AT89S51通过AD7 AD0线发出地址锁存到81C55片内 地址锁存器 否则 81C55地址锁存器处于封锁状态 81C55的ALE常和AT89S51的ALE相连 TIMERIN 计数器脉冲输入线 输入的脉冲上跳沿用于对81C55片内的14位计数器减1 TIMEROUT 计数器输出线 当14位计数器减为0时就可以在该引线上输出脉冲或方波 输出脉冲或方波与所选的计数器工作方式有关 电源线VCC为 5V电源输入线VSS接地 8155的引脚功能 8155的RAM单元地址8155有256个RAM单元 使用AD7 AD0 共8位地址线进行编址 RAM地址 当IO M 加低电平 此时AD0 AD7上得到的编码值即是8155的某一RAM单元的地址 地址范围是00H FFH 8155共有6个可编址的I O端口 这6个端口是 命令 状态寄存器 PA口 PB口 PC口 定时器 计数器低8位 定时器 计数器高8位当IO M 加高电平 选中I O端口 8155只使用AD2 AD0对I O端口编址 8155的I O端口地址编码见表8 7 8155的RAM单元地址及I O口编址 8155端口地址 当IO M 加高电平 表8 78155的端口地址编码 8155的使用与工作方式 1 8155内部RAM的使用 当IO M 加低电平时 对片内256BRAM单元进行读 写 与一般外部数据存储器的使用基本一样 唯一区别是事先要使IO M 为低电平 2 8155的I O口的使用 当IO M 加高电平时 对I O口访问 8155的3个I O口 分别称为PA口 PB口和PC口 PA口和PB口是8位通用数据口 主要用于数据传送 PC口为6位口 既可作为数据I O口 还可作为控制口 用于传送控制信号和状态信号 对PA和PB的I O操作进行控制 PA PB PC各端口可工作于不同的工作方式 它们靠设置工作命令字来确定 使用前要进行初始化 写命令字到命令口 8155的I O口可以用基本I O方式和选通 或中断 I O方式传送数据 基本I O 即无条件传送 方式 在该方式下无须联络信号 PA PB PC三口均可独立当数据口 输入 输出数据 选通I O方式 或中断方式 PA口和PB口可工作于选通 或中断 方式传送数据 此时PC口为联络口 提供联络信号 PC口四种工作方式 方式1 ALT1 PA口和PB口基本输入 输出 PC口输入方式2 ALT2 PA口和PB口基本输入 输出 PC口输出方式3 ALT3 PA口选通输入 输出 PB口基本输入 输出方式4 ALT4 PA口和PB口选通输入 输出 3 I O口的工作方式 联络信号定义 当以基本I O方式传送数据时 无需联络信号 此时 PA PB PC皆可进行数据的输入 输出 当PA或PB以选通 中断 方式进行数据传送时 所需的联络信号由PC提供 PC2 PC0是为PA口提供 PC5 PC3是为PB口提供联络信号共有三个 INTR 中断请求信号 输出 高电平有效 送给C51的外中断请求 BF 缓冲器满信号 输出 高电平有效 STB 选通信号 输入 低电平有效 数据输入时 STB 是外设送来的选通信号 数据输出时 STB 是外设送来的应答信号 以上各信号由PC口的引脚承担 其的信号定义见表8 8 表8 8PC口的工作方式与联络信号定义 8155的方式4 ALT4 时PC口各引脚的信号定义 图8 218155在方式4时PC口各引脚信号定义 选通I O方式说明 选通I O方式又可分为选通I O数据输入和选通I O数据输出两种方式 选通I O数据输入PA口和PB口都可设定为本方式 本工作方式和82C55的选通I O输入情况类似 如图8 22 a 所示 选通I O数据输出PA口和PB口都可设定为本方式 选通I O数据的输出过程也和82C55的选通I O输出情况类似 图8 22 b 所示为选通I O数据输出的示意图 图8 22选通I O方式示意图 定时器 计数器的计数结构8155的定时器 计数器是一个14位的减法计数器 由两个低8位计数器TL 04H 和高8为计数器TH 05H 构成 计数器的格式如图8 23所示 其中 T13 T0为计数器的计数位 M2 M1用来设置计数器的输出方式 4 8155的定时器 计数器的使用 图8 238155计数器格式 81C55计数器的4种工作方式及对应的引脚输出波形如图8 24所示 8155的定时器 计数器的输出方式 图8 2481C55的定时器 计数器的输出方式定义与引脚输出波形 8155计数器与51单片机计数器不同 8155的定时器 计数器是减法计数 8155的定时器 计数器则只有一种固定的工作方式 即14位计数 通过软件方法进行计数值加载 8155的定时器 计数器 由外部提供计数脉冲 信号引脚是TIMERIN 8155的定时器 计数器 计数溢出时向芯片外边输出一个信号 TIMEROUT 这一信号有脉冲和方波两种形式 供用户进行选择 具体由M2 M1两位定义 8155内部有一个8位地址锁存器 无需外接锁存器 8155的许多信号与MCS 51单片机兼容 可以直接连接 表8 5列出了这些信号的对应关系 在二者的连接中 8155的地址译码即片选端可以采用线选法 全译码等方法 IO M 的连接可用或非门产生使用高位地址 8155与单片机的连接 8155与MSC 51的兼容信号 表8 98155与MSC 51的兼容信号 IO M 的连接 图8 25 a 或非门产生IO M 信号 IO M 的连接 图8 25 b 高位地址作IO M 信号 8155与51单片机连接电路举例 图8 26AT89S51单片机与81C55的接口电路 硬件接口电路地址分析 表8 108155的各端口及RAM单元地址 在图8 26中 单片机P0口输出的低8位地址不需要另外加锁存器 8155片内集成有地址锁存器 而直接与8155的AD0 AD7相连 既可作为低8位地址总线 又可作为数据总线 地址锁存控制直接用AT89S51发出的ALE信号 81C55的CE 端接P2 7 IO M 端与P2 0相连 当P2 7 0时 若P2 0 0 则访问8155的RAM单元 由此可得到图8 23中8155的各端口以及RAM单元的地址编码 见表8 10 命令字用于设置端口及定时器 计数器的工作方式 命令寄存器只能写不能读 命令字格式如图8 27状态字用于寄存各端口及定时器 计数器的工作状态状态字只能读不能写状态字格式如图8 28命令字 状态字共用一个端口地址 8155的控制 8155通过对命令字的设和读状态字来控制输入 输出 8155命令字格式 TM1 TM2 IEB IEA PC2 PC1 PA PA PB A口方式 B口 A口 计数器方式 00 空操作01 停止计数10 计满后停止11 启动计数 0 输入1 输出 0 禁止中断1 允许中断 00011011 方式1 A B口基本I O C口输入方式2 A B口基本I O C口输出方式3 A口选通I O B口基本I O方式4 A B口选通I O B口方式 C口方式 图8 278155的命令字格式 8155状态字格式 图8 288155的状态字格式 8155定时器 计数器的工作方式由命令字中的高两位D7D6 M2M1 进行控制 D7D6 00 不影响计数器工作 D7D6 01 停止计数 如计数器未启动则无操作 如计数器正运行则停止计数 D7D6 10 达到计数值 计数器减为0 后停止 D7D6 11 启动 如计数器没运行 则在装入计数值后开始计数 如计数器已运行 则在当前计数值计满后 再以新的计数值进行计数 任何时候都可设置计数器长度和工作方式 将控制字写入控制寄存器 如果计数器正在计数 只有在写入启动命令后 计数器才接收新计数长度并按新的工作方式计数 定时器 计数器的控制 8155定时器 计数器的工作方式由命令字中的高两位D7D6 M2M1 进行控制 若写入计数器的初值为奇数 引脚的方波输出是不对称的 例如 初值为9时 计数器的输出 在5个计数脉冲周期内为高电平 4个计数脉冲周期内为低电平 如图8 29所示 定时器 计数器的控制 图8 29计数长度为奇数时的不对称方波输出 长度为9 8155定时器 计数器的工作方式由命令字中的高两位D7D6 M2M1 进行控制 定时器 计数器的控制 注意 81C55的计数器初值不是从0开始 从2开始 这是因为 如果选择计数器的输出为方波形式 无论是单方波还是连续方波 则规定是从启动计数开始 前一半计数输出为高电平 后一半计数输出为低电平 显然 如果计数初值是0或1 就无法产生这种方波 因此81C55计数器的写入初值范围是3FFFH 2H 如果硬要将0或1作为初值写入 其效果将与送入初值2的情况一样 81C55复位后使计数器停止计数 1 初始化通常要完成两项任务 确定命令字计数初值 81C55的接口软件编程 例8 6 初始化举例 要求使用8155定时器 计数器对计数脉冲进行千分频 即计数1000后 TIAMEROUT端电平状态发生变化 并重新置数以产生连续方波 此外假定A口为输出方式 允许中断 B口为输入方式 禁止中断 C口为对A口控制方式 ALT3 请编写初始化程序 例8 6 8155初始化举例 分析 要求输出连续方波 所以定时器 计数器的最高两位 M2M1 01 计数初值 1000 其16进制数 03E8H 则定时器 计数器的高8位 43H 低8位 0E8H 命令字的设置如图8 30 命令字的内容为0D9H 图8 30 例8 6 8155命令字设置 8031与8155的连接如图8 31 图8 31计数长度为奇数时的不对称方波输出 长度为9 8155的RAM地址 7E00H 7EFFH I O口地址 7F00H 7F05H 其中 PA 7F01H PB 7F02H PC 7F03H 命令口 7F00H定时器低位 7F04H 定时器高位 7F05H初始化程序 MOVDPTR 7F00H 命令 状态寄存器地址MOVA 0D9H 命令字MOVX DPTR A 装入命令字MOVDPTR 7F04H 计数器低8位地址MOVA 0E8H 低8位计数值MOVX DPTR A 写入计数值低8位INCDPTR 计数器高8位地址MOVA 43H 高8位计数值MOVX DPTR A 写入计数值高8位 8155的扩展应用举例 例8 7 设计一段程序把8155片内RAM全部填满FFH 地址分析由于是对8155片内RAM操作 不需要初始化芯片 8155片内RAM地址是 0000H 00FFH 其存储单元地址映像如表8 11 表8 118155片内RAM地址 例8 7 程序 MOVR7 00H R7作计数器 从0开始共减 256次再到0MOVA 0FFH 准备送FFHMOVDPTR 0000H DPTR指向第一个单元LOOP MOVX DPTR A 送数INCDPTR 调整指针 指向下一个单元DJNZR7 LOOP 循环控制SJMP 程序如下 例8 8 在单片机实验开发装置上实现变速的 8 字循环显示 首先以 8 字显示20ms的速度循环10次 然后变为慢速 以每个 8 字显示0 1秒的速度循环一次 然后再变为快速循环 如此不断重复 试编此有关的程序 单片机实验器和LED显示器通过8155连接 连接图如图8 32所示 已知时钟频率为12MHz LED为其阳极器件 8 的显示代码为80H 图8 328031通过8155与LED显示器的连接电路 例8 8 LED显示器通过8155连接图 图8 328031通过8155与LED显示器的连接电路 例8 8 分析 端口地址 控制口 0000H PA 0001H PB 0002H PC 0003H 定时器高位 0004H 定时器低位 0005H 8155控制字 应规定A口为输出 D0 l C口为输出方式 ALT2 D3D2 01 不要中断 控制字为 00000101B 05H 单片机时钟为l2MHz 用T1作定时 设置为工作方式l 则其工作方式字为l0H 20ms的定时初值为 216 20 10 2 10 2 45536 B1E0H不能直接用定时器产生0 1秒延时 要用软件计数器 用20ms定时5次来获得0 1秒 在中断服务程序中处理 8 字的快或慢速循环显示 利用程序状态寄存器PSW中的用户标志位F0作快慢控制 令F0 0为慢速显示 F0 l为快速显示 例8 8 编程 ORG0000HLJMPMAINORG00lBHLJMPTlORGl000HMAIN MOVSP 52HMOVA 05H 8155命令字MOVR0 00H 8155命令口地址MOVX R0 A 装8155控制字MOVTMOD 10H 设置T1为定时模式 工作方式1MOVTH1 0B1H 设定时器初值高位MOVTL1 0E0H 设定时器初值低位MOVIE 88H 开中断MOVA 80H 8 字显示代码 8 8 编程 续 续前INCR0 A口地址MOVX R0 输出字形码MOVA 01H LED最右一位位码MOVR0 03H C口地址MOVX R0 A 位码输出MOVR1 10 快速循环10次MOVR2 5 慢速定时计数5次SETBF0 先实现快速显示SETBTR1 启动T1SJMP 例8 8 编程 续 ORG1500HT1 MOVTH1 0B1H 赋初值MOVTL1 0E0HJNBF0 SLOW F0为零转慢速JNBACC 5 NEXT2 设显示一遍 转出MOVA 01H 显示一遍 重开始DJNZR1 NEXT3 不是10次 转出CLRF0 已l0次 转慢速MOVR1 10 重装R1值SJMPNEXT3SLOW DJNZR2 NEXT4 0 l秒不到 转出JNBACC 5 NEXT1 设显示一遍 转出 例8 8 编程 续 续前MOVA 0lH 显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文山州麻栗坡县消防救援大队招聘考试真题2024
- 国殇考试题及答案
- 历年考试题及答案
- 中级财务会计学(安徽财经大学)知到智慧树答案
- 中级微观经济学(双语)(山东联盟)知到智慧树答案
- 中外陶瓷商务英语知到智慧树答案
- 血液肿瘤科PICC专项技术理论考题(附答案)
- 2025版商品房认购及智能家居安装协议范本
- 2025年度专业地板砖铺装施工服务合同
- 2025版汽车经销商品牌授权及销售支持合同
- 小儿上呼吸道感染
- 2025年CCAA国家注册审核员考试(产品认证基础)历年参考题库含答案详解(5卷)
- 2025-2030中国骨科手术导航机器人医生培训体系与手术量增长关联报告
- 北京市西城区2024-2025学年七年级下学期期末道德与法治试题(解析版)
- 苏州工业园区外国语学校语文新初一均衡分班试卷
- 《智能建造概论》高职完整全套教学课件
- 2025-2026小学学年度第一学期教学工作安排表:启智育心绘蓝图筑梦前行谱新篇
- GB/T 30807-2025建筑用绝热制品浸泡法测定长期吸水性
- 无限极中医秋季养生课件
- GB/T 23806-2025精细陶瓷断裂韧性试验方法单边预裂纹梁(SEPB)法
- 妇科常规手术器械处理流程
评论
0/150
提交评论