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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 51

?? 51單片機大量源碼
??
字號:
//超聲波模塊顯示程序
#include <reg52.h>     //包括一個52標準內(nèi)核的頭文件
#include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件
#define uchar unsigned char //定義一下方便使用
#define uint  unsigned int
#define ulong unsigned long
sbit Tx  = P3^3; //產(chǎn)生脈沖引腳
sbit Rx  = P3^2; //回波引腳
sbit RS=P2^0;    //寄存器選擇位,將RS位定義為P2.0引腳
sbit RW=P2^1;    //讀寫選擇位,將RW位定義為P2.1引腳
sbit E=P2^2;     //使能信號位,將E位定義為P2.2引腳
sbit BF=P0^7;    //忙碌標志位,,將BF位定義為P0.7引腳
unsigned char code string[ ]= {"CHAO SHENG BO"}; 
//unsigned char code string1[ ]={"QUICK STUDY MCU"};
unsigned char code digit[ ]={"0123456789"}; //定義字符數(shù)組顯示數(shù)字
//uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//數(shù)碼管0-9
uint distance[4];  //測距接收緩沖區(qū)
uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i;  //自定義寄存器
bit succeed_flag;  //測量成功標志
//********函數(shù)聲明
void conversion(uint temp_data);
void delay_20us();
void pai_xu();
//download by http://www.codefans.net

/*****************************************************
函數(shù)功能:延時1ms
(3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒
***************************************************/
void delay1ms()
{
   unsigned char i,j;	
	 for(i=0;i<10;i++)
	  for(j=0;j<33;j++)
	   ;		 
 }
/*****************************************************
函數(shù)功能:延時若干毫秒
入口參數(shù):n
***************************************************/
 void delay(unsigned char n)
 {
   unsigned char i;
	for(i=0;i<n;i++)
	   delay1ms();
 }
/*****************************************************
函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
 unsigned char BusyTest(void)
  {
    bit result;
	RS=0;       //根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài)
    RW=1;
    E=1;        //E=1,才允許讀寫
    _nop_();   //空操作
    _nop_();
    _nop_(); 
    _nop_();   //空操作四個機器周期,給硬件反應(yīng)時間	
    result=BF;  //將忙碌標志電平賦給result
   E=0;         //將E恢復(fù)低電平
    return result;
  }
/*****************************************************
函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊
入口參數(shù):dictate
***************************************************/
void WriteInstruction (unsigned char dictate)
{   
    while(BusyTest()==1); //如果忙就等待
	 RS=0;                  //根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入指令
	 RW=0;   
	 E=0;                   //E置低電平(根據(jù)表8-6,寫指令時,E為高脈沖,
                             // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
	 _nop_();
	 _nop_();             //空操作兩個機器周期,給硬件反應(yīng)時間
	 P0=dictate;            //將數(shù)據(jù)送入P0口,即寫入指令或地址
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個機器周期,給硬件反應(yīng)時間
	 E=1;                   //E置高電平
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個機器周期,給硬件反應(yīng)時間
	  E=0;                  //當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令
 }
/*****************************************************
函數(shù)功能:指定字符顯示的實際地址
入口參數(shù):x
***************************************************/
 void WriteAddress(unsigned char x)
 {
     WriteInstruction(x|0x80); //顯示位置的確定方法規(guī)定為"80H+地址碼x"
 }
/*****************************************************
函數(shù)功能:將數(shù)據(jù)(字符的標準ASCII碼)寫入液晶模塊
入口參數(shù):y(為字符常量)
***************************************************/
 void WriteData(unsigned char y)
 {
    while(BusyTest()==1);  
	  RS=1;           //RS為高電平,RW為低電平時,可以寫入數(shù)據(jù)
	  RW=0;
	  E=0;            //E置低電平(根據(jù)表8-6,寫指令時,E為高脈沖,
                       // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
	  P0=y;           //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊
	  _nop_();
	  _nop_();
 	  _nop_();
     _nop_();       //空操作四個機器周期,給硬件反應(yīng)時間
	  E=1;          //E置高電平
	  _nop_();
	  _nop_();
	  _nop_();
	 _nop_();        //空操作四個機器周期,給硬件反應(yīng)時間
	 E=0;            //當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令
 }
