单片机模拟及其相关技术_第1页
单片机模拟及其相关技术_第2页
单片机模拟及其相关技术_第3页
单片机模拟及其相关技术_第4页
单片机模拟及其相关技术_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

单片机模拟及其相关技术2023/4/271第1页,共82页,2023年,2月20日,星期一(1)掌握常用的并行接口A/D和D/A转换芯片的使用方法。(2)熟悉常用的串行接口A/D和D/A转换芯片的使用方法。(3)了解日历时钟芯片与单片机的接口设计方法。(4)了解IC卡与单片机的接口设计方法。本章教学要求

2023/4/272第2页,共82页,2023年,2月20日,星期一本章目录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日历时钟芯片856310.3.2单片机与日历时钟芯片的接口方法10.4IC卡扩展10.4.1SLE4442IC卡10.4.2SLE4442IC卡数据传送协议10.4.3SLE4442IC卡操作命令10.4.4单片机与SLE4442IC卡的接口方法习题与思考题2023/4/273第3页,共82页,2023年,2月20日,星期一前言

在单片机应用系统中,经常会遇到模拟量信号的输入/输出问题,对于如何将模拟量转换成数字量送给单片机,或者将数字量转换成模拟量输出到单片机外部,需要用到模数(A/D)或数模(D/A)转换技术。也还经常会遇到与日期、时间有关的控制操作和管理问题,以及IC卡信息读写问题。本章介绍单片机如何扩展A/D和D/A转换接口,怎样扩展日历时钟芯片和IC卡接口等技术和方法。2023/4/274第4页,共82页,2023年,2月20日,星期一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转换器分类2023/4/275第5页,共82页,2023年,2月20日,星期一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转换器2023/4/276第6页,共82页,2023年,2月20日,星期一10.1.1并行A/D转换扩展1.12位并行A/D转换器芯片AD574AD574是AnalogDevices公司生产的12位逐次逼近型快速A/D转换器。完成12位A/D转换的时间为35s。内部有三态输出缓冲电路。输出电平与TTL和CMOS电平兼容。无须外加时钟电路。得到广泛应用。AD574的引脚如图10-1所示。

----12位并行A/D转换器2023/4/277第7页,共82页,2023年,2月20日,星期一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转换的时间是10s;若启动转换前A0=0,则启动12位A/D转换,即A/D转换结果是12位的,完成一次A/D转换的时间是35s。若在读周期中,A0=0读出高8位数据,A0=1读出低4位数据。----AD574引脚2023/4/278第8页,共82页,2023年,2月20日,星期一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引脚2023/4/279第9页,共82页,2023年,2月20日,星期一10.1.1并行A/D转换扩展AD574的控制信号组合关系:CE(/CS)R/(/C)12/(/8)A0操作0××××禁止×1×××禁止100×0启动12位A/D转换100×1启动8位A/D转换101VCC×12位A/D转换结果同时输出101GND0输出A/D转换结果高8位101GND1输出A/D转换结果低4位----AD574信号2023/4/2710第10页,共82页,2023年,2月20日,星期一10.1.1并行A/D转换扩展2.单片机与AD574的接口方法AD574工作在单极性输入方式时与MCS-51单片机的接口电路如下图所示。----AD574接口方法2023/4/2711第11页,共82页,2023年,2月20日,星期一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应用举例2023/4/2712第12页,共82页,2023年,2月20日,星期一10.1.1并行A/D转换扩展编写程序如下:AD574: MOV R1,#30H ;R1指向数据缓冲区

MOV R0,#0FCH ;R0指向启动地址

MOVX@R0,A ;启动A/D转换LOOP: JB P1.0,LOOP ;等待转换结束

INC R0 ;指向读高8位数据地址

INC R0 MOVXA,@R0 ;读高8位数据

MOV @R1,A ;存高8位数据

INC R0 ;指向读低4位数据地址

INC R1 ;指向缓冲区下一字节地址

MOVXA,@R0 ;读低4位数据

MOV @R1,A ;保存低4位数据

