单片机压力传感器的实时监测和报警程序

发布者:平和的心态最新更新时间:2020-01-12 来源: 51hei关键字:单片机  压力传感器  实时监测  报警程序 手机看文章 扫描二维码
随时随地手机看文章

最近因一台消防控制系统设备需加泡沫罐检漏功能,所以专门做了单片机检测压力传感器电流值,做AD转换,进行实时处理,实现对压力传感器的实时监测和报警功能,原理图如图片所示

单片机源程序如下:

#include

#include

#include

#define LEAK_chg 320 //泄漏判断灵敏度

#define ADD_chg 100  //加液判断灵敏度

#define dat_yu 10  //抖动变量


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

*   基本命令宏定义   *

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

#define     HZ_16X16                0XF0        //固定处: 显示16X16点阵国标汉字命令

#define     ASCII_8X8               0XF1        //固定处: 显示8X8ASCII字符命令

#define     SINGLE_DOT              0XF2        //任意点: 显示命令

#define     BYTE_DOT                0XF3        //字节处: 显示点阵命令  

#define     SCREEN_CLEAR            0XF4        //整屏清屏命令   

#define     ASCII_8X16              0XF9        //固定处: 显示8X16ASCII字符命令 

#define     ALL_TOGGLE              0XFA        //反白显示命令  

#define     CURSOR_LENGTH           0XFB        //光标: 开关及类型设置命令

#define     MOVE_SPEED              0XFC        //调整移动速度命令

#define     PICTURE_DISP            0XFD        //画图片命令  

#define     SCREEN_ONOFF            0XFE        //屏幕开命令

#define     POWER_SAVE              0XFF        //系统省电命令


#define     ASCII_5X8               0XE0        //固定处: 显示5X8ASCII字符命令

#define     NUMBER_3X5              0XE1        //固定处: 显示3X5数字及大写字母命令

#define     ASCII_6X12              0XE2        //固定处: 显示6X12ASCII命令

#define     NUMBER_9X16             0XE3        //固定处: 显示9X16数字命令

#define     CURSOR_LOC              0XE4        //光标: 位置设置命令   

#define     BACK_TOGGLE             0XE5        //背光取反命令  

#define     CONTRAST_GRADIENT       0XE6        //对比度调整命令

#define     UART_BAUDRATE           0XE8        //UART波特率设置命令

#define     STR_8X16                0XE9        //固定处: 显示16X16中文和8X16ASCII混合字符串命令 

#define     HZ_16X16_LOC            0XEA        //任意点: 显示16X16中文字符命令  

#define     STR_8X16_LOC            0XEB        //任意点: 显示16X16中文和8X16ASCII混合字符串命令

#define     HZ_16X16_CUR            0XEC        //光标处: 显示16X16点阵的中文字符命令

#define     STR_8X16_CUR            0XED        //光标处: 显示中文和8X16ASCII混合字符串命令

#define     TEMPERATURE_SET         0XEE        //设置温度补偿开关和系数命令

#define     SOFT_RESET              0XEF        //复位命令


#define     ASCII_5X8_CUR           0XD0        //光标处: 显示一个5X8ASCII字符命令

#define     ASCII_8X8_CUR           0XD1        //光标处: 显示一个8X8ASCII字符命令

#define     ASCII_6X12_CUR          0XD2        //光标处: 显示一个6X12ASCII命令

#define     NUMBER_9X16_CUR         0XD3        //光标处: 显示一个9X16数字命令

#define     NUMBER_3X5_CUR          0XD4        //光标处: 显示一个3X5数字和大写字母命令

#define     STR_ASCII_5X8_CUR       0XD5        //光标处: 显示一5X8ASCII字符串命令

#define     STR_NUMBER_3X5_CUR      0XD6        //光标处: 显示3X5数字和大写字母字符串命令

#define     STR_6X12_CUR            0XD7        //光标处: 显示12X12中文和6X12ASCII混合字符串命令

#define     STR_NUMBER_9X16_CUR     0XD8        //光标处: 显示9X16数字字符串命令

#define     ASCII_8X16_CUR          0XD9        //光标处: 显示一个8X16ASCII字符命令

#define     STR_ASCII_8X8_CUR       0XDA        //光标处: 显示8X8ASCII字符串命令

#define     STR_ASCII_5X8_LOC       0XDB        //任意点: 显示5X8ASCII字符串命令

#define     STR_6X12_LOC            0XDC        //任意点: 显示12X12中文和6X12ASCII混合字符串命令

#define     STR_NUMBER_9X16_LOC     0XDD        //任意点: 显示9X16数字字符串命令

#define     STR_NUMBER_3X5_LOC      0XDE        //任意点: 显示3X5数字和大写字母字符串命令

#define     STR_ASCII_8X8_LOC       0XDF        //任意点: 显示8X8ASCII字符串命令


