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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? checkdistance.c

?? 本壓縮文件主要介紹一獲獎的電子設計作品
?? C
字號:
/*  
**  設計者:蒙林通 ***
**  華信通電子公司  **
**  廣東工業大學 *****
** 設計時間:2008/08/15 *
**   ***歷時:2天半 ****
*/
#include "reg52.h"
#include "intrins.h"
#include "main.h"
#define uchar unsigned char
#define uint unsigned int
#define sd=0.334
unsigned int distance,tem;
uchar data tdisdata[4];
uchar data disdata[5];
uint tvalue,tempkey;//溫度值
uchar tflag;//溫度正負標志
sbit en=P2^5;
sbit rs=P2^7;
sbit rw=P2^6;
sbit D0=P1^0;
sbit D1=P1^1;
sbit D2=P1^2;
sbit D3=P1^3;
sbit D4=P1^4;
sbit deep=P3^6;
sbit DQ=P3^5;
sbit LED1=P1^5;
sbit LED2=P1^6;
sbit  move=P1^7;
sbit mode_button=P3^4;
sbit operation_button=P3^5;
uchar code table[]=">>溫度: 0000 C";
uchar code table2[]="=>距離:00000mm";
uchar code warn1[7][14]={"->請注意左方!!","->請注意右方!!","->請注意后方!!","->左后輪泥坑!!","->右后輪泥坑!!","->左后輪石頭!!","->右后輪石頭!!"};
uchar code warn2[]="->車距勻安全!!";
uchar code welcome[]="    提示系統  ";
uchar code direction[5][4]={"左距","右距","后距","左輪","右輪"}	;
uint time,t,kk;
uchar bai,shi,ge,flag,i,j,temp;
unsigned long int shu=0,v; 
 unsigned int back=0;							
/******************************
*延時子程序
******************************/
void delay(uint z)
{
	uint x,y;
	for(y=110;y>0;y--)
	for(x=z;x>0;x--);
}

/****************************
*寫指令
****************************/
void write_com(uchar com)
{
	rs=0;
	rw=0;
	P0=com;
	delay(5);
	en=1;
	delay(5);
	en=0;

}
/************************
*寫數據
************************/
void write_date(uchar date)
{
	rs=1;
	rw=0;
	P0=date;
	delay(5);
	en=1;
	delay(5);
	en=0;
}

//******************************18B20溫度傳感程序***************************//

void delay1ms(unsigned int ms)//延時1毫秒(不夠精確的)
{unsigned int i,j;
   for(i=0;i<ms;i++)
    for(j=0;j<100;j++);
}


/******************************ds1820程序***************************************/
void delay_18B20(unsigned int i)//延時1微秒
{
   while(i--);
}
void ds1820rst()/*ds1820復位*/
{ unsigned char x=0;
DQ = 1;          //DQ復位
delay_18B20(4); //延時
DQ = 0;          //DQ拉低
delay_18B20(100); //精確延時大于480us
DQ = 1;          //拉高
delay_18B20(40); 
   } 

   uchar ds1820rd()/*讀數據*/
{ unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{   DQ = 0; //給脈沖信號
    dat>>=1;
    DQ = 1; //給脈沖信號
    if(DQ)
    dat|=0x80;
    delay_18B20(10);
}
   return(dat);
}
void ds1820wr(uchar wdata)/*寫數據*/
{unsigned char i=0;
    for (i=8; i>0; i--)
   { DQ = 0;
     DQ = wdata&0x01;
     delay_18B20(10);
     DQ = 1;
     wdata>>=1;
   }
}
//******************讀溫度*********************/

 read_temp()/*讀取溫度值并轉換*/
 {
 uchar a,b;
ds1820rst();    
ds1820wr(0xcc);//*跳過讀序列號*/
ds1820wr(0x44);//*啟動溫度轉換*/
ds1820rst();    
ds1820wr(0xcc);//*跳過讀序列號*/ 
ds1820wr(0xbe);//*讀取溫度*/ 
a=ds1820rd();
b=ds1820rd();
tvalue=b;
tvalue<<=8;
tvalue=tvalue|a;
    if(tvalue<0x0fff)
   tflag=0;
    else
   {tvalue=~tvalue+1;
tflag=1;
   }
tvalue=tvalue*(0.625);//溫度值擴大10倍,精確到1位小數
return(tvalue);
}
/*********************溫度顯示函數**********************/

 void ds1820disp()//溫度值顯示

