欢迎来到天天文库
浏览记录
ID:55754045
大小:212.00 KB
页数:11页
时间:2020-06-05
《电子设计大赛14.4.2 AD电路.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.4.2A/D转换电路及程序设计1.A/D转换器ADC0809电路及程序设计(1)与单片机的接口电路ADC0809的结构特点见第3章3.9.4节。与单片机的接口电路如图4.4.3所示。图4.4.3ADC0809与单片机的接口电路ADC0809的启动控制信号START、/WR、/RD控制信号等由微控制器提供。AD转换结束后,ADC0809的EOC信号将变为高电平,此信号通过一个非门反相后输出到微控制器的接口,微控制器可以使用查询方式或者中断方式对AD转换进行控制。ADC0809的启动控制信号START和
2、读取数据使能控制信号ENABLE来自74HC02,74HC02是一个TTL电平的或非门,通过译码电路(74HC138)对地址总线上的地址进行译码获得片选信号,然后与/WR、/RD信号进行逻辑组合而产生启动控制信号START和读取数据使能控制信号ENABLE。A/D转换结束后,EOC信号将变为高电平,此信号通过一个非门反相输出到P3.2(/INT0)接口,这样就可以使用查询方式和中断方式进行AD转换。ADC0809没有内部时钟,需外接10KHz~1290Hz的时钟信号,本电路是由单片机的ALE信号通过74
3、HC74D1/2分频得到(原理图上的标号:AD_CLK)。8051单片机的ALE输出的频率为Fosc/6(使用P87C52X2),当系统晶振为12MHz时,U1_CLKDE频率约为1MHz,符合ADC0809的要求。通道选择是与START连接在一起的,即在启动AD转换ADC0809就会把通道选择的数据锁存。D/A及A/D转换电路板PCB印制板元件分布图如图4.4.4所示,PCB印制顶层图如图4.4.5所示,PCB印制底层图如图4.4.6所示。图4.4.4D/A及A/D转换电路PCB印制板元件分布图图4.
4、4.5D/A及A/D转换电路PCB印制电路板顶层图图4.4.6D/A及A/D转换电路PCB印制电路板底层图(2)程序设计例①程序设计例1利用中断方式,对IN0的模拟量进行A/D转换后,把转换结果存放在地址为3H的片内数据RAM中,程序例流程图如图4.4.7所示图4.4.7程序流程图;******************************************************************************;文件名:AD0809.asm;:说明:;1.A/D转换芯片AD08
5、09有8路模拟输入,地址分别为0000H~0007H。;2以通道0为例来说明A/D转换的程序设计方法。;3.读取的数据存放在内部RAM的30H单元,采用中断方式实现。;****************************************************************************AD0809EQU0000H;A/D转换通道0的地址DAT0809DATA30H;存放采集的数据ORG8000HAJMPMAINORG8003H;外部中断0的入口地址AJMPMAINORG
6、8100HMAIN:MOVSP,#60HSETBIT0;设置外部中断0为边沿触发SETBEX0;设置INT0开放SETBEA;总中断允许MOVDPTR,#AD0809;启动AD0809MOVX@DPTR,AAJMP$EXINT1:;外部中断1服务子程序PUSHPSWPUSHACCCLREX0MOVDPTR,#AD0809MOVXA,@DPTR;读取A/D转换结果MOVDAT0809,A;存放数据SETBEX0;重新启动A/D转换POPACCPOPPSWRET1,END②C语言程序例2下面是用C语言写的一
7、个关于ADC0809八路模拟信号的采集的程序。具体实现是从ADC0809的八通道轮流采集一次数据,采集的结果放在数组AD中,程序名为ad0809.c#include#include#defineucharunsignedchar#defineIN0XBYTE[0x0000]/*设置AD0809的通道0地址*/sibtad_busy=p3^3;/*即EOC状态*/voidad0809(ucharidata*x)/*采样结果放在指针中的A/D采集函数*/{ucharI;
8、ucharxdata*ad_adr;ad_adr=&IN0;for(i=0;i<8;i++)/*处理8通道*/{*ad_adr=0;/*启动转换*/i=i;/*延时等待EOC变低*/i=i;while(ad_busy==0);/*查询等待转换结束*/x[i]=*ad_adr;/*存转换结果*/ad_adr++;/*下一通道*/}}voidmain(void){staticucharidataad[10];ad0809(ad);/*采样AD0
此文档下载收益归作者所有