基于的电压检测报警系统

上传人:s9****2 文档编号:457747351 上传时间:2023-10-20 格式:DOC 页数:20 大小:322.50KB
返回 下载 相关 举报
基于的电压检测报警系统_第1页
第1页 / 共20页
基于的电压检测报警系统_第2页
第2页 / 共20页
基于的电压检测报警系统_第3页
第3页 / 共20页
基于的电压检测报警系统_第4页
第4页 / 共20页
基于的电压检测报警系统_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于的电压检测报警系统》由会员分享,可在线阅读,更多相关《基于的电压检测报警系统(20页珍藏版)》请在金锄头文库上搜索。

1、目录一、引言- 2 -1.1设计目的- 2 -1.2设计要求- 2 -二、总体设计方案- 3 -2.1系统总体方案- 3 -2.2系统原理图- 4 -三、硬件设计- 5 -3.1设计思路- 5 -3.2系统电路设计- 5 -四、软件设计- 8 -4.1设计思路- 8 -4.2串口通信子程序- 8 -五、程序设计与调试- 9 -5.1程序代码设计- 9 -5.2程序代码调试- 15 -六、设计结果演示- 16 -七、心得体会- 17 -参考文献- 18 -基于的电压检测报警系统摘要:本设计是基于嵌入式技术作为主处理器的电压报警系统,利用LPC318作为主控CPU,辅以电压采集模块采集数据,用滑动

2、变阻器与之相连。实现了简单的电压报警功能。运用LM016L液晶动态显示提高系统的显示质,且其数字式接口使操作更简单。解决了传统的数据采集系统由于存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,能够完全适应现代化工业的高速发展。关键词:嵌入式系统 ARM LPC318 LM016L液晶显示 电压采集 电压报警一、引言1.1设计目的1. 通过本课程设计,熟悉嵌入式系统开发方法和流程。2. 能结合课堂所学自主设计实现一个简单的监测报警系统。3. 进一步学会应用定时器、A/D、显示等模块功能1.2设计要求1. 根据题目,自行设计方案,并编写程序2. 要求能利用学过的A/D转换、定时器、按键等模块

3、,实现温度(可用DS18B20传感器)或电压(可用滑动电阻)的检测、显示、阈值设置,以及超过阈值能声光报警。3. 扩展功能:将温度/电压数据通过串行通信(UART)发送到PC上位机显示,由上位机可显示实时监测数据、历史曲线,并可发送控制命令给ARM实现报警或关闭加热源/电源。注:上位机软件程序可用VB、VC+做界面,也可简单地通过“串口调试软件”显示。二、 总体方案设计2.1系统总体方案 Philips公司的32位ARM7微控制器LPC2138具有强大的存储空间,内嵌32 KB片内静态RAM和512 KB的Flash存储器;可以实现在系统可编程(ISP)、在应用可编程(IAP);2个8路10位

4、AD转换器,1个DA转换器,转换迅速准确;引脚资源丰富,多达47个可承受5 V电压的通用IO口;多个串行接口,包括2个16C550工业标准UART、2个高速I2C接口、SPI,以及具有缓冲作用和数据长度可变功能的SSP协议。LPC2138可以移植C0S-II操作系统,软件的可移植性好,工作可靠。LM016L液晶应用非常广泛,操作简单,功能强大,通过对 LM016L的编程来读取滑动变阻器和按键的值来获取相应的信息,再通过对液晶的编程控制将获取到的信息通过一系列转换从而显示到液晶屏上。最后达到有电压采集显示和报警等功能。系统论证时通过在 proteus的仿真,能够达到预期的效果!系统设计方案的确定

5、核心控制体:LPC2138 显示:LM016L电压检测传感器:滑动变阻器报警模块,LED报警。2.2系统原理图三、硬件设计3.1设计思路本设计的基于ARM 的电压报警系统框图如下图所示。由图可见,本系统采用“ARM 核心控制模块电压采集模块+报警模块”实现所需功能。并考虑到系统的可扩展性和延伸性,本系统添加了按键模块,使系统更加完善,提高了扩展性。ARM处理器按键模块电压检测模块LCD显示器报警模块 系统原理框图3.2系统电路设计3.2.1 电压检测模块电路设计通过改变滑动变阻器串入的阻值来改变采样电阻所分电压值,此值可以通过A/D转换模块将采样所得的电压值转换为数字信号,从而显示到显示模块。

