文档详情

基于单片机的路温度巡检仪的毕业设计.doc

发布:2018-06-08约8.56千字共17页下载文档
文本预览下载声明
基于单片机的8路温度巡检仪的毕业设计 答案研究院标准资料研究所 598577184 } /***********向AD7705写一个字节的数据******************/ void Write_AD_reg(uchar dat) { } /********从AD7705读出两个字节的数据,AD转换值*******/ //返回值为unsigned int 类型 uint Read_AD_reg() { } /************对AD7705初始化*****************/ void AD_Init(void) { 0X30 // // Write_AD_reg(0x08); //写0x10到通信寄存器,到通信寄存器,下一个寄存器指向设置寄存器.倒序:0X08 Write_AD_reg(0x62); //写0x46到设置寄存器,自动校准,单极性,gain=1;缓冲模式,FASYNC=0. 倒序:0X62 Write_AD_reg(0x6E); //写0x76到设置寄存器,自动校准,单极性,gain=64;缓冲模式,FASYNC=0. 倒Write_AD_reg(0X04); //写0X20到通信寄存器,选择通道ANI(+)和ANI(-),下一个寄存器指向时钟寄存器。.Write_AD_reg(0X30); //写0X0C到时钟寄存器,接2M时钟,时钟二分频,输出跟新率50Hz. 倒序: 倒序:0X04 //用串行数据输入时一定要将数据进行倒序处理 uchar low8,high8; uint AD_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位倒序 while(!RI); //读数据通道 0x38 //为低电平时读取数据 //接收使能 //等待接收完 SBUF=dat; while(!TI); TI=0; //等待发送完成 } return new_dat; 答案研究院标准资料研究所 598577184 序:0X6E } /************温度采样函数*****************/ void AD_samp(void) { uchar i,m,n; uchar j=0; Addr_channel=j; for(i=0;i{ ad_data_buff[0]=Read_AD_reg(); //在此也可以做中值滤波处理 Write_AD_reg(0x76); //写0x6e到设置寄存器,自动校准,单极性,gain=32;缓冲模式,FASYNC=0. 倒序:0X76 int k; ad_data_buff[1]=Read_AD_reg(); ad_data_buff[2]= Read_AD_reg(); for(m=0;m for(n=0;n if(ad_data_buff[n]value_buf[n+1]) { k= ad_data_buff[n]; ad_data_buff[n]=ad_data_buff[n+1]; value_buf[n+1]=k; } } } /************显示处理函数*****************/ void display(void) { uchar m,n; float h; uint a,k,d; dis[4]=0x01; //通道初值为0 for(m=0;m h=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; 答案研究院标准资
显示全部
相似文档