亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? chaosheng.c

?? 此程序是8051超聲波液位儀的源代碼 有一定的參考價(jià)值
?? C
字號(hào):
#include"reg51.h"
#include"intrins.h"

#define uint unsigned int
#define uchar unsigned char

sbit DS=P1^4;
sbit START=P1^5;

sbit SCK=P1^0;
sbit SI=P1^1;
sbit SO=P1^2;
sbit cs_feed=P1^3;//喂狗信號(hào)

uchar code *init="超聲波液位儀";
uchar code *work_temp="工作溫度      ℃";
uchar code *test=  "測(cè)量距離      mm";
uchar code *fail=": 失敗mm";
uchar code *num_data="0123456789";
uchar code *chao_v="超聲波速     m/s";

uchar  data temp_data[2];//={0x00,0x00}; //讀出溫度暫存單元 {0x91,0x01} 25度;   高位存高位 低位存低位
uint data plus_data;//存放中斷時(shí)的計(jì)數(shù)
uint data  average=0;

//RT12864寫(xiě)指令
 void cmd (uchar intr)
{
        P2=0x04;
        P0=intr;
        P2=0x00;
        P2=0x03;// 寫(xiě)指令周期結(jié)束
}
//RT12864寫(xiě)數(shù)據(jù)
void dat (uchar  *p,uchar data j)
{
        uchar data i,k;
        for(i=0;i<j;i++)
        {
                for(k=0;k<10;k++);  //延時(shí)大約100us
                P2=0x05;
                P0=*(p+i);
                P2=0x01;
                P2=0x02;// 寫(xiě)數(shù)據(jù)周期結(jié)束
        }
}
 //
void delay(uint t)
{
	for(;t>0;t--);//循環(huán)一次延時(shí)11us
}

//18b20復(fù)位程序

void reset()
{
	bit bdata flag=1;
	while(flag)
	{
		while(flag)
		{
			DS=1;
			_nop_(); _nop_();  _nop_();
			DS=0;//以上程序段制造一個(gè)下降延
			delay(50);//延時(shí)550us  最短延時(shí)480us
			DS=1;//18b20在上升延后等待15~60us發(fā)出存在脈沖,低電平持續(xù)60~240us 復(fù)位成功
			delay(3);
			flag=DS;
		}

		delay(50);//延時(shí)550us 看電平能不能升高  如果能升高證明是 低電平脈沖
                DS=1;
		flag=~DS;

	   }

}
//18b20寫(xiě)命令函數(shù)

void write(uchar rule)
 {
 	uchar i,temp;
	for(i=0;i<8;i++)
	{
                        temp=rule&0x01;
		 	DS=1;
			_nop_(); _nop_();  _nop_();
			DS=0;//以上程序段制造一個(gè)下降延
		 	_nop_(); _nop_();  _nop_();
                       	DS=temp;//從低位起 按位取出 送給18B20
                        rule=rule>>1;
			delay(6);//延時(shí)66us
	}
	DS=1;
	delay(1);
 }

//讀一溫度字節(jié)
uchar read()
{
	uchar data i;
        uchar data temp=0x00;
	uchar data value=0;
	for(i=0;i<8;i++)
	{
		 	DS=1;
			_nop_(); _nop_();  _nop_();
			DS=0;//以上程序段制造一個(gè)下降延
			_nop_(); _nop_();  _nop_();
			DS=1;
			_nop_(); _nop_();  _nop_();
                        value>>=1;
                        DS=0;
                        _nop_(); _nop_();  _nop_(); _nop_();
                        DS=1;
                        _nop_(); _nop_();  _nop_(); _nop_();
                        if(DS) value|=0x80;
			delay(6);
	}
	DS=1;
	return(value);
}
//讀出溫度函數(shù)
void read_temp()
{
        reset();
        write(0xcc);//發(fā)skiprom命令
 	write(0x44);//發(fā)送轉(zhuǎn)換命令
        reset();
 	write(0xcc);//發(fā)skiprom命令
 	write(0xbe);   //讀命令
 	temp_data[0]=read();
        temp_data[1]=read();
        reset();


}

//數(shù)據(jù)處理顯示函數(shù)

