资源描述:
《基于单片机的路温度巡检仪的毕业设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机的8路温度巡检仪的毕业设计答案研究院标准资料研究所598577184}/***********向AD7705写一个字节的数据******************/voidWrite_AD_reg(uchardat){}/********从AD7705读出两个字节的数据,AD转换值*******///返回值为unsignedint类型uintRead_AD_reg(){}/************对AD7705初始化*****************/voidAD_Init(void){0X30////Write_AD_reg(0x0
2、8);//写0x10到通信寄存器,到通信寄存器,下一个寄存器指向设置寄存器.倒序:0X08Write_AD_reg(0x62);//写0x46到设置寄存器,自动校准,单极性,gain=1;缓冲模式,FASYNC=0.倒序:0X62Write_AD_reg(0x6E);//写0x76到设置寄存器,自动校准,单极性,gain=64;缓冲模式,FASYNC=0.17倒Write_AD_reg(0X04);//写0X20到通信寄存器,选择通道ANI(+)和ANI(-),下一个寄存器指向时钟寄存器。.Write_AD_reg(0X30);//写0X0C
3、到时钟寄存器,接2M时钟,时钟二分频,输出跟新率50Hz.倒序:倒序:0X04//用串行数据输入时一定要将数据进行倒序处理ucharlow8,high8;uintAD_out;SCON=0x00;Write_AD_reg(0x1C);while(DRDY);REN=1;RI=0;high8=SBUF;while(!RI);RI=0;low8=SBUF;REN=0;high8=reverse_order(high8);low8=reverse_order(low8);AD_out=high8;AD_outAD_out;//对读回的高8位倒序wh
4、ile(!RI);//读数据通道0x38//为低电平时读取数据//接收使能//等待接收完17SBUF=dat;while(!TI);TI=0;//等待发送完成}returnnew_dat;答案研究院标准资料研究所598577184序:0X6E}/************温度采样函数*****************/voidAD_samp(void){uchari,m,n;ucharj=0;Addr_channel=j;for(i=0;i{ad_data_buff[0]=Read_AD_reg();//在此也可以做中值滤波处理Write_AD
5、_reg(0x76);//写0x6e到设置寄存器,自动校准,单极性,gain=32;缓冲模式,FASYNC=0.倒序:0X76intk;ad_data_buff[1]=Read_AD_reg();ad_data_buff[2]=Read_AD_reg();for(m=0;mfor(n=0;nif(ad_data_buff[n]>value_buf[n+1]){k=ad_data_buff[n];17ad_data_buff[n]=ad_data_buff[n+1];value_buf[n+1]=k;}}}/************显示处理函数
6、*****************/voiddisplay(void){ucharm,n;floath;uinta,k,d;dis[4]=0x01;//通道初值为0for(m=0;mh=ad_data[m]/65535.0;k=h*300;dis[3]=k/100;//对温度值取百位数}ad_data[i]=ad_data_buff[1];j++;Addr_channel=j;//使模拟开关选通可靠,起延时的作用Addr_channel=0x00;答案研究院标准资料研究所598577184}voidmain(void){}Addr_chann
7、el=0x00;AD_Init();while(1){}AD_samp();display();17//通道地址初始为0}dis[2]=k/10;dis[1]=k;d=h*30000+5;for(a=0;a{}for(n=0;n17//通道加1P0=seg7[dis[n]];if(n==1){DP=0;}P2=scan_con[n];delay1ms(5);//稳定显示P2=0xff;//确保下次写数据正确//P0为数码管段选端口//显示小数点//对温度值取十位数//对温度值取个位数//对温度小数部分的百分位四舍五入以精确到小数点后一位d
8、is[0]=d/10;//取温度扩大100倍四舍五入后的十位数dis[4]++;SCON=0X00;//串口初始化注意事项:1、对AD7705用串行0方式写入和读