资源简介

基于51单片机的红外对管液滴测速设计,仿真中按键代替红外对管;光电对管放置的液滴泡两侧 检测液滴滴下并测速,液滴不在滴下时报警,按键按下取消报警 模拟有护士来了 证明液滴下完。 显示速度用的1602液晶

资源截图

代码片段和文件信息

#include “lcd1602.h“			

void delay1ms(uint i)
{
uchar j;
 while(i--)
 {
 for(j=0;j<115;j++);   //1ms基准延时程序
 }
  
}
/***********************************************************
忙检测
************************************************************/
unsigned char LCD1602_check_busy()
{
 bit result;
//LCD1602_DATA= 0xff;
LCD1602_RS=0;
LCD1602_RW = 1 ;
LCD1602_EN = 1 ;
    _nop_();   //空操作
    _nop_();
    _nop_(); 
    _nop_();   //空操作四个机器周期,给硬件反应时间
//while(LCD1602_DATA & 0x80) ;
  result=BF;  //将忙碌标志电平赋给result
LCD1602_EN = 0 ;
return result;
}

/**********************************************************
写指令
************************************************************/

 void LCD1602_write_cmd(uint8 cmd)
{

while(LCD1602_check_busy()==1);
LCD1602_RS = 0 ;
LCD1602_RW = 0 ;
LCD1602_EN = 0 ;
_nop_();
_nop_();              //空操作两个机器周期,给硬件反应时间
LCD1602_DATA = cmd ;
 _nop_();
 _nop_();
 _nop_();
 _nop_();               //空操作四个机器周期,给硬件反应时间
LCD1602_EN = 1 ;
_nop_();
 _nop_();
 _nop_();
 _nop_();               //空操作四个机器周期,给硬件反应时间
LCD1602_EN = 0 ;
}

/***********************************************************
写数据
*************************************************************/
 void LCD1602_write_data(uint8 dat)
{
while(LCD1602_check_busy()==1);
LCD1602_RS = 1 ;
LCD1602_RW = 0 ;
LCD1602_EN = 0 ;
LCD1602_DATA = dat ;
  _nop_();
  _nop_();
    _nop_();
     _nop_();       //空操作四个机器周期,给硬件反应时间
LCD1602_EN = 1 ;
  _nop_();
  _nop_();
  _nop_();
 _nop_();        //空操作四个机器周期,给硬件反应时间
LCD1602_EN = 0 ;
}




/***********************************************************
1602初始化
************************************************************/
 void LCD1602_init(void)
{
delay1ms(15);             //延时15ms,首次写指令时应给LCD一段较长的反应时间
LCD1602_write_cmd(0x38) ;
delay1ms(5);               //延时5ms ,给硬件一点反应时间
LCD1602_write_cmd(0x38) ;
delay1ms(5);     
  LCD1602_write_cmd(0x38) ;
delay1ms(5);   //延时5ms ,给硬件一点反应时间
LCD1602_write_cmd(0x0c) ;
delay1ms(5);               //延时5ms ,给硬件一点反应时间
LCD1602_write_cmd(0x06) ;
delay1ms(5);               //延时5ms ,给硬件一点反应时间
LCD1602_write_cmd(0x01) ;
delay1ms(5);               //延时5ms ,给硬件一点反应时间
}


/************************************************************
设置显示坐标
************************************************************/
void LCD1602_set_postion(unsigned char  x  unsigned char  y)
{
if(y<2)
{
y &= 0x01 ; //y值限定在0~1之间
x &= 0x0f ; //x值限定在0~15之间
if(y == 0)
x |= 0x40 ; //如果显示是在第二行,则x的值加0x40
x |= 0x80 ; //获得x的值
LCD1602_write_cmd(x) ;//写入坐标值到LCD
}
}

/************************************************************
指定位置写字符
*************************************************************/
 void LCD1602_write_char(uint8 x  uint8 y  uint8 chardata)
{
LCD1602_set_postion(xy) ;
LCD1602_write_data(chardata) ;
}

/************************************************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-25 18:48  点滴测速-仿真\
     文件      342687  2018-03-17 13:33  点滴测速-仿真\Last Loaded LCD1602.DBK
     文件        4049  2018-03-17 12:32  点滴测速-仿真\lcd1602.c
     文件      342687  2018-03-17 13:36  点滴测速-仿真\LCD1602.DSN
     文件        1381  2018-03-17 12:26  点滴测速-仿真\lcd1602.h
     文件         768  2018-03-25 18:48  点滴测速-仿真\LCD1602.PWI
     目录           0  2018-03-17 13:31  点滴测速-仿真\Listings\
     文件        8096  2018-03-17 13:31  点滴测速-仿真\Listings\lcd1602.lst
     文件        6353  2018-03-17 13:31  点滴测速-仿真\Listings\main.lst
     文件       17683  2018-03-17 13:31  点滴测速-仿真\Listings\main.m51
     文件        2472  2018-03-17 13:31  点滴测速-仿真\main.c
     文件       56912  2018-03-17 13:33  点滴测速-仿真\main.uvopt
     文件       13442  2018-03-07 21:38  点滴测速-仿真\main.uvproj
     文件       56910  2018-03-17 12:50  点滴测速-仿真\main_uvopt.bak
     目录           0  2018-03-17 13:31  点滴测速-仿真\objects\
     文件       10749  2018-03-17 13:31  点滴测速-仿真\objects\lcd1602.obj
     文件       15088  2018-03-17 13:31  点滴测速-仿真\objects\main
     文件        1908  2018-03-17 13:31  点滴测速-仿真\objects\main.hex
     文件         115  2018-03-17 13:31  点滴测速-仿真\objects\main.lnp
     文件        6441  2018-03-17 13:31  点滴测速-仿真\objects\main.obj
     文件        2763  2018-03-17 13:33  点滴测速-仿真\objects\main.plg
     目录           0  2018-03-25 20:09  点滴测速程序\
     文件        3330  2018-03-07 23:51  点滴测速程序\lcd1602.c
     文件        1315  2018-03-07 23:51  点滴测速程序\lcd1602.h
     目录           0  2018-03-17 13:37  点滴测速程序\Listings\
     文件        6858  2018-03-17 13:37  点滴测速程序\Listings\lcd1602.lst
     文件        6400  2018-03-17 13:37  点滴测速程序\Listings\main.lst
     文件       16275  2018-03-17 13:37  点滴测速程序\Listings\main.m51
     文件        2492  2018-03-12 13:49  点滴测速程序\main.c
     文件       56897  2018-03-22 21:42  点滴测速程序\main.uvopt
     文件       13442  2018-03-07 21:38  点滴测速程序\main.uvproj
............此处省略8个文件信息

评论

共有 条评论