基于ARM7的电压监测报警系统
- 格式:doc
- 大小:5.04 MB
- 文档页数:17
《嵌入式系统设计导论》
课程设计
题目: 基于ARM7的电压监测报警系统
学院
班 级
学 号
姓 名
二〇一三年四月
基于ARM7的电压监测报警系统
摘 要
本系统采用LPC2138系列的ARM硬件、WS-1型电位器、液晶屏LM016L 、按键、蜂鸣器、虚拟终端和上位机等组成,系统可实现在液晶屏实时显示电压的功能,并将电压数据串口通信传递给上位机,通过按键可调节阈值电压,系统除基本数字电压表功能外,还具有电压超限时声光报警等功能。
在设计中我们应用具有丰富的硬件资源的ARM7开发板。本设计采用电位器实现对电压信号的采集,利用LPC2138内部的ADC模块将转换后的电压传送给LCD液晶显示,虚拟终端再将数据传递给上位机,同时按键可调节阈值电压,当当前电压超过阈值电压时,报警通过蜂鸣器鸣叫和LED灯亮来提示。
本文详细介绍了AD采样、与PC机的串口通信、液晶屏显示等部分,具有较强的实用性和推广性。
关键词:LPC2138;上位机;LM016L液晶屏;电压超限报警;
一、设计目的
1. 通过本课程设计,熟悉嵌入式系统开发方法和流程。
2. 能结合课堂所学自主设计实现一个简单的监测报警系统。
3. 进一步学会应用定时器、A/D、显示等模块功能
二、设计要求
1. 能利用学过的A/D转换、定时器、按键等模块,实现温度(可用DS18B20
传感器)或电压(可用滑动电阻)的检测、显示、阈值设置,以及超过阈值能声光报警。
2. 将温度/电压数据通过串行通信(UART)发送到PC上位机显示,由上位机可显示实时监测数据、历史曲线,并可发送控制命令给ARM实现报警或关闭加热源/电源。注:上位机软件程序可用VB、VC++做界面,也可简单地通过“串口调试软件”显示。
三、系统总体方案
3.1总体方案设计
利用ARM7控制芯片、LCD液晶屏、LED、电位器、虚拟终端等分别实现;
(1)通过电位器的移动来调节应采集的电压信号的大小;
(2)通过液晶显示当前电压值和阈值及其大小关系;
(3)通过蜂鸣器和LED灯实现超限报警;
(4)虚拟终端将实时电压显示出来,并通过串口物理端口将数据传递给上位
机。
图1 设计方案总体框图
系统初始化后,通过调节电位器来调节采集电压信号的大小,通过LCD上显示当前电压值和阈值 ,通过按键实现电压阈值设定,如果采集的电压值超过设定的阈值电压,蜂鸣器会鸣叫且LED等亮提示电压超限,起到报警的作用。
3.2 ARM7 LPC2138 EasyARM2131 开发板是广州周立功公司设计的 EasyARM 系列开发套件之一,采用 了 PHILIPS 公司基于 ARM7TDMI-S 核、单电源供电、LQFP64 封装的 LPC2131,具有 JTAG 仿真调试、ISP 编程等功能。开发板上提供了一些键盘、LED、蜂鸣器等常用功能部件,还具有RS232 接口电路、 I2C存储器电路。另外,用户也可以更换兼容的CPU进行仿真调试,如LPC2132、LPC2138、 LPC2142 等。灵活的跳线组合(开发板内使用的所有I/O均可断开连接),还有用户I/O接 口,极大地方便了用户进行 32 位ARM嵌入式系统的开发实验。
EasyARM2131 实验板功能特点:
* 完全自主设计的软硬件、拥有自主版权的 JTAG 仿真技术;
* 支持 ADS1.2 集成开发环境及其 PHILIPS 所有型号 ARM 微控制器的仿真与开发;
* 采用“主板+CPU PACK 适配器+SD 卡适配器(标准配置)+多种可选配置适配器”
* 的 形 式构成 EasyARM2131 开发 套 件,标 准 配置的 CPU PACK 主
芯片为
LPC2131FBD;
* 板上的功能部件与 CPU 之间,可以使用跳线器选择连接;
* 全面支持 9 种型号的 64 PIN 小管脚 ARM7 微控制器:
-LPC213x(LPC2131/2132/2134/2136/2138)
-内置 USB 接口的 LPC214x(LPC2142/2144/2146/2148)
* 多种免费商业化软件包及其详细的开发文档:
* 移植μC/OS-II到ARM7 软件包
四、硬件设计
4.1 AD采样模块设计
图2 信号采集电路图
4.2 LCD液晶屏显示设计
LCD液晶屏显示电路如图4-2所示。该液晶可实现显示当前电压值和信号显示时间,具体控制和实现方法如下: 左图为电压信号调节电路,如图所示,电源电压Vcc=3.3V,故测量范围为(0~3.3V),电位器RV2=1K,信号采集端接到ARM7芯片P0.27口,通过调节电位器改变采集P0.2口的电压值,送至芯片内部AIN0(AD转换器)进行A/D转换。
A/D没有独立的参考电压引脚,A/D的参考电压与供电电压连接在一起即3.3V,假定从ADDR寄存器中读取到的10位A/D转换结果为VALUE,则对应的时间电压为:
VVALUEU3.31024
(1)ARM7的P1.16-P1.23口连接液晶屏的DBO-DB7,控制对液晶屏并行数据
读和写;
(2)ARM7的P1.24口连接液晶屏的RS口,控制并行的指令/数据选择信号;
(3)ARM7的P1.25口连接液晶屏的R/W口,控制并行的读写选择信号;
(4)ARM7的P1.26口连接液晶屏的EN口,控制并行的使能信号;
图3 LCD液晶屏电路图
4.2.1 LCD内部的11条指令
序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1 清显示 0 0 0 0 0 0 0 0 0 1
2 光标返回 0 0 0 0 0 0 0 0 1 *
3 置输入模式 0 0 0 0 0 0 0 1 I/D S
4 显示开/关控制 0 0 0 0 0 0 1 D C B
5 光标或字符移位 0 0 0 0 0 1 S/C R/L * *
6 置功能 0 0 0 0 1 DL N F * *
7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址
8 置数据存贮器地址 0 0 1 显示数据存贮器地址
9 读忙标志或地址 0 1 BF 计数器地址
10 写数到CGRAM或DDRAM) 1 0 要写的数据内容
11 从CGRAM或DDRAM读数 1 1 读出的数据内容
表1 LCD内部指令表
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平左移,低电平右移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
液晶显示部分的程序可根据上表进行编写,本文中如果电压超过设定值w,则显示屏上显示当前电压且大于设定电压,否则,显示当前电压且小于设定电压,清晰的看出当前电压情况。
4.3按键调节电路
图4 按键调节电路图
4.4 蜂鸣器和LED报警电路 按键SWI和按键SWI1分别接到芯片的P0.26、P0.30口,当按键SWI按下时,P0.26口的变为低电压,当程序检测到IO0PIN的改变,阈值电压w=w+200;
同理,当按键SWI1按下时,阈值电压w=w-200;
同时液晶屏上会显示此时电压>阈值电压,或此时电压
图5 蜂鸣器电路图
4.5 串口通信(UART)电路
串口通信电路如下图,串口物理端口(COMPIM)的RXD接芯片的P0.1口,TXD接芯片的P0.0口,即UART0口,电压信息可实时显示在虚拟终端上,且可通过VSPD将虚拟终端与串口调试软件连接起来,将信息显示在串口调试软件上。
图6 串口通信电路
五、系统的软件设计
5.1系统主流程图
图5-1为系统主流程图,主流程图具体介绍如下:
(1)系统初始化包括对AD转换模块进行初始化、液晶屏初始化,串口通信
初始化、设定GPIO、 设定电压阈值W等;
(2)ADC模块电压转换,转换之后显示当前检测到的电压并赋值给U,同时
串口通信传递给串口调试软件;
(3) 检测按键1是否按下,如果按下,则阈值电压w增加200,同理,如
果按键2按下,则阈值电压减小200; LED灯和蜂鸣器电路分别接芯片的P1.28和P1.29口,当经过AD转换的电压u超出设定的阈值电压w时,程序拉高了ARM芯片的P1.28、P1.29口,使NPN管导通,蜂鸣器开始鸣叫,LED灯亮报警,同理如果电压值低于阀值电压,NPN管截止,则蜂鸣器不鸣叫。