温度监测仪开发实例
来源:互联网 发布:5555be%2ecom域名升级 编辑:程序博客网 时间:2024/06/10 03:44
本实例涉及到传感器技术、GPIO控制技术、中断技术、LCD控制技术、PWM控制技术、A/D转换技术等。
一、温度监测仪可以实现如下功能:
1.使用铂电阻传感器探测出目标温度,并通过图形的方式显示在LCD屏上
2.当温度超过报警温度时,在LCD屏上显示报警状态
3.当温度超过报警温度时,通过PWM控制蜂鸣器实现报警
4.当温度超过报警温度时,点亮LED报警灯
5.可以通过按键关闭或打开蜂鸣器及报警等功能
二、系统组成
S3C2410处理器、LCD液晶屏(320*240*16)、LED灯、变送器、铂电阻、蜂鸣器、按键。
三、程序设计
#include "2410lib.h"
extern void beep_gpio_setup(void);
extern void beep_start(void);
extern void beep_stop(void);
extern UINT16T adc_get(void);
extern void lcd_init(void);
extern void int_init(void);
extern void led_init(void);
extern void led_on(void);
extern void led_off(void);
extern void Fill_area(int x0,int y0,int x1,int y1,unsigned short color);
extern void adc_init(void);
int flag_alarm=1; //打开alarm功能的表示
int flag_beep=0; //蜂鸣器和报警灯打开标志
int main(int argc,char **argv)
{
unsigned short adc_data;
float f_value;
sys_init(); //初始化 s3c2410's Clock, MMU, Interrupt,Port and UART
led_init(); //LED接口初始化,配置对应的GPIO属性
lcd_init(); //初始化LCD控制器
int_init(); //初始化按键中断
beep_gpio_setup(); //初始化PWM控制蜂鸣器
adc_init(); //初始化A/D控制器
while(1)
{
adc_data=adc_get(); //获取到ad转换值
f_value=adc_data*100.0/1024.0; //转换为对应的电压值
uart_printf(" %0.1f /n",f_value);
Fill_area(60,80,260,120,0x0); //填充温度计的默认颜色
Fill_area(60,80,(int)(f_value*2),120,0xf000);
delay(10000);
if(f_value>80) //判断温度是否超过报警值80
{
if(flag_alarm) //判断是否设置了报警功能
{
beep_start();//驱动蜂鸣器
led_on(); //打开报警灯
flag_beep=1; //置标志
}
else
{
if(flag_beep) //判断标志
{
beep_stop(); //关闭蜂鸣器
led_off(); //关闭报警灯
flag_beep=0; //flag标志置0
}
}
}
else
{
if(flag_beep) //判断标志
{
beep_stop(); //关闭蜂鸣器
led_off(); //关闭报警灯
flag_beep=0; //flag标志置0
}
}
}
return 0;
}
- 温度监测仪开发实例
- 智能温度监测系统
- 智能温度、电压监测系统
- 无线温度监测后台软件
- linux下CPU温度监测
- 开发实例 PM2.5实时监测
- 高压开关设备温度在线监测系统
- ubuntu双显卡切换,主板温度监测
- 基于ZigBee的远程温度监测系统.
- android app性能监测-cpu温度
- 分布式温度监测解决方案(DTS)
- Python温度转换实例
- 反编译实例2:温度转换
- 1.4-温度转换程序实例
- 高压开关柜温度监测系统、高压开关柜测温系统
- 电缆温度监测系统、电缆接头测温系统
- 用软件lm_sensors监测Linux系统和CPU温度
- 定时监测CPU温度并实现报警和自动关机
- 冒泡排序
- 开篇
- mongodb C driver的异步查询
- LUA中的字符串函数库
- LUA中的基本函数库
- 温度监测仪开发实例
- LUA中的数学库
- LUA中的操作系统库
- How to use VPN ?
- 用c#编写socks代理服务器,大白话细述协议的最重要部分。
- 深度探讨Java字节代码的操纵方法
- UltraEdit v17.0.1030 简体中文版
- 4CM Paging ISSUE
- 实际使用NoSQL——MongoDB的一些体会