• 回答数

    4

  • 浏览数

    216

yanrongsun
首页 > 学术期刊 > 基于单片机的点滴液位检测论文

4个回答 默认排序
  • 默认排序
  • 按时间排序

喝茶的樱桃

已采纳

做设计很费时间、精力的,一点分很难实现

85 评论

小公主的小公猪

有必要上这儿来吗,去图书馆的数据库,这样类型的文章多得不得了啊

216 评论

应该勇敢

自己做个最小系统板,参照数据手册就可以做了!/*-----------------------------------------------超声波测距------------------------------------------------*/#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include"1602.h"#include"delay.h"sbit Tx = P3^0;sbit Rx = P3^1; //由于不用外部中断,这两个引脚可以随便接//sbit INTR1 = P3^3; //红外接口标志//sbit BUZ = P3^0; //蜂鸣器和led灯报警bit TimeUp ; //定时器溢出标志位long Th0 , Tl0 ;unsigned long time0 = 0 ;unsigned long Result ;//unsigned char In_Number = 0;char code Tab[10]="0123456789";unsigned char TempData[3];/*------------------------------------------------ 定时器0中断处理------------------------------------------------*/void tim0_isr (void) interrupt 1 using 1{ TimeUp=1; //溢出标志位置高}///*------------------------------------------------// 外部中断2中断处理//------------------------------------------------*///void EX1_ISR (void) interrupt 2 //外部中断2服务函数//{// In_Number++;//}//void Beep(void) //声光提示//{// BUZ = 0;// DelayMs(150);// BUZ = 1;//}/*------------------------------------------------ 外部中断0初始化------------------------------------------------*///void EX1_init (void)//{// IT1 = 1; //set INT1 int type (1:Falling only 0:Low level)// EX1 = 1; //enable INT1 interrupt// EA = 1; //open global interrupt switch //}unsigned int Measure_Work(void){char Delay20us = 0 ;char RxBack = 1 ;TMOD = 0x01 ; //定时器工作方式1::16位不重装Tx = 0 ;Th0 = 0 ;Tl0 = 0 ;TimeUp = 0 ;EA = 1 ; //开总中断ET0 = 1 ; //允许定时器0中断TR0 = 0 ; //关定时器TH0 = 0 ;TL0 = 0 ;Tx = 1 ; //拉高 for (Delay20us=20;Delay20us>0;Delay20us--); //延时20USTx = 0 ; //拉低while(Rx==0); //等待回波引脚变为低电平TH0 = 0 ;TL0 = 0 ; TR0 = 1 ; //开定时器//使用软件查询方式while(RxBack){if(Rx==0||TimeUp){TR0 = 0 ;Th0 = TH0 ;Tl0 = TL0 ;TR0 = 1 ;RxBack = 0 ;}}while(!TimeUp); //等待定时器溢出time0 = (Th0*256+Tl0); //取出定时器的值Result = ((unsigned long)334*time0)/2000; //计算距离,结果为mmif(Result<20||Result>600){ Result = 0 ; }// if(Result>36)// { Result = (Result*116)-331 ;Result = Result/100;// }// else Result = Result ;// Result = Result + 8 ; //探头盲区的补偿return Result ; //返回测量结果}void Number_Work(){TempData[2] = Tab[Measure_Work()%100%10];TempData[1] = Tab[Measure_Work()%100/10];TempData[0] = Tab[Measure_Work()/100];}/*------------------------------------------------ 主函数------------------------------------------------*/void main(void){// IT1 = 1; //set INT1 int type (1:Falling only 0:Low level)// EX1 = 1; //enable INT1 interrupt// EA = 1; //open global interrupt switch BUZ = 1 ;LCD_Init(); //初始化液晶DelayMs(20); //延时有助于稳定LCD_Clear(); //清屏// BUZ = 0;// DelayMs(150);// BUZ = 1; LCD_Write_String(0,0,"Ce Ju "); LCD_Write_String(0,1,"Distance:");LCD_Write_String(13,1,"mm");while(1)//主循环 {Number_Work() ;LCD_Write_String(10,1,TempData);DelayMs(20); }}/*----------------------------------------------- 名称:LCD1602 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK------------------------------------------------*/#include "1602.h"#include "delay.h"#define CHECK_BUSYsbit RS = P3^7; //定义端口 sbit RW = P3^4;sbit EN = P3^5;#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define DataPort P1/*------------------------------------------------ 判忙函数------------------------------------------------*/ bit LCD_Check_Busy(void) { #ifdef CHECK_BUSY DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80);#else return 0;#endif }/*------------------------------------------------ 写入命令函数----------------- ----------------------------*/ void LCD_Write_Com(unsigned char com) { while(LCD_Check_Busy()); //忙则等待 RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; }/*------------------------------------------------ 写入数据函数------------------------------------------------*/ void LCD_Write_Data(unsigned char Data) { while(LCD_Check_Busy()); //忙则等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; }/*------------------------------------------------ 清屏函数------------------------------------------------*/ void LCD_Clear(void) { LCD_Write_Com(0x01); DelayMs(5); }/*------------------------------------------------ 写入字符串函数------------------------------------------------*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { if (y == 0) { LCD_Write_Com(0x80 + x); //表示第一行 } else { LCD_Write_Com(0xC0 + x); //表示第二行 } while (*s) { LCD_Write_Data( *s); s ++; } }/*------------------------------------------------ 写入字符函数------------------------------------------------*//* void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { LCD_Write_Com(0x80 + x); } else { LCD_Write_Com(0xC0 + x); } LCD_Write_Data( Data); }*//*------------------------------------------------ 初始化函数------------------------------------------------*/ void LCD_Init(void) { LCD_Write_Com(0x38); /*显示模式设置*/ DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*显示关闭*/ LCD_Write_Com(0x01); /*显示清屏*/ LCD_Write_Com(0x06); /*显示光标移动设置*/ DelayMs(5); LCD_Write_Com(0x0C); /*显示开及光标设置*/ }#include "delay.h"/*------------------------------------------------ uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/void DelayUs2x(unsigned char t){ while(--t);}/*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/void DelayMs(unsigned char t){ while(t--) { //大致延时1mS DelayUs2x(245);DelayUs2x(245); }}/*----------------------------------------------- 名称:LCD1602.h 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK------------------------------------------------*/#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#ifndef __1602_H__#define __1602_H__bit LCD_Check_Busy(void) ; void LCD_Write_Com(unsigned char com) ; void LCD_Write_Data(unsigned char Data) ; void LCD_Clear(void) ; void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) ; void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) ; void LCD_Init(void) ; void Lcd_User_Chr(void); #endif

