当前位置:文档之家› 12位AD转换器与单片机地接口电路设计

12位AD转换器与单片机地接口电路设计

课程设计任务书2012/2013 学年第 1 学期学院:电子与计算机科学技术学院专业:学生姓名:学号:课程设计题目:12位A/D转换器与单片机的接口电路设计起迄日期:课程设计地点:指导教师:系主任:下达任务书日期: 2012年12月19日课程设计任务书课程设计任务书目录第一章设计任务及功能要求 (5)1.1摘要 (5)1.2设计课题及任务 (5)1.3功能要求及说明 (5)第二章硬件设计 (6)2.1 系统设计元器件功能说明 (7)2.2 硬件电路总体及部分设计 (10)第三章软件设计 (12)3.1 基本原理容设计 (12)3.2 keil编程调试 (13)3.3 proteus仿真电路图 (19)第三章结果分析及总结 (19)附录 (20)第一章设计任务及功能要求1.1摘要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,单片机对我们的生活影响越来越大,很多工业领域中都用到单片机,日常生活中我们也离不开单片机的应用。

当今社会是数字化的社会,是数字集成电路广泛应用的社会,随着电子产业数字化程度的不断发展,逐渐形成了以数字系统为主体的格局。

A/D和D/A转换器作为模拟和数字电路的借口,正受到日益广泛的关注。

随着数字技术的飞速发展,人们对A/D和D/A 转换器的要求也越来越高,新型模拟/数字和数字/模拟之间的转换技术不断涌现,正是因为这些,高集成度的逻辑器件应运而生,而且发展迅速,它不断地更新换代以满足程序的要求,并尽可能的提高其利用率。

本课程设计就对其中AD574模数转换器在微机数据采集系统中的应用加以阐述。

关键字:AD574转换器,80c51单片机,LED数码显示,串行输出1.2 设计课题及任务1.掌握电子电路的一般设计方法和设计流程;2.学习简单电路系统设计,掌握Protel99的使用方法;3.掌握8051单片机、12位A/D芯片AD574的应用;4.学习掌握硬件电路设计的全过程。

1.3 功能要求及说明1.学习掌握8051单片机的工作原理及应用;2. 学习掌握12位A/D芯片AD574的工作原理及应用;3. 设计基于AD574的12位模拟信号采集器的工作原理图及PCB版图;4. 整理设计容,编写设计说明书。

5.Protues仿真。

第二章硬件设计2.1系统设计元器件功能说明12位AD574功能及引脚说明AD574A是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器,置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其主要功能特性如下:分辨率:12位非线性误差:小于±1/2LBS或±1LBS转换速率:25us模拟电压输入围:0—10V和0—20V,0—±5V和0—±10V两档四种电源电压:±15V和5V数据输出格式:12位/8位芯片工作模式:全速工作模式和单一工作模式AD574A的引脚说明:[1]. Pin1(+V)——+5V电源输入端。

[2]. Pin2()——数据模式选择端,通过此引脚可选择数据纵线是12位或8位输出。

[3]. Pin3()——片选端。

[4]. Pin4(A0)——字节地址短周期控制端。

与端用来控制启动转换的方式和数据输出格式。

须注意的是,端TTL电平不能直接+5V或0V连接。

[5]. Pin5()——读转换数据控制端。

[6]. Pin6(CE)——使能端。

现在我们来讨论AD574A的CE、、、和A0对其工作状态的控制过程。

在CE=1、=0同时满足时,AD574A才会正常工作,在AD574处于工作状态时,当=0时A/D转换,当=1是进行数据读出。

和A0端用来控制启动转换的方式和数据输出格式。

A0-0时,启动的是按完整12位数据方式进行的。

当A0=1时,按8位A/D转换方式进行。

当=1,也即当AD574A处于数据状态时,A0和控制数据输出状态的格式。

当=1时,数据以12位并行输出,当=0时,数据以8位分两次输出。

而当A0=0时,输出转换数据的高8位,A0=1时输出A/D转换数据的低4位,这四位占一个字节的高半字节,低半字节补零。

其控制逻辑真值表见表1。

[7]. Pin7(V+)——正电源输入端,输入+15V电源。

[8]. Pin8(REF OUT)——10V基准电源电压输出端。

[9]. Pin9(AGND)——模拟地端。

[10]. Pin10(REF IN)——基准电源电压输入端。

[11]. Pin(V-)——负电源输入端,输入-15V电源。

[12]. Pin1(V+)——正电源输入端,输入+15V电源。

[13]. Pin13(10V IN)——10V量程模拟电压输入端。

[14]. Pin14(20V IN)——20V量程模拟电压输入端。

[15]. Pin15(DGND)——数字地端。

[16]. Pin16—Pin27(DB0—DB11)——12条数据总线。

通过这12条数据总线向外输出A/D转换数据。

