超声波测距51单片机12864液晶显示.docx

上传人:b****7 文档编号:8727361 上传时间:2023-02-01 格式:DOCX 页数:8 大小:83.63KB
下载 相关 举报
超声波测距51单片机12864液晶显示.docx_第1页
第1页 / 共8页
超声波测距51单片机12864液晶显示.docx_第2页
第2页 / 共8页
超声波测距51单片机12864液晶显示.docx_第3页
第3页 / 共8页
超声波测距51单片机12864液晶显示.docx_第4页
第4页 / 共8页
超声波测距51单片机12864液晶显示.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

超声波测距51单片机12864液晶显示.docx

《超声波测距51单片机12864液晶显示.docx》由会员分享,可在线阅读,更多相关《超声波测距51单片机12864液晶显示.docx(8页珍藏版)》请在冰豆网上搜索。

超声波测距51单片机12864液晶显示.docx

超声波测距51单片机12864液晶显示

超声波测距51单片机12864液晶显示

 超声波测距的模块,51单片机接上12864液晶,HC-SR04超声波模块,就可以了。

超声波测距51单片机12864液晶显示源程序:

 #include 

 #include

//引脚定义

    sbit     RX    =  P1^1;

    sbit     TX    =  P1^2;

    sbit     CS    =  P3^3; //片选高电平有效单片LCD使用时可固定高电平

    sbit     SID   =  P3^4; //数据

    sbit     SCLK  =  P3^5; //时钟

//FunctionDefinition 函数声明

voidDelay(intnum);

voidInit_DS18B20(void);

unsignedcharReadOneChar(void);

voidWriteOneChar(unsignedchardat);

unsignedintReadTemperature(void);

voidclock_out(unsignedchardd);

unsignedcharclock_in(void);

unsignedcharread_clock(unsignedcharord);

voidwrite_clock(unsignedcharord,unsignedchardd);

voidDisp(void);

voidid_case1_key(void);

voidid_case2_key(void);

voidSet_time(unsignedcharsel,bitsel_1);

voidTimer0_Init(void);

voidInit_1302(void);

voidSet_Bell(unsignedcharsel,bitsel_1);

voidBell(void);

//12864

voidWrite_char(bitstart,unsignedcharddata);

voidSend_byte(unsignedcharbbyte);

voidDelaynms(unsignedintdi);

voidLcd_init(void);

voidDisp_img(unsignedchar*img);

voidLCD_Write_string(unsignedcharX,unsignedcharY,unsignedchar*s);

voidLCD_set_xy(unsignedcharx,unsignedchary);

