51单片机加HC—SR04超声波测距仪用LCD1602显示

发布者:和谐相伴最新更新时间:2015-04-27 来源: 51hei关键字:51单片机加  超声波测距仪  LCD1602显示 手机看文章 扫描二维码
随时随地手机看文章
#include  

#include
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P1^2;
sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit  RX=P2^1;
sbit  TX=P2^0;
     
uint  time=0;
unsigned long S=0;
bit  flag =0;
uchar disdat[4]={ 0,0,0,0,};
void delay(uint z) //延时子程序
{
  uint x,y;
  for(x=z;x>0;x--)
     for(y=110;y>0;y--);
}
void write_com(uchar com)//定义一个带参数的写命令子程序
{
 lcdrs=0; //1602的rs为0时,接收命令,为1时接收数据
 P0=com;//把void write_com(uchar com)中的COM中的数据给P0口
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
 delay(5);
}
void write_shu(uchar shu)//定义一个带参数的写数据子程序
{
 lcdrs=1; //1602的rs为0时,接收命令,为1时接收数据
 P0=shu;//把void write_shu(uchar shu)中的COM中的数据给P0口
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
 delay(5);
}
void write_1602(uchar add,uchar dat)
{
 write_com(0x80+0x40+add);
 write_shu(dat);
}

void zifuchuan(uchar *ch)
{
while(*ch!=0)
write_shu(*ch++);
delay(20); 
}
void init()//定义一个初始化子程序
{
 lcden=0;
 lcdrw=0;
 write_com(0x38);//调用 write_com子程序并把0x38赋给P0口,显示模式打开
 delay(2);
 write_com(0x0c);//调用 write_com子程序并把“开显示,显示光标,光标不闪烁”指令码赋给P0口
 write_com(0x06);//调用 write_com子程序并把“地址指针加1,整屏不移动”指令码赋给P0口
 write_com(0x80);//数据指针初始化,让指针指向最左端,显示从第一行开始
 write_com(0x01);//调用 write_com子程序并把"清零指"令码赋给P0口
  zifuchuan("HHSY Zhoujiaoshi");
 
}
 
/********************************************************/
void Conut()
 {
  time=TH0*256+TL0;
  TH0=0;
  TL0=0;
 
  //S=(time*1.7)/100;
   S=time/58;     //算出来是CM
   disdat[0]=S%1000/100;
   disdat[1]=S%1000%100/10;
   disdat[2]=S%1000%10 %10;
   write_1602(1, disdat[0]+0x30);
   write_1602(2, disdat[1]+0x30); 
   write_1602(3, disdat[2]+0x30);
   write_1602(4,'.');
   write_1602(5, disdat[3]+0x30); 
   write_1602(6, 'C');
   write_1602(7, 'm');
    
 }
/********************************************************/
void zd0() interrupt 1  //T0中断用来计数器溢出,超过测距范围
{
  flag=1;//中断溢出标志
}
/********************************************************/
void  StartModule()   //启动模块
  {
   TX=1; //启动一次模块
   _nop_();  _nop_();    _nop_();    _nop_();    _nop_();
   _nop_();   _nop_();    _nop_();    _nop_();   _nop_();
   _nop_();   _nop_();    _nop_();   _nop_();   _nop_();
   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();
   _nop_();
   TX=0;
  }
/*********************************************************/
void main(void)
{
 delay(400); //启动等待,等LCD讲入工作状态
    init(); //LCD初始化
  TMOD=0x01;//设T0为方式1,GATE=1;
  TH0=0;
  TL0=0;         
  ET0=1; //允许T0中断
  EA=1;//开启总中断   
 
 while(1)
   {
      StartModule();
      while(!RX);  //当RX为零时等待
      TR0=1;       //开启计数
      while(RX);   //当RX为1计数并等待
      TR0=0;    //关闭计数
         Conut();   //计算
   delay(20);
  
   }
}

关键字:51单片机加  超声波测距仪  LCD1602显示 引用地址:51单片机加HC—SR04超声波测距仪用LCD1602显示

上一篇:基于51单片机的简易计算器1602显示
下一篇:C51单片机微调SH-20504程序

推荐阅读最新更新时间:2024-03-16 13:59

