实验四 串行AD转换实验

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南昌大学实验报告

学生姓名:学号:专业班级:

实验类型:□验证□综合□√设计□创新实验日期:实验成绩:

实验四串行A/D 转换实验

一、实验目的

1.熟悉八位串行AD转换器TLC549的性能及转换过程。

2.掌握单片机和TLC549硬件联接及软件编程。

二、实验内容

使用TLC549 实现单片机模数转换。模拟信号为0~5V 电位器分压输出,单片机读取模拟信号,并在数码管上用十六进制形式显示出来。

三、实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证。四、实验说明和电路原理图TLC549是一种采用8位逐次逼近式工作的A/D转换器。内部包含系统时钟、采样和保持、8 位A/D转换器、数据寄存器以及控制逻辑电路。TLC549每25uS重复一次“输入——转换——输出”。器件有两个控制输入:I/O CLOCK和片选(CS)。

内部系统时钟和I/O CLOCK可独立使用。应用电路的设计只需利用I/O时钟启动转换或读出转换结果。当CS为高电平时,DA TA OUT处于高阻态且I/O时钟被禁止。当CS变为低电平时,前次转换结果的᳔高有效位(MSB)开始出现在DA TA OUT端。在接下来的7个I/O CLOCK周期的下降沿输出前次转换结果的后7位,至此8位数据已经输出。然后再将第8 个时钟周期加至I/O CLOCK,此时钟周期的下跳沿变使芯片进行下一轮的AD 转换。在第8个I/O CLOCK周期之后,CS必须变为高电平,并且保持高电平直至转换结束为止(>17uS),否则CS的有效高电平至低电平的转换将引起复位(其它详细资料看芯片说明)。本实验需要用到CPU 模块(F3 区)、电位器模块(E2 区)、串行模数转换模块(D5 区)、串行静态数码显示模块(B4 区)。TLC549 串行模数转换电路原理参见下图。

串行模数转换电路图

四、实验步骤

1)系统各跳线器处在初始设置状态。

用导线对应连接串行模数转换模块的CS_549、DATA、CLK 到CPU 模块的P12、P10、P11;电位器模块的输出端接串行模数转换模块的AIN;

CPU 模块的P16、P17 接串行静态数码显示模块DIN、CLK。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。

3)数码管以十六进制形式显示模拟量,手动调节输入电位器,改变输入模拟量电压的大小,数码管显示将随之变化。

五、实验程序代码

//****************************************************************

DAT BIT P1.0

CLK BIT P1.1

CS BIT P1.2

DBUF EQU 30H

TEMP EQU 40H

AD_DATA EQU 50H

DIS_DOUT BIT P1.6

DIS_CLK BIT P1.7

ORG 0000H

LJMP START

ORG 0100H

START:

MOV DBUF+3,#0AH ;显示“A”

MOV DBUF+2,#0DH ;显示“D”

MOV SP,#60H

ACALL TLC549_ADC

MOV AD_DA TA,A ;存转换结果

MOV B,A

SWAP A

ANL A,#0FH

MOV DBUF+1,A ;转换结果高位送显示缓存

INC R0

MOV A,B

ANL A,#0FH

MOV DBUF,A ;转换结果低位送显示缓存

ACALL DISPLAY ;显示16进制转换结果

ACALL DELAY

SJMP START

TLC549_ADC:

CLR A

CLR CLK

CLR CS

MOV R6,#8

ADLOOP:

SETB CLK

NOP

NOP

MOV C,DA T

RLC A

CLR CLK

NOP

DJNZ R6,ADLOOP

SETB CS

SETB CLK

RET

DISPLAY:

MOV R0,#DBUF

MOV R1,#TEMP

MOV R2,#4

DP10: MOV DPTR,#SEGTAB

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC R0

INC R1

DJNZ R2,DP10

MOV R0,#TEMP

MOV R1,#4

DP12: MOV R2,#8

MOV A,@R0

DP13: RLC A

MOV DIS_DOUT,C

CLR DIS_CLK

SETB DIS_CLK

DJNZ R2,DP13

INC R0

DJNZ R1,DP12

RET

SEGTAB: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5

DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,B

DB 58H,5EH,79H,71H,0,00H ;C,D,E,F,-

DELAY:

MOV R4,#0FFH

DELOOP:

MOV R5,#0FFH

DJNZ R5,$

DJNZ R4,DELOOP

RET

END

六.实验结果和小结

把程序下载到实验板上后,调节电位器,可以发现数码管上的数值从00到FF变化,最大的电压为5V,而最小的是0V,通过改变电压的大小来达到模数转换的要求。可以把5V分成256份,电压每变化一份,数码管上显示的数值就变化一次,加一或者减一。

通过这次的实验,我们看到了数模转换的过程以及程序和原理,但是在计数方面我们对程序没有做太大的改变,仍需要努力。

相关文档
最新文档