资讯详情

51单片机驱动12位AD转换TLC2543电路图+程序

下面是电路图和仿真图: 公司的12位AD转换TLC2543芯片比A0832的8位AD转换芯片,精度要高很多,ADC0832的精度是255分之1,而TLC2543 由于二进制数的位数是12bit,所以精度要高出很多,它的精度为4096分之一。以下为89C51单片机控制C语言程序和电路连接图。完整的工程文件及hex文件下载:http://www.ruidan.com/f/tlccadc.rar是用stc89c51单片机制作的 成品正在使用中. #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit cs=P1^0; sbit clk=P1^3; sbit sdi=P1^4; sbit sdo=P1^5; sbit bit7=B^7; sbit freq_out=P3^7; bit cy; uint adval,volt,froq; uchar temp; uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; void delayms(uint ms) { uchar j; while(ms--) { for(j=0;j<120;j++); } } void delay() { uint i=5; while(i--); } void readADC(int ch) { uchar i; clk=0; cs=1; delay(); cs=0;//CS=0开始转换 B=ch; for(i=8;i>0;i--) { cy=sdo; sdi=bit7; clk=1; B=B<<1; clk=0; temp=temp<<1; if(cy==1) temp++; } adval=temp; adval=adval<<4; for(i=4;i>0;i--) { cy=sdo; temp=temp<<1; if(cy==1) temp++; clk=1; clk=0; } cs=1;//十二位读数完毕,结束转换。 adval +=temp; volt=adval; froq=adval; } void resultvolt() { volt=volt*5000.0/4334;//转换成电压显示 } void resultfroq() { froq=1000000.0/froq*2/2.0;//转换频率数值 } void displayvolt(uint dat) { P2=0x10; P0=tab[dat/1000]&0x7f; delayms(1); P0=0xff; P2=0x20; P0=tab[dat%1000/100]; delayms(1); P0=0xff; P2=0x40; P0=tab[dat%100/10]; delayms(1); P0=0xff; P2=0x80; P0=tab[dat%10]; delayms(1); P0=0xff; } void displayfroq(uint dat) { P2=0x01; P0=tab[dat/1000]&0x7f; delayms(1); P0=0xff; P2=0x02; P0=tab[dat%1000/100]; delayms(1); P0=0xff; P2=0x04; P0=tab[dat%100/10]; delayms(1); P0=0xff; P2=0x08; P0=tab[dat%10]; delayms(1); P0=0xff; } void t0_int() interrupt 1 { TH0=-froq/256; TL0=-froq%256; } void t0_init(void) { TMOD=0x01; ET0=1; TR0=1; EA=1; } void main() { t0_init(); P2=0xff; P0=0xff; while(1) { readADC(0); delayms(1); resultvolt(); resultfroq(); displayfroq(froq); displayvolt(volt); } }

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台