《2022年ad574AD转换程序.pdf》由会员分享,可在线阅读,更多相关《2022年ad574AD转换程序.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、AD574全 12 位转换读数据函数转换函数 :/*/ /* AD574全 12 位转换读数据函数 */ / 参考电压为芯片内部输出的10电压 */ / 读写操作: */ / 启动 A0=0,CS=0;RC=0; */ / 读低四位 CS=0;A0=1;RC=1; */ / 读高四位 CS=0;A0=0;RC=1; */ /*/ i nclude i nclude #define uint unsigned int #define uchar unsigned char #define ADCOM XBYTE0 xff7c / 启动 A0=0,CS=0;RC=0; 精品资料 - - - 欢迎下
2、载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 9 页 - - - - - - - - - - #define ADLO XBYTE0 xff7f / 读低四位 CS=0;A0=1;RC=1; #define ADHI XBYTE0 xff7d / 读高四位 CS=0;A0=0;RC=1;uchar code dis1 = 0 x28, 0 x7E, 0 xA2, /数码管显示代码0 x62, 0 x74, 0 x61, 0 x21, 0 x7A, 0 x20, 0 x60,0 xff;sbit STS=P35; / 转
3、换标志位/sbit wr=P37; /WR /sbit rd=P36; /RDsbit sw=P33; /开始转换uint temp; uchar qian,bai,shi,ge; uchar display_buf3; uint addate7; uint ad_team; /*/ 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 9 页 - - - - - - - - - - void delay(uint ms) / 延时 1MS uchar i; while(ms-) for(i=0;i
4、125;i+); /*/void display(); / 转换读出 AD数据uint ad574() ADCOM=0; while(STS=1); return(uint)(ADHI4)+(ADLO&0 x0f); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 9 页 - - - - - - - - - - /*/ /* display */ /*/ void display() qian=temp/1000; /2 bai=(temp-qian*1000)/100; shi=(temp-
5、qian*1000-bai*100)/10; ge=temp-qian*1000-bai*100-shi*10;display_buf0=dis1qian; display_buf1=dis1bai; display_buf2=dis1shi; display_buf3=dis1ge;P1=display_buf0; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 9 页 - - - - - - - - - - P2_0=0; delay(2); P2_0=1;P1=display_buf1;
6、 P2_1=0; delay(2); P2_1=1;P1=display_buf2; P2_2=0; delay(2); P2_2=1;P1=display_buf3; P2_3=0; delay(2); P2_3=1; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 9 页 - - - - - - - - - - /*/ main() / 主函数 uint idata result; uchar s; temp=0; ad_team=0; TMOD=0 x01; TH0=0 xd8; TL0
7、=0 xf0; EA=1; /开总中断ET0=1; TR0=1; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 9 页 - - - - - - - - - - P0=0 xff; while(1) if(sw=0) / 按钮按下,执行 AD转换 delay(10); while(!sw); for(s=0;s8;s+) /AD 采样 8 次 temp=0; result=ad574(); addates=result; / 采样数据保存 delay(1); 精品资料 - - - 欢迎下载 -
8、 - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 9 页 - - - - - - - - - - for(s=0;s8;s+) /8次 AD相加后除 8 求平均 AD值 ad_team=ad_team+addates; temp=(uint)ad_team/8; ad_team=0; /*/void timer0() interrupt 1 / 定时中断用作显示AD值精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 9 页 - - - - - - - - - - TH0=0 xd8; TL0=0 xf0; display(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 9 页 - - - - - - - - - -