#define     ASCII_5X8_LOC           0XC0        //任意点: 显示5X8ASCII字符命令

#define     ASCII_8X8_LOC           0XC1        //任意点: 显示8X8ASCII字符命令

#define     ASCII_6X12_LOC          0XC2        //任意点: 显示6X12ASCII字符命令

#define     NUMBER_9X16_LOC         0XC3        //任意点: 显示9X16数字字符命令

#define     NUMBER_3X5_LOC          0XC4        //任意点: 显示3X5数字和大写字母字符命令

#define     DRAWLINE                0XC5        //任意点: 画线

#define     AREA_MOVE               0XC6        //任意指定: 区域块移位

#define     AREA_DATA               0XC7        //任意指定: 区域块显示数据 清零/全亮/反显

#define     AREA_FLASH              0XC8        //任意指定: 区域块显示数据自动闪烁

#define     ASCII_8X16_LOC          0XC9        //任意点: 显示8X16ASCII字符命令

#define     RESERVE_01              0XCA        //模块内部预留命令,请勿使用 

#define     KEYBOARD                0XCB        //内置键盘开关命令

#define     RESERVE_02              0XCC        //模块内部预留命令,请勿使用

#define     HZ_FORM                 0XCD        //设置中文和半角ASCII放大字体命令

#define     GET_TEMP                0XCE        //获取环境温度命令

#define     RESERVE_03              0XCF        //模块内部预留命令,请勿使用 


#define     HZ_12X12                0XB0        //固定处: 显示12X12点阵国标汉字命令

#define     RESERVE_04              0XB1        //模块内部预留命令,请勿使用

#define     RESERVE_05              0XB2        //模块内部预留命令,请勿使用

#define     RESERVE_06              0XB3        //模块内部预留命令,请勿使用

#define     RESERVE_07              0XB4        //模块内部预留命令,请勿使用

#define     BACK_ONOFF              0XB5        //背光开关命令

#define     RESERVE_08              0XB6        //模块内部预留命令,请勿使用

#define     RESERVE_09              0XB7        //模块内部预留命令,请勿使用

#define     RESERVE_10              0XB8        //模块内部预留命令,请勿使用

#define     STR_6X12                0XB9        //固定处: 显示12X12中文和6X12ASCII混合字符串命令

#define     HZ_12X12_LOC            0XBA        //任意点: 显示12X12中文字符命令 

#define     NOP                     0XBB        //空转命令

#define     HZ_12X12_CUR            0XBC        //光标处: 显示12X12点阵的中文字符命令

[1] [2] [3] [4]
关键字:单片机  压力传感器  实时监测  报警程序 引用地址:单片机压力传感器的实时监测和报警程序

上一篇:学习单片机的正确方法
下一篇:51单片机信号发生器例子程序包括Proteus仿真

推荐阅读最新更新时间:2024-11-06 11:31

键盘接口在单片机系统与PC机通信中的应用
    摘要: 提出一种全新的利用键盘接口实现单片机系统和PC机通信的方案,介绍了键盘与PC机通信的原理,并成功地应用于实际系统。该方案为外部单片机系统与PC机通信提供了一条有效的途径。     关键词: 键盘接口 单片机系统 时序 命令字 在工控系统中,单片机应用系统与PC机之间的通信主要是采用异步串行通信方式,通过RS-232C、RS-422、RS-423或RS-499标准接口实现。这引起通信方式都各自规定了自己的电气标准,都不能直接满足 TTL电平的传送要求。为了通过这些标准接口通信,必须在单片机应用系统中加入电平转换芯片,以实现TTL电平向标准接口电平的转换 。 键盘接口是PC机的固有接