RET----AD574应用举例2023/4/2713第13页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展采用串行总线扩展A/D转换时,单片机与转换芯片的数据交换是通过串行数据传输方式来实现的。当确定了接口协议时,其硬件接口方式也就确定了,与单片机的接口方法不涉及单片机的数据总线及位数问题。无论是8位或是高于8位的串行A/D转换芯片,与单片机的硬件接口都是一样的,只是单片机对于串行接口A/D芯片的读写时序有所不同,程序设计方法有所不同而已。----串行A/D转换2023/4/2714第14页,共82页,2023年,2月20日,星期一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转换芯片2023/4/2715第15页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展ADS1015的主要技术特性:分辨率为12位;可编程转换速率为128SPS到3.3kSPS;内置低漂移的电压参考源;内置可编程增益放大器,允许输入电压低到±256mV,最大输入电压为±4.096V;内置转换时钟发生器;逻辑电平输入与TTL电平兼容;四通道单端输入或二通道差分输入;内部具有可编程的比较器;采用单一正电源供电,电源电压范围2.0~5.5V;低功耗,连续转换时电流消耗仅为150A。----ADS1015性能2023/4/2716第16页,共82页,2023年,2月20日,星期一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引脚2023/4/2717第17页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展1)ADS1015的输入特性ADS1015可以允许差分输入或单端输入,通过配置寄存器进行选择。ADS1015采用开关电容输入级。由于电容值很小,因此对外部电路而言就像一个电阻。输入阻抗与PGA的增益有关。在输入源阻抗较高时,ADS1015的输入阻抗不能忽略,需要增加缓冲进行阻抗变换,否则会影响测量精度。ADS1015的模拟信号输入范围也与PGA的增益有关,内部等效的差分输入电压为±4.096V/PGA。但要注意输入电压不能低于0.3V和超过VDD+0.3V,否则会损坏器件。2.ADS1015的输入和输出特性

----ADS1015输入特性2023/4/2718第18页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展2)ADS1015的输出特性输出采用二进制补码形式,正的满量程输入信号对应于7FF0h,负的满量程输出对应于8000h。其转换结果与输入电压的关系如图所示。理想的输出特性见下表。由于采用补码特性输出,在有些情况下需要进行码制变换。此外该器件是为了与同系列16位A/D转换器ADS1115兼容,其转换结果保持16位特性,但只有高12位有效,低4位始终为0。在使用时需注意。采用单端输入时负值范围的输出值是没有用的。输入信号(AINP–AINN)输出≥FS(211–1)/2117FF0h+FS/2110010h00–FS/211FFF0h≤–FS8000h----ADS1015输出特性2023/4/2719第19页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展ADS1015只有一个用于I2C总线从器件的可编程地址引脚ADDR,ADDR可以连接到GND、VDD、SDA或SCL,从而允许该芯片可以有4个可编程地址。ADS1015的I2C地址见表。

3.ADS1015的I2C地址

ADDR引脚ADS1015的I2C地址GND1001000VDD1001001SDA1001010SCL1001011----ADS1015I2C地址2023/4/2720第20页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展ADS1015有1个寻址寄存器和4个功能寄存器:输出寄存器存储最后一次转换的结果;配置寄存器可用于改变ADS1015的操作模式或查询器件的状态;低阈值和高阈值寄存器用来设置比较器。1)寻址寄存器访问ADS1015的寄存器需要借助寻址寄存器,通过向寻址寄存器中写入相应的值,来选择所需访问的寄存器。主机发出ADS1015的地址字节,并令最低位为低,然后接着发出要写往寻址寄存器的数据和终止条件。寻址寄存器会保持数据直到对其进行改变。4.ADS1015的寄存器

BIT7BIT6BIT5BIT40000BIT3BIT2BIT1BIT000寄存器地址BIT1BIT0寄存器00输出寄存器01配置寄存器10低阈值寄存器11高阈值寄存器寻址寄存器格式

功能寄存器地址

----ADS1015寻址寄存器2023/4/2721第21页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展2)输出寻址寄存器输出寄存器(只读)共有16位,但只有D4~D15是转换结果,采用二进制补码格式。复位或上电时,该寄存器的所有位被清零。BIT1514131211109876543210NAMED11D10D9D8D7D6D5D4D3D2D1D00000输出寄存器(只读)

