实验四 串行AD转换实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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份,电压每变化一份,数码管上显示的数值就变化一次,加一或者减一。
通过这次的实验,我们看到了数模转换的过程以及程序和原理,但是在计数方面我们对程序没有做太大的改变,仍需要努力。