6、3.2.2按键模块电路设计设有两个按键,按上上面的按键阀值增加1000mv,按下下面的按键阀值减少1000mv。界面简单,操作方便。3.2.3报警模块电路设计报警系统由LED构成,在被测电压超过阀值时LED变亮发出警告。数据端口接P0.21(由LPC的P0.21直接输出驱动)。3.2.4 LCD显示模块电路设计运行时,上面显示的是此刻检测到的电压,下面显示的是报警电压阀值。四、软件设计4.1设计思路本系统软件设计是在CodeWarrior for ADS开发环境下完成的。本电压报警系统的主体由LPC2138核心控制模块构成,所以系统软件也是围绕这个模块来编写的。程序流程图如下图。开始ARM初始

7、化LED显示初始化串口显示初始化AD转换,显示屏显示,串口显示运行VI N Y指示灯发光调节按键 改变电阻或改变报警电压由该流程图可看出,刚上电时,要先进行ARM 内部的初始化,以使ARM进入相应的状态和模式;然后初始化硬件装置,以使硬件系统可以正常支持电压数据采集;然后初始化LCD显示和键盘,在LCD上显示相应的菜单列表,供用户通过按钮操作;至此,系统初始化完成,并进入正常主程序循环状态。在正常主程序循环状态中,首先扫描键盘,以快速的响应用户的按键操作;若没有键值按下,则ARM立即进行数据的采集、处理与显示,以实现实时数据采集与显示等功能。 其主程序包括电压采集程序、ARM获取电压子程序、电

8、压处理和转换子程序。当ARM 处理器接收到正确的电压数据后,立即进行相应的电压数据处理与转换,变成可被LCD直接显示的值。4.2 串口通信子程序串口通信程序流程图如图所示。 串口通信子程序流程图五、程序设计与调试5.1程序代码#define uint unsigned int#define uchar unsigned char#define uint8 unsigned char#define uint32 unsigned int#include stdio.h#include lpc21xx.h#define RS (124) #define RW (125) #define E (12

9、6) #define BUSY (123)#define baojing (11)uint32 adc_data,v_test,a,b,c,d,v_set,e,f,g,h;uint8 dis=v: mv; uint8 str=l: mv; uint32 v_test,adc_data; void CheckBusy() IO1DIR = (0x700)16; while(1) IO1CLR = RS; IO1SET = RW; IO1SET = E; if(!(IO1PIN & BUSY) break; IO1CLR = E; IO1DIR = (0x7ff)16; void WriteCom

10、mand(unsigned char command) CheckBusy(); IO1CLR = RS; IO1CLR = RW; IO1CLR = (0xff)16; IO1SET = command16; IO1SET = E; IO1CLR = E; void WriteData(unsigned char data) CheckBusy(); IO1SET = RS; IO1CLR = RW; IO1CLR = (0xff)16; IO1SET = data16; IO1SET = E; IO1CLR = E; void Set_XY(unsigned char x,unsigned

11、 char y) switch(x) case 0: y+=0x80; break; case 1: y+=0xc0; break; WriteCommand(y); void DisplayChar(unsigned char x,unsigned char y,unsigned char data) Set_XY(x,y); WriteData(data); void DisplayString(unsigned char x,unsigned char y,unsigned char *str) Set_XY(x,y); while(*str) WriteData(*str); str+; void InitLcd() WriteCommand(0x01); WriteCommand(0x38); WriteCommand(0x0C); void delay1ms(uint n)uint i,j;for(i=0;in;i+)for(j=1;j2500;j+);void delay(uint n)uint i,j;for(i=0;in;i+)for(j=1;j500;j+); void ADC(void) PINSEL1=0x00400000;ADCR=(10)|(12000000/1000000-1)8)|(016)|(017)|(121)|(022)|(124)|

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 销售管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号