{ uchar flagdat;
     disdata[0]=tvalue/1000+0x30;//百位數
     disdata[1]=tvalue%1000/100+0x30;//十位數
     disdata[2]=tvalue%100/10+0x30;//個位數
     disdata[3]=tvalue%10+0x30;//小數位
    
     if(tflag==0)
     flagdat=0x20;//正溫度不顯示符號
     else
       flagdat=0x2d;//負溫度顯示負號:-
     if(disdata[0]==0x30)
    {disdata[0]=0x20;//如果百位為0,不顯示
   if(disdata[1]==0x30)
    {disdata[1]=0x20;//如果百位為0,十位為0也不顯示
    }
   }

    write_com(0x90+4);
    //write_date(flagdat);//顯示符號位
    write_date(disdata[0]);//顯示百位
    write_date(disdata[1]);//顯示十位 
    write_date(disdata[2]);//顯示個位 
    write_date(0x2e);//顯示小數點 
    write_date(disdata[3]);//顯示小數位
   }

  /////////////////**********************超聲波程序**********/////////////
/************************
      *距離數值動態顯示
*************************/
void dis_distance(uint add,uint date)
{
	uchar mi,fen,li,bai,shi,ge;
	mi=date/100000;
	fen=date%100000/10000;
	li=date%10000/1000;
	bai=date%1000/100;
	shi=date%100/10;
	ge=date%10;
	write_com(0x88+add);
	write_date(0x30+mi);
	write_date(0x30+fen);
	write_date(0x30+li);
	write_date(0x30+bai);
	write_date(0x30+shi);
	write_date(0x30+ge);
	date=0;	
}

//**************提示注意函婁**************//
dis_warn(char num[])
{  int k;
  write_com(0x98);
   for(k=0;k<14;k++)
    { 
	  write_date(num[k]);
	  }
  }
///////////////////////////////////////////
 dis_direction(char num[])
{  int k;
  write_com(0x88+1);
   for(k=0;k<4;k++)
    { 
	  write_date(num[k]);
	  }
  }
/***************************
*初始化程
***************************/
void init(void)
{

	write_com(0x01);		//清除顯示
	write_com(0x02);	    //地址歸零
	write_com(0x06);		//進入設定點
	write_com(0x0c);		//顯示開關設置
	write_com(0x30);		//功能設定
	write_com(0x80);		//在第一行開始輸入
	for(i=0;i<14;i++)		//顯示初始化
	{
		write_date(welcome[i]);
	
	}

	write_com(0x90);		//在第一行開始輸入
	for(i=0;i<14;i++)		//顯示初始化
	{
		write_date(table[i]);
	
	}
    write_com(0x88);		//在第一行開始輸入
   	for(i=0;i<14;i++)		//顯示初始化
	{
		write_date(table2[i]);
	
	}
	TMOD=0X01;				 //設定定時器為工作方式1
	TH0=0X00;
	TL0=0X00;				 //裝初始值
	EA=1;					 //開總中斷
	IT1=1;					 //設定外部中斷為下降沿觸發方式
}
/********************************
*延時方法發送方波
********************************/