/*****************************************************
函數(shù)功能:對LCD的顯示模式進行初始化設(shè)置
***************************************************/
void LcdInitiate(void)
{
   delay(15);             //延時15ms,首次寫指令時應(yīng)給LCD一段較長的反應(yīng)時間
   WriteInstruction(0x38);  //顯示模式設(shè)置:16×2顯示,5×7點陣,8位數(shù)據(jù)接口
	delay(5);               //延時5ms ,給硬件一點反應(yīng)時間
   WriteInstruction(0x38);
	delay(5);
	WriteInstruction(0x38); //連續(xù)三次,確保初始化成功
	delay(5);
	WriteInstruction(0x0c);  //顯示模式設(shè)置:顯示開,無光標,光標不閃爍
	delay(5);
        WriteInstruction(0x06);  //顯示模式設(shè)置:光標右移,字符不移
	delay(5);
	WriteInstruction(0x01);  //清屏幕指令,將以前的顯示內(nèi)容清除
	delay(5);
 }
 








void main(void)   // 主程序
{  uint distance_data,a,b;
   uchar CONT_1;  
  uchar k;   //定義變量i指向字符串數(shù)組元素
    LcdInitiate();         //調(diào)用LCD初始化函數(shù)  
   delay(10);             //延時10ms,給硬件一點反應(yīng)時間
   WriteAddress(0x01);   // 從第1行第3列開始顯示
   k = 0;               //指向字符數(shù)組的第1個元素
 	while(string[k] != '\0')
		{					
			WriteData(string[k]);
			k++;             //指向下字符數(shù)組一個元素				
		}	 
   i=0;

   flag=0;
	Tx=0;       //首先拉低脈沖輸入引腳
	TMOD=0x10;    //定時器0,定時器1,16位工作方式
//	TR0=1;	     //啟動定時器0
   IT0=0;        //由高電平變低電平,觸發(fā)外部中斷
	//ET0=1;        //打開定時器0中斷
	EX0=0;        //關(guān)閉外部中斷
	EA=1;         //打開總中斷0	
  
	
while(1)         //程序循環(huán)
	{
	 WriteAddress(0x41);    // 從第2行第6列開始顯示
	        WriteData('J');  //將萬位數(shù)字的字符常量寫入LCD
			 WriteData('U');  //將萬位數(shù)字的字符常量寫入LCD
			  WriteData('L');  //將萬位數(shù)字的字符常量寫入LCD
			   WriteData('I');  //將萬位數(shù)字的字符常量寫入LCD
			    WriteData(':');  //將萬位數(shù)字的字符常量寫入LCD
		  WriteData(digit[bai]);  //將萬位數(shù)字的字符常量寫入LCD
		  WriteData(digit[shi]);  //將千位數(shù)字的字符常量寫入LCD
		  WriteData('.');  //將萬位數(shù)字的字符常量寫入LCD
		  WriteData(digit[ge]);  //將百位數(shù)字的字符常量寫入LCD
		  WriteData(' ');  //將百位數(shù)字的字符常量寫入LCD
		  WriteData('C');  //將萬位數(shù)字的字符常量寫入LCD
		  WriteData('M');  //將萬位數(shù)字的字符常量寫入LCD
  EA=0;
	     Tx=1;
        delay_20us();
        Tx=0;         //產(chǎn)生一個20us的脈沖,在Tx引腳  
        while(Rx==0); //等待Rx回波引腳變高電平
	     succeed_flag=0; //清測量成功標志
	     EX0=1;          //打開外部中斷
	 	  TH1=0;          //定時器1清零
        TL1=0;          //定時器1清零
	     TF1=0;          //
        TR1=1;          //啟動定時器1
   EA=1;

      while(TH1 < 30);//等待測量的結(jié)果,周期65.535毫秒(可用中斷實現(xiàn))  
		  TR1=0;          //關(guān)閉定時器1
        EX0=0;          //關(guān)閉外部中斷

    if(succeed_flag==1)
	     { 	
		   distance_data=outcomeH;                //測量結(jié)果的高8位
           distance_data<<=8;                   //放入16位的高8位
		     distance_data=distance_data|outcomeL;//與低8位合并成為16位結(jié)果數(shù)據(jù)
            distance_data*=12;                  //因為定時器默認為12分頻
           distance_data/=58;                   //微秒的單位除以58等于厘米
         }                                      //為什么除以58等于厘米,  Y米=(X秒*344)/2
			                                       // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58 
    if(succeed_flag==0)
		   {
            distance_data=0;                    //沒有回波則清零

           }

           distance[i]=distance_data; //將測量結(jié)果的數(shù)據(jù)放入緩沖區(qū)
            i++;
  	  	 if(i==3)
	  	     {
	  	       distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4;
              
            pai_xu();
             distance_data=distance[1];

      
	   a=distance_data;
       if(b==a) CONT_1=0;
       if(b!=a) CONT_1++;
       if(CONT_1>=3)
		   { CONT_1=0;
			  b=a;
			  conversion(b);
			}       
	  		 i=0;
 	  		}	     
	 }
}
//***************************************************************
//外部中斷0,用做判斷回波電平
INTO_()  interrupt 0   // 外部中斷是0號
 {    
     outcomeH =TH1;    //取出定時器的值
     outcomeL =TL1;    //取出定時器的值
     succeed_flag=1;   //至成功測量的標志
     EX0=0;            //關(guān)閉外部中斷
  }
