单片机芯片8279用法_第1页
单片机芯片8279用法_第2页
单片机芯片8279用法_第3页
单片机芯片8279用法_第4页
单片机芯片8279用法_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8279是可编程的键盘 显示接口芯片 它既具有按键处理功能 又具有自动显示功能 在单片机系统中应用很广泛 8279内部有键盘FIFO 先进先出堆栈 传感器 双重功能的8 8 64BRAM 键盘控制部分可控制8 8 64个按键或8 8阵列方式的传感器 该芯片能自动消抖并具有双键锁定保护功能 显示RAM容量为16 8 即显示器最大配置可达16位LED数码显示 1 8279的引脚 1 数据线DB0 DB7是双向三态数据总线 在接口电路中与系统数据总线相连 用以传送CPU和8279之间的数据和命令 2 地址线 CS 0选中8279 当A0 1时 为命令字及状态字地址 当A0 0时 为片内数据地址 故8279芯片占用2个端口地址 3 控制线CLK 8279的时钟输入线 IRQ 中断请求输出线 高电平有效 RD WR 读 写输入控制线 SL0 SL3 扫描输出线 用来作为扫描键盘和显示的代码输出或直接输出线 RL0 RL7 回复输入线 它们是键盘或传感器矩阵的信号输入线 SHIFT 来自外部键盘或传感器矩阵的输入信号 它是8279键盘数据的次高位即D6位的状态 该位状态控制键盘上 下档功能 在传感器方式和选通方式中 该引脚无用 CNTL S 控制 选通输入线 高电平有效 键盘方式时 键盘数据最高位 D7 的信号输入到该引脚 以扩充键功能 选通方式时 当该引脚信号上升沿到时 把RL0 RL7的数据存入FIFORAM中 OUTA0 OUTA3 通常作为显示信号的高4位输出线 OUTB0 OUTB3 通常作为显示信号的低4位输出线 BD 显示熄灭输出线 低电平有效 当 BD 0时将显示全熄灭 2 8279的内部结构图及各部分功能 I O控制及数据缓冲器 I O控制操作 控制与定时寄存器及定时控制 控制与定时寄存器 寄存键盘及显示器工作方式 完成控制功能定时控制 包括基本计数器 首级计数器是可编程N计数器 N由编程指定 2 31 对CLK分频 获得内部所需100kHz工作时钟 再分频 为键盘及显示器扫描提供扫描时钟 扫描计数器 4位的计数器 有译码 编码两种方式 由编程设定译码方式 最低两位经译码 由SL0 3输出 作为键盘及显示器的扫描信号 任何时刻 SL0 3只有一根线是低电平 实现4选1 编码方式 按二进制计数的计数器值由SL0 3直接输出 再经外部译码 才能作为扫描信号 实现16选1 恢复缓冲器 键盘去抖动及控制逻辑 回复缓冲器 缓冲并锁存回复信号RL0 7的状态去抖动电路 实现对键盘输入的去抖动控制逻辑 按命令要求控制去抖动电路 并处理回复信号RL0 7 FIFO 传感器RAM及其状态寄存器 FIFO 传感器RAM 8 8位 a 键盘输入方式或选通输入方式作先入先出存储器 FIFORAM b 传感器输入方式被称为传感器RAM 存储传感器阵列中每个传感器的状态FIFORAM的状态寄存器 a 键盘输入方式或选通输入方式 寄存FIFORAM的工作状态 FIFORAM不空时 会使IRQ变高 b 传感器方式 若检测出传感器的状态发生了变化 会使IRQ变高 显示RAM及显示地址寄存器 显示RAM 16 8位 存储字符的字形码 显示时 从OUTA3 0和OUTB3 0输出它们既可单独送数 也可组成一个8位 A组为高4位 B组为低4位 的字 显示地址寄存器 显示RAM的内部地址 可由命令直接设定 或设置为每次读 写后自动加1 3 8279的工作方式 8279有三种工作方式 键盘输入 键扫描 传感器扫描 选通输入键盘输入方式 有键按下时 回复缓冲器缓冲并锁存行列式键盘的列输入线 在逐行列扫描时 回复线用来搜寻每一行列中闭合的键 当某一键闭合时 去抖电路被置位 延时等待10ms后 再检查该键是否仍处在闭合状态 如不是闭合 则当做干扰信号不予理睬 如是闭合 则将该键的列扫描码 行回复码 引脚CNTL和引脚SHIFT的状态 两个独立附加的开关 一起形成键盘数据被送入8279内部的FIFO 先进先出 存储器 键盘数据格式如下 传感器扫描方式 FIFORAM中8个单元用于寄存传感器的现时状态 又称传感器RAM 地址编号与扫描线顺序一致 传感器阵列 最多为8 8位 中某一位状态发生变化时 产生IRQ选通输入方式 CNTL STB作为选通信号 上升沿锁存RL0 7到FIFORAM 这是只选用显示器没有键盘的工作方式 4 8279的命令字 8个 D5D6D7为特征位 设置工作方式 00 8字符 左入口01 16字符 左入口10 8字符 右入口11 16字符 右入口 00 键盘 双键锁定01 键盘 N键轮回10 传感器扫描11 选通输入 0 编码扫描1 译码扫描 双键互锁 先按下的键被识别 若此时该键不释放再按下另外一个键 则另外的键不会被识别 若多个键同时按下 则等待只剩下一个键按下时 再将其值送入RAM N键轮换 多个键可以同时按下 按扫描顺序 分别将其值送入RAM 同时按下的键都会被识别 左端入口方式 即显示位置从显示器最左端1位开始 以后显示的字符逐个向右顺序排列 右端入口方式 即显示位置从显示器最右端1位开始 已显示的字符逐个向左移位 也称为计算器显示方式 显示RAM地址单元 01234567单元内存储要显示的数8279 1 右端输入方式时 由于输入了1个键 将0号地址单元内容 5 送往0 1 7 mod8 即第7位数码管 将1号地址单元内容 2 送往1 1 0 mod8 即第0位数码管 将2号地址单元内容 7 送往2 1 1 mod8 即第1位数码管 将3号地址单元内容 9 送往3 1 2 mod8 即第2位数码管 将4号地址单元内容 送往4 1 3 mod8 即第3位数码管 将5号地址单元内容 送往5 1 4 mod8 即第4位数码管 将6号地址单元内容 送往6 1 5 mod8 即第5位数码管 将7号地址单元内容 1 送往7 1 6 mod8 即第6位数码管 这样看上去就是先将数据写入0号单元然后循环左移显示 刚刚输入的数就显示在了最右端的数码管 即显示为 279 15 同理 若再输入第2个键6 并将6保存至1号地址单元 由于输入了2个键 将0号地址单元内容 5 送往0 2 6 mod8 即第6位数码管 将1号地址单元内容 6 送往1 2 7 mod8 即第7位数码管 将2号地址单元内容 7 送往2 2 0 mod8 即第0位数码管 将3号地址单元内容 9 送往3 2 1 mod8 即第1位数码管 将4号地址单元内容 送往4 2 2 mod8 即第2位数码管 将5号地址单元内容 送往5 2 3 mod8 即第3位数码管 将6号地址单元内容 送往6 2 4 mod8 即第4位数码管 将7号地址单元内容 1 送往7 2 5 mod8 即第5位数码管 此时显示的内容为 79 156 右端输入方式时 由于输入了1个键 将0号地址单元内容 8 送往0 1 7 mod8 即第7位数码管 将1号地址单元内容 2 送往1 1 0 mod8 即第0位数码管 将2号地址单元内容 7 送往2 1 1 mod8 即第1位数码管 将3号地址单元内容 9 送往3 1 2 mod8 即第2位数码管 将4号地址单元内容 送往4 1 3 mod8 即第3位数码管 将5号地址单元内容 送往5 1 4 mod8 即第4位数码管 将6号地址单元内容 3 送往6 1 5 mod8 即第5位数码管 将7号地址单元内容 1 送往7 1 6 mod8 即第6位数码管 这样看上去就是先将数据3写入6号单元然后循环左移显示 即在8位数码管上显示为 279 318 设置分频系数 分频目的 得到8279内部扫描需要的100KHz的基本工作时钟 设置读FIFO 传感器RAM的地址 键盘方式无效 写0 0 读出后地址不变1 每次读出地址自动加1 设置读显示RAM的地址 0 读出后地址不变1 每次读出地址自动加1 设置写显示RAM的地址 0 写入后地址不变1 每次写入地址自动加1 禁写显示RAM 消隐命令 IWA 禁止A组显示RAM写 D3 1 A组禁写 D3 0 允许A组写 OUTA3 OUTA0与OUTB3 OUTB0单独使用时 若只想改变B组的输出值而A组的输出不受影响 就可以让D3 1即禁止向A组显示RAM写数据 这样在向显示RAM的一个单元写入8位字节数据时就只写入字节的低4位而字节的高4位不写入RAM单元 IWB 禁止B组显示RAM写 D2 1 B组禁写 D2 0 允许B组写 BLA A组显示熄灭控制 D1 1 熄灭 D1 0 恢复显示 BLB B组显示熄灭控制 D0 1 熄灭 D0 0 恢复显示 0 全部清010 置成20H11 置成全1 清除命令 清除FIFORAM及显示RAM 置空FIFORAM并复位IRQ 结束中断 设置错误方式 D4有两种不同的作用 第一 在传感器方式 用此命令结束传感器RAM的中断请求 因为在传感器工作方式时 每当传感器状态发生变化 扫描电路自动将传感器状态写入传感器RAM 同时发出中断申请 即将IRQ置高电平 并禁止再写入传感器RAM 中断响应后 从传感器RAM读走数据进行中断处理 但中断标志IRQ的撤除分两种情况 若读RAM地址自动加1标志位为 0 中断响应后IRQ自动变低 撤消中断申请 若读RAM地址自动加1标志位为 1 中断响应后IRQ不能自动变低 必须通过结束中断命令来撤消中断请求 第二 在设定为键盘扫描N键轮回方式时作为特定错误方式设置命令 在键盘扫描N键轮回工作方式 又给8279写入结束中断 错误方式命令 则8279将以一种特定的错误方式工作 即在8279消抖周期内 如果发现多个按键同时按下 则将FIFO状态字中错误特征位置 1 并发出中断请求阻止写入FIFORAM 5 状态字 指示FIFORAM中字符数及是否有错误 DU 显示无效标志 由命令清除显示RAM时置1 清除完RAM后该位清0 S E 键盘输入方式下作特殊错误标志 1 多键同时按下O 溢出标志 向已满的FIFORAM再写入数据时则置1U 不足标志 从已空的FIFORAM读时置1N2N1N0 FIFORAM中字符的个数 74LS47 七段译码器 驱动器就是用来驱动数码管的 P2 7 1 A0 1 命令口 08H 0000100034H 0011010090H 10010000P2 7 1 A0 0 RAM口 实验箱上的8279键盘 显示原理图 0 1 2 3 4 9 2前向通道中的 转换器及接口技术 模 数 转换电路的种类有 计数比较型 逐次逼近型 双积分型等等 逐次逼近型 转换器 在精度 速度和价格上都适中 是最常用的 转换器件 双积分 转换器 具有精度高 抗干扰性好 价格低廉等优点 但转换速度低 串行输出的A D芯片由于节省单片机的I O口线 越来越多地被采用 如具有SPI三线接口的TLC1549 价格 20 00元 TLC1543 TLC2543 MAX187等 具有2线I2C接口的MAX127 PCF8591 4路8位A D 还含1路8位D A 等 9 2 1单通道串行输出A D芯片TLC1549及接口 1 TLC1549串行A D转换器芯片1 主要性能逐次比较型10位A D转换器 片内自动产生转换时钟脉冲 转换时间 21 s 最大总不可调转换误差为 1LSB 单电源供电 5V 最大工作电流仅为2 5mA 转换结果以串行方式输出 工作温度为 55 125 2 引脚及功能TLC1549M有DIP和FK 超小型封装 2种封装形式 其中 DIP封装的引脚排列如图9 18所示 引脚功能见表9 2 图9 18TLC1549的引脚图 表9 2TLC1549M引脚功能引脚 3 TLC1549的工作方式及时序TLC1549有6种工作方式 如表9 3所列 其中方式1和方式3属同一类型 方式2和方式4属同一类型 一般来说 时钟频率高于280kHz时 可认为是快速工作方式 低于280kHz时 可认为是慢速工作方式 因此 如果不考虑I OCLOCK周期大小 方式5与方式3相同 方式6与方式4相同 表9 3TLC1549的工作方式方式 工作方式1工作时序图如图9 19所示 图中从CS下跳到DATA输出数据要有1 3 s的延时 连续进行A D转换时 在上次转换结果输出的过程中 同时完成本次转换的采样 这样大大提高了A D转换的速率 如果I OCLOCK的时钟频率为2 1MHz 则完成一次A D转换的时间大约为26 s 如果用连续模拟信号进行采样转换 显然其转换速率是很高的 图9 19方式1工作时序 2 TLC1549与89C51接口电路与程序TLC1549与89C51的SPI接口如图9 20所示 图9 20TLC1549M与89C51的接口电路 89C51读取TLC1549中10位数据程序如下 ORG0050HR1549 CLRP3 0 片选有效 选中TLC1549MOVR0 2 要读取高两位数据LCALLRDATA 调用读数子程序MOVR1 A 高两位数据送到R1中MOVR0 8 要读取低8位数据LCALLRDATA 调用读数子程序 读取数据MOVR2 A 低8位数据送入R2中SETBP3 0 片选无效CLRP3 1 时钟低电平RET 程序结束 读数子程序RDATA CLRP3 1 时钟低电平MOVC P3 2 数据送进位位CYRLCA 数据送累加器ASETBP3 1 时钟变高电平DJNZR0 RDATA 读数结束了吗RET 子程序结束 9 2 2多通道串行输出A D芯片TLC2543及接口 TLC2543的特性如下 12位A D转换器 可8位 12位和16位输出 在工作温度范围内转换时间为10 s 11通道输入 3种内建的自检模式 片内采样 保持电路 最大 1 4096的线性误差 内置系统时钟 转换结束标志位 单 双极性输出 输入 输出的顺序可编程 高位或低位在前 可支持软件关机 输出数据长度可编程 TLC1543为11个输入端的10位A D芯片 价格比TLC2543低 1 TLC2543的片内结构及引脚功能 TLC2543引脚如图9 21所示 片内结构如图9 22所示 TLC2543片内由通道选择器 数据 地址和命令字 输入寄存器 采样 保持电路 12位的模 数转换器 输出寄存器 并行到串行转换器以及控制逻辑电路7个部分组成 通道选择器根据输入地址寄存器中存放的模拟输入通道地址 选择输入通道 并将输入通道中的信号送到采样 保持电路中 然后在12位模 数转换器中将采样的模拟量进行量化编码 转换成数字量 存放到输出寄存器中 这些数据经过并行到串行转换器转换成串行数据 经TLC2543的DOUT输出到微处理器中 TLC2543的引脚意义如表9 4所列 图9 21TLC2543引脚排列 图9 22TLC2543片内结构框图 表9 4TLC2543各引脚定义 1 表9 4TLC2543各引脚定义 2 2 TLC2543的接口时序 TLC2543的时序有两种 使用片选信号CS和不使用片选信号CS 这两种时序分别如图9 23和图9 24所示 图9 23使用片选信号CS高位在前的时序 图9 24不使用片选信号CS高位在前的时序 3 TLC2543的命令字 TLC2543的命令字如下 输入到输入寄存器中的8位编程数据选择器件输入通道和输出数据的长度及格式 其选择格式如表9 5所列 表9 5输入寄存器命令字格式 4 TLC2543与89C51的SPI接口及程序 TLC2543串行A D转换器与89C51的SPI接口电路如图9 25所示 SPI SerialPerpheralInterface 是一种串行外设接口标准 串行通信的双方用4根线进行通信 这4根连线分别是 片选信号 I O时钟 串行输入和串行输出 这种接口的特点是快速 高效 并且操作起来比I2C要简单一些 接线也比较简单 TLC2543提供SPI接口 图9 25TLC2543和89C51的接口电路 对不带SPI或相同接口能力的89C51 须用软件合成SPI操作来和TLC2543接口 TLC2543的I OCLOCK DIN和CS端由单片机的P1 0 P1 1和P1 3提供 TLC2543转换结果的输出 DIN 数据由P1 2接收 89C51将用户的命令字通过P1 1输入到TLC2543的输入寄存器中 等待20 s开始读数据 同时写入下一次的命令字 1 TLC2543与89C51的8位数据传送程序 TLC2543 MOVR4 04H 置控制字 AIN0 8位数据高位在前MOVA R4CLRP1 3 片选CS有效 选中TLC2543MSB MOVR5 08H 传送8位LOOP MOVP1 04H P1 2为输入位MOVC P1 2 将TLC2543A D转换的8位数据串行读到C中一位RLCA 带进位位循环左移MOVP1 1 C 将控制字 在ACC中 的一位经DIN送入TLC2543SETBP1 0 产生一个时钟NOPCLRP1 0DJNZR5 LOOPMOVR2 A A D转换的数据存于R2中RET执行上述子程序的过程如图9 26所示 图9 26TLC2543与89C51数据交换示意图 2 TLC2543与89C51的12位数据传送程序 ORG0100HMOVP1 04H P1 2为输入位MOVR6 0AH 转换10次MOVR0 2FH 置数据缓冲区指针CLRP1 0 置I O时钟为低SETBP1 3 置CS为高ACALLTLC2543 调转换子程序SJMP TLC2543 MOVA 00H 设置通道选择和工作模式 IN0 12位 CLRP1 3 置CS为低MOVR5 0CH 置输出位计数初值LOOP MOVP1 04H P1 2为输入位MOVC P1 2 读入转换数据一位RLCA 将进位位移给A 即将转换数据的一位读入 同时将控制字的一位输入C MOVP1 1 C 送出一位控制位入2543SETBP1 0 置I O时钟为高NOPCLRP1 0 置I O时钟为低CJNER5 04 LOP1 剩4位了吗 MOV R0 A 前8位存入RAMINCR0CLRALOP1 DJNZR5 LOOP 未转完继续读剩余4位ANLA 0FHMOV R0 A 转换完的存入单元RET 3 TLC2543与89C51的16位数据传送程序 ORG100HSTART MOVSP 50H 初始化堆栈指针MOVP1 04H 初始化P1口CLRP1 0 置I OCLOCK为低SETBP1 3 置CS为高MOVA 0FFHACALLTLC2543ACALLSTORELJMPSTARJTLC2543 MOVR4 0CH 读输入数据命令字到R4 AIN0 16位 高位在前MOVA R4 读输入数据到ADW0 CLRP1 3 置CS为低JBACC 1 LSB 若输入数据D1为1 首先进行低字节数据传送MSB MOVR5 08 以下传送高字节数据LOOP1 MOVC P1 2 读转换数据到CRLCA 转换数据移到A的最低位 输入数据移入C MOVP1 1 C 写输入数据 命令字 SETBP1 0 置I OCLOCK为高NOPCLRP1 0 置I OCLOCK为低DJNZR5 LOOP1 判8个数据送完否 未完跳回MOVR2 A 转换结果的高字节放入R2MOVA R4 读输入数据到AJBACC 1 RETURN 若输入数据D1为1 送数结束LSB MOVR5 08 以下传送低字节数据LOOP2 MOVC P1 2RLCAMOVP1 1 CSETBP1 0NOPCLRP1 0DJNZR5 LOOP2MOVR3 A 转换结果低字节放入R3MOVA R4JBACC 1 MSB 若输入数据D1为1 进行高字节数据传送RETURN RET STORE MOVA R4 读输入数据到AANLA 0F0H 只保留地址位SWAPA 以下产生存储地址MOVB 02MULABADDA 30HMOVR1 AMOVA R2MOV R1 A 把高字节放入相应的偶数地址RAM 各通道地址依次为30H 32H INCR1MOVA R3MOV R1 A 把低字节放入相应的奇数地址RAM 各通道地址依次为31H 33H RETEND 9 2 3逐次逼近型并行输出 转换器及接口 ADC0809A D转换器芯片图9 27所示为ADC0809的引脚图及内部逻辑结构图 它由8路模拟开关 8位A 转换器 三态输出锁存器以及地址锁存译码器等组成 图9 27ADC0809结构 引脚功能说明如下 IN0 IN7 8个输入通道的模拟输入端 D0 D7 8位数字量输出端 START 启动信号 加上正脉冲后 A D转换开始进行 ALE 地址锁存信号 由低至高电平时 把三位地址信号送入通道号地址锁存器 并经译码器得到地址输出 以选择相应的模拟输入通道 EOC 转换结束信号 是芯片的输出信号 转换开始后 EOC信号变低 转换结束时 EOC返回高电平 这个信号可以作为 转换器的状态信号来查询 也可以直接用作中断请求信号 OE 输出允许控制端 开数字量输出三态门 CLK 时钟信号 最高允许值为640kHz VREF 和VREF A D转换器的参考电压 VCC 电源电压 由于是CMOS芯片 允许的电压范围较宽 可以是 5 15V 8位模拟开关地址输入通道的关系见表9 6 表9 68位模拟开关功能表 ADC0809的时序图见图9 28 图9 28ADC0809的时序图 2 ADC0809与89C51接口 ADC0809与89C51连接可采用查询方式 也可采用中断方式 图9 29为中断方式连接电路图 由于ADC0809片内有三态输出锁存器 因此可直接与89C51接口 图9 29ADC0809与89C51的连接 这里将ADC0809作为一个外部扩展并行I O口 采用线选法寻址 由P2 7和WR联合控制启动转换信号端 START 和ALE端 低三位地址线加到ADC0809和ADDA ADDB ADDC端 所以 选中ADC0809的IN0通道的地址为7FF8H 启动ADC0809的工作过程是 先送通道号地址到ADDA ADDB ADDC 由ALE信号锁存通道号地址 后让START有效 启动A D转换 即执行一条 MOVX DPTR A 指令产生WR信号 使ALE START有效 锁存通道号并启动A D转换 A D转换完毕 EOC端发出一正脉冲 申请中断 在中断服务程序中 MOVA DPTR 指令产生RD信号 使OE端有效 打开输出锁存器三态门 8位数据便读入到CPU中 ADC0809的时钟取自89C531的ALE经二分频 也可用74LS74双D触发器之一 后的信号 接CLK端 当A D转换完毕 89C531读取转换后的数字量时 需使用 MOVXA DPTR 指令 在图9 29所示的接口电路中 ADC0809与片外RAM统一地址 3 8路巡回检测系统 例9 3 某粮库或某冷冻厂需对8点 8个冷冻室或8个粮仓 进行温度巡回检测 要求设计一个单片机巡回检测系统 使其能对各冷冻室或各粮仓的温度巡回检测并加以处理 设被测温度范围为 30 50 温度检测精度要求不大于 1 将读数依次存放在片外数据存储器A0H A7H单元 其主程序和中断服务程序如下 主程序 MAIN MOVR0 0A0H 数据暂存区首址MOVR2 08H 8路计数初值SETBIT1 脉冲触发方式SETBEA 开中断SETBEX1MOVDPTR 7FF8H 指向0809首地址 7FF8H P2 7 0 P0 2 0 000MOVX DPTR A 启动A D转换HERE SJMPHERE 等待中断中断服务程序 MOVXA DPTR 读数MOVX R0 A 存数INCDPTR 更新通道INCR0 更新暂存单元DJNZR2 DONERETIDONE MOVX DPTR ARETI 9 2 43位双积分A D转换器及接口技术 适用于单片机接口的有3位双积分A D转换器MC14433 精度相当于11位二进制数 4位双积分A D转换器ICL7135 精度相当于14位二进制数 双积分A D转换器 先对于未知输入UIN进行固定时间积分 然后转为对标准电压进行反向积分 直至积分返回起始值 则对标准电压的积分时间T正比与模拟输入电压UIN 输入电压大 则反向积分时间长 然后用标准时钟脉冲来测量时间T 即可得到相应的模拟电压的数字量 由于双积分方法二次积分时间比较长 所以A D转换器速度较慢 但精度可以做得比较高 对周期变化的干扰信号积分为零 抗干扰性能也比较好 MC14433芯片介绍MC14433是CMOS工艺的3 位双积分A D集成电路转换器芯片 广泛用于低速的数据采集系统 其主要特征参数如下 转换精度具有 1 1999的分辨率或读数的 0 05 1个字符 相当于11位二进制数 电压量程分1 999V和199 9mV两档 转换速度为3次 秒 10次 秒 相应的时钟频率变化范围为50kHz 150kHz 输入阻抗大于100M 基准电压取2V或200mV 分别对应量程为1 999V或199 9mV 具有过量程和欠量程输出标志 片内具有自动极性转换和自动调零功能 转换结束输出经过多路调制的BCD码 工作电压范围 4 5V 8V或9V 16V 当电源为 5V时 典型功耗为8mW MC14433为24脚双列直插式封装 其管脚功能如图9 30所示 图9 30MC14433的管脚 引脚功能介绍如下 VAG 1脚 模拟地 VREF 2脚 基准电压输入端 VX 3脚 被测电压输入端 R1 R1 C1 C1 4 6脚 外接积分阻容元件 4脚和6脚为输入线 5脚为积分波形输出端 若时钟为66kHz R1为470k 2V 或27k 200mV 时 一次转换的时间约为250ms C01 C02 7 8脚 外接失调补偿电容 通常取0 1 F DU 9脚 定时输出控制端 若输入一个正脉冲 则使转换结果送至结果寄存器 EOC 14 一次转换结束标志输出 每一次A D转换结束时便输出一个正脉冲 其宽度为时钟周期的1 2 若把9脚和14脚相连接 则每次转换结束都送到输出锁存器 在实际电路中常把它们相连 图9 31MC14433选通脉冲时序 DS1选通时Q3 Q0表示的输出结果 当DS1 1时 Q3Q2Q1Q0输出过量程 欠量程 千位和极性标志的编码如下 Q3Q2Q1Q0 0 11 11 00 0 1 0 过量程 计算值大于1 999V欠量程 计数值小于0 179V千位为0千位为1正负 Q3表示1 2位 Q3 0 千位为1 Q3 1 千位为0 Q0表示量程 Q0 1 VX 1 999V 过量程 VX 179mV 欠量程 Q0 0 179mV VX 1 999V Q2表示极性 Q2 1 为正 VX Q2 0 为负 VX 0 2 MC14433与89C51接口 MC14433与89C51的接口电路如图9 32所示 该电路采用中断方式管理MC14433的操作 由于引脚EOC与DU连接在一起 所以 MC14433能自动连续转换 每次转换结束便在EOC脚输出正脉冲 经反相后作为89C51的外部中断请求信号INT1 图9 325G14433与89C51单片机直接连接的硬件接口 数据存放格式 D7D4D3D0 D7D4D3D0 2EH 2FH 位地址7774 程序清单如下 初始化程序 INT1 SETBIT1 选择INT1为边沿触发MOVIE 10000100B CPU开中断 外部INT1中断允许 外部中断INT1服务程序 PINT1 MOVA P1JNBACC 4 PINT1 等待DS1选通信号JBACC 0 Per 查是否过 欠量程JBACC 2 PL1 查结果是否为正 负 1为正 0为负SETB77H 负数 符号位置1 77H为符号位位地址AJMPPL2PL1 CLR77H 正数 符号位置0PL2 JBACC 3 PL3 查千位数 ACC 3 0时千位为1SETB74H 千位数置1AJMPPL4 PL3 CLR74H 千位数置0PL4 MOVA P1JNBACC 5 PL4 等待百位BCD码选通信号DS2MOVR0 2EHXCHDA R0 百位数送入2EH低4位PL5 MOVA P1JNBACC 6 PL5 等待百位BCD码选通信号DS3SWAPA 高低4位交换INCRO 指向2FH单元MOV R0 A 十位数送入2FH高4位PL6 MOVA P1JNBACC 7 PL6 等待个位BCD码选通信号DS4XCHDA R0RETI 中断返回PEr SETB10H 置过 欠量程标志RETI 中断返回 9 2 3单通道串行输出A D芯片MAX187及接口 1 MAX187串行A D转换器芯片1 主要性能12位逐次逼近式12位ADC 1 2LSB完整非线性 IntegralNonlinearity 接受0 5V的模拟输入内部采样 保持电路 75KHz采样速率 转换速度为75Ksps单 5V电源工作低功耗 关断模式下2uA5mA操作电流内部4 096V基准 MAX187 3线串行接口 SPI QSPI和Microwire兼容小管脚8脚DIP和16脚SO封装 AD NOP start1setbcs1clrsclk1nopnopsetbsclk1nopnopclrsclk1MOVhighdata 00MOVlowdata 00 将转换结果单元清除CLRcs1nopnopjnbdout MOVR2 04h 置循环初值8LPh setbsclk1nopnopclrsclk1nop nopMOVC dout 将数据取到CMOVA highdataRLCAMOVhighdata Adjnzr2 lphmovr2 08hlpl setbsclk1 发SCLK脉冲nopnopclrsclk1nopnopMOVC dout 将数据取到CMOVA lowdataRLCAMOVlowdata A 将取到的数据位逐位移入结果保存单元DJNZR2 LPlSETBcs1 结束acalltrsmovr2 200 loop acalldispdjnzr2 loop acalldisp sjmpstart1RET 将TEN ONE中的12位数据 MAX 4097 转换后送入3eh 3dh 3ch 3bh中 TRS MOVA highdataANLA 0FHMOVR6 AMOVR7 lowdataLCALLHB2MOVA R5ANLA 0FHMOV3eH A MOVA R5SWAPAANLA 0FHMOV3dH A MOVA R4ANLA 0FHMOV3cH A MOVA R4SWAPAANLA 0FHMOV3bH AMOVA 2EHMOV3AH AMOV39H ARET 9 3系统后向通道配置及接口技术 后向通道是计算机实现控制运算处理后 对被控对象的输出通道接口 系统的后向通道是一个输出通道 其特点是弱电控制强电 即小信号输出实现大功率控制 常见的被控对象有电机 电磁开关等 单片机实现控制是以数字信号或模拟信号的形式通过I O口送给被控对象的 其中 数字信号形态的开关量 二进制数字量和频率量可直接用于开关量 数字量系统及频率调制系统的控制 但对于一些模拟量控制系统 则应通过D A转换器转换成模拟量控制信号后 才能实现控制 9 3 1后向通道中的功率开关器件及接口 1 继电器及接口1 单片机与继电器的接口一个典型的继电器与单片机的接口电路如图9 33所示 图9 33继电器接口 2 单片机与固态继电器接口 固态继电器简称SSR SolidStateRelay 是一种四端器件 两端输入 两端输出 它们之间用光耦合器隔离 它是一种新型的无触点电子继电器 其输入端仅要求输入很小的控制电流 与TTL HTL CMOS等集成电路具有较好的兼容性 而其输出则用双向晶闸管 可控硅 来接通和断开负载电源 图9 34所示为固态继电器内部结构 图9 35为89C51单片机I O口线与固态继电器SSR接口电路 图9 34固态继电器内部结构 图9 35I O口线与SSR接口电路 2 光电耦合器 隔离器 件及驱动接口 后向通道往往所处环境恶劣 控制对象多为大功率伺服驱动机构 电磁干扰较为严重 为防止干扰窜入和保证系统的安全 常常采用光电耦合器 用以实现信号的传输 同时又可将系统与现场隔离开 晶体管输出型光电耦合器的受光器是光电晶体管 如图9 36所示 图9 36光电耦合器4N25的接口电路 图9 36是使用4N25的光电耦合器接口电路图 图9 36所示的接口电路中 使用同相驱动器OC门7407作为光电耦合器4N25输入端的驱动 光电耦合器输入端的电流一般为10 15mA 发光二极管的压降为1 2 1 5V 限流电阻由下式计算 式中 VCC为电源电压 VF为输入端发光二极管的压降 取1 5V VCS为驱动器7407的压降 取0 5V 图9 36所示电路要求IF为15mA 则限流电阻值计算如下 R 200 光电耦合器也常用于较远距离的信号隔离传送 一方面 光电耦合器可以起到隔离两个系统地线的作用 使两个系统的电源相互独立 消除地电位不同所产生的影响 另一方面 光电耦合器的发光二极管是电流驱动器件 可以形成电流环路的传送形式 由于电流环电路是低阻抗电路 它对噪音的敏感度低 因此 提高了通信系统的抗干扰能力 其常用于有噪音干扰环境下的传输 最大传输距离为900m 图9 37是用光电耦合器组成的电流环发送和接收电路 图9 37电流环电路 3 光电耦合驱动晶闸管 可控硅 功率开关及接口 图9 38是4N40和MOC3041的接口驱动电路 4N40是常用的单向晶闸管输出型光电耦合器 也称固态继电器 MOC3041是常用的双向晶闸管输出的光电耦合器 固态继电器 图9 38晶闸管输出型光电耦合器驱动接口 双向晶闸管 一种在主特性的第一和第三象限内具有基本相同转换性能的三端晶闸管 它实质上是两个逆阻晶闸管的反并联 双向晶闸管的特点是正 反向输出特性近乎理想的匹配 并且仅利用一个门极即可实现正 反向开通的控制 在交流电路中 用双向晶闸管代替一组反并联的逆阻晶闸管 简化了线路 减小了装置的体积和重量 节省了投资 因而它是交流功率控制电路中较理想的器件 9 3 2串行输入D A芯片TLC5615接口技术 TLC5615是具有3线串行接口的数 模转换器 其输出为电压型 最大输出电压是基准电压值的两倍 带有上电复位功能 上电时把DAC寄存器复位至全0 TLC5615的性能价格比较高 市场售价比较低 约28元 1 TLC5615的特点 10位CMOS电压输出 5V单电源工作 与微处理器3线串行接口 SPI 最大输出电压是基准电压的2倍 输出电压具有和基准电压相同的极性 建立时间12 5 s 内部上电复位 低功耗 最高为1 75mW 引脚与MAX515兼容 2 功能方框图 TLC5615的功能方框图如图9 39所示 图9 39TLC5615功能方框图 3 引脚排列及功能 TLC5615的引脚排列及功能说明分别见图9 40及表9 8 图9 40TLC5615引脚图 表9 8引脚功能 菊花链 DaisyChain 一种沿总线传输信号的方法 其中设备串联 而信号则从一台设备传向下一台设备 菊花链连接方法可根据设备在总线上的电气地位分配其优先级 4 TLC5615的时序分析 TLC5615的时序图如图9 41所示 图9 41时序波形图 5 TLC5615的输入 输出关系 图9 42的D A输入 输出关系如表9 9所列 图9 42TLC5615与89C51接口电路 表9 9D A转换关系 因为TCL5615芯片内的输入锁存器为12位宽 所以要在10位数字的低位后面再添上两位数字 为不关心状态 串行传送的方向是先送出高位MSB 后送出低位LSB 如果有级联电路 则应使用16位的传送格式 即在最高位MSB的前面再加上4个虚位 被转换的10位数字在中间 MSB LSB 6 TLC5615与89C51的串行接口电路 图9 42为TLC5615和89C51单片机的接口电路 将89C51要输出的12位数据存在R0和R1寄存器中 其D A转换程序如下 CLRP3 0 片选有效MOVR2 4 将要送入的前4位数据位数MOVA R0 前4位数据送累加器低4位SWAPA A中高4位和低4位互换 4位数在高位 LCALLWRdata 由DIN输入前4位数据MOVR2 8 将要送入的后8位数据位数MOVA R1 8位数据送入累加器ALCALLWRdata 由DIN输入后8位数据CLRP3 1 时钟低电平SETBP3 0 片选高电平 输入的12位数据有效RET 结束送数RET 子程序如下 WRdata NOP 空操作LOOP CLRP3 1 时钟低电平RLCA 数据送入进位位CYMOVP3 2 C 数据输入TLC5615有效SETBP3 1 时钟高电平DJNZR2 LOOP 循环送数RET 9 3 3并行输入 芯片及接口技术 1 并行输入 转换芯片 DAC0832DAC0832引脚图和逻辑框图如图9 43所示 DAC0832主要由两个8位寄存器和一个8位 转换器组成 图9 43DAC0832结构 图中 LE1和LE2是寄存命令 当LE1 1时 输入寄存器的输出随输入变化 当LE1 0时 数据锁存在寄存器中 不再随数据总线上的数据变化而变化 ILE为高电平 且CS与WR1同时为低时 使得LE1 1 当WR1变高时 8位输入寄存器便将输入数据锁存 XFER与WR2同时为低 使得LE2 1 8位DAC寄存器的输出随寄存器的输入变化 WR2上升沿将输入寄存器的信息锁存在DAC寄存器中 图中的RFB是片内电阻 为外部运算放大器提供反馈电阻 用以提供适当的输出电压 VREF端由外部电路提供 10 10V的参考电源 IOUT1与IOUT2是两个电流输出端 欲将数字量D0 D7转换为模拟量 只要使WR2 0 XFER 0 DAC寄存器为不锁存状态 即ILE CS和WR1端接负脉冲信号 即可完成一次转换 或者WR1 0 CS 0 ILE 1 输入寄存器为不锁存状态 而WR2和XFER端接负脉冲信号 可达到同样目的 当 时 输入锁存器状态随数据输入线状态变化 而 时 则锁存输入数据 当 时 DAC寄存器的输出随输入状态变化 时 锁存输入状态 1 DAC0832引脚功能 D0 D7 数字量数据输入线 ILE 数据锁存允许信号 高电平有效 CS 输入寄存器选择信号 低电平有效 WR1 输入寄存器的 写 选通信号 低电平有效 XFER 数据转移控制信号线 低电平有效 WR2 DAC寄存器的 写 选通信号 VREF 基准电压输入线 RFB 反馈信号输入线 芯片内已有反馈电阻 IOUT1和IOUT2 电流输出线 IOUT1与IOUT2的和为常数 IOUT1随DAC寄存器的内容线性变化 一般在单极性输出时 IOUT2接地 在双极性输出时 接运放 VCC 工作电源 DGND 数字地 AGND 模拟信号地 2 DAC0832特性 主要的特性参数如下 分辨率为8位 只需在满量程下调整其线性度 可与所有的单片机或微处理器直接接口 需要时亦可不与微处理器连接而单独使用 电流稳定时间为1 可双缓冲 单缓冲或直通数据输入 功耗低 约为200mW 逻辑电平输入与TTL兼容 单电源供电 2 D A转换器与89C51接口 在D A芯片中 有许多芯片输出量是电流 而实际应用中常常需要的是模拟电压 在这种情况下 D A芯片的输出还需要有将电流转换为电压的电路 下面介绍两种电路供参考 图9 44 a 是反相电压输出电路 输出电压 图9 44 b 是同相电压输出电路 输出电压 图中 当 接 或 时 输出电压范围是 或0 当 接 或 时 输出电压范围是 或 输入数字量的变化 将引起模拟量输出的变化 图9 44D A转换输出电路 1 直通式工作方式应用 图9 45所示为直通式工作方式的连接方法 输入到DAC0832的D0 D7数据不经控制直达8位D A转换器 当某一根地线或地址译码器的输出线使DAC0832的 脚有效 低电平 或 与 直接接地时 数据线上的数据字节直通 转换器转换并输出 图9 45DAC0832直通式电压输出电路 2 单缓冲工作方式应用 应用系统中 在只有一路模拟量输出或几路模拟量不需要同时输出的场合 应采用单缓冲方式 在这种方式下 将二级寄存器的控制信号并接 输入数据在控制信号作用下 一次控制 一次缓冲 直接打入8位DAC寄存器中并进入8位D A转换器进行D A转换 如图9 46所示 图9 46一路D A输出连线图 单路模拟量输出 当执行 写 指令时 DAC0832相应的控制信号时序如图9 47所示 图9 47DAC0832时序图 产生锯齿波的程序 程序框图如图9 48所示 程序如下 MOVDPTR 2FFFH 设置D A口地址MOVA 00H 输入数字量00H到A 初值为00H LOOP MOVX DPTR A 输出对应于A内容的模拟量INCA 修改A的内容 原来值加1 AJMPLOOP 2FFFH P2 7 0 P2 6 0 P2 5 1 P2 4 0 图9 48D A产生锯齿波程序框图 产生方波的程序 MOVDPTR 2FFFH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论