您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于单片机实训板的数字电压表设计
基于单片机实训板的数字电压表设计长沙科瑞特电子有限公司基于单片机实训板的数字电压表设计一.基于单片机实训板的电压表设计简介TLC549是德州仪器公司(TI)推出的CMOS8位A/D转换器。该芯片有一个模拟输入端口,3态的数据串行输出接口可以方便的和微处理器或外围设备连接。TLC549仅仅使用输入/输出时钟(I/OCLOCK)和芯片选择(/CS)信号控制数据。最大的输入输出时钟(I/OCLOCK)为1.1MHz。功能框图如下:由TLC549采集模拟量,由单片机控制,并将AD转换后的结果经单片机处理转换为电压值通过数码管显示出来。测量电压范围为0~5V,分辨率为5/256=0.0195V。二.电路原理图:基于单片机实训板的数字电压表设计长沙科瑞特电子有限公司三.电路原理分析:电容C7、C8、C9、C10和L1组成电源滤波电路;R34和C13组成模拟电压调节电路;P3为被测模拟信号输入接口,当被测模拟信号为外部电压时,电压值由P3的2脚输入,当被测模拟电压为内部电压时可将P3的2脚和3脚短接,则所测量的电压为板上R34输出的电压。TLC549时序图四、源程序/****************************************实验名称:数字电压表功能介绍:电压采样范围0-5V,精度位±20mV,AD最高转换速率可达到17us.基于单片机实训板的数字电压表设计长沙科瑞特电子有限公司硬件资源介绍:数码管段码对应P00-P07(a-dp),低电平有效数码管位码经74hc138译码对应P20-P22。AD_CS-P1.0AD_CLK-P1.1AD_IO-P1.2详细情况请参照原理图.单位:长沙科瑞特电子有限公司研发部编写时间:2007-05-31*****************************************/#includereg52.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedint#defineSET_CS()AD_CS=0//CS低电平有效;#defineCLR_CS()AD_CS=1#defineVref512sbitAD_CLK=P1^0;sbitAD_IO=P1^1;sbitAD_CS=P1^2;ucharcodeled_code[18]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,//段码0x90,0x88,0x83,0xc6,0xa1,0x86,0x81,0x7f,0xff};uchardatadis_data[4]={4,4,0,0};//显示缓冲区ucharidatadis_bit[4]={0x7f,0xbf,0xdf,0xef};//位码单元voiddelay(uintn);//延时子程序voiddisplay(uchar*p,ucharn);//显示子程序ucharadc_start(void);//AD转换程序voiddata_switch(ucharddata);//数值转换子程序voidmain(void){uchartemp;uchari;while(1){//temp=adc_start();//data_switch(temp);//输出获得的数据for(i=0;i100;i++)display(dis_data,3);}}voiddelay(uintn)//延时子程序基于单片机实训板的数字电压表设计长沙科瑞特电子有限公司{while(n)n--;}voiddisplay(uchar*p,ucharn){uchari;for(i=0;in;i++){P2=i&0x07;if(i==0x02)P0=led_code[p[i]]&0x7f;elseP0=led_code[p[i]];delay(30);P0=0xff;}}ucharadc_start(void)//AD转换程序{chari,ad_data=0x00;AD_CLK=0;CLR_CS();_nop_();SET_CS();_nop_();for(i=8;i0;i--){AD_CLK=1;//上升沿读数据AD_IO=1;//读P1时置一ad_data=1;//左移一位,最高位先得到if(AD_IO)ad_data|=0x01;elsead_data&=0xfe;AD_CLK=0;}returnad_data;}voiddata_switch(ucharddata){longtemp;temp=ddata;基于单片机实训板的数字电压表设计长沙科瑞特电子有限公司=temp*Vref/256;dis_data[2]=(uint)temp/100;//最高位dis_data[1]=(uint)temp%100/10;dis_data[0]=(uint)temp%100%10;}
本文标题:基于单片机实训板的数字电压表设计
链接地址:https://www.777doc.com/doc-2573786 .html