首页 理论教育 单片机原理与接口技术:数据采集与转换

单片机原理与接口技术:数据采集与转换

时间:2023-11-16 理论教育 版权反馈
【摘要】:1 TLC549芯片ADC数据采集硬件设计单片机使用ADC芯片转换数据,通过如图8-13所示电路还可输出存储的数据,完成数据采集。图8-14 ADC0808数字电压表电路程序设计ADC0808进行ADC转换时需要CLOCK信号,而ADC0808的CLOCK信号接在单片机的P2.4引脚,CLOCK信号要求采用软件来产生。

单片机原理与接口技术:数据采集与转换

1 TLC549芯片ADC数据采集

(1)硬件设计

单片机使用ADC芯片转换数据,通过如图8-13所示电路还可输出存储的数据,完成数据采集。

978-7-111-54295-7-Chapter08-20.jpg

图8-13 TLC549芯片ADC数据采集

(2)程序设计

DAT BIT P1.0

CS BIT P1.1

CLK BIT P1.2

ADDATA DATA 40H

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:MOV SP,#60H

ACALL TLC549ADC;先进行一次采集

MOV R7,#0FFH

DJNZ R7,$;延时

ACALL TLC549ADC;获得上次采集的结果

MOV ADDATA,A;存储采集结果

SJMP $

TLC549ADC:SETB CLK

CLR A

CLR CLK

CLR CS;选中TLC549

MOV R6,#8

LP1:SETB CLK

NOP

NOP

MOV C,DAT

RLC A

CLR CLK;DAT=0,为下一次读出数据做准备

NOP

DJNZ R6,LP1

SETB CLK

RET

END

2 ADC0808数据输出

(1)硬件设计

使用单片机与ADC0808设计数字电压表,其电路如图8-14所示。电压表能够测量0~5V之间的直流电压,4位数码管显示。

978-7-111-54295-7-Chapter08-21.jpg

图8-14 ADC0808数字电压表电路

(2)程序设计

ADC0808进行ADC转换时需要CLOCK信号,而ADC0808的CLOCK信号接在单片机的P2.4引脚,CLOCK信号要求采用软件来产生。

LED_0 EQU 30H

LED_1 EQU 31H

LED_2 EQU 32H

ADC EQU 35H

CLOCK BIT P2.4

ST BIT P2.5

EOC BIT P2.6

OE BIT P2.7

ORG 0000H

SJMP START

ORG 000BH

LJMP INT_T0

START:MOV LED_0,#0FFH;关显示,采用共阳极数码管

MOV LED_1,#0FFH

MOV LED_2,#0FFH

MOV DPTR,#TABLE

MOV TMOD,#02H;方式2,自动重置

MOV TH0,#245;初值11μs

MOV TL0,#245

MOV IE,#82H

SETB TR0

WAIT:CLR OE

CLR ST

SETB ST;ST下降沿时,A-D转换

CLR ST

JNB EOC,$;等待转换结束,EOC=1

SETB OE;OE=1,转换结果输出

MOV ADC,P1

CLR OE

MOV A,ADC;数据处理

MOV B,#51;255/51=5V,最高电压

DIV AB

MOV LED_2,A

MOV A,B

MOV B,#5

DIV AB

MOV LED_1,A

MOV LED_0,B

LCALL DISP;调用显示子程序

SJMP WAIT

INT_T0:CPL CLOCK;提供ADC0808时钟500kHz

RETI

DISP:MOV A,LED_0

MOVC A,@A+DPTR

CLR P2.3;个位选

MOV P0,A;段选

LCALL DELAY

SETB P2.3

MOV A,LED_1

MOVC A,@A+DPTR

CLR P2.2;十位选

MOV P0,A;段选

LCALL DELAY

SETB P2.2(www.xing528.com)

MOV A,LED_2

MOVC A,@A+DPTR

CLR P2.1

ANL A,#7FH;百位选+小数点

MOV P0,A;段选

LCALL DELAY

SETB P2.1

RET

DELAY:MOV R6,#10

D1:MOV R7,#200

DJNZ R7,$

DJNZ R6,D1

RET

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H

DB 92H,82H,0F8H,80H,90H

END

3 数据采集转换输出

(1)硬件设计

硬件设计如图8-15所示。

978-7-111-54295-7-Chapter08-22.jpg

图8-15 数据采集转换输出

(2)程序设计

ORG 0000H

START:MOV DPTR,#7FFFH;设定P2.7为0

MOVX @DPTR,A;为ADC0808的ALE和START产生上升沿及下降沿

MOV R7,#100;延时,采用定时取数的方法,延时约200μs

DJNZ R7,$

MOVX A,@DPTR;产生OE为“1”信号

MOV R0,A

LCALL TUNBCD;调用输入数据子程序

LCALL DISP;调显示程序

AJMP START

/***数据显示程序***/

DISP:MOV R7,#255

LOOP:MOV A,7AH

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P2,#01H

MOV P1,A

LCALL DELAY

MOV A,79H

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P2,#02H

MOV P1,A

LCALL DELAY

MOV DPTR,#TAB

MOV A,78H

MOVC A,@A+DPTR

MOV P2,#04H

MOV P1,A

LCALL DELAY

MOV P2,#08H

MOV P1,#0C0H

LCALL DELAY

DJNZ R7,LOOP

RET

/***输入数据处理程序***/

TUNBCD:MOV A,R0

MOV B,#51

DIV AB

MOV 7AH,A

MOV A,B

CLR F0

SUBB A,#1AH

MOV F0,C

MOV A,#10

MUL AB

MOV B,#51

DIV AB

JB F0,LOOP2

ADD A,#05H

LOOP2:MOV 79H,A

MOV A,B

CLR F0

SUBB A,#1AH

MOV F0,C

MOV A,#10

MUL AB

MOV B,#51

DIV AB

JB F0,LOOP3

ADD A,#05H

LOOP3:MOV 78H,A

RET

/***延时子程序***/

DELAY:MOV R4,#0FFH

DJNZ R4,$

MOV R4,#0FFH

DJNZ R4,$

RET

/***个位,带小数点***/

TABLE:DB 40H,79H,24H,30H,19H,12H

/***小数后数据***/

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

END

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