LCD1602的滚动显示程序
**************************************LCD1602头文件*********************************/ #ifndef _LCD1602_H_ #define _LCD1602_H_ //输入方式设置 #define LCD_AC_AUTO_INCREMENT 0x06 //数据读、写操作后,AC自动增一 #define LCD_AC_AUTO_DECREASE 0x04 //数据读、写操作后,AC自动减一 #define LCD_MOVE_ENABLE 0x05 //数据读、写操作,画面平移 #define LCD_MOVE_DISENABL
[单片机]
MSP430F5529与LCD1602显示模块(上)
LCD1602介绍 外观 主要技术参数 显示容量: 16X2个字符 芯片工作电压: 4.5~5.5V 工作电流: 2.0mA(5.0V) 模块最佳工作电压: 5.0V 字符尺寸: 2.95X4.35(WXH)mm 接口说明 并口传输模式 VSS 电源地 VDD 电源正极(5V) V0 液晶显示偏压信号 RS 数据/命令选择端(H/L) RW 读/写选择端(H/L) E 使能信号 D0 Data I/O D1 Data I/O D2 Data I/O D3 Data I/O D4 Data I/O D5 Data I/O D6 Data I/O D7 Da
[单片机]
MSP430F5529与<font color='red'>LCD1602</font><font color='red'>显示</font>模块(上)
51单片机系列——LCD1602显示计算器上按键字符
昨天研究了矩阵按键在proteus7.8上的仿真问题,今天直接上个实例,用LCD1602显示在计算器上按下的按键字符。 仿真图: LCD1602.h #ifndef _LCD1602_H_ #define _LCD1602_H_ #include reg52.h //重定义关键字 #ifndef uchar #define uchar unsigned char #endif #ifndef uint #define uint unsigned int #endif /********************************** PIN口定义 ***************************
[单片机]
<font color='red'>51单片机</font>系列——<font color='red'>LCD1602</font><font color='red'>显示</font>计算器上按键字符
基于51单片机的智能湿控制器设计
引言 在当下经济不断发展,科学不断进步,人类不断进化的今时今日,人们对生活品质 的要求也随之发生变化。而空气质量对人们生活的影响越来越深,湿度作为影响空气质 量的重要指标之一,对人们的生活有重要的影响,如若不注意可能会引发皮肤病和免疫 力下降以及流失水分加速衰老等一系列问题。因此,有效的洁净加湿已经成为人们生活 当中重要的要求。选用单片机为核心设计一个简易的智能加湿控制器系统,是因为单片 机应用在检测、控制领域中,成本较低,可靠性较好、适应范围较广,且具有高精度的 检测及显示,更重要的是单片机可以构成各种各样的控制系统、数据采集系统。如此设 计出一个以单片机为核心的智能加湿控制器系统,以单片机作为系统的核心控制部分, 能构造出一个
[单片机]
基于<font color='red'>51单片机</font>的智能<font color='red'>加</font>湿控制器设计
单片机+LCD1602显示℃ 这种自定义符号
#include all.h u8 xdata LCD1602_Write_Buffer1 ; u8 xdata LCD1602_Write_Buffer2 ; u8 code LCD1602_5x8 ={0x08,0x00,0x07,0x08,0x08,0x08,0x08,0x07}; u8 xdata LCD1602_Write_Cursor_Add; void LCD1602_Delay(u8 len) { u8 idata i; while(len--) { i=15; while(i--); } } void LCD1602_Write_Add(u8 Ad
[单片机]
【STC单片机学习】第十七课:LCD1602显示
1.17.1_2.LCD显示器相关背景1_2 1.17.1.1、LCD简介 (1)显示器 CRT显示器(大头电视) LCD液晶显示器 LED液晶显示器等等 (2)LCD(Liquid Crystal Display),液晶显示器,原理介绍 液晶显示器的工作原理是利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线容易通过;不通电时,排列则变得混乱,阻止光线通过。 透光率! (3)LCD应用领域 平板电脑、笔记本电脑、手机屏幕、智能电视屏幕... (4)LED OLED(被认为下一代显示器) OLED:曲面屏,尤其三星 1.17.1.2、电子显示器的原理 (1)像素(分辨率): 像素(px):组成图像的最小单位
[单片机]
【STC单片机学习】第十七课:<font color='red'>LCD1602</font><font color='red'>显示</font>器
LCD1602显示屏的驱动设置及例程
一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。我手里这块LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。如图1所示: 图1 再来一张它的背面的,如图2所示: 图2 它的16条引脚定义如下: 对这个表的说明: 1. VSS接电源地。 2. VDD接+5V。 3. VO是液晶显示的偏压信号,可接10K的3296精密电位器。或同样阻值的RM065/RM063蓝白可调电阻。见图3。 图3 4. RS是命令/数据选择引脚,接单片机的一个I/O,当RS为低电平时,选择命令;当RS为高电
[单片机]
<font color='red'>LCD1602</font><font color='red'>显示</font>屏的驱动设置及例程
51单片机控制步进电机转动以及用lcd1602显示
#include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; uchar code FFW ={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//30度 uchar code REV ={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//30度
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved