您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > ad574AD转换程序
AD574全12位转换读数据函数转换函数://*********************************************//*AD574全12位转换读数据函数*///参考电压为芯片内部输出的10电压*///读写操作:*///启动A0=0,CS=0;RC=0;*///读低四位CS=0;A0=1;RC=1;*///读高四位CS=0;A0=0;RC=1;*//**********************************************/#includeabsacc.h#includeat89x51.h#defineuintunsignedint#defineucharunsignedchar#defineADCOMXBYTE[0xff7c]//启动A0=0,CS=0;RC=0;#defineADLOXBYTE[0xff7f]//读低四位CS=0;A0=1;RC=1;#defineADHIXBYTE[0xff7d]//读高四位CS=0;A0=0;RC=1;ucharcodedis1[]={0x28,0x7E,0xA2,//数码管显示代码0x62,0x74,0x61,0x21,0x7A,0x20,0x60,0xff};sbitSTS=P3^5;//转换标志位//sbitwr=P3^7;//WR//sbitrd=P3^6;//RDsbitsw=P3^3;//开始转换uinttemp;ucharqian,bai,shi,ge;uchardisplay_buf[3];uintaddate[7];uintad_team;/*****************************/voiddelay(uintms)//延时1MS{uchari;while(ms--)for(i=0;i125;i++);}/*****************************/voiddisplay();//转换读出AD数据uintad574(){ADCOM=0;while(STS==1);return((uint)(ADHI4)+(ADLO&0x0f));}/*****************************//*display*//*****************************/voiddisplay(){qian=temp/1000;//2bai=(temp-qian*1000)/100;shi=(temp-qian*1000-bai*100)/10;ge=temp-qian*1000-bai*100-shi*10;display_buf[0]=dis1[qian];display_buf[1]=dis1[bai];display_buf[2]=dis1[shi];display_buf[3]=dis1[ge];P1=display_buf[0];P2_0=0;delay(2);P2_0=1;P1=display_buf[1];P2_1=0;delay(2);P2_1=1;P1=display_buf[2];P2_2=0;delay(2);P2_2=1;P1=display_buf[3];P2_3=0;delay(2);P2_3=1;}/***********************/main()//主函数{uintidataresult;uchars;temp=0;ad_team=0;TMOD=0x01;TH0=0xd8;TL0=0xf0;EA=1;//开总中断ET0=1;TR0=1;P0=0xff;while(1){if(sw==0)//按钮按下,执行AD转换{delay(10);while(!sw);{for(s=0;s8;s++)//AD采样8次{temp=0;result=ad574();addate[s]=result;//采样数据保存delay(1);}for(s=0;s8;s++)//8次AD相加后除8求平均AD值{ad_team=ad_team+addate[s];}temp=(uint)ad_team/8;ad_team=0;}}}}/**********************************/voidtimer0()interrupt1//定时中断用作显示AD值{TH0=0xd8;TL0=0xf0;display();}
本文标题:ad574AD转换程序
链接地址:https://www.777doc.com/doc-6275397 .html