uchar deal_dis()
{
        uchar data k;
	uchar data tmp[2];
        uchar  data  dis_data[6];
        dis_data[0]=':';
	if(temp_data[1]>127)  //判斷小于零
	{
	   	temp_data[1]=~temp_data[1]+1;
		temp_data[0]=~temp_data[0]+1;
		dis_data[1]='-';
	}
        else
                dis_data[1]=0x20;   //清空單元
	tmp[0]=temp_data[1]<<4;
	tmp[1]=temp_data[0]>>4;
	tmp[1]=tmp[1]&0x0f;
	tmp[0]=tmp[0]|tmp[1];//整數(shù)部分
	tmp[1]=temp_data[0]&0x0f;  //小數(shù)部分
	dis_data[2]=*(num_data+tmp[0]%100/10);
	dis_data[3]=*(num_data+tmp[0]%10);	//dis_data[0--3]內(nèi)容是"-" 高位到低位
	dis_data[4]='.';
        if(tmp[1]==0x00)
              dis_data[5]='0';
        else if(tmp[1]==0x0f)
             dis_data[5]='9';
        else
             dis_data[5]= *(num_data+tmp[1]/2+1);
        for(k=0;k<10;k++);  //延時(shí)大約100us
        cmd(0x94); //位置 //
        for(k=0;k<10;k++);  //延時(shí)大約100us
        dat(dis_data ,6);     //  溫度
        return(tmp[0]); //返回溫度整數(shù)部分用來(lái)超聲波計(jì)算超聲波速度

}
 //開(kāi)始發(fā)送超聲波
void send_wave()
{
        uchar w;
        START=0;//開(kāi)始發(fā)送超聲波
        TR0=1;
        for(w=0;w<15;w++);//延時(shí)大約100us
        START=1;  //停止發(fā)送
        for(w=0;w<5;w++);//延時(shí)等待超聲波換能器余震 過(guò)去
        EX0=1;//外部中斷0允許
}

// 測(cè)試失敗
void failed()
{
         uchar k;
         for(k=0;k<10;k++);  //延時(shí)大約100us
         cmd(0x9c); //位置
         for(k=0;k<10;k++);  //延時(shí)大約100us
         dat(fail,8);    //距離
}
//計(jì)算速度和距離并顯示
void  math(uchar t)
{
        uint data s;
        float  v;
        uchar data i;
        float data temp1,temp2;
        uchar data distan_data[6];
        uint data div;//記錄有多少個(gè)100個(gè)脈沖 用來(lái)解決直接計(jì)算的越界問(wèn)題
        v=331.5+0.6*t;
        s=v;                  //s是整形量 用來(lái)存儲(chǔ)v的整數(shù)部分
        distan_data[0]=':';
        distan_data[1]=' ';
        distan_data[2]=*(num_data+s/100);
        distan_data[3]=*(num_data+s%100/10);
        distan_data[4]=*(num_data+s%10);
        for(i=0;i<10;i++);  //延時(shí)大約100us
        cmd(0x8c); //位置
        for(i=0;i<10;i++);  //延時(shí)大約100us
        dat(distan_data,5);    //距離
       // plus_data=50001 ;
        if(plus_data>50000||TF0==1)
         {
                failed();
                for(i=0;i<100;i++);  //延時(shí)大約100us
                return ;
         }
         plus_data/=2;
        div=plus_data/100;
        plus_data=plus_data%100;
        temp1=100*v/1000;
        temp1=div*temp1;
        temp2=plus_data*v/1000;
        s=temp1+temp2;
        if(average==0)
            average=s;       //第一次測(cè)量的是第一次值二倍的平均值
        average=(average+s)>>1;//每次測(cè)量的值都和上一次的平均值取平均 逐次逼近可以加快計(jì)算速度
        distan_data[0]=':';
        distan_data[1]=' ';
        distan_data[2]=*(num_data+average/1000);
        distan_data[3]=*(num_data+average%1000/100);
        distan_data[4]=*(num_data+average%100/10);
        distan_data[5]=*(num_data+average%10);
        for(i=0;i<10;i++);  //延時(shí)大約100us
        cmd(0x9c); //位置
        for(i=0;i<10;i++);  //延時(shí)大約100us
        dat(distan_data,6);    //距離
}

/*
sbit SCK=P1^0;
sbit SI=P1^1;
sbit SO=P1^2;
sbit cs_feed=P1^3;//喂狗信號(hào)
*/

//看門(mén)狗初始化
void WTD_init()
{
        uchar i;
        uchar instr;
        cs_feed=0;  // 用來(lái)寫(xiě) WREN 寫(xiě) 使能
        instr=0x06;
        for(i=0;i<8;i++)
        {
                SCK=0;
                SI=instr&0x80;;
                SCK=1;
                instr<<=1;
        }
        cs_feed=1;
        _nop_();
        cs_feed=0;  //用來(lái)寫(xiě)狀態(tài)寄存器指令
        instr=0x01;
        for(i=0;i<8;i++)
        {
                SCK=0;
                SI=instr&0x80;;
                SCK=1;
                instr<<=1;
        }
        instr=0x10;     //寫(xiě)狀態(tài)寄存器
        for(i=0;i<8;i++)
        {
                SCK=0;
                SI=instr&0x80;;
                SCK=1;
                instr<<=1;
        }

}

