资源描述
温州大学
WENZHOU UNIVERSITY COLLEGE OF PHYSICS&ELECTRONIC INFORMATION ENGINEERING
电子系统设计期末作业(论文)
题 目: 关于TLV5632与80C51接口测电压
专 业:
班 级:
姓 名:
学 号:
指导教师:
完成日期: 2010年6月24日
9
关于TLV5632与80C51接口测电压
摘要:A/D转换器芯片与单片机的接口是数字量接口,其原理与并行I/O输入接口相同,需要有三态缓冲功能。即A/D转换器芯片必须通过三态门“挂上”数据总线,该电路能较好地控制模拟信号的采集和转换。
关键字:TLV5632 ADC0808 80C51 接口 电压
正文:TLV5632 是8通道,电压范围在2.7V到5.5V的单电源数模转换器,基于电阻串联结构。他们组成了一个串行接口,有速度和断电控制逻辑,内部参考,电阻串,以及轨对轨输出缓冲。芯片形状如下所示
。
串行时钟频率和更新速率
串行时钟频率,最高可以表示为:
最高更新率是:
注意,最大更新率只是一个理论值的串行接口
TLV5632内部功能框图如下所示
各个接口如下所示
AGND:模拟接地端 LDAC:运行DAC,这个DAC只能被更新,
AVDD:模拟电源供应口 输入信号较低,将产生一个一部输出
DGND:数字接地端 MODE:模式转换,如果输入信号为高电平,则
DIN:数字串行数据输入口 进入us模式,反之进入dsp模式
DOUT:数字串行数据输出口 PRE:预置输入
DVDD:数字电源供应口 REF:参考输入/输出电压
FS:帧同步输入 SCLK:串行时钟输入
OUTA-PUTH 12-15,6-9:DAC的8个输出口
80C51单片机各个接口如下图所示
80C51是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。
80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,80C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。80C51有PDIP(40pin)和PLCC(44pin)两种封装形式。
Vss(20脚):接地
VCC(40脚): 主电源+5V
XTAL1(19脚):接外部晶体的一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚): 接外部晶体的另一端。在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。
RST(9脚): 单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)
PSEN(29脚): 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
ALE/PROG(30脚):在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
EA/VPP(31脚): 当EA端输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。
输入/输出引脚:
(1) P0.0—P0.7 (39脚—32脚)
(2) (2)P1.0—P1.7 (1脚—8脚)
(3) (3)P2.0—P2.7 (26脚—21脚)
(4) (4)P3.0—P3.7 (10脚—17脚)
TLV5632与单片机的接口如下图所示
由于TLV5632是一家私人公司的芯片,很多地方不能了解清楚及深入研究,用ADC0808行替换
设计硬件电路模拟如下所示
设计软件程序如下
#include<reg52.h>
unsigned char code dispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char dispbuf[4];
unsigned int i;
unsigned int j;
unsigned char getdata;
unsigned int temp;
unsigned int temp1;
unsigned char count;
unsigned char d;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P17=P1^7;
void TimeInitial();
void Delay(unsigned int i);
void TimeInitial()
{ TMOD=0x10;
TH1=(65536-200)/256;
TL1=(65536-200)%256;
EA=1;
ET1=1;
TR1=1;
}
void Delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
{
for(j=0;j<125;j++)
{;}
}
}
void Display()
{
P1=dispbitcode[dispbuf[3]];
P20=0;
P21=1;
P22=1;
P23=1;
Delay(10);
P1=0x00;
P1=dispbitcode[dispbuf[2]];
P17=1;
P20=1;
P21=0;
P22=1;
P23=1;
Delay(10);
P1=0x00;
P1=dispbitcode[dispbuf[1]];
P20=1;
P21=1;
P22=0;
P23=1;
Delay(10);
P1=0x00;
P1=dispbitcode[dispbuf[0]];
P20=1;
P21=1;
P22=1;
P23=0;
Delay(10);
P1=0x00;
}
void main()
{
TimeInitial();
while(1)
{
ST=0;
OE=0;
ST=1;
ST=0;
P34=0;
P35=0;
P36=0;
while(EOC==0);//查询转换结束
OE=1;
getdata=P0;
OE=0;
temp=getdata*1.0/255*500;
dispbuf[0]=temp%10;
dispbuf[1]=temp/10%10;
dispbuf[2]=temp/100%10;
dispbuf[3]=temp/1000;
Display();
}
}
void t1(void) interrupt 3 using 0
{
TH1=(65536-200)/256;
TL1=(65536-200)%256;
CLK=~CLK;
}
如下所示
结论:通过这次的实验设计我深刻认识到自己的不足,同时认识的了知识的重要性,单片机以前不怎么好好学习,现在很多都需要回去看单片机课本,同时动手实践能力也很薄弱。希望在以后多加努力丰富课业知识。
参考文献【1】李广弟,朱月秀等 《单片机基础》 北京航空大学出版社
【2】陈阳海 51系利单片机的基础知识 电子制作 200年12月
【3】元增民 AT89C51单片机与ADC0809模数转换器的三种典型应用 长沙大学报
2005年9月
【4】宁玉门,胡清 单片机控制AD 转换实验在PROTES虚拟环境中的实现 福建电脑
2009年第6期
展开阅读全文