----ADS1015输出寄存器2023/4/2722第22页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展3)配置寄存器配置寄存器

(读/写)用于配置ADS1015的工作模式、输入选择、采样转换速率、可编程增益和比较器的工作模式,见表10-7。配置中寄存器每一位的作用见表10-8。BIT15141312111098NAMEOSMUX2MUX1MUX0PGA2PGA1PGA0MODEBIT76543210NAMEDR2DR1DR0COMP_MODECOMP_POLCOMP_LATCOMP_QUE1COMP_QUE0表10-7配置寄存器(读/写)----ADS1015配置寄存器2023/4/2723第23页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展表10-8配置寄存器的作用

Bit[15]OS:工作状态或启动单次转换,该位只能在掉电模式时写入,写入“0”对工作模式没有影响,写1时启动一次单次转换。读该位时,如果结果为“0”表示芯片准备好进行转换,结果为“1”时表示没有准备好转换Bits[14:12]设置多路转换器的状态000:AINP=AIN0andAINN=AIN1(默认)001:AINP=AIN0andAINN=AIN3010:AINP=AIN1andAINN=AIN3011:AINP=AIN2andAINN=AIN3100:AINP=AIN0andAINN=GND101:AINP=AIN1andAINN=GND110:AINP=AIN2andAINN=GND111:AINP=AIN3andAINN=GNDBits[11:9]PGA[2:0]:设置可编程增益放大器的增益,改变输入信号的范围000:FS=±6.144V001:FS=±4.096V010:FS=±2.048V(默认)011:FS=±1.024V100:FS=±0.512V101:FS=±0.256V110:FS=±0.256V111:FS=±0.256VBit[8]MODE:芯片工作模式。0:连续转换模式;1:单次转换模式(默认)Bits[7:5]DR[2:0]:采样和转换速率000:128SPS001:250SPS010:490SPS011:920SPS100:1600SPS(默认)101:2400SPS110:3300SPS111:3300SPSBits[4:0]有关比较器工作模式和输出状态的设定位,详见器件手册----ADS1015配置寄存器2023/4/2724第24页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展4)低阈值和高阈值寄存器低阈值和高阈值寄存器都是16位的寄存器,它们的低4位固定为0,高12位用来保存数字比较器的阈值。当改变了PGA的增益后,需要对阈值进行重新调整。ADS1015的读写操作遵循基本的I2C总线的协议。在数据传输过程中,总线的启动和停止信号均由主机发出,但是需要根据ADS1015的特性发送相应的指令。例如,设置ADS1015工作在连续转换模式,然后读取转换结果,可发送如下命令。5.ADS1015的读写操作

----ADS1015读写操作2023/4/2725第25页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展第一步:配置ADS1015工作在连续转换模式。第一字节:10010000,I2C的地址,操作性质为写。第二字节:00000001,选择配置寄存器为操作对象。第三字节:00000100,配置寄存器的高8位数据。第四字节:10000011,配置寄存器的低8位数据。第二步:设置访问的寄存器为输出寄存器。第一字节:10010000,I2C的地址,操作性质为写。第二字节:00000000,选择输出寄存器为操作对象。第三步:读取转换结果。第一字节:10010001,I2C的地址,操作性质为读。第二字节:ADS1015作为从发送器发送的高8位转换结果。第三字节:ADS1015作为从发送器发送的低8位转换结果(只有高4位有效)。----ADS1015读写操作2023/4/2726第26页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展ADS1015写操作时序图为:----ADS1015写操作时序2023/4/2727第27页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展ADS1015的读操作时序图为:----ADS1015读操作时序2023/4/2728第28页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展ADS1015使用时数字电路部分连接关系简单,只需要正确连接I2C总线,同时通过ADDR引脚设置可编程地址,如图所示。

6.单片机与串行A/D转换器的接口方法