void send(unsigned int number)         //左方發送函數
{  if(number==1)
   {
	j=100;
	TH0=0X00;
	TL0=0X00;				  
 	EX1=1;
	TR0=1;						   //開計數器						 
	while(j--)					  //發送2個方波
	{
		D0=!D0;
	    _nop_();	
 		_nop_();
	    _nop_();			
	}						   //開外部中斷1
	delay(20);
	}
 else
   if(number==2)
   {
	j=100;
	TH0=0X00;
	TL0=0X00;				  
 	EX1=1;
	TR0=1;						   //開計數器						 
	while(j--)					  //發送2個方波
	{
		D1=!D1;
	    _nop_();	
 		_nop_();
	    _nop_();			
	}						   //開外部中斷1
	delay(20);
	}  
 else
   if(number==3)
   {
	j=100;
	TH0=0X00;
	TL0=0X00;				  
 	EX1=1;
	TR0=1;						   //開計數器						 
	while(j--)					  //發送2個方波
	{
		D2=!D2;
	    _nop_();	
 		_nop_();
	    _nop_();			
	}						     //開外部中斷1
	delay(20);
	}	
    else
   if(number==4)
   {
	j=100;
	TH0=0X00;
	TL0=0X00;				  
 	EX1=1;
	TR0=1;						   //開計數器						 
	while(j--)					  //發送2個方波
	{
		D3=!D3;
	    _nop_();	
 		_nop_();
	    _nop_();			
	}						   //開外部中斷1
	delay(20);
	}
	 else
   if(number==5)
   {
	j=100;
	TH0=0X00;
	TL0=0X00;				  
 	EX1=1;
	TR0=1;						   //開計數器						 
	while(j--)					  //發送2個方波
	{
		D4=!D4;
	    _nop_();	
 		_nop_();
	    _nop_();			
	}						   //開外部中斷1
	delay(10);
	}
	IE1=0;					  //延時10ms,等待發送完畢
	if(flag==0)
	{	
		TR0=0;					
		EX1=0;
		TH0=0X00;
		TL0=0X00;
	}							//超過10ms或接收到中斷后關外部中斷1,防止干擾
	if(TF0==1)						//如果計數器溢出則清0
 {
	 	TF0=0;
	 	TR0=0;
	 	TH0=0X00;
		TL0=0X00;			
 	} 		 
}
   ////// 開機聲//////
 void  beep()
 {
  deep=0;
  delay1ms(400);
  deep=1;
  }
// **************	外部中斷.驅動小車  ********************//
 void in0() interrupt 1 using 0 
{	
	tem++;
if(tem%2==0)
 move=0;
else
  move=1;


}

/****************************
*外部中斷1;處理數據,測出距離 
******************************/	  