117 评论

Brita阿菜

你要哪一篇?1. 基于CC1100的无线输液监控系统的设计与实现马黎明 科技信息 2010年 第11期主要介绍了基于射频技术的无线输液监控系统,由护士站的监控服务器和病房中的多台输液采集器组成。采集器通过红外技术对液滴信号进行采集并上传至服务器,当输液结束或出现异常时,采集器和服务器两者同时报警,可达到对输液过程的实时监控的目的 。参考文献 - 相似文献 - 下载指数:2. 智能化的液体点滴控制装置韩秀莉 姜学思 大众科技 2010年 第02期文章针对目前现代医院液体点滴自动化装置的各种缺陷和不足,设计一种智能输液监控系统,采用AT89C58单片机作为主从机的核心,利用MAX232进行远程数据信息的传输,构成了一个分布式的主从局域控制网,采用光电传感原理实现对液体点滴速度的测量和检测,用步进电动机拖动控制储液瓶的高度,实现点滴速度的自动调节,并把液体点滴的速...参考文献 - 相似文献 - 下载指数:3. 基于ZigBee的嵌入式医疗输液监控系统的研究王茂金 南昌大学 发表时间:2009-12-253.4.3输液监控系统软件设计方案输液监控系统软件部分包括两大部分:一是输液监控系统节点软件;二是输液监控中心软件。输液监控系统节点软件必须实现以下功能:协调器节点能够建立网络,终端节点加入或离开网络,协调器和终端节点间相互通信,终端设备...参考文献 - 相似文献 - 下载指数:4. 一种面向医院的输液监控系统的设计江勇 段文群 医疗装备 2009年 第12期王紫婷,王瑞峰,严天蜂.智能液体点滴速度监控仪.自动化与仪器仪表,2004,(5).李宝连,王剑钢.基于RS485接口的医院输液监控系统.山西电子技术,2004,(5).参考文献 - 相似文献 - 下载指数:5. 基于AT89S52的输液监控系统的设计与实现单巍 合肥工业大学 发表时间:2009-12-01分布式输液监控系统的研究与实现.太原:太原理工大学,200729~3★Richard Swim.Deployment of an Enterprise Wireless Infusion Pump Management System, Biomedical Instrumentation and Technol...参考文献 - 相似文献 - 下载指数:6. 一种面向医院的输液监控系统的设计江勇 段文群 传感器世界 2009年 第11期介绍了一种由AT89C51单片机构成的医院输液监控系统。本系统包括上位机(PC机)和下位机(AT89C51单片机)。本文对系统如何实现自动检测、自动报警等功能做了详细的分析与研究,利用光电传感器采集点滴的有无,用AT89C51作为中央处理器进行信号分析与处理,用RS—485实现上位机(PC机)和下位机(单片机)的通信,...参考文献 - 相似文献 - 下载指数:7. 静脉输液监控系统的研制与应用王颖 刁惠民 季兵 护理学杂志 2009年 第20期2静脉输液监控系统的组成与功能该静脉输液监控系统由主机和监控中心两部分组成。见示意图1、图2。2.1主机主机长148cm、宽97cm、厚42cm,外壳由ABS材料注塑而成。在主机上可设定相关信息,如床位号(1~99)、输液总量(10~5000ml)、输液速度(8~180gtt/min)、...参考文献 - 相似文献 - 下载指数:8. 基于M430/OS的超低功耗输液监控系统的研究与设计苏英 陈春华 科技资讯 2009年 第28期山东滨州256600本文介绍了一种超低功耗输液监控系统的设计与实现方法。该系统基于MSP430F1232单片机和M430/OS嵌入式实时操作系统,采用上下位机模式,实现了重力输液的本地及远程监控和管理,且具有检测精度高,操作方便、功耗低、体积小、程序设计模块化、可扩展...参考文献 - 相似文献 - 下载指数:9. 基于光电技术智能输液监控系统设计陈宇 王玺 核电子学与探测技术 2009年 第05期部分医院采用以病人求救线作为CAN总线实现分布式输液监控系统设计取得了一定的成效,但绝大多数中小医院特别是社区医院缺少此类设备。因此,本文针对这些问题,基于光电技术、调制解调技术、单片机技术、无线网络传输技术和模糊控制技术,研究设计了一套分布式智能...参考文献 - 相似文献 - 下载指数:10. 一种低功耗无人值守输液监控系统的研制宋茹 郑玉山 张丽萍 徐晓宏 陈勇华 迟归兵 ... 医疗卫生装备 2009年 第09期4护士站输液监控系统的设计护士站上位机输液监控系统由Visual C++编写完成,通过调用现有的串口控件,对下位机的监控结果进行显示,在紧急情况下予以报警。此系统可同时对百台输液监控器的结果进行监视,方便了护士站的管理,提高了工作效率,提高了患者输液的