模拟电路部分需要考虑:根据输入信号的形式考虑好是单端还是差分输入形式。根据输入形式通过配置寄存器确定内部多路转换器的状态,使其与输入信号的形式相适应。根据输入信号的范围设置可编程增益,确保输入信号不会超出ADS1015的转换范围。----ADS1015接口方法2023/4/2729第29页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展下图为ADS1015采用差分方式实现负载电流检测的应用方案。通过采样电阻Rs将负载电流转换为电压;经过OPA335放大,OPA335的放大倍数为4倍。如果采样电阻上的压降为50mV,ADS1015的满量程输入电压为0.2V,则将其可编程增益设为16,即可进行负载电流监测。----ADS1015信号输入电路2023/4/2730第30页,共82页,2023年,2月20日,星期一10.1.2串行A/D转换扩展下面通过一个编程实例说明串行A/D转换器ADS1015的程序设计方法。例10-2

根据图10-7的电路来编写程序,控制ADS1015实现A/D转换。分析:ADS1015内部有配置寄存器,用来配置芯片的工作方式、可编程增益和采样速率等内容,在使用时需要根据自己的需要结合表10-8进行配置,否则得不到预期的结果。读出数据时在输出寄存器读取。这些功能都是通过编写适当的函数通过I2C总线访问相应寄存器来实现的。编写C语言程序如下(略)。7.串行A/D转换器编程举例

----ADS1015应用举例2023/4/2731第31页,共82页,2023年,2月20日,星期一10.2D/A转换扩展D/A转换器(DAC)是一种将数字信号转换成模拟信号的器件。D/A转换器为单片机系统将数字信号转换成模拟信号输出提供了一种接口。D/A转换器的分类:从数据接口方式分类有:并行D/A转换器和串行D/A转换器。从分辨率分类有:8位分辨率和高于8位分辨率的A/D转换器。并行D/A转换器根据其内部是否具有锁存器可以分为两类:一类是芯片内部有数据锁存器、片选信号和写信号,数据输入引脚可以直接和单片机的总线进行连接,不需要中间接口器件;另一类是芯片内部没有锁存器,不能直接与单片机的总线连接,中间必须加锁存器,或者通过并行接口与单片机进行连接。单片机与D/A转换器接口时,需要根据以上区别采取不同的设计方法。----D/A转换器分类2023/4/2732第32页,共82页,2023年,2月20日,星期一10.2.1并行D/A转换扩展经过8位D/A转换后输出的模拟信号基本能满足一般的控制精度要求,但对于控制精度要求较高的应用,则需要采用10位、12位甚至更高的D/A转换器。下面分别以8位并行D/A转换芯片DAC0832和12位并行D/A转换芯片DAC1210为例介绍并行D/A转换得扩展方法。----并行D/A转换器2023/4/2733第33页,共82页,2023年,2月20日,星期一10.2.1并行D/A转换扩展1.8位并行D/A转换芯片DAC0832及其单片机的接口方法DAC0832是带内部数据锁存器的单片式8位高速电流型并行输出的DAC,其内部逻辑结构如图所示。DAC0832的主要技术特性如下:转换时间为1s;数据输入可以采用单缓冲、双缓冲或直通方式;分辨率为8位;逻辑电平输入与TTL电平兼容;采用单一正电源供电。----8位并行D/A转换器2023/4/2734第34页,共82页,2023年,2月20日,星期一10.2.1并行D/A转换扩展DAC0832的引脚定义如图所示。DAC0832的主要引脚功能如下:/CS:片选信号,低电平有效,与ILE配合使用。该信号为高电平时,不能对输入锁存器进行写操作。ILE:允许输入锁存信号,高电平有效。该信号有效时才可能将数据线上的信息打入输入锁存器。/WR1:写信号1,低电平有效。该信号有效时才可能将数据线上的信息写入8位输入锁存器。/WR2:写信号2,低电平有效。该信号有效时才可能将数据从输入锁存器写到8位DAC寄存器。----DAC0832引脚2023/4/2735第35页,共82页,2023年,2月20日,星期一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引脚2023/4/2736第36页,共82页,2023年,2月20日,星期一10.2.1并行D/A转换扩展由于DAC0832有数据输入锁存器,因而可以直接与单片机的数据总线相连,DAC0832与MCS-51单片机的接口电路如下图所示。

DAC0832与MCS-51单片机的接口电路