[应用]
51单片机按键直接控制舵机旋转
#include reg52.h #include math.h typedef unsigned char uchar; typedef unsigned int uint; sbit KEY1=P3^4; sbit KEY2=P3^5; sbit KEY3=P3^6; sbit KEY4=P3^7; void Delay(unsigned int s); uchar flag_0; uchar flag_1; void Delay(unsigned int s) { unsigned int i; for(i=0; i s; i++); for(i=0; i s; i++); } sbit PWM_OUT0=P2^1; sbi
[单片机]
单片机I/0口做按键输入实验
典型单片机的I/0口都是准双向口,既可以当输出口也可以当输入口。具体操作时,我们将数据写出I/0口就是将它当作输出口使用;如果在程序中直接调用当前I/0口的状态,给我们定义的变量赋值或用于逻辑判断、分支控制等操作,就是将它当作输入口使用。   下图是使用P2.0口读取按键控制的电路。   从下图中可见,在该电路中P2.0口是输入应用。当按键没有按下时+5V通过上拉电阻R1接到P2.0,这时P2.0口的电压是+5V,即逻辑“1”:如果按键被按下,P2.0通过按键接到电源地,这时P2.0口的电压是OV,即逻辑“0”。   综上所述,不按键时P2.0的状态是“1”;按键时P2.0的状态是“0”。   如果没有电阻R1,当按键接下
[模拟电子]
用<font color='red'>单片机</font>I/0口做按键输入实验
基于51单片机的简易电子琴课程设计
1.本设计采用51单片机作为主控制器 2.外部加上放音设备如喇叭等,来实现音乐演奏控制器的硬件电路 3.用8个手工的按键发出八个音阶 制作出来的电子琴实物图如下: 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 视频讲解: 电子琴原件清单 1.8欧0.25w小喇叭 2.8050三极管*2 3.10k电阻*2 4.30欧姆电阻 5.40脚座 6.STC89c51 7.10uf电容 8.30pf电容*2 9.小按键*8 10.自锁开关 11.DC电源座 12.12m晶振 13.7*9万用板 14.导线若干 15.焊锡若干 16.usb电源线或电池盒+DC电源插头 单片机源程序如下: #include reg
[单片机]
基于51<font color='red'>单片机</font>的简易电子琴课程设计
爱特梅尔扩展6引脚picoPower AVR微控制器系列
爱特梅尔公司(Atmel® Corporation)宣布推出三种全新6引脚picoPower™ AVR® 微控制器产品ATtiny4、ATtiny5和ATtiny9。这些新器件均为引脚和代码兼容,并提供了丰富的功能集,执行代码速度更较市场上最接近竞争对手快六倍。 这些6引脚tinyAVR微控制器使用AVR CPU,在12 MHz下的处理能力高达12 MIPS,性能较市场上任何其它容量相似的微控制器高六倍。这种高处理效率大幅减少了器件处于工作模式的时间,并延长处于节能睡眠模式的时间。上述特点结合爱特梅尔的picoPower技术,能保证提供业界领先的低功耗。 ATtiny4、ATtiny5和ATtiny9的
[单片机]
爱特梅尔扩展6引脚picoPower AVR<font color='red'>微控制器</font>系列
第66节:单片机外部中断的基础
开场白: 外部中断是单片机非常重要的内部资源,应用很广,它是单片机的高速开关感应器输入接口,它可以检测脉冲输入,可以接收红外遥控器的输入信号,可以检测高速运转的车轮或者电机圆周运动的反馈信号,可以检测输液器里瞬间即逝的水滴信号,可以接收模拟串口的数据信息,等等。 这一节要教大家两个知识点: 第一个:外部中断的初始化代码和中断函数的基本程序模板。 第二个:当系统存在两种中断以上时,如何设置外部中断0为最高优先级,实现中断嵌套功能。 具体内容,请看源代码讲解。 (1)硬件平台: 基于朱兆祺51单片机学习板。用S1按键作为模拟外部中断0的下降沿脉冲输入。原来S1按键是直接连接到P0^0口的,因此必须通过跳线把P0^0口连接到单
[单片机]
接口设计更简便 微芯推出强化图形处理MCU
微芯(Microchip)推出PIC32MZ DA系列,共计40款强化图形处理的32位微控制器(MCU),因应市场对人性化接口开发的需求。辅以软件配套如MPLAB Harmony软件架构、硬件配套如附带maXTouch之多媒体开发板II (MEB-II),提供设计上更便利、更便宜的完整解决方案。 内建2D图形处理器(GPU)、32 MB之DDR2 DRAM,配合2MB闪存、640KB RAM、12位模拟数字转换器(ADC)等其他相关组件,PIC32MZ DA系列毋须外接其他处理器或内存,即可运行动画、游戏等高阶影像信息;透过附属图型液晶显示(GLCD)控制器,可同时处理多达3个图层,缩放、旋转控制对象透明度, 并支持24位颜色深度
[半导体设计/制造]
强劲升级,兆易创新GD32A7系列全新一代车规级MCU震撼登场
中国北京(2024年9月25日)—— 业界领先的半导体器件供应商兆易创新GigaDevice宣布,重磅推出全新一代车规级MCU GD32A7系列 。与上一代采用Arm® Cortex®-M4/M33的产品相比,GD32A7系列搭载了超高性能Arm® Cortex®-M7内核,提供GD32A71x/GD32A72x/GD32A74x等多款型号供用户选择。该系列产品集成了优异的性能、增强的安全升级以及丰富的外设接口,全面契合车身域控(BDC)、车身控制(BCM)、远程通信终端(T-BOX)、车灯控制(Lighting)、电池管理(BMS)、车载充电机(OBC)、底盘应用(Chassis)、直流变换器(DC-DC)等多种电气化车用场景,
[汽车电子]
强劲升级,兆易创新GD32A7系列全新一代车规级<font color='red'>MCU</font>震撼登场
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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