void in1() interrupt 2 using 1
{
	IE1=0;
	TR0=0;
	EX1=0; 
	flag=1;
//	T=read_temp();
//	v=331.5+0.607*T;
    time=TH0*256+TL0;
   	shu=(time/100)*17-20;
	TH0=0X00;
	TL0=0X00;
}

 void gotkey(void) {
        if (mode_button==0) {
                delay(5);
                if (mode_button==0) 
				{ 
				 tempkey=1;
				 LED1=0;
				 LED2=1;
				 beep();
				}
        }
        if (operation_button==0) {
                delay(5);
                if (operation_button==0) 
				{tempkey=2;
			    	LED1=1;
				   LED2=0;
				   beep();
				 }
        }
		else tempkey=tempkey;
}
/*****************************
*主程序
******************************/
void main()
{   
	 tem=1;
	tempkey=1;
    LED1=0;
	kk=1;
	beep();
	init();
	seek_play(1);              //播入歡迎語音
     play();
	delay(2000);  
	EX0=1;
	PX0=1;  
while(1)
   { gotkey();
     	read_temp();
       ds1820disp();
     if(tempkey==1)
  {
 
     for(kk=1;kk<4;kk++)
     	{	if(kk==4)
	      kk=0;
		  else
	     	send(kk);
           if(flag==1)						 //如果接收到回波,則進行處理
	    	{	
			dis_direction(&direction[kk-1][0]);	
			dis_distance(3,shu);
		 	delay(100);
			flag=0;	
			if(shu<1000)
			{
			 dis_warn(&warn1[kk-1][0]);
			 seek_play(kk+1);
			 play();
			}
			else
            dis_warn(warn2);
		}
		} 					
	} 
	else if(tempkey==2)

	{	send(3);
	  if(flag==1)
	  {
	    dis_direction(&direction[2][0]);
     	dis_distance(3,shu);
		delay(100);
			flag=0;	
	    if(shu<500)                          //滿足條件提示注意后方車輛
		{   
    	
		     dis_warn(&warn1[2][0]);
			 seek_play(4);
			  play();
		  }
			  else
			dis_warn(warn2);
	   }
	    for(kk=4;kk<6;kk++)
     	{	if(kk==6)
	      kk=0;
		  else
	     	send(kk);
           if(flag==1)						 //如果接收到回波,則進行處理
	    	{
          
			dis_direction(&direction[kk-1][0]);	
			dis_distance(3,shu);
				delay(100);
			flag=0;	
			if(shu<100)
			{
			 dis_warn(&warn1[kk+1][0]);
			 seek_play(kk+3);
			 play();
			}
			else 
			   if(shu>200)                   // 滿足條件就提示有泥坑
			{  
			 dis_warn(&warn1[kk-1][0]);
			 seek_play(kk+1);
			 play();
			} 
			else
            dis_warn(warn2);
		}
		}
}
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产aⅴ综合色| 久久综合狠狠综合久久综合88| 成人黄色免费短视频| 国产综合久久久久久久久久久久| 人禽交欧美网站| 欧美aⅴ一区二区三区视频| 日本网站在线观看一区二区三区 | 亚洲夂夂婷婷色拍ww47| 日韩一区有码在线| 中文字幕一区二区在线观看 | 顶级嫩模精品视频在线看| 国产一区二区伦理片| 国产精品综合二区| 国产91对白在线观看九色| 国产成人精品影院| proumb性欧美在线观看| 91极品视觉盛宴| 欧美区视频在线观看| 欧美男同性恋视频网站| 日韩一区二区三区在线观看| 日韩欧美在线影院| 久久久久久97三级| 国产精品国产三级国产aⅴ中文 | 日韩国产欧美在线视频| 奇米影视一区二区三区| 韩国精品在线观看| 粉嫩av一区二区三区| 91视频免费看| 欧美日韩国产另类不卡| 精品久久久久久亚洲综合网| 国产亚洲一二三区| 亚洲黄色片在线观看| 日韩av电影免费观看高清完整版| 久久99国产精品久久| 成人天堂资源www在线| 色偷偷88欧美精品久久久| 欧美日韩日日骚| 精品国产一区二区三区久久久蜜月| 国产欧美1区2区3区| 亚洲卡通欧美制服中文| 日本成人超碰在线观看| 懂色av一区二区三区免费看| 欧洲精品一区二区| 日韩精品一区二| 亚洲日本丝袜连裤袜办公室| 天堂成人免费av电影一区| 国产一区二区精品久久| 欧洲av一区二区嗯嗯嗯啊| 26uuu精品一区二区三区四区在线| 国产精品久久久久久久久晋中| 亚洲成人av电影在线| 国产精品99久久久久久久vr | 欧美精品一区视频| 有坂深雪av一区二区精品| 另类人妖一区二区av| 色综合一个色综合| 久久综合久久鬼色| 亚洲国产sm捆绑调教视频| 国产精品一二三在| 欧美精品日韩综合在线| 亚洲国产成人私人影院tom| 视频精品一区二区| 91在线小视频| 久久综合五月天婷婷伊人| 亚洲综合小说图片| 大尺度一区二区| 欧美电视剧免费观看| 一区二区三区精品在线| 国产91精品免费| 日韩一区二区三区免费看| 一区二区三区自拍| 国产精品系列在线观看| 91精品国产福利| 亚洲国产色一区| 9l国产精品久久久久麻豆| 久久蜜臀精品av| 蜜桃视频第一区免费观看| 在线观看一区二区精品视频| 国产精品无人区| 国产精品一区二区黑丝| 欧美一区二区三区婷婷月色| 亚洲一区在线观看免费观看电影高清 | 日韩三级免费观看| 一区二区三区精品在线| 波多野结衣在线一区| 久久久久久久久久看片| 久久成人羞羞网站| 884aa四虎影成人精品一区| 亚洲国产精品久久久男人的天堂| 99精品久久99久久久久| 国产精品视频看| 国产成人综合自拍| 久久九九影视网| 国产精品一区不卡| 久久精品视频网| 国产激情一区二区三区| 26uuu另类欧美| 国产尤物一区二区在线| 精品999久久久| 国产在线视频精品一区| 精品美女在线播放| 韩国精品主播一区二区在线观看| 欧美xxx久久| 国模无码大尺度一区二区三区| 日韩免费电影一区| 另类小说综合欧美亚洲| 日韩一区二区免费电影| 美女高潮久久久| 日韩一级高清毛片| 精品在线免费观看| 国产亚洲成aⅴ人片在线观看| 国产精品亚洲专一区二区三区| 久久日韩精品一区二区五区| 国产精品一二三四| 国产精品色噜噜| 色婷婷综合久久| 亚洲国产精品一区二区尤物区| 欧美天天综合网| 日本不卡高清视频| 日韩欧美第一区| 国产成人免费av在线| 国产精品毛片高清在线完整版| 成人国产一区二区三区精品| 亚洲视频一区二区在线| 欧美特级限制片免费在线观看| 日韩福利电影在线观看| 欧美不卡一区二区三区四区| 国产麻豆视频一区二区| 国产精品青草综合久久久久99| 91色porny在线视频| 午夜伦理一区二区| 欧美成人官网二区| 国产91丝袜在线播放| 亚洲男女毛片无遮挡| 91精品久久久久久久久99蜜臂| 久久99久久精品| 国产精品青草久久| 欧美日韩在线播放一区| 久久99精品久久只有精品| 中文字幕成人av| 欧美午夜影院一区| 精品无人码麻豆乱码1区2区| 国产精品美女久久久久久| 欧美日韩一区三区| 国产一区二区三区四区五区美女| 中文字幕亚洲综合久久菠萝蜜| 欧美日韩免费高清一区色橹橹| 久久99久久精品| 亚洲男人电影天堂| 日韩欧美一区二区不卡| 99视频国产精品| 免费在线观看视频一区| 国产精品亲子乱子伦xxxx裸| 欧美美女网站色| 国产91高潮流白浆在线麻豆| 亚洲福利视频一区二区| 国产调教视频一区| 欧美伦理影视网| 东方欧美亚洲色图在线| 日韩中文欧美在线| 中文字幕在线不卡一区| 日韩欧美在线123| 色综合久久88色综合天天| 精品一区二区三区免费观看| 亚洲精品成人在线| 国产午夜亚洲精品羞羞网站| 欧美日韩一区久久| 99精品欧美一区| 国产一区二区三区免费播放| 亚洲午夜激情av| 国产精品国产三级国产aⅴ中文| 日韩午夜在线观看视频| 色婷婷av一区二区三区gif| 狠狠色丁香婷婷综合| 午夜精品久久久久影视| 亚洲人成亚洲人成在线观看图片 | 亚洲免费伊人电影| 国产欧美一区二区在线| 7777精品伊人久久久大香线蕉完整版 | 亚洲专区一二三| 亚洲欧洲av在线| 国产网站一区二区三区| 日韩女同互慰一区二区| 欧美日本视频在线| 91亚洲精品久久久蜜桃| 丁香桃色午夜亚洲一区二区三区| 免费在线看成人av| 偷拍自拍另类欧美| 亚洲中国最大av网站| 亚洲欧洲av另类| 欧美激情一区二区三区蜜桃视频 | 在线播放中文一区| 日本久久电影网| 99久久综合精品| 高清不卡在线观看av| 国产一区二区三区蝌蚪| 久久精品国产澳门| 日韩高清电影一区| 日韩电影免费一区| 日韩成人免费电影|