----DAC0832接口方法2023/4/2737第37页,共82页,2023年,2月20日,星期一10.2.1并行D/A转换扩展例10-3

根据图10-10所示的DAC0832与单片机接口电路,编写程序,实现在VOUT端输出锯齿波形。分析:按图10-10所示的连接关系,DAC0832工作在单缓冲方式,并且其端口地址为7FFFH。程序如下:

P0832: MOV DPTR,#7FFFH ;DPTR指向DAC0832 MOV A,#0

LOOP:

MOVX@DPTR,A ;数据送到DAC0832 NOP ;延时,调整该时间可

;改变输出波形斜率

INC A LJMP LOOP----DAC0832应用举例2023/4/2738第38页,共82页,2023年,2月20日,星期一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转换器2023/4/2739第39页,共82页,2023年,2月20日,星期一10.2.1并行D/A转换扩展DAC1210的性能:电流建立时间是1s;单一电源(+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转换器性能2023/4/2740第40页,共82页,2023年,2月20日,星期一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接口方法2023/4/2741第41页,共82页,2023年,2月20日,星期一10.2.1并行D/A转换扩展例10-4

为DAC1210接口电路编写实现一次D/A转换的程序。设:R2中为D/A转换高8位数据,R3中为D/A转换低4位数据。编写程序如下:DA1210: PUSH DPL PUSH DPH MOV DPTR,#0E000H ;DPTR指向8位输入缓冲器

MOV A,R2 MOVX@DPTR,A ;送出高8位数据

MOV DPTR,#0C000H ;DATR指向4位输入缓冲器

MOV A,R3 MOVX@DPTR,A ;送出低4位数据

MOV DPTR,#2000H ;DPTR指向12位DAC寄存器

MOVX@DPTR,A ;选通12位DAC寄存器

POP DPH POP DPL RET----DAC1210应用举例2023/4/2742第42页,共82页,2023年,2月20日,星期一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转换器2023/4/2743第43页,共82页,2023年,2月20日,星期一10.2.2串行D/A转换扩展DAC7611的典型性能:12位分辨率;3线接口的数据同步传输,时钟频率最快可达20MHz;快速建立时间:7sto1LSB;0~4.095V满量程范围,最低有效位为1mV;内部集成参考源;异步复位清零;低功耗,采用5V电源时电流为0.5mA,2.5mW。----串行D/A转换器性能2023/4/2744第44页,共82页,2023年,2月20日,星期一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引脚2023/4/2745第45页,共82页,2023年,2月20日,星期一10.2.2串行D/A转换扩展DAC7611的满量程输出范围为0~4.095V,最低有效位对应1mV。在整个转换范围内保持线性关系。DAC7611的数字量输入为二进制原码,与模拟输出的关系见下表。2.DAC7611的输入/输出特性数字量输入模拟输出(V)描述FFFH+4.095满量程801H+2.049量程中点+1LSB800H+2.048量程中点7FFH+2.047量程中点–1LSB000H0零点----DAC7611输入/输出特性2023/4/2746第46页,共82页,2023年,2月20日,星期一10.2.2串行D/A转换扩展DAC7611的串行总线接口由数据信号SDI、时钟信号CLK和片选信号组成,还有一个装载信号和异步清零信号配合使用。基本电路连接如下图所示(图中的STC90C54是一款51内核单片机)。3.单片机与串行D/A转换器的接口方法

----DAC7611接口方法2023/4/2747第47页,共82页,2023年,2月20日,星期一10.2.2串行D/A转换扩展DAC7611的操作时序图:

从时序图中可以看出DAC7611工作在SPI模式3。----DAC7611操作时序2023/4/2748第48页,共82页,2023年,2月20日,星期一10.2.2串行D/A转换扩展DAC7611操作的真值表:

/CSCLK/CLR/LD串行移位寄存器DAC寄存器H×HH不变化不变化LLHH不变化不变化LHHH不变化不变化L↑HH移入1位不变化↑LHH移入1位不变化H×H↓不变化移位寄存器的值H×HL不变化透明状态H×L×不变化装入000HH×↑H不变化锁存000H----DAC7611操作关系2023/4/2749第49页,共82页,2023年,2月20日,星期一10.2.2串行D/A转换扩展DAC7611具有双缓冲机制,数据必须经过移位寄存器才能进入DAC寄存器,而模拟输出是根据DAC寄存器的数据进行转换的。当(/LD)信号的下降沿时数据由移位寄存器进入DAC寄存器,这样可以防止串行数据传输过程中移位寄存器的值不确定造成模拟量输出的不稳定。在不需要双缓冲的情况下,可以将(/LD)信号接地,使DAC寄存器呈现透明状态,但是每移入1位,模拟输出都会发生变化。因此,要保证在串行总线传输数据的过程中,D/A转换器输出没有异常变化,需要在对总线操作前将(/LD)信号拉高,数据传输结束后再给(/LD)信号一个负脉冲。只要(/CLR)信号为低电平,DAC寄存器的值就被设为000H,直到(/CLR)变为高,并且(/LD)信号拉低,重新装载移位寄存器的值。----DAC7611操作关系2023/4/2750第50页,共82页,2023年,2月20日,星期一10.2.2串行D/A转换扩展例10-5

串行D/A转换器DAC7611的程序设计方法举例。编写程序,控制DAC7611实现D/A转换。分析:根据DAC7611的工作原理,只需要通过串行接口向其内部寄存器写入要转换的数据即可,编写C语言程序如下:#include<reg52.h>#include<intrins.h>#defineuintunsignedintSbit CLK=P2^2; //配置相应的引脚Sbit SDI=P2^4;Sbit LD=P2^5;Sbit CLR=P2^6;Sbit CSN=P2^3;4.串行D/A转换器编程举例

----DAC7611应用举例2023/4/2751第51页,共82页,2023年,2月20日,星期一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应用举例2023/4/2752第52页,共82页,2023年,2月20日,星期一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&0x8000; //依次传输最高位的数据

clock(); value<<=1; }

