




已阅读5页,还剩77页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 05 47 单片机原理与接口技术 第10章单片机系统模拟量及其他扩展技术 2 05 47 1 掌握常用的并行接口A D和D A转换芯片的使用方法 2 熟悉常用的串行接口A D和D A转换芯片的使用方法 3 了解日历时钟芯片与单片机的接口设计方法 4 了解IC卡与单片机的接口设计方法 本章教学要求 3 05 47 本章目录 10 1A D转换扩展10 1 1并行A D转换扩展10 1 2串行A D转换扩展10 2D A转换扩展10 2 1并行D A转换扩展10 2 2串行D A转换扩展10 3日历时钟芯片扩展10 3 1日历时钟芯片8563 10 3 2单片机与日历时钟芯片的接口方法10 4IC卡扩展10 4 1SLE4442IC卡10 4 2SLE4442IC卡数据传送协议10 4 3SLE4442IC卡操作命令10 4 4单片机与SLE4442IC卡的接口方法习题与思考题 4 05 47 前言 在单片机应用系统中 经常会遇到模拟量信号的输入 输出问题 对于如何将模拟量转换成数字量送给单片机 或者将数字量转换成模拟量输出到单片机外部 需要用到模数 A D 或数模 D A 转换技术 也还经常会遇到与日期 时间有关的控制操作和管理问题 以及IC卡信息读写问题 本章介绍单片机如何扩展A D和D A转换接口 怎样扩展日历时钟芯片和IC卡接口等技术和方法 5 05 47 10 1A D转换扩展 A D转换器 ADC 是将连续的模拟信号转换成二进制数字量的器件 A D转换器为单片机应用系统采集模拟量信号进而实现数字化处理提供了一种接口 A D转换器的分类 从工作原理分类有 双积分型 逐次逼近型A D转换器等 从分辨率分类有 8 12 14 16位A D转换器等 从数据接口方式分类有 并行A D转换器和串行A D转换器 单片机应用系统扩展A D转换器时 需要根据以上区别采取不同的设计方法 A D转换器分类 6 05 47 10 1 1并行A D转换扩展 由于MCS 51系列单片机和51内核单片机的并行数据总线都是8位的 可以直接或间接地与8位并行输出的A D转换器连接 并一次性从A D接口读入数据 如ADC0809就是一个8输入通道的逐次逼近比较型8位并行输出A D转换器 其输出级有一个8位三态输出锁存器 可以直接与单片机的数据总线连接 8位A D转换的精度往往不能满足实际需求 而常采用10位 12位甚至更高位的A D转换器 A D转换器的位数不同 接口电路也不同 对于具有8位数据总线的单片机来说 要扩展高于8位的并行输出A D转换 单片机需要分两次来完成从A D接口读取数据 本节以12位并行输出A D转换芯片AD574为例来介绍并行A D转换接口的扩展方法 并行A D转换器 7 05 47 10 1 1并行A D转换扩展 1 12位并行A D转换器芯片AD574 AD574是AnalogDevices公司生产的12位逐次逼近型快速A D转换器 完成12位A D转换的时间为35 s 内部有三态输出缓冲电路 输出电平与TTL和CMOS电平兼容 无须外加时钟电路 得到广泛应用 AD574的引脚如图10 1所示 12位并行A D转换器 8 05 47 10 1 1并行A D转换扩展 AD574引脚说明如下 CE CS R C 用于控制启动转换和读出A D转换结果 当CE 1 CS 0 R C 0时启动A D转换 当CE 1 CS 0 R CS 1时 可以读出A D转换结果 12 8 数据格式选择端 当12 8 1时 12位数据同时输出 适合于与16位微机系统接口 当12 8 0时 该引脚信号与A0引脚配合使用 可分别输出高8位A D转换结果和低4位A D转换结果 适合于与8位微机系统接口 12 8 引脚不能由TTL电平控制 只能接VCC或GND A0 字节选择端 A0的作用主要有两个 启动转换前若A0 1则按8位启动A D转换 即A D的转换结果是8位的 完成一次A D转换的时间是10 s 若启动转换前A0 0 则启动12位A D转换 即A D转换结果是12位的 完成一次A D转换的时间是35 s 若在读周期中 A0 0读出高8位数据 A0 1读出低4位数据 AD574引脚 9 05 47 10 1 1并行A D转换扩展 5V 逻辑正电源 15V和 15V 器件工作电源 AD574支持双极性信号输入 AGND和DGND 模拟信号地和数字信号地 REFOUT 参考电压输出 AD574向外提供 10V基准电压输出 REFIN 参考电压输入 一般通过一个50 电阻与REFOUT引脚连接 或用于调满量程 BIPOFF 双极性偏差调整 用于调零 10Vin和20Vin 模拟信号输入引脚 可以工作在单极性输入或双极性输入方式 单极性输入时 允许输入的信号范围为0 10V或0 20V 双极性输入时 允许输入的信号范围为 5 5V或者0 10V STS 转换状态输出引脚 转换过程中 该引脚输出高电平 转换结束时该引脚输出低电平 AD574引脚 10 05 47 10 1 1并行A D转换扩展 AD574的控制信号组合关系 AD574信号 11 05 47 10 1 1并行A D转换扩展 2 单片机与AD574的接口方法 AD574工作在单极性输入方式时与MCS 51单片机的接口电路如下图所示 AD574接口方法 12 05 47 10 1 1并行A D转换扩展 例10 1根据上图所示A D扩展电路 编写完成一次A D转换的程序 分析 图中 P0 0和P0 1通过地址锁存器连接AD574的A0和R C 因此 AD574操作如下 启动转换时 R C 0并且A0 0则按12位转换 未连接的地址线按1对待 则启动12位A D转换的地址为FCH 读取转换结果时 在R C 1条件下 A0 0读高8位 A0 1读低4位 因而 读高8位数据的地址为FEH 读低4位数据的地址为FFH P1 0用于查询A D转换是否结束 AD574应用举例 13 05 47 10 1 1并行A D转换扩展 编写程序如下 AD574 MOVR1 30H R1指向数据缓冲区MOVR0 0FCH R0指向启动地址MOVX R0 A 启动A D转换LOOP JBP1 0 LOOP 等待转换结束INCR0 指向读高8位数据地址INCR0MOVXA R0 读高8位数据MOV R1 A 存高8位数据INCR0 指向读低4位数据地址INCR1 指向缓冲区下一字节地址MOVXA R0 读低4位数据MOV R1 A 保存低4位数据RET AD574应用举例 14 05 47 10 1 2串行A D转换扩展 采用串行总线扩展A D转换时 单片机与转换芯片的数据交换是通过串行数据传输方式来实现的 当确定了接口协议时 其硬件接口方式也就确定了 与单片机的接口方法不涉及单片机的数据总线及位数问题 无论是8位或是高于8位的串行A D转换芯片 与单片机的硬件接口都是一样的 只是单片机对于串行接口A D芯片的读写时序有所不同 程序设计方法有所不同而已 串行A D转换 15 05 47 10 1 2串行A D转换扩展 ADS10XX系列的A D转换器是由美国德州仪器公司推出的微型封装的12位Delta Sigma型模数转换器 与该系列相对应的有ADS11XX系列 其分辨率为16位 ADS1013 4 5采用I2C总线与CPU接口 本节将以ADS1015芯片为例介绍采用I2C总线的AD转换器扩展方法 ADS1015的内部结构如图所示 ADS1015的工作方式有连续转换模式和单次转换模式 连续转换模式时 当前转换工作完成后 ADS1015将转换结果保存在 1 ADS1015串行A D转换芯片 输出寄存器 然后立即进行下一次转换 在单次转换模式时 转换结束后芯片自动进入掉电节能状态 ADS的工作方式通过配置寄存器进行选择 串行A D转换芯片 16 05 47 10 1 2串行A D转换扩展 ADS1015的主要技术特性 分辨率为12位 可编程转换速率为128SPS到3 3kSPS 内置低漂移的电压参考源 内置可编程增益放大器 允许输入电压低到 256mV 最大输入电压为 4 096V 内置转换时钟发生器 逻辑电平输入与TTL电平兼容 四通道单端输入或二通道差分输入 内部具有可编程的比较器 采用单一正电源供电 电源电压范围2 0 5 5V 低功耗 连续转换时电流消耗仅为150 A ADS1015性能 17 05 47 10 1 2串行A D转换扩展 ADS1015的MSOP 10封装引脚如图所示 引脚定义如下 ADDR I2C从器件地址选择 ALERT RDY 比较器输出或转换准备好信号 AIN0 单端输入通道1或差分输入通道1的正信号输入端 AIN1 单端输入通道2或差分输入通道1的负信号输入端 AIN2 单端输入通道3或差分输入通道2的正信号输入端 AIN3 单端输入通道4或差分输入通道2的负信号输入端 SDA 串行数据线 SCL 串行时钟线 GND 地 VDD 电源 ADS1015引脚 18 05 47 10 1 2串行A D转换扩展 1 ADS1015的输入特性ADS1015可以允许差分输入或单端输入 通过配置寄存器进行选择 ADS1015采用开关电容输入级 由于电容值很小 因此对外部电路而言就像一个电阻 输入阻抗与PGA的增益有关 在输入源阻抗较高时 ADS1015的输入阻抗不能忽略 需要增加缓冲进行阻抗变换 否则会影响测量精度 ADS1015的模拟信号输入范围也与PGA的增益有关 内部等效的差分输入电压为 4 096V PGA 但要注意输入电压不能低于 0 3V和超过VDD 0 3V 否则会损坏器件 2 ADS1015的输入和输出特性 ADS1015输入特性 19 05 47 10 1 2串行A D转换扩展 2 ADS1015的输出特性输出采用二进制补码形式 正的满量程输入信号对应于7FF0h 负的满量程输出对应于8000h 其转换结果与输入电压的关系如图所示 理想的输出特性见下表 由于采用补码特性输出 在有些情况下需要进行码制变换 此外该器件是为了与同系列16位A D转换器ADS1115兼容 其转换结果保持16位特性 但只有高12位有效 低4位始终为0 在使用时需注意 采用单端输入时负值范围的输出值是没有用的 ADS1015输出特性 20 05 47 10 1 2串行A D转换扩展 ADS1015只有一个用于I2C总线从器件的可编程地址引脚ADDR ADDR可以连接到GND VDD SDA或SCL 从而允许该芯片可以有4个可编程地址 ADS1015的I2C地址见表 3 ADS1015的I2C地址 ADS1015I2C地址 21 05 47 10 1 2串行A D转换扩展 ADS1015有1个寻址寄存器和4个功能寄存器 输出寄存器存储最后一次转换的结果 配置寄存器可用于改变ADS1015的操作模式或查询器件的状态 低阈值和高阈值寄存器用来设置比较器 1 寻址寄存器访问ADS1015的寄存器需要借助寻址寄存器 通过向寻址寄存器中写入相应的值 来选择所需访问的寄存器 主机发出ADS1015的地址字节 并令最低位为低 然后接着发出要写往寻址寄存器的数据和终止条件 寻址寄存器会保持数据直到对其进行改变 4 ADS1015的寄存器 寻址寄存器格式 功能寄存器地址 ADS1015寻址寄存器 22 05 47 10 1 2串行A D转换扩展 2 输出寻址寄存器输出寄存器 只读 共有16位 但只有D4 D15是转换结果 采用二进制补码格式 复位或上电时 该寄存器的所有位被清零 输出寄存器 只读 ADS1015输出寄存器 23 05 47 10 1 2串行A D转换扩展 3 配置寄存器配置寄存器 读 写 用于配置ADS1015的工作模式 输入选择 采样转换速率 可编程增益和比较器的工作模式 见表10 7 配置中寄存器每一位的作用见表10 8 表10 7配置寄存器 读 写 ADS1015配置寄存器 24 05 47 10 1 2串行A D转换扩展 表10 8配置寄存器的作用 ADS1015配置寄存器 25 05 47 10 1 2串行A D转换扩展 4 低阈值和高阈值寄存器低阈值和高阈值寄存器都是16位的寄存器 它们的低4位固定为0 高12位用来保存数字比较器的阈值 当改变了PGA的增益后 需要对阈值进行重新调整 ADS1015的读写操作遵循基本的I2C总线的协议 在数据传输过程中 总线的启动和停止信号均由主机发出 但是需要根据ADS1015的特性发送相应的指令 例如 设置ADS1015工作在连续转换模式 然后读取转换结果 可发送如下命令 5 ADS1015的读写操作 ADS1015读写操作 26 05 47 10 1 2串行A D转换扩展 第一步 配置ADS1015工作在连续转换模式 第一字节 10010000 I2C的地址 操作性质为写 第二字节 00000001 选择配置寄存器为操作对象 第三字节 00000100 配置寄存器的高8位数据 第四字节 10000011 配置寄存器的低8位数据 第二步 设置访问的寄存器为输出寄存器 第一字节 10010000 I2C的地址 操作性质为写 第二字节 00000000 选择输出寄存器为操作对象 第三步 读取转换结果 第一字节 10010001 I2C的地址 操作性质为读 第二字节 ADS1015作为从发送器发送的高8位转换结果 第三字节 ADS1015作为从发送器发送的低8位转换结果 只有高4位有效 ADS1015读写操作 27 05 47 10 1 2串行A D转换扩展 ADS1015写操作时序图为 ADS1015写操作时序 28 05 47 10 1 2串行A D转换扩展 ADS1015的读操作时序图为 ADS1015读操作时序 29 05 47 10 1 2串行A D转换扩展 ADS1015使用时数字电路部分连接关系简单 只需要正确连接I2C总线 同时通过ADDR引脚设置可编程地址 如图所示 6 单片机与串行A D转换器的接口方法 模拟电路部分需要考虑 根据输入信号的形式考虑好是单端还是差分输入形式 根据输入形式通过配置寄存器确定内部多路转换器的状态 使其与输入信号的形式相适应 根据输入信号的范围设置可编程增益 确保输入信号不会超出ADS1015的转换范围 ADS1015接口方法 30 05 47 10 1 2串行A D转换扩展 下图为ADS1015采用差分方式实现负载电流检测的应用方案 通过采样电阻Rs将负载电流转换为电压 经过OPA335放大 OPA335的放大倍数为4倍 如果采样电阻上的压降为50mV ADS1015的满量程输入电压为0 2V 则将其可编程增益设为16 即可进行负载电流监测 ADS1015信号输入电路 31 05 47 10 1 2串行A D转换扩展 下面通过一个编程实例说明串行A D转换器ADS1015的程序设计方法 例10 2根据图10 7的电路来编写程序 控制ADS1015实现A D转换 分析 ADS1015内部有配置寄存器 用来配置芯片的工作方式 可编程增益和采样速率等内容 在使用时需要根据自己的需要结合表10 8进行配置 否则得不到预期的结果 读出数据时在输出寄存器读取 这些功能都是通过编写适当的函数通过I2C总线访问相应寄存器来实现的 编写C语言程序如下 略 7 串行A D转换器编程举例 ADS1015应用举例 32 05 47 10 2D A转换扩展 D A转换器 DAC 是一种将数字信号转换成模拟信号的器件 D A转换器为单片机系统将数字信号转换成模拟信号输出提供了一种接口 D A转换器的分类 从数据接口方式分类有 并行D A转换器和串行D A转换器 从分辨率分类有 8位分辨率和高于8位分辨率的A D转换器 并行D A转换器根据其内部是否具有锁存器可以分为两类 一类是芯片内部有数据锁存器 片选信号和写信号 数据输入引脚可以直接和单片机的总线进行连接 不需要中间接口器件 另一类是芯片内部没有锁存器 不能直接与单片机的总线连接 中间必须加锁存器 或者通过并行接口与单片机进行连接 单片机与D A转换器接口时 需要根据以上区别采取不同的设计方法 D A转换器分类 33 05 47 10 2 1并行D A转换扩展 经过8位D A转换后输出的模拟信号基本能满足一般的控制精度要求 但对于控制精度要求较高的应用 则需要采用10位 12位甚至更高的D A转换器 下面分别以8位并行D A转换芯片DAC0832和12位并行D A转换芯片DAC1210为例介绍并行D A转换得扩展方法 并行D A转换器 34 05 47 10 2 1并行D A转换扩展 1 8位并行D A转换芯片DAC0832及其单片机的接口方法 DAC0832是带内部数据锁存器的单片式 位高速电流型并行输出的DAC 其内部逻辑结构如图所示 DAC0832的主要技术特性如下 转换时间为1 s 数据输入可以采用单缓冲 双缓冲或直通方式 分辨率为8位 逻辑电平输入与TTL电平兼容 采用单一正电源供电 8位并行D A转换器 35 05 47 10 2 1并行D A转换扩展 DAC0832的引脚定义如图所示 DAC0832的主要引脚功能如下 CS 片选信号 低电平有效 与ILE配合使用 该信号为高电平时 不能对输入锁存器进行写操作 ILE 允许输入锁存信号 高电平有效 该信号有效时才可能将数据线上的信息打入输入锁存器 WR1 写信号1 低电平有效 该信号有效时才可能将数据线上的信息写入8位输入锁存器 WR2 写信号2 低电平有效 该信号有效时才可能将数据从输入锁存器写到8位DAC寄存器 DAC0832引脚 36 05 47 10 2 1并行D A转换扩展 XFER 数据传送信号 低电平有效 该信号有效时才可能将输入锁存器的内容打入DAC寄存器 VREF 基准电源输入端 与DAC内部的R 2R网络相连 作为D A转换的参考电压 DI0 DI7 8位数字量的输入端 DI7为最高位 DI0为最低位 IOUT1和IOUT2 DAC的电流输出端 IOUT1和IOUT2是互补的 当输入的数字量为全1时 IOUT1最大 IOUT2为0 当输入的数字量为全0时 IOUT2最大 IOUT1为0 Rfb 反馈电阻 DAC0832内部有反馈电阻 该端连接外部运算放大器的输出端即可 DAC0832引脚 37 05 47 10 2 1并行D A转换扩展 由于DAC0832有数据输入锁存器 因而可以直接与单片机的数据总线相连 DAC0832与MCS 51单片机的接口电路如下图所示 DAC0832与MCS 51单片机的接口电路 DAC0832接口方法 38 05 47 10 2 1并行D A转换扩展 例10 3根据图10 10所示的DAC0832与单片机接口电路 编写程序 实现在VOUT端输出锯齿波形 分析 按图10 10所示的连接关系 DAC0832工作在单缓冲方式 并且其端口地址为7FFFH 程序如下 P0832 MOVDPTR 7FFFH DPTR指向DAC0832MOVA 0LOOP MOVX DPTR A 数据送到DAC0832NOP 延时 调整该时间可 改变输出波形斜率INCALJMPLOOP DAC0832应用举例 39 05 47 10 2 1并行D A转换扩展 由于MCS 51单片机的数据总线是8位的 当D A转换器分辨率高于8位时 必须分两次将数据送至D A转换器 DAC1210是12位D A转换芯片 其引脚及内部结构如图所示 2 12位并行D A转换芯片DAC1210及其与单片机的接口方法 12位并行D A转换器 40 05 47 10 2 1并行D A转换扩展 DAC1210的性能 电流建立时间是1 s 单一电源 5 15V 工作 输入信号与TTL电平兼容 具有两级内部缓冲器 第1级12位缓冲器由1个高8位缓冲器和1个低4位缓冲器构成 第2级缓冲器由1个12位DAC寄存器构成 为该芯片与8位数据总线微控制器接口提供了方便 第一级缓冲器由B1 B2 CS WR1 控制高8位的写入 由 CS 和 WR1 控制低4位的写入 即向DAC1210器件写入高8位数据时 低4位寄存器的写控制信号是有效的 写入高8位数据时低4位数据将被改写 而写入低4位数据时由于B1 B2 无效而不会改写高8位数据 这样 写DAC1210时必须先写高8位数据然后写低4位数据 12位并行D A转换器性能 41 05 47 10 2 1并行D A转换扩展 从图所示连接关系可以看出 高8位数据写入地址为 E000H P2 7 1 P2 6 1 P2 5 1 低4位数据写入地址为 C000H P2 7 1 P2 6 1 P2 5 0 12位DAC寄存器的写入地址为 2000H P2 7 0 P2 6 0 P2 5 1 DAC1210与MCS 51单片机的接口电路 DAC1210接口方法 42 05 47 10 2 1并行D A转换扩展 例10 4为DAC1210接口电路编写实现一次D A转换的程序 设 R2中为D A转换高8位数据 R3中为D A转换低4位数据 编写程序如下 DA1210 PUSHDPLPUSHDPHMOVDPTR 0E000H DPTR指向8位输入缓冲器MOVA R2MOVX DPTR A 送出高8位数据MOVDPTR 0C000H DATR指向4位输入缓冲器MOVA R3MOVX DPTR A 送出低4位数据MOVDPTR 2000H DPTR指向12位DAC寄存器MOVX DPTR A 选通12位DAC寄存器POPDPHPOPDPLRET DAC1210应用举例 43 05 47 10 2 2串行D A转换扩展 对于并行D A转换 8位和高于8位的接口方式不同 而对于串行D A转换 无论是8位还是高于8位的接口电路却是一样的 只是单片机对于串行接口D A芯片的读写时序有所不同 程序设计方法也有所不同 1 DAC7611串行D A转换芯片 DAC7611是一个12位的串行D A转换器 采用单一 5V电源供电 内部集成了2 435V的基准电压源和高速轨到轨输出放大器 数字电路部分包含有一个输入移位寄存器 适用于串行接口的数据传输 DAC7611内部结构图 串行D A转换器 44 05 47 10 2 2串行D A转换扩展 DAC7611的典型性能 12位分辨率 3线接口的数据同步传输 时钟频率最快可达20MHz 快速建立时间 7 sto1LSB 0 4 095V满量程范围 最低有效位为1mV 内部集成参考源 异步复位清零 低功耗 采用5V电源时电流为0 5mA 2 5mW 串行D A转换器性能 45 05 47 10 2 2串行D A转换扩展 DAC7611的PDIP封装引脚图和引脚定义 VDD 5V电源输入 CS 片选信号 低电平有效 CLK 数据传输的同步时钟信号 SDI 串行数据信号 在CLK的上升沿进入串行移位寄存器 LD 装载DAC寄存器 LD 的下降沿将移位寄存器的数据锁入DAC寄存器 当 LD 为低电平时 DAC寄存器相当于透明状态 此时D A转换器的跟着移位寄存器的值变化 CLR 清除DAC寄存器 当 CLR 为低电平时 DAC寄存器被设置为000H 从而D A转换器输出电压为0V GND 地 VOUT 电压输出 DAC7611引脚 46 05 47 10 2 2串行D A转换扩展 DAC7611的满量程输出范围为0 4 095V 最低有效位对应1mV 在整个转换范围内保持线性关系 DAC7611的数字量输入为二进制原码 与模拟输出的关系见下表 2 DAC7611的输入 输出特性 DAC7611输入 输出特性 47 05 47 10 2 2串行D A转换扩展 DAC7611的串行总线接口由数据信号SDI 时钟信号CLK和片选信号组成 还有一个装载信号和异步清零信号配合使用 基本电路连接如下图所示 图中的STC90C54是一款51内核单片机 3 单片机与串行D A转换器的接口方法 DAC7611接口方法 48 05 47 10 2 2串行D A转换扩展 DAC7611的操作时序图 从时序图中可以看出DAC7611工作在SPI模式3 DAC7611操作时序 49 05 47 10 2 2串行D A转换扩展 DAC7611操作的真值表 DAC7611操作关系 50 05 47 10 2 2串行D A转换扩展 DAC7611具有双缓冲机制 数据必须经过移位寄存器才能进入DAC寄存器 而模拟输出是根据DAC寄存器的数据进行转换的 当 LD 信号的下降沿时数据由移位寄存器进入DAC寄存器 这样可以防止串行数据传输过程中移位寄存器的值不确定造成模拟量输出的不稳定 在不需要双缓冲的情况下 可以将 LD 信号接地 使DAC寄存器呈现透明状态 但是每移入1位 模拟输出都会发生变化 因此 要保证在串行总线传输数据的过程中 D A转换器输出没有异常变化 需要在对总线操作前将 LD 信号拉高 数据传输结束后再给 LD 信号一个负脉冲 只要 CLR 信号为低电平 DAC寄存器的值就被设为000H 直到 CLR 变为高 并且 LD 信号拉低 重新装载移位寄存器的值 DAC7611操作关系 51 05 47 10 2 2串行D A转换扩展 例10 5串行D A转换器DAC7611的程序设计方法举例 编写程序 控制DAC7611实现D A转换 分析 根据DAC7611的工作原理 只需要通过串行接口向其内部寄存器写入要转换的数据即可 编写C语言程序如下 include include defineuintunsignedintSbitCLK P2 2 配置相应的引脚SbitSDI P2 4 SbitLD P2 5 SbitCLR P2 6 SbitCSN P2 3 4 串行D A转换器编程举例 DAC7611应用举例 52 05 47 10 2 2串行D A转换扩展 voidInit DA void 初始化 LD 0 CLR 1 CLK 1 SDI 0 CSN 1 voidclock void 串行时钟信号 CLK 0 nop CLK 1 nop DAC7611应用举例 53 05 47 10 2 2串行D A转换扩展 voidDAC 7611 uintvalue D A转换程序 uinti temp CLR 1 value 4 对12位数据左移4位LD 1 CSN 0 nop for i 0 i 12 i 依次传输12位数据 temp value SDI temp DAC7611应用举例 54 05 47 10 2 2串行D A转换扩展 LD 0 CSN 1 for i 0 i 15 i nop LD 1 以下是主程序 调用DAC7611的初始化程序 然后启动D A转换 voidmain Init DA DAC 7611 0 x800 写入数据 进行D A转换 DAC7611应用举例 55 05 47 10 3日历时钟芯片扩展 在单片机应用系统中经常用到与日期 时间有关的控制操作 如 收费系统 计量系统其中有许多与日期 时间有关的操作 这时在系统中加入一个日历时钟芯片 将给编程及操作带来很大的方便 日历时钟芯片 56 05 47 10 3 1日历时钟芯片8563 8563是Philips公司推出的内含I2C总线接口功能并具有极低功耗的多功能日历时钟芯片 8563的功能 多种报警定时器时钟输出中断输出 看门狗 内部低电压检测 1 0V I2C总线通信8563是一款性价比极高的时日历钟芯片 它已被广泛用于电表 水表 气表 电话 传真机 便携式仪器及电池供电的仪器仪表等产品领域 日历时钟芯片性能 57 05 47 10 3 1日历时钟芯片8563 宽电压范围1 0 5 5V 复位电压标准值Vlow 0 9V 超低功耗 典型值为0 25 A VDD 3 0V Tamb 25 可编程时钟输出频率为 32 768kHz 1024Hz 32Hz 1Hz 4种报警功能和定时器功能 内含复位电路 振荡器电容和掉电检测电路 开漏中断输出 400kHzI2C总线 VDD为1 8 5 5V I2C总线地址 读为0A3H 写为0A2H 8563的主要特性 8563特性 58 05 47 10 3 1日历时钟芯片8563 OSCI和OSCO 振荡器输入输出引脚 INT 中断信号输出引脚 VDD和VSS 正电源与地 SDA 串行数据线 SCL 串行时钟信号线 CLKOUT 时钟信号输出引脚 8563采用SO8或DIP8封装形式 8563引脚定义 8563引脚 59 05 47 10 3 1日历时钟芯片8563 8563的内部组成包括 1个可自动产生增量的地址寄存器 1个内置的32 768kHz的振荡器 带有一个内部集成的电容 1个分频器 用于给实时时钟RTC提供源时钟 1个可编程时钟输出 1个定时器 1个报警器 1个掉电检测器 1个400kHzI2C总线接口 8563结构 60 05 47 10 3 1日历时钟芯片8563 16个可寻址的8位并行寄存器 2个控制 状态寄存器的地址是00H和01H 秒 年寄存器的地址是02 08H 报警寄存器的地址是09 0CH 用于定义报警条件 CLKOUT输出频率寄存器地址是0DH 定时器控制寄存器的地址是0EH 定时器寄存器的地址是0FH 秒 分钟 小时 日 月 年 分钟报警 小时报警 日报警寄存器的编码格式为BCD 星期和星期报警寄存器不以BCD格式编码 8563结构 61 05 47 10 3 1日历时钟芯片8563 控制 状态寄存器1的地址是00H 其各位的定义和功能见下表 1 控制 状态寄存器1 8563控制寄存器 62 05 47 10 3 1日历时钟芯片8563 控制 状态寄存器2的地址是01H 其各位的定义和功能见下表 2 控制 状态寄存器2 8563控制寄存器 63 05 47 10 3 1日历时钟芯片8563 秒 分 时寄存器的地址 各位定义和功能见下表 3 秒 分 时寄存器 8563时分秒寄存器 64 05 47 10 3 2单片机与日历时钟芯片的接口方法 例10 6本例说明日历时钟芯片与51单片机的接口方法 接口电路如图所示 编写读写操作程序 分析 根据8563工作原理 其接口方法和24C01与单片机接口方法相同 编写程序如下 8563应用举例 65 05 47 10 3 2单片机与日历时钟芯片的接口方法 读8563时间参数至单片机内部RAM的30H 36H单元DTEQUBDATA0EQU0 R0ADDREQU1 R1RTIME MOVA 2MOVADDR AMOVA 30HMOVDATA0 AMOVA 0A3HMOVDT ACALLREADN 该子程序在 例9 1中给出RET 将内部RAM的30H 36H单元的时间参数写入8563WTIME MOVA 2MOVADDR AMOVA 30HMOVDATA0 AMOVA 0A2HMOVDT ACALLWRITEN 该子程序 在例9 1中给出RET 8563应用举例 66 05 47 10 4IC卡扩展 IC卡是将集成电路芯片镶嵌于塑料基片中 封装成卡的形状 外形与磁卡相似 IC卡是一种电路卡 它在读写性能上优于磁卡和光卡 在使用上更容易进行操作 因而得到了广泛应用 IC卡可以分成下列3类 存储卡 卡中的集成电路仅是EEPROM芯片 是较简单的IC卡 逻辑加密卡 卡中的集成电路除具有EEPROM芯片外 还有加密逻辑 CPU卡 卡中的集成电路包括CPU RAM ROM EEPROM和固化在ROM中的片内操作系统 本节以SLE4442逻辑加密卡为例讨论IC卡与单片机接口方法 IC卡分类 67 05 47 10 4 1SLE4442IC卡 SLE4442IC卡是德国西门子 Simens 公司设计的逻辑加密存储卡 应用广泛 主要性能有 接触式IC卡 8个触点 其中有3个未定义 256B的存储容量 完全独立的可编程代码存储器 PSC 有高 低两种供电电压芯片 5V或 2 7V 存储器具有至少10000次的擦写周期 数据保持时间至少10年 SLE4442卡触点定义和功能 SLE4442IC卡 68 05 47 10 4 1SLE4442IC卡 SLE4442IC卡芯片内部主要包括3个存储器空间 1 EEPROM主存储器主存储器分为两部分 数据保护区 32B 地址0 31 数据读出不受限制 写入则受保护存储器内部数据状态的限制 当保护存储器中第N位 N 0 31 为1时 对应主存储器中第N字节允许进行擦除和写入操作 应用数据区 224B 地址32 255 数据读出不受限制 擦除和写入受加密存储器数据校验结果的控制 加密校验控制对整个主存储器 保护数据区和应用数据区 均有效 SLE4442IC卡结构 69 05 47 10 4 1SLE4442IC卡 2 32位PROM型保护存储器一次性编程 以保护主存储器的保护数据区 防止一些固定的标志参数被改动 3 4 8位EEPROM型加密存储器第0字节为密码输入错误计数器EC EC的有效位是低3位 芯片初始化时设置成 111 这一字节是可读的 第1 2 3字节为参照字存储区 这3字节的内容作为一个整体被称为可编程加密代码 PSC 其读出 写入和擦除均受自身比较操作结果的控制 SLE4442IC卡结构 70 05 47 10 4 2SLE4442IC卡数据传送协议 复位和复位响应是根据ISO7816 3标准来进行的 操作期间的任何时刻都可以复位 复位结束 地址计数器被设置为零 在RST信号下降沿后 主存储器区第0字节的第1个数据位 LSB 的内容被送到I O上 若连续输入32个时钟脉冲 主存储器中的前4字节地址单元中的内容被读出 在第33个时钟脉冲的下降沿 I O线被置成高状态而关闭 1 复位和复位响应 复位期间从IC卡读出的4字节是 A2H 13H 10H 91H 这是判别SLE4442IC卡的依据 操作时序如图所示 SLE4442IC卡操作 71 05 47 10 4 2SLE4442IC卡数据传送协议 1 外部复位SLE4442IC卡基于同步复位响应的传送协议 芯片的复位响应时序如上图所示 2 上电复位把操作电压加到VCC之后 芯片内部进行复位操作 I O线被置为高电平状态 必须在对任意地址进行读操作或作一个复位响应操作之后 才可以进行数据交换 3 中止中止状态的时序如图所示 在CLK为低状态期间 如果RST置为高状态 则任何操作均无效 I O线被锁定到高状态 需要一个最小维持时间tres 5 s之后 芯片才能接受新的有效复位 中止状态之后芯片又准备下一步操作 SLE4442IC卡操作 72 05 47 10 4 2SLE4442IC卡数据传送协议 完成复位操作以后 芯片进入等待状态 用户可以向IC卡发送操作命令 每条命令都从一个起始状态开始 起始状态之后是命令字节 命令包括3字节 共24位 随后紧跟着一个附加脉冲并用一个停止状态来结束操作 命令模式的时序如图所示 起始状态 在CLK为高电平期间 I O口线上的信号下降沿为起始状态 停止状态 在CLK为高电平期间 I O口线上的信号上升沿为停止状态 2 命令模式 SLE4442IC卡命令 73 05 47 10 4 2SLE4442IC卡数据传送协议 IC卡接受一个命令之后 可以有两种工作模式 输出数据模式 即读数据 和处理数据模式 输出数据模式的时序如图所示 在输出数据模式下 IC卡将芯片中的数据传送到外部设备接口 在第一个CLK脉冲的下降沿之后 I O线上的第一位数据变为有效 随后每增加一个时钟脉冲 芯片内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 固碱工国庆节后复工安全考核试卷含答案
- 自来水生产工中秋节后复工安全考核试卷含答案
- 植物组织培养工国庆节后复工安全考核试卷含答案
- 照相机与照相设备装配调试工中秋节后复工安全考核试卷含答案
- 绿化护坡工程技术方案范本
- 单位工程及分部划分标准与操作指南
- 水磨石铺设合同范文解析
- 机织无结网片工节假日前安全考核试卷含答案
- 飞机雷达调试工节假日前安全考核试卷含答案
- 关于实验教学总结模板合集七篇
- 智慧树知道网课《工业机器人技术基础》课后章节测试满分答案
- (一检)泉州市2026届高三高中毕业班质量监测(一)数学试卷(含标准答案)
- 2025年福建省榕圣建设发展有限公司项目招聘12人笔试参考题库附带答案详解
- 矿山设备检修安全培训课件
- 2025-2030数据安全合规审计服务市场爆发及等保测评机构并购价值评估
- 纤维转盘滤布滤池运行维护技术说明
- 2025至2030中国无烟产品行业发展趋势分析与未来投资战略咨询研究报告
- 2025年中国华电集团招聘面试题解析及备考建议手册
- 2025年机器人面试题及答案解析
- 高三第一次月考总结主题班会课件
- 参考活动2 善待身边的人教学设计-2025-2026学年初中综合实践活动苏少版七年级下册-苏少版
评论
0/150
提交评论