串行AD转换器TLC549的应用设计.docx

上传人:b****7 文档编号:24005313 上传时间:2023-05-23 格式:DOCX 页数:13 大小:98.22KB
下载 相关 举报
串行AD转换器TLC549的应用设计.docx_第1页
第1页 / 共13页
串行AD转换器TLC549的应用设计.docx_第2页
第2页 / 共13页
串行AD转换器TLC549的应用设计.docx_第3页
第3页 / 共13页
串行AD转换器TLC549的应用设计.docx_第4页
第4页 / 共13页
串行AD转换器TLC549的应用设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

串行AD转换器TLC549的应用设计.docx

《串行AD转换器TLC549的应用设计.docx》由会员分享,可在线阅读,更多相关《串行AD转换器TLC549的应用设计.docx(13页珍藏版)》请在冰豆网上搜索。

串行AD转换器TLC549的应用设计.docx

串行AD转换器TLC549的应用设计

一.8位串行模数转换器TLC549的应用

1.1概述

  TLC549是美国德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过CLK、CS、DATAOUT三条口线进行串行接口。

具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17μs,TLC549为40000次/s。

总失调误差最大为±0.5LSB,典型功耗值为6mW。

采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,VREF-接地,VREF+-VREF-≥1V,可用于较小信号的采样。

(一)

1.2芯片简介

TLC549的内部框图和管脚名称

TLC549的内部框图和引脚名称如图1所示。

1.3极限参数

  TLC549的极限参数如下:

●电源电压:

6.5V;

  ●输入电压范围:

0.3V~VCC+0.3V;

  ●输出电压范围:

0.3V~VCC+0.3V;

  ●峰值输入电流(任一输入端):

±10mA;

  ●总峰值输入电流(所有输入端):

±30mA;

  ●工作温度:

TLC549C:

0℃~70℃

    TLC549I:

-40℃~85℃

    TLC549M:

-55℃~125℃

(二)

1.4工作原理

  TLC549均有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无须特殊的速度或相位匹配。

其工作时序如图2所示。

  当CS为高时,数据输出(DATAOUT)端处于高阻状态,此时I/OCLOCK不起作用。

这种CS控制作用允许在同时使用多片TLC549时,共用I/OCLOCK,以减少多路(片)A/D并用时的I/O控制端口。

一组通常的控制时序为:

(1)将CS置低。

内部电路在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端上。

  