CLK=1; _nop_();----DAC7611应用举例2023/4/2753第53页,共82页,2023年,2月20日,星期一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(0x800); //写入数据,进行D/A转换}----DAC7611应用举例2023/4/2754第54页,共82页,2023年,2月20日,星期一10.3日历时钟芯片扩展在单片机应用系统中经常用到与日期、时间有关的控制操作,如:收费系统、计量系统其中有许多与日期、时间有关的操作。这时在系统中加入一个日历时钟芯片,将给编程及操作带来很大的方便。

----日历时钟芯片2023/4/2755第55页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片85638563是Philips公司推出的内含I2C总线接口功能并具有极低功耗的多功能日历时钟芯片。8563的功能:多种报警定时器时钟输出中断输出“看门狗”内部低电压检测(1.0V)I2C总线通信8563是一款性价比极高的时日历钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器及电池供电的仪器仪表等产品领域。----日历时钟芯片性能2023/4/2756第56页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片8563宽电压范围1.0~5.5V,复位电压标准值Vlow=0~9V。超低功耗:典型值为0.25A(VDD=3.0V,Tamb=25℃)。可编程时钟输出频率为:32.768kHz,1024Hz,32Hz,1Hz。4种报警功能和定时器功能。内含复位电路、振荡器电容和掉电检测电路。开漏中断输出。400kHzI2C总线(VDD为1.8~5.5V)。I2C总线地址:读为0A3H,写为0A2H。8563的主要特性:----8563特性2023/4/2757第57页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片8563OSCI和OSCO:振荡器输入输出引脚。/INT:中断信号输出引脚。VDD和VSS:正电源与地。SDA:串行数据线。SCL:串行时钟信号线。CLKOUT:时钟信号输出引脚。8563采用SO8或DIP8封装形式。8563引脚定义:----8563引脚2023/4/2758第58页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片85638563的内部组成包括:1个可自动产生增量的地址寄存器;1个内置的32.768kHz的振荡器(带有一个内部集成的电容);1个分频器(用于给实时时钟RTC提供源时钟);1个可编程时钟输出;1个定时器;1个报警器;1个掉电检测器;1个400kHzI2C总线接口;----8563结构2023/4/2759第59页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片856316个可寻址的8位并行寄存器。2个控制/状态寄存器的地址是00H和01H;秒-年寄存器的地址是02~08H;报警寄存器的地址是09~0CH,用于定义报警条件;CLKOUT输出频率寄存器地址是0DH;定时器控制寄存器的地址是0EH;定时器寄存器的地址是0FH。秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器的编码格式为BCD;星期和星期报警寄存器不以BCD格式编码。----8563结构2023/4/2760第60页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片8563控制/状态寄存器1的地址是00H,其各位的定义和功能见下表。1.控制/状态寄存器1Bit定义功能7TEST1TEST1=0,普通模式;TEST1=1,EXT_CLK测试模式5STOPSTOP=0,芯片时钟运行;STOP=1,所有芯片分频器异步逻辑0,芯片时钟停止运行(CLOCK在32768Hz时可用)3TESTCTESTC=0,电源复位功能失效;TESTC=1,电源复位功能有效(普通模式置逻辑0)6,4,2,1,00默认值为逻辑0----8563控制寄存器2023/4/2761第61页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片8563控制/状态寄存器2的地址是01H,其各位的定义和功能见下表。2.控制/状态寄存器2Bit定义功能7,6,50默认值为逻辑04TI/IP一直有效3AF当报警发生时,AF被置逻辑1,当定时器倒计数结束时,TF被置逻辑1,在被软件重写前一直保持原值;若有定时器和报警中断请求时,中断源由AF和TF决定;若要清除一个标志位而防止另一个标志位被重写,应使用逻辑指令AND2TF1AIE标志位AIE和TIE决定一个中断请求的有效或无效;当AF或TF有一个为1时,中断是AIE和TIE都必须置1时的逻辑或。AIE=0,报警中断无效,AIE=1,报警中断有效;TIE=0,定时器中断无效,TIE=1,定时器中断有效0TIE----8563控制寄存器2023/4/2762第62页,共82页,2023年,2月20日,星期一10.3.1日历时钟芯片8563秒、分、时寄存器的地址、各位定义和功能见下表。3.秒、分、时寄存器寄存器地址Bit定义功能秒寄存器02H7VLVL=0,保证准确的时钟日历数据VL=1,不保证准确的时钟日历数据6~0<秒>代表BCD格式的当前秒数值分寄存器03H7—无效6~0<分>代表BCD格式的当前分钟数值小时寄存器04H7~6—无效5~0<分>代表BCD格式的当前小时数值----8563时分秒寄存器2023/4/2763第63页,共82页,2023年,2月20日,星期一10.3.2单片机与日历时钟芯片的接口方法例10-6