[17]. Pin28(STS)——工作状态指示信号端,当STS=1时,表示转换器正处于转换状态,当STS=0时,声明A/D转换结束,通过此信号可以判别A/D转换器的工作状态,作为单片机的中断或查询信号之用。

AD574A的工作模式:以上我们所述的是AD574A的全控状态,如果需AD574A工作于单一模式,只需将CE、端接至+5V电源端,和A0接至0V,仅用端来控制A/D转换的启动和数据输出。

当=0时,启动A/D转换器,经25us后STS=1,表明A/D转换结束,此时将置1,即可从数据端读取数据。

74LS373八D 锁存器(3S,锁存允许输入有回环特性) 简要说明: 373为三态输出的八 D 透明锁存器,共有54/74S373 和54/74LS373 两种线路结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别):373 的输出端 O0~O7 可直接与总线相连。

当三态允许控制端 OE 为低电平时,O0~O7 为正常逻辑状态,可用来驱动负载或总 线。

当OE 为高电平时,O0~O7 呈高阻态,即不驱动总线,也不为总线的负载,但 锁存器部的逻辑操作不受影响。

当锁存允许端 LE 为高电平时,O 随数据 D 而变。

当 LE 为低电平时,O 被锁存在 已建立的数据电平。

当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV 。

引出端符号: D0~D7 数据输入端 OE 三态允许控制端(低电平有效) LE 锁存允许端 O0~O7 输出端 外部管腿图:逻辑图:真值表:极限值: 电源电压…………………………………………. 7V 输入电压54/74S373…………………………….…………. 5.5V 54/74LS373……………………………………. 7V 输出高阻态时高电平电压…………………………. 5.5V 工作环境温度54XXX …………………………………. -55~125℃74XXX …………………………………. 0~70℃存储温度…………………………………………. -65~150℃推荐工作条件:2.2硬件电路总体及部分设计图2.2.1 单片机的部晶振图2.2.2 数码管显示A D 5 7 4输入模拟 量 18 0C 51模拟输入量 2A D 5 7 47 4 L S 3 7 3显示 输出模拟输入变量……图2.2.3 74373的接口设计图2.2.4 AD574接口图第三章软件设计3.1 硬件电路总体及部分设计AD574A的接口电路8051单片机与AD574A的接口电路,其中还使用了三态锁存器74LS373和74LS00与非门电路,逻辑控制信号由(、和A0)有8051的数据口P0发出,并由三态锁存器74LS373锁存到输出端Q0、Q1和Q2上,用于控制AD574A的工作过程。

AD转换器的数据输出也通过P0数据总线连至8051,由于我们只使用了8位数据口,12位数据分两次读进8051,所以接地。

当8051的p3.0查询到STS端转换结束信号后,先将转换后的12位A/D数据的高8位读进8051,然后再将低4位读进8051。

这里不管AD574A是处在启动、转换和输出结果,使能端CE都必须为1,因此将8051的写控制线和读控制线通过与非门74LS00与AD574A的使能端CE相连3.2Keil编程#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit ADout=P1^0;sbit ADin=P1^1;sbit CS=P1^2;sbit CLK=P1^3;sbit EOC=P1^4;sbit LE=P1^6;sbit LE2=P1^7;ucharduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6 f,0x7c};uchar D=0,wei[]={0xfe,0xfd,0xfb,0xf7,0xdf,0xef};float k,z;uint n;//////////延时子函数void delay(uint us){uchar i;for(i=0;i<us;i++)_nop_();}////////数码管显示子函数void display(uint AD){uchar q,b,s,g; //////千位、百位、十位、个位q=AD/1000;b=AD/100%10;s=AD/10%10;g=AD%10;P0=0xff;LE1=1;P0=wei[0];LE1=0;LE2=1;P0=duan[q];LE2=0;delay(10);P0=0xff;LE1=1;P0=wei[1];LE1=0;LE2=1;P0=duan[b];LE2=0;delay(10);P0=0xff;LE1=1;P0=wei[2];LE1=0;LE2=1;P0=duan[s];LE2=0;delay(10);P0=0xff;LE1=1;P0=wei[3];LE1=0;LE2=1;P0=duan[g];LE2=0;delay(10); }///////TLC2543转换和读取子函数,只转换了三路模拟电压信号。

uint readAD(uchar port){uchar ch,i,j;uint ad;ch=port;for(j=0;j<3;j++){ad=0;ch=port;EOC=1;CS=1;CS=0;CLK=0;for(i=0;i<12;i++){if(ADout) ad|=0x01;ADin=(bit)(ch&0x80);CLK=1;CLK=0;ch<<=1;ad<<=1;}}CS=1; //转换和读取数值while(!EOC);ad>>=1;return(ad);}//主函数void main(){while(1){n=readAD(0x00); //得到通道0的数值k=readAD(0x10); //得到通道1的数值z=readAD(0x20); //得到通道2的数值display(n); //显示一路// display(k);// display(z);}}3.3 proteus仿真Proteus 仿真图及其pcb板见附录。

相关主题