资源简介
基于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 点滴测速-仿真\ob
文件 10749 2018-03-17 13:31 点滴测速-仿真\ob
文件 15088 2018-03-17 13:31 点滴测速-仿真\ob
文件 1908 2018-03-17 13:31 点滴测速-仿真\ob
文件 115 2018-03-17 13:31 点滴测速-仿真\ob
文件 6441 2018-03-17 13:31 点滴测速-仿真\ob
文件 2763 2018-03-17 13:33 点滴测速-仿真\ob
目录 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个文件信息
- 上一篇:编译原理实验 语义分析与中间代码生成
- 下一篇:网络漏洞扫描原理分析
相关资源
- 声光报警器接线图
- 基于LabVIEW模拟的温度报警器.vi
- JCB4A便携式甲烷检测报警仪设计
- 基于ZigBee无线网络的气体监测报警系
- 基于ZigBee的智能瓦斯报警矿灯设计
- SA68D21DL全双工无线数传报警模块及其
- 联想H61主板V4.2黑屏,两报警声L编程器
- 无线车载甲烷报警断电仪的研制
- 气体泄漏检测器电路,液化石油气泄
- 煤气泄露报警器
- 新型柴油机车运输弯道声光语言报警
- 基于FPGA的DS18B20单总线控制+数码管显
- 温度、一氧化碳、二氧化碳、PM2.5以及
- 基于STC89C52的GSM智能家居报警系统
- 基于单片机控制和超声波传感器的液
- 基于51单片机的NRF2401无线火灾的报警
- 毕设—超速报警系统
- 基于STM32的DHT11的温湿度采集GSM报警系
- 单片机的有毒气体泄露报警设计
- 三菱60SM系列报警说明书
- 基于51单片机的火焰传感器检测与报警
- 断网报警软件
- 红外热释电报警
- 电压报警 微机接口与原理
- 基于中断控制的声光报警器的设计-接
- 基于智能手机的老人跌倒报警系统的
- 微型计算机原理及应用课程设计-温度
- 智能化住宅防盗防火报警系统
- 室内温度报警控制系统设计SD卡文件
- 自动温控报警模拟电路资料
评论
共有 条评论