289 评论

相关问答

  • 基于单片机教师人数实时检测论文

    单片机论文 在平时的学习、工作中,大家都经常接触到论文吧,论文是指进行各个学术领域的研究和描述学术研究成果的文章。怎么写论文才能避免踩雷呢?以下是我为大家收集的

    笨鸟肥肥 2人参与回答 2023-12-12
  • 基于单片机的电机监测毕业论文

    温度相关的毕业设计 ·基于单片机的数字温度计的设计·基于MCS-51数字温度表的设计·单片机的数字温度计设计·基于单片机的空调温度控制器设计·基于数字温度计的多

    阿蒙宝贝 5人参与回答 2023-12-09
  • 基于51单片机的加速度检测论文

    1.51单片机具体型号类型要指定2.反应速度的精度要指定3.发光二极管的接法要指定4.测试方法要指定5.串口方式,端口号,pc机系统要指定6.proteus版本

    flower99sunny 3人参与回答 2023-12-08
  • 基于单片机的温湿度检测毕设论文

    本科生有啥钱啊,楼上的,这点钱也想赚。。。既然是本科毕业设计,那还是老老实实自己做吧,也算对自己有个交代

    quanyanhei 8人参与回答 2023-12-10
  • 基于单片机的温度检测系统论文

    你看下这些对你是否有些帮助,1.基于labVIEW虚拟滤波器的设计与实现 2.双闭环直流调速系统设计 3.单片机脉搏测量仪 4.单片机控制的全自动洗衣机毕业设计

    倆宝麻麻 4人参与回答 2023-12-12