第11章温度监测仪开发实例课程.pptVIP

  • 2
  • 0
  • 约2.85千字
  • 约 20页
  • 2016-09-26 发布于江苏
  • 举报
11.1 项目功能描述 11.2 系统组成 11.3 接口电路图设计 11.4 程序设计 11.5 运行结果 11.6 小结 温度监测仪可以实现如下功能: 使用铂电阻传感器探测出目标温度,并通过图形的方式显示在LCD屏上 当温度超过报警温度时,在LCD屏上显示报警状态 当温度超过报警温度时,通过PWM控制蜂鸣器实现报警 当温度超过报警温度时,点亮LED报警灯 可以通过按键关闭或打开蜂鸣器及报警等功能 实例涉及到传感器技术、GPIO控制技术、中断技术、LCD控制技术、PWM控制技术、A/D转换技术等。 图11-1 系统组成功能图 1、报警灯电路 处理器S3C2410通过GPF4控制报警LED灯,如图10-2所示 图11-2 报警灯电路 2、蜂鸣器电路 处理器S3C2410通过GPB0输出PWM信号控制蜂鸣器,如图11-3所示 图11-3 蜂鸣器电路 3、按键电路 当GPE11输出0电平时,按键按下后会在EINT0管脚上产生跳沿信号。系统利用此信号产生中断。如图11-4所示 图11-4 按键中断电路 4、LCD液晶屏电路 LCD屏的分辨率为320*240,颜色深度为16位真彩色。电路接线参照第9章中的图9-4。 5、温度采集电路 采样温度范围是0~100℃,变送器将温度信号转换为0~3.3V的电压信号。电压信号和S3C2410的AIN0相连。系统通过测量电压信号从而得到当前的温度值。电路如图11-5所示 图11-5 温度采集电路 1、程序工作流程 图13-6 主程序流程 图13-7 按键中断处理程序流程 2、主程序代码 #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(); //初始化 s3c2410s 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_value80) //判断温度是否超过报警值80 { if(flag_alarm) //判断是否设置了报警功能 { beep_start();//驱动蜂鸣器 led_on(); //打开报警灯 flag_beep=1; //置标志 } else { if(flag_beep) //判断标志 { beep_stop(); //关闭蜂鸣器 led_off();

文档评论(0)

1亿VIP精品文档

相关文档