unsignedcharcodenum[]={"0123456789:

.-"};

unsignedcharcodewaves[]={"超声波测距系统"};

unsignedcharcodeznwk[]={"智能微控工作室"};

unsignedcharcodeCM[]=  {"M"};

unsignedint  time=0;

         longS=0;

         bit  flag=0;

unsignedchardisbuff[4]    ={0,0,0,0,};

unsignedcharcodelogo[]={ 

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xE0,0x00,0x00,0x0C,0x00,0x00,0x40,0x70,0x00,0x00,0x00,0x80,0x00,

0x00,0x00,0x00,0xE0,0x00,0x00,0x1E,0x00,0x00,0x60,0x70,0x00,0x00,0x0F,0xE0,0x00,

0x00,0x00,0x01,0xC0,0x00,0x60,0x3C,0x00,0x00,0xE0,0x60,0x00,0x1F,0xFF,0xE0,0x00,

0x00,0x00,0x03,0x80,0x00,0x70,0x70,0x40,0x00,0xE0,0x7E,0x00,0x1F,0xE0,0xC0,0x00,

0x00,0x00,0x03,0x00,0x00,0x73,0xC3,0xF0,0x01,0xC3,0xFC,0x00,0x38,0xE1,0xC0,0x00,

0x00,0x03,0xC6,0x3C,0x00,0x33,0x9F,0xF0,0x03,0x8F,0xC0,0x00,0x30,0xC1,0xC0,0x00,

0x00,0x3F,0xEF,0xFE,0x00,0x03,0x1C,0xE0,0x07,0x01,0xCC,0x00,0x31,0xF1,0x80,0x00,

0x00,0x79,0xDF,0xBC,0x00,0x06,0x18,0xC0,0x0E,0x01,0xFE,0x00,0x77,0xF9,0x80,0x00,

0x00,0x01,0xB0,0x30,0x01,0xC6,0x19,0xC0,0x1E,0x7F,0xDE,0x00,0x6F,0x83,0x80,0x00,

0x00,0x23,0xAC,0x60,0x0F,0xE6,0xF1,0x80,0x3E,0x7B,0x38,0x00,0x61,0x83,0x00,0x00,

0x00,0x37,0x0E,0x00,0x0F,0xC7,0xB7,0x80,0xEC,0x63,0x30,0x00,0xE3,0x03,0x00,0x00,

0x00,0x3E,0x0E,0x00,0x01,0x8F,0x37,0x01,0xCC,0x6F,0xF0,0x00,0xC7,0xF7,0x00,0x00,

0x00,0x1E,0x0C,0x00,0x03,0x1E,0x66,0x03,0x0C,0x7F,0x00,0x01,0xFF,0xE6,0x00,0x00,

0x00,0x1E,0x1C,0x00,0x03,0x1C,0x60,0x02,0x19,0xAC,0x00,0x01,0x96,0x06,0x00,0x00,

0x00,0x3E,0x3E,0x00,0x03,0x18,0x60,0x00,0x19,0xFC,0x00,0x03,0x86,0x0E,0x00,0x00,

0x00,0x7E,0x36,0x00,0x03,0x00,0xC0,0x00,0x38,0x78,0x00,0x03,0x06,0x0C,0x00,0x00,

0x00,0xE6,0x67,0x00,0x03,0x00,0xC0,0x00,0x30,0x78,0x00,0x06,0x0C,0x0C,0x00,0x00,

0x01,0xC6,0xC3,0x80,0x7F,0xF0,0xC0,0x00,0x30,0xFE,0x00,0x0E,0x0C,0x1C,0x00,0x00,

0x03,0x81,0x83,0xC0,0x78,0xFF,0x80,0x00,0x61,0xCF,0x80,0x1C,0x08,0x18,0x00,0x00,

0x06,0x07,0x03,0xE0,0x00,0x1F,0xFF,0xE0,0x67,0x07,0xE0,0x38,0x18,0xF8,0x00,0x00,

0x08,0x0E,0x01,0xF8,0x00,0x07,0xFF,0x80,0xCE,0x03,0xF8,0x60,0x00,0x70,0x00,0x00,

0x00,0x18,0x01,0xF8,0x00,0x01,0xFC,0x00,0xC0,0x01,0xFC,0xC0,0x00,0x70,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x06,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x07,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x06,0x00,0x00,0x00,0x0C,0xE0,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x0E,0x00,0x00,0x00,0x3F,0xE0,0x00,0xFF,0xF0,0x00,0x38,0x00,0xE0,0x00,

0x00,0x00,0x0C,0x00,0x00,0x0F,0xFF,0x80,0x00,0xF8,0xF0,0x00,0x38,0x00,0xE0,0x00,

0x00,0x00,0x0C,0xF0,0x00,0x0F,0xC7,0x00,0x00,0x60,0xE0,0x00,0x38,0x00,0xE0,0x00,

0x00,0x00,0x1F,0xF0,0x00,0x01,0x8E,0x00,0x00,0x60,0xC0,0x00,0x70,0x01,0xC0,0x00,

0x00,0x07,0xFF,0x80,0x00,0x01,0x8C,0x00,0x00,0xE1,0x80,0x00,0x70,0x01,0xC0,0x00,

0x00,0x07,0xF8,0x00,0x00,0x01,0x98,0x00,0x00,0xDF,0xC0,0x00,0x70,0x01,0xC0,0x00,

0x00,0x00,0x78,0x00,0x00,0x01,0xBF,0xE0,0x00,0xFF,0x00,0x00,0x60,0x01,0x80,0x00,

0x00,0x00,0xFC,0x00,0x00,0x7F,0xFF,0xE0,0x00,0xC0,0x00,0x00,0xE0,0x03,0x80,0x00,

0x00,0x01,0xFE,0x00,0x00,0x7F,0xF8,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x00,0x00,

0x00,0x03,0xB7,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x3C,0x00,0xC0,0x03,0x00,0x00,

0x00,0x07,0x67,0x00,0x00,0x60,0x00,0x00,0x03,0x9F,0xFE,0x00,0x80,0x02,0x00,0x00,

0x00,0x0E,0x63,0x80,0x00,0xE0,0x00,0x01,0xFF,0xCF,0x1E,0x01,0x80,0x06,0x00,0x00,

0x00,0x1C,0xE1,0xE0,0x00,0xC0,0x00,0x00,0xE3,0x9C,0x38,0x01,0x80,0x06,0x00,0x00,

0x00,0x38,0xC1,0xF8,0x01,0xC0,0x00,0x00,0xC3,0x18,0x30,0x00,0x00,0x00,0x00,0x00,

0x00,0xE0,0xFC,0xFE,0x03,0x80,0x00,0x01,0xC7,0x18,0x60,0x00,0x00,0x00,0x00,0x00,

0x01,0xDF,0xF8,0xFE,0x03,0x00,0x00,0x01,0x8E,0x1B,0xE0,0x07,0x00,0x1C,0x00,0x00,

0x07,0x07,0x80,0x00,0x07,0x00,0x00,0x01,0xFF,0x3F,0xE0,0x07,0x00,0x1C,0x00,0x00,

0x0C,0x03,0x80,0x00,0x0E,0x00,0x00,0x01,0xF0,0x38,0x00,0x0F,0x00,0x3C,0x00,0x00,

0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x01,0x00,0x20,0x00,0x06,0x00,0x18,0x00,0x00,

0x00,0x03,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x03,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x02,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

voidLcd_init(void) //初始化LCD

{

 Delaynms(10);//启动等待,等LCM讲入工作状态

   CS=1;

   Write_char(0,0x30);  //8位介面,基本指令集

   Write_char(0,0x0c);  //显示打开,光标关,反白关

   Write_char(0,0x01);  //清屏,将DDRAM的地址计数器归零 

}

voidWrite_char(bitstart,unsignedcharddata)//写指令或数据

{

 unsignedcharstart_data,Hdata,Ldata;

   if(start==0)

  start_data=0xf8;  //写指令

    else   

     start_data=0xfa;  //写数据

 

   Hdata=ddata&0xf0;    //取高四位

   Ldata=(ddata<<4)&0xf0;  //取低四位

   Send_byte(start_data);   //发送起始信号

   Delaynms(5);//延时是必须的

   Send_byte(Hdata);       //发送高四位

   Delaynms

(1);  //延时是必须的

   Send_byte(Ldata);    //发送低四位

   Delaynms

(1);  //延时是必须的

}

voidSend_byte(unsignedcharbbyte)//发送一个字节

{

 unsignedchari;

  for(i=0;i<8;i++)

    {

     SID=bbyte&0x80;//取出最高位

   SCLK=1;

     SCLK=0;

     bbyte<<=1;//左移

    } 

}

voidDelaynms(unsignedintdi)//延时

{

 unsignedintda,db;

  for(da=0;da

     for(db=0;db<10;db++);

}

voidDisp_img(unsignedchar  *img) //图形方式12864显示字模221横向取膜

{

 unsignedchari,j;

 unsignedintk=0;

 Write_char(0,0x36);//图形方式

 for(i=0;i<32;i++)

   {

  Write_char(0,0x80+i);

  Write_char(0,0x80);

     for(j=0;j<16;j++)

  {

   Write_char(1,img[k++]);

  }

   }

  for(i=0;i<32;i++)

   {

  Write_char(0,0x80+i);

  Write_char(0,0x88);

     for(j=0;j<16;j++)

  {

   Write_char(1,img[k++]);

    }

 }

}

 

voidClr_Scr(void)//清屏函数

{

 Write_char(0,0x01);

}

voidLCD_set_xy(unsignedcharx,unsignedchary)

{ //设置LCD显示的起始位置,X为行,Y为列

    unsignedcharaddress;

 switch(x)

 {

  case0:

address=0x80+y;break;   

     case1:

address=0x80+y;break;

  case2:

address=0x90+y;break;

      case3:

address=0x88+y;break;

  case4:

address=0x98+y;break;

  default:

address=0x80+y;break;

 }

    Write_char(0,address);

}

voidLCD_Write_string(unsignedcharX,unsignedcharY,unsignedchar*s)

{ // 中英文字符串显示函数

 LCD_set_xy(X,Y);

   

    while(*s)

    {

  Write_char(1,*s);

     s++;

  Delaynms

(1);

 }

}

voidLCD_Write_number(unsignedchars)// 数字显示函数

 Write_char(1,num[s]);

 Delaynms

(1);

}

voidLcd_Mark2(void)

{

 Clr_Scr();//清屏

 LCD_Write_string(1,0,znwk);//

 LCD_Write_string(2,0,waves);// 

 LCD_Write_string(3,7,CM);// 

}

    voidConut(void)

 {

    time=TH0*256+TL0;

    TH0=0;

    TL0=0;

    S=time*1.87/100;       //算出来是CM   11。

0592M晶振

    if(flag==1)        //超出测量

   { 

    flag=0;

    LCD_set_xy(3,4);

    LCD_Write_number(13);

    LCD_Write_number(12);

    LCD_set_xy(3,5);

    LCD_Write_number(13);

    LCD_Write_number(13);

  

    }

  else

   {

    disbuff[1]=S00/100;

    disbuff[2]=S000/10;

    disbuff[3]=S00;

    LCD_set_xy(3,4);

    LCD_Write_number(disbuff[1]);

    LCD_Write_number(12);

    LCD_set_xy(3,5);

    LCD_Write_number(disbuff[2]);

    LCD_Write_number(disbuff[3]);

   }

 }

voiddelayms(unsignedintms)

{

 unsignedchari=100,j;

 for(;ms;ms--)

 {

  while(--i)

  {

   j=10;

   while(--j);

  }

 }

}

     voidzd0()interrupt1   //T0中断用来计数器溢出,超过测距范围

  {

    flag=1;        //中断溢出标志

  }

   void  StartModule()           //T1中断用来扫描数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1