本例说明日历时钟芯片与51单片机的接口方法。接口电路如图所示。编写读写操作程序。分析:根据8563工作原理,其接口方法和24C01与单片机接口方法相同。编写程序如下:

----8563应用举例2023/4/2764第64页,共82页,2023年,2月20日,星期一10.3.2单片机与日历时钟芯片的接口方法;读8563时间参数至单片机内部RAM的30H~36H单元

DT EQU B DATA0 EQU 0 ;R0

ADDR EQU 1 ;R1RTIME: MOV A,#2 MOV ADDR,A MOV A,#30H MOV DATA0,A MOV A,#0A3H MOV DT,A CALL READN ;该子程序在 ;例9-1中给出

RET;将内部RAM的30H~36H单元的时间参数写入8563WTIME:MOV A,#2 MOV ADDR,A MOV A,#30H MOV DATA0,A MOV A,#0A2H MOV DT,A CALL WRITEN;该子程序

;在例9-1中给出

RET----8563应用举例2023/4/2765第65页,共82页,2023年,2月20日,星期一10.4IC卡扩展IC卡是将集成电路芯片镶嵌于塑料基片中、封装成卡的形状,外形与磁卡相似。IC卡是一种电路卡,它在读写性能上优于磁卡和光卡,在使用上更容易进行操作,因而得到了广泛应用。IC卡可以分成下列3类:存储卡:卡中的集成电路仅是EEPROM芯片,是较简单的IC卡。逻辑加密卡:卡中的集成电路除具有EEPROM芯片外,还有加密逻辑。CPU卡:卡中的集成电路包括CPU,RAM,ROM,EEPROM和固化在ROM中的片内操作系统。本节以SLE4442逻辑加密卡为例讨论IC卡与单片机接口方法。----IC卡分类2023/4/2766第66页,共82页,2023年,2月20日,星期一10.4.1SLE4442IC卡引脚卡触点定义功能1C1VCC正电源2C2RST复位3C3CLK时钟4C4NC未用5C5GND地6C6NC未用7C7I/O双向数据(漏极开路)8C8NC未用