//喂狗
void feed_WTD()
{
        cs_feed=1;
        _nop_(); _nop_();
        cs_feed=0;
        _nop_(); _nop_();
}

// 超聲波返回中斷 讀取計(jì)數(shù)器中的值
void plus_count (void ) interrupt 0 using 0
{
        TR0=0;
        plus_data=TH0;
        plus_data<<=8;
        plus_data|=TL0;
}
//
void init_RT()
{
         uchar data k,w;
         cmd(0x30);//使用基本指令集
         for(k=0;k<10;k++);  //延時(shí)大約100us
         cmd(0x0c); //顯示狀態(tài)開(kāi)關(guān) 整體,游標(biāo),游標(biāo)位置
         for(k=0;k<10;k++); //延時(shí)大約100us
         cmd(0x01); //清除顯示,地址計(jì)數(shù)器AC到零
         for(k=0;k<250;k++)
         for(w=0;w<200;w++);//延時(shí)大約500ms
         cmd(0x81); //位置
         for(k=0;k<10;k++);  //延時(shí)大約100us
         dat(init,12);     //超聲波液位儀
         for(k=0;k<10;k++);  //延時(shí)大約100us
         cmd(0x90); //位置
         for(k=0;k<10;k++);  //延時(shí)大約100us
         dat(work_temp,16);    //溫度
         for(k=0;k<10;k++);  //延時(shí)大約100us
         cmd(0x88); //位置
         for(k=0;k<10;k++);  //延時(shí)大約100us
         dat(chao_v,16);    //超聲波速度
         for(k=0;k<10;k++);  //延時(shí)大約100us
         cmd(0x98); //位置
         for(k=0;k<10;k++);  //延時(shí)大約100us
         dat(test,16);    //距離

}
//主函數(shù)
void main()
{
         uchar data tempt;//當(dāng)前溫度
         unsigned int i;
         unsigned int j;
         TMOD=0x01;  //計(jì)數(shù)器0工作在16位定時(shí)器狀態(tài)
         EA=1;
         PX0=1;  //外部中斷0優(yōu)先級(jí)高
         IT0=1;  //邊沿觸發(fā) 自動(dòng)清零
        // WTD_init();  //看門(mén)狗初始化
         //init_RT();
         START=0;//開(kāi)始發(fā)送超聲波
         while(1)
         {  /*
            // read_temp();
             //tempt=deal_dis();   //取回溫度值
             send_wave();
             while(TF0==0);
                math(tempt);//計(jì)算距離
                TF0=0;
                feed_WTD();  //喂狗
                  */
               for(i=0;i<900;i++);
                 START=~START;
        }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区电影| 国产精品伦一区| 中文字幕永久在线不卡| 午夜久久久久久久久久一区二区| 国产一区在线观看视频| 日本韩国精品一区二区在线观看| 精品成人一区二区三区四区| 一区二区三区欧美日韩| 国产福利一区在线观看| 欧美一级黄色录像| 伊人色综合久久天天人手人婷| 国产成人综合自拍| 欧美一区二区三区小说| 亚洲综合在线电影| 成人午夜精品在线| 国产亚洲一二三区| 免费成人你懂的| 欧美精三区欧美精三区| 一区二区免费在线播放| 99视频精品在线| 中文字幕av资源一区| 国产露脸91国语对白| 欧美一区二区三区免费大片| 亚洲国产一区二区三区青草影视| 99久久久国产精品| 欧美国产日本韩| 国产成人一区在线| 国产丝袜在线精品| 国产成人免费av在线| 欧美精品一区二区三区在线| 美美哒免费高清在线观看视频一区二区 | 亚洲图片欧美色图| 92精品国产成人观看免费| 国产偷v国产偷v亚洲高清| 国模套图日韩精品一区二区| 91麻豆精品国产| 日韩二区三区在线观看| 欧美高清视频一二三区 | 天堂在线亚洲视频| 欧美日本乱大交xxxxx| 亚洲图片自拍偷拍| 8v天堂国产在线一区二区| 亚洲第一在线综合网站| 在线视频国内自拍亚洲视频| 亚洲一二三四区| 欧美另类一区二区三区| 全国精品久久少妇| 日韩精品一区二区三区中文不卡 | 日本欧美一区二区三区| 欧美xxxxx牲另类人与| 国产乱理伦片在线观看夜一区| 国产色91在线| 成人性视频免费网站| 亚洲免费观看高清完整版在线观看熊 | 国产成人av电影在线| 国产精品入口麻豆原神| 一本到一区二区三区| 婷婷亚洲久悠悠色悠在线播放| 91精品啪在线观看国产60岁| 国产精品1区2区| 亚洲免费av高清| 91精品国产入口| 成人免费视频一区| 亚洲超碰精品一区二区| 久久综合色播五月| 91久久精品一区二区| 蜜臀a∨国产成人精品| 国产免费观看久久| 欧美电影在线免费观看| 国产麻豆成人精品| 亚洲国产乱码最新视频| 久久久99精品免费观看不卡| 一本大道久久精品懂色aⅴ| 国产精品美女久久久久aⅴ国产馆| 欧美中文字幕不卡| 欧美午夜理伦三级在线观看| 在线一区二区视频| 久久精品国产秦先生| 精品少妇一区二区三区在线视频| 99久久综合精品| 极品少妇xxxx精品少妇| 亚洲一区二区三区四区五区黄 | 日韩 欧美一区二区三区| 国产欧美日韩在线观看| 666欧美在线视频| 91啪亚洲精品| 国产一区二区三区四| 日韩精品欧美成人高清一区二区| 国产精品视频免费| 久久一区二区视频| 91精品在线观看入口| 在线精品观看国产| 99久久99久久精品免费观看| 国内不卡的二区三区中文字幕| 一区二区三区视频在线观看| 国产精品国产三级国产有无不卡| 欧美电视剧在线观看完整版| 欧美剧在线免费观看网站| 色呦呦一区二区三区| 成人av网站在线观看免费| 久久精品国产亚洲a| 五月天亚洲婷婷| 亚洲电影视频在线| 亚洲综合激情网| 亚洲人精品午夜| 中文字幕一区二区5566日韩| 久久久综合九色合综国产精品| 91精品久久久久久久久99蜜臂| 99re成人在线| 成人免费毛片嘿嘿连载视频| 国产精品一区在线观看你懂的| 蜜臀久久99精品久久久久宅男| 亚洲va欧美va人人爽午夜| 日韩一级大片在线观看| 精品在线免费视频| 精品一区二区三区的国产在线播放| 午夜一区二区三区在线观看| 亚洲专区一二三| 亚洲国产综合在线| 午夜欧美视频在线观看| 日韩1区2区3区| 狠狠色伊人亚洲综合成人| 麻豆91免费观看| 国产一区91精品张津瑜| 国产一区二区三区久久久| 国产99久久久精品| 99re热这里只有精品视频| 在线观看亚洲a| 91精品免费观看| 久久午夜国产精品| 国产精品二三区| 亚洲永久精品国产| 免费看日韩精品| 国产成人免费视频网站 | 自拍偷拍欧美激情| 亚洲精品一二三| 三级成人在线视频| 另类小说色综合网站| 国产成人久久精品77777最新版本| 粉嫩av亚洲一区二区图片| 色88888久久久久久影院按摩| 欧美日韩国产首页在线观看| 精品欧美一区二区久久| 国产精品久久久久aaaa| 亚洲成人动漫在线观看| 经典一区二区三区| 97精品电影院| 欧美一卡在线观看| 中文字幕不卡的av| 日韩高清不卡一区| 成人av在线资源网| 欧美一区二区在线看| 国产欧美综合在线观看第十页| 日韩一区欧美一区| 美腿丝袜亚洲色图| 色综合久久久久久久久久久| 777奇米四色成人影色区| 中文久久乱码一区二区| 天天av天天翘天天综合网| 国模一区二区三区白浆| 欧美日韩欧美一区二区| 欧美激情在线一区二区| 蜜臀av一区二区在线免费观看| 成人精品免费看| 日韩欧美国产电影| 亚洲小说欧美激情另类| 成人动漫在线一区| 精品久久一二三区| 午夜精品久久久久久久99樱桃| 国产九色sp调教91| 欧美一区二区三区视频在线| 成人免费在线观看入口| 国产成人av自拍| 欧美电影免费观看高清完整版在线| 一区二区三国产精华液| 99re这里都是精品| 国产调教视频一区| 国产九色精品成人porny| 日韩欧美二区三区| 亚洲成年人影院| 欧美亚洲综合网| 亚洲精品久久久久久国产精华液| 国产一区二区三区观看| 69精品人人人人| 一区二区三区在线观看网站| 国产高清亚洲一区| 91精品国产色综合久久久蜜香臀| 亚洲综合图片区| 成人国产亚洲欧美成人综合网 | 精品av久久707| 亚洲国产视频一区二区| 91久久国产综合久久| 国产亚洲一区二区三区在线观看| 日本欧美肥老太交大片| 91亚洲精品久久久蜜桃| 成人欧美一区二区三区在线播放| 国内精品免费**视频| 欧美一区二区美女| 精品一区二区三区影院在线午夜| 在线观看视频一区二区|