//****************************************************************
//定時器0中斷,用做顯示
timer0() interrupt 1  // 定時器0中斷是1號
   {
 	// TH0=0xfd; //寫入定時器0初始值
	// TL0=0x77;	 	
	
   }

//顯示數(shù)據(jù)轉(zhuǎn)換程序
void conversion(uint temp_data)  
 {  
    uchar ge_data,shi_data,bai_data ;
    bai_data=temp_data/100 ;
    temp_data=temp_data%100;   //取余運算
    shi_data=temp_data/10 ;
    temp_data=temp_data%10;   //取余運算
    ge_data=temp_data;

    //bai_data=SEG7[bai_data];
    //shi_data=SEG7[shi_data]&0x7f;
    //ge_data =SEG7[ge_data];

    EA=0;
    bai = bai_data;
    shi = shi_data;
    ge  = ge_data ; 
	 EA=1;
 }
//******************************************************************


void delay_20us()
 {  uchar bt ;
    for(bt=0;bt<60;bt++);
 }
   void pai_xu()
  {  uint t;
  if (distance[0]>distance[1])
    {t=distance[0];distance[0]=distance[1];distance[1]=t;} 
  if(distance[0]>distance[2])
    {t=distance[2];distance[2]=distance[0];distance[0]=t;} 
  if(distance[1]>distance[2])
    {t=distance[1];distance[1]=distance[2];distance[2]=t;}  
    }


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区蜜臀亚洲| 亚洲精品国产品国语在线app| 国产精品久久久久9999吃药| 亚洲成人激情综合网| 国产一区欧美二区| 欧美视频三区在线播放| 国产亚洲一区二区三区在线观看| 午夜精品久久久久久久久久久| 成人影视亚洲图片在线| 日韩欧美一区中文| 一区二区在线观看免费| 国产成人啪免费观看软件| 欧美一区二区三区思思人| 一区二区三区日韩在线观看| 国产麻豆精品95视频| 欧美一区二区三区喷汁尤物| 亚洲女同ⅹxx女同tv| av亚洲产国偷v产偷v自拍| 欧美大片在线观看一区| 午夜日韩在线电影| 91国产免费观看| 亚洲免费视频中文字幕| av中文字幕亚洲| 国产精品久久久一本精品| 国产高清不卡一区二区| 国产网红主播福利一区二区| 国产麻豆9l精品三级站| 久久看人人爽人人| 国产精品一区二区在线看| 精品播放一区二区| 久久精品国产99久久6| 日韩亚洲欧美中文三级| 麻豆精品视频在线| 亚洲精品视频免费看| 色哟哟日韩精品| 亚洲卡通欧美制服中文| 91片黄在线观看| 一区二区三区.www| 欧美唯美清纯偷拍| 婷婷中文字幕一区三区| 555夜色666亚洲国产免| 青青草国产成人99久久| 久久影院午夜论| 福利电影一区二区三区| 亚洲欧美另类图片小说| 欧美日韩美少妇| 精品综合免费视频观看| 国产亚洲1区2区3区| proumb性欧美在线观看| 亚洲制服丝袜av| 欧美精品777| 国产在线播放一区二区三区| 国产精品丝袜一区| 欧洲精品一区二区| 免费看欧美美女黄的网站| 久久久久国产精品麻豆ai换脸 | 欧美精品色一区二区三区| 日日摸夜夜添夜夜添精品视频| 欧美成人三级在线| 大白屁股一区二区视频| 亚洲国产精品一区二区久久| 日韩免费高清av| 91麻豆免费视频| 蜜臀av性久久久久蜜臀av麻豆| 国产午夜精品久久久久久免费视| 在线免费一区三区| 极品少妇xxxx偷拍精品少妇| 国产欧美精品一区| 欧美亚日韩国产aⅴ精品中极品| 男男成人高潮片免费网站| 国产亚洲精品aa午夜观看| 欧美图区在线视频| 国产成人综合亚洲91猫咪| 夜色激情一区二区| 久久久久久97三级| 5858s免费视频成人| 91在线观看美女| 激情av综合网| 亚洲3atv精品一区二区三区| 国产欧美精品国产国产专区 | 色94色欧美sute亚洲线路一久| 蜜桃久久av一区| 美女在线视频一区| 亚洲激情六月丁香| 亚洲国产精品二十页| 欧美男男青年gay1069videost| 成人动漫av在线| 黄一区二区三区| 人人超碰91尤物精品国产| 亚洲视频在线观看一区| 久久久久久久久伊人| 日韩一区二区精品在线观看| 91国偷自产一区二区三区成为亚洲经典 | 国产麻豆视频一区二区| 美女精品一区二区| 亚洲成人动漫av| 亚洲精品国产成人久久av盗摄| 日本一区二区免费在线观看视频| 日韩免费高清电影| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲午夜私人影院| 亚洲私人黄色宅男| |精品福利一区二区三区| 亚洲国产人成综合网站| 自拍偷拍国产精品| 国产欧美va欧美不卡在线| 久久亚洲综合色| 欧美精品一区二区三区四区| 日韩精品一区二区三区在线观看| 欧美日韩一卡二卡| 欧美日韩精品一区二区三区蜜桃 | 男女男精品视频网| 婷婷夜色潮精品综合在线| 午夜电影网亚洲视频| 午夜精品久久久久久不卡8050| 亚洲狠狠丁香婷婷综合久久久| 亚洲人成网站影音先锋播放| 亚洲天堂久久久久久久| 亚洲另类一区二区| 亚洲一线二线三线视频| 污片在线观看一区二区| 免费人成在线不卡| 黄色日韩网站视频| 成人免费观看视频| 91亚洲精品久久久蜜桃| 色噜噜狠狠色综合欧洲selulu| 欧美中文字幕一区二区三区亚洲| 欧美在线小视频| 欧美一区二区三区在线观看 | 韩国av一区二区三区四区 | 国产欧美一区二区在线观看| 国产喷白浆一区二区三区| 亚洲欧美在线视频| 一区av在线播放| 蜜桃av一区二区三区电影| 九九国产精品视频| 99re这里只有精品首页| 欧美日韩一二三区| 亚洲精品一区二区三区99| 国产欧美日韩另类视频免费观看| 亚洲美女精品一区| 日韩精品一卡二卡三卡四卡无卡 | 日韩精品久久久久久| 韩国女主播一区| 色哟哟日韩精品| 日韩免费观看2025年上映的电影| 欧美激情一区二区三区不卡 | 成人一二三区视频| 在线观看日产精品| 精品奇米国产一区二区三区| 国产精品久久看| 免费成人性网站| av亚洲精华国产精华精华| 91精品久久久久久久91蜜桃| 国产亚洲一区字幕| 日日嗨av一区二区三区四区| 成人免费av网站| 91精品黄色片免费大全| 国产精品的网站| 精品一区二区在线免费观看| 91丨九色丨黑人外教| 日韩欧美一区二区久久婷婷| 亚洲欧美日韩国产一区二区三区| 久久精品国产精品亚洲精品| 91美女在线观看| 久久麻豆一区二区| 日韩影视精彩在线| 色综合久久综合网97色综合| 久久综合久久综合久久综合| 亚洲午夜国产一区99re久久| 97久久人人超碰| 久久久久久久久久久久久久久99 | 色综合天天综合网国产成人综合天| 欧美一级二级在线观看| 亚洲精品亚洲人成人网在线播放| 国产精品自拍三区| 日韩女优av电影在线观看| 亚洲一区二区三区小说| www.亚洲国产| 久久久久久免费毛片精品| 麻豆精品视频在线观看视频| 欧美日韩一区二区三区免费看| 亚洲欧洲成人av每日更新| 国内精品免费**视频| 日韩一区国产二区欧美三区| 亚洲成av人影院在线观看网| 91视频.com| 亚洲丝袜自拍清纯另类| www.久久久久久久久| 国产精品久久久久天堂| 国产馆精品极品| 亚洲国产精品二十页| 国产成人av一区二区三区在线观看| 欧美成人精品二区三区99精品| 日韩国产精品大片| 日韩欧美在线网站| 精品在线免费视频| 久久综合久色欧美综合狠狠| 国产精一区二区三区| 久久久久久麻豆|