SLE4442IC卡是德国西门子(Simens)公司设计的逻辑加密存储卡,应用广泛,主要性能有:接触式IC卡;8个触点(其中有3个未定义);256B的存储容量;完全独立的可编程代码存储器(PSC);有高、低两种供电电压芯片(+5V或+2.7V);存储器具有至少10000次的擦写周期;数据保持时间至少10年。

SLE4442卡触点定义和功能----SLE4442IC卡2023/4/2767第67页,共82页,2023年,2月20日,星期一10.4.1SLE4442IC卡SLE4442IC卡芯片内部主要包括3个存储器空间。1.EEPROM主存储器主存储器分为两部分:数据保护区(32B,地址0~31),数据读出不受限制,写入则受保护存储器内部数据状态的限制,当保护存储器中第N位(N=0~31)为1时,对应主存储器中第N字节允许进行擦除和写入操作。应用数据区(224B,地址32~255),数据读出不受限制,擦除和写入受加密存储器数据校验结果的控制。加密校验控制对整个主存储器(保护数据区和应用数据区)均有效。----SLE4442IC卡结构2023/4/2768第68页,共82页,2023年,2月20日,星期一10.4.1SLE4442IC卡2.32位PROM型保护存储器一次性编程,以保护主存储器的保护数据区,防止一些固定的标志参数被改动。3.4×8位EEPROM型加密存储器第0字节为密码输入错误计数器EC。EC的有效位是低3位。芯片初始化时设置成“111”,这一字节是可读的。第1,2,3字节为参照字存储区,这3字节的内容作为一个整体被称为可编程加密代码(PSC),其读出、写入和擦除均受自身比较操作结果的控制。----SLE4442IC卡结构2023/4/2769第69页,共82页,2023年,2月20日,星期一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卡操作2023/4/2770第70页,共82页,2023年,2月20日,星期一10.4.2SLE4442IC卡数据传送协议(1)外部复位SLE4442IC卡基于同步复位响应的传送协议。芯片的复位响应时序如上图所示。(2)上电复位把操作电压加到VCC之后,芯片内部进行复位操作,I/O线被置为高电平状态,必须在对任意地址进行读操作或作一个复位响应操作之后,才可以进行数据交换。(3)中止中止状态的时序如图所示。在CLK为低状态期间,如果RST置为高状态,则任何操作均无效,I/O线被锁定到高状态,需要一个最小维持时间tres=5s之后,芯片才能接受新的有效复位。中止状态之后芯片又准备下一步操作。----SLE4442IC卡操作2023/4/2771第71页,共82页,2023年,2月20日,星期一10.4.2SLE4442IC卡数据传送协议完成复位操作以后,芯片进入等待状态。用户可以向IC卡发送操作命令,每条命令都从一个起始状态开始。起始状态之后是命令字节,命令包括3字节,共24位。随后紧跟着一个附加脉冲并用一个停止状态来结束操作。命令模式的时序如图所示。起始状态:在CLK为高电平期间,I/O口线上的信号下降沿为起始状态。停止状态:在CLK为高电平期间,I/O口线上的信号上升沿为停止状态。2.命令模式----SLE4442IC卡命令2023/4/2772第72页,共82页,2023年,2月20日,星期一10.4.2SLE4442IC卡数据传送协议IC卡接受一个命令之后,可以有两种工作模式:输出数据模式(即读数据)和处理数据模式。输出数据模式的时序如图所示。在输出数据模式下,IC卡将芯片中的数据传送到外部设备接口。在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效,随后每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上。传送顺序从每个字节的最低位(LSB)开始,当所需要的最后一位数据被送出以后,需要再附加

温馨提示

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

评论

0/150

提交评论