(2)前四个I/OCLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/OCLOCK下降沿开始采样模拟输入。

  (3)接下来的3个I/OCLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个转换位,

  (4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。

保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。

第8个I/OCLOCK后,CS必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。

如果CS为低时I/OCLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;若CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。

在36个内部系统时钟周期结束之前,实施步骤

(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。

  若要在特定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/OCLOCK时钟下降沿开始采样,却在第8个I/OCLOCK的下降沿开始保存。

图(三)

1.5应用接口及采样程序

  TLC549可方便地与具有串行外围接口(SPI)的单片机或微处理器配合使用,也可与51系列通用单片机连接使用。

与51系列单片机的接口如图3所示。

其采样程序框图如图4所示,实际应用程序清单如下:

图(四)

初始化:

SETBP1.2  ;置CS为1。

   CLRP1.0  ;置I/OCLOCK为零。

   MOVR0,#00H;移位计数为零。

A/D过程:

A/DP:

CLRP1.2

   NOP ;等待1.4μs,NOP数根据晶振情况选择

NXT:

SETBP1.0

MOVC,P1.1

   RLCA

   CLRP1.0

   INCR0

   CJNER0,#8,NXT

   MOVR0,#00

   SETBP1.2

   MOVDTSVRM,A;

DTSVRM:

DATASAVERAM.

   RET

TLC549片型小,采样速度快,功耗低,价格便宜,控制简单.适用于低功耗的袖珍仪器上的单路A/D或多路并联采样。

二、74LS164功能及应用

2.1了解74LS164

在单片机系统中,如果并行口的IO资源不够,而串行口又没有其他的作用,那么我们可以用74LS164来扩展并行IO口,节约单片机资源。

74LS164是一个串行输入并行输出的移位寄存器。

并带有清除端。

其中;Q0—Q7并行输出端。

A,B串行输入端。

MR清除端,为0时,输出清零。

CP时钟输入端。

74LS164引脚定义

74LS164逻辑表

图(五)

74ls164参考实验照片:

图(六)

2.2掌握的74LS164工作原理

当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。

串行数据输入端(A,B)可控制数据。

当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。

当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。

三各程序模块的功能:

在程序设计中,我们主要分五个模块来完成,分别是主程序,AD转换读入数据程序,数据处理程序,显示程序这五大块,下面将分别对每一个模块的功能进行分析

3.1主程序

各个子程序都是通过这个主程序调用进来,再执行各模块的功能的。

在主程序中首先对一些下面要用到的I/0口,数据存储地址,中断首地址等进行设置。

接下来首先打开中断随时检测是否有按键按下,再调用数据采集模块”READ”读入数据,需要采集两次,然后调用数据处理模块”DIS”,接下来再调用显示模块”DISPLAY”,最后在调用量程检测模块检测是否超限。

程序如下:

CLKBITP3.4

DOBITP3.5

CSBITP3.1

KEYEQU40H

ORG0000H

LJMPMAIN

ORG0003H

AJMPKEY_BOARD

ORG0050H

;*************************主程序

MAIN:

CLRP1.6

MOVP1,#00H

MOV30H,#00H

MOV31H,#00H

MOV32H,#00H

MOV33H,#05

MOV34H,#0

SETBIT0

SETBEX0

SETBEA

AD:

SETBDO

SETBCS

CLRCLK

CLRCS;启动转换

ACALLREAD;读数据

SETBCS

ACALLDELAY

CLRCS;再次AD启动转换

ACALLREAD;再次读数据

SETBCS

ACALLDIS;数据处理

ACALLDISPLAY;数据显示

ACALLBAOJING;检测量程

2数据采集模块

这个模块主要是利用8位串行模数转换器TLC549采集电压信号,然后转换成数字信号存在累加器A中。

程序如下:

;*****************AD转换读入数据

READ:

MOVC,DO

RLCA

MOVR7,#07H

RE:

SETBCLK

NOP

NOP

CLRCLK

NOP

NOP

MOVC,DO

RLCA

DJNZR7,RE

SETBCLK

NOP

NOP

CLRCLK

NOP

NOP

RET

3.3数据处理模块

这个模块的主要功能就是对转换成的数字信号进行处理,并把处理好的数据存放在30H和31H中。

程序如下:

;**********************数据处理

DIS:

MOVR2,A

MOVA,R2

MOVB,#51

DIVAB

MOVDPTR,#TAB

MOVKEY,A

MOVCA,@A+DPTR

MOV30H,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP2

ADDA,#5

LOOP2:

MOVCA,@A+DPTR

MOV31H,A

RET

3.4数据显示模块

主要是把上一个模块所处理得到的数据,通过51单片机上的p1.0和p1.1两个口控制74LS164显示出来,p1.1口主要负责产生上升沿,p1.0口负责传送数据,每一个上升沿传一位,传完八位即传完一个数。

程序如下:

;*********************显示

DISPLAY:

MOVR1,#08

MOVA,31H

LOP1:

RLCA

MOVP1.0,C

CLRP1.1

SETBP1.1

DJNZR1,LOP1

MOVR5,#08

MOVA,30H

LOP2:

RLCA

MOVP1.0,C

CLRP1.1

SETBP1.1

DJNZR5,LOP2

ACALLDELAY1

RET

3.5键盘扫描模块

这个模块主要设置系统所采集电压信号的大小量程。

程序如下:

;*********************键盘扫描

KEY_BOARD:

MOVp2,#0FH

MOVA,P2

KEY1:

JBACC.0,KEY2

ACALLDELAY2

JBACC.0,KEY2

MOV33h,#02h

MOV34H,#01H

JMPCCC

KEY2:

JBACC.1,KEY3

ACALLDELAY

JBACC.1,KEY3

MOV33h,#03h

MOV34H,#02H

JMPCCC

KEY3:

JBACC.2,CCC

ACALLDELAY2

JBACC.2,CCC

MOV33h,#04h

MOV34h,#02h

CCC:

NOP

RETI

3.6上下限设置模块

此模块主要用于检测电压的大小,是否超出量程,若超出则指示灯发光,若不超出则返回继续测量电压。

程序如下:

;*******************设置上下限

BAOJING:

CLRC

CLRp1.6

MOVA,KEY

CJNEA,33H,AAA1

AAA1:

JCAAA2

SETBP1.6;超限报警灯亮

LCALLDELAY2

SJMPAD

AAA2:

CJNEA,34H,AAA3

AAA3:

JNCAD

SETBP1.6

LCALLDELAY2

SJMPAD

RET

3.7延时模块

这主要是为了其它子程序模块所需要用到的延时模块,从此调用。

如在检测按键按下时就要用到延时程序,还有数码管的显示上等。

程序如下:

;*******************20u秒延时

DELAY:

MOVR6,#05H;

D1:

NOP

NOP

DJNZR6,D1

RET

;*******************1MS延时

DELAY1:

MOVR4,#250D2:

NOP

NOP

DJNZR4,D2

RET

;*******************5MS延时

DELAY2:

MOVR3,#05H

D3:

ACALLDELAY1

DJNZR3,D3

RET

四、结果分析:

打开电源开关,连接好所有接口,先把电压调节按钮至最小,此时74LS164显示出电压大小为0,正确。

接着不断调大电压大小,显示屏上电压也不断的连续增大,当达到5V时,显示也是5V,也正确。

接下来就用按键选择电压量程,当按下第一个按键时,此时量程为1-2V,接着调大电压,当超过2V时,电压报警指示灯就马上发光报警,结果正确。

接下来选选择按下按键二,选择的量程为2-3V,调节电压大小,当电压小于2V时,报警指示灯发光;再增大电压,当电压大于3V时,报警指示灯也发光报警,结果正确。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1