LCD显示电压示波系统设计方案

发布者:sigma28最新更新时间:2021-04-23 来源: eefocus关键字:LCD  显示电压 手机看文章 扫描二维码
随时随地手机看文章

本设计以ARM7微处理器为核心,采用arm7中的高速A/D为测压单元,提高了数据传输的可靠性;数据结果通过LCD实时显示,显示方式友好直观;采用RAM和UART分别存储和传输数据,实现了监测数据的长期存储和与PC的通信传输。采用31/2位或41/2位段位式LCD液晶数码显示器的仪表已不罕见,但段位式LCD显示器的功能较局限。对于多功能的智能仪表,采用点阵式LCD液晶显示模块,可提供更为丰富灵活的显示内容。点阵式LCD显示模块是一种集显示、控制与驱动与一体的显示器件。为了简化电路,充分发挥arm的性能,采用了320×240的16级灰度LCD。


系统总体方案设计


本系统要求软件完成的功能有以下几个方面。


实时数据采集功能。系统要求能够实时采集外部电压的实时数据。


采样数据处理功能。在系统对实时数据采集完成后,要对数据进行实时处理。实时处理主要是将外部电压进行高速A/D转换,然后动态显示。系统还可利用按键对超过报警设定值进行动态修改。


LED显示和RTC功能。本实验充分利用了LED显示和实时时钟功能。


报警处理功能。将实时数据与人机对话设定电压测量最大值进行比较,之后做出报警动作。


显示最大值功能。将实时数据中的最大值给予保存和显示。


利用EEPROM读写数据功能。系统可以在上电时读取110位上次运行的实时数据,并作为这次的历史数据。系统还可以按键来存储当前的110位实时数据。


串口发送数据功能。系统可通过按键,通过串口将100位实时数据发送到上位机显示。


为了实现系统的模块清晰,本系统采用了μC/OS-II操作系统。按照上述要求,本系统将软件划分为4个功能模块:A/D采集模块、LED显示和按键处理模块、LCD显示模块、报警、存储及串口处理模块。采样模块完成对实时数据的采样并保存;LED显示按键处理模块主要功能是对采样数据的处理,并把它们转换成有实际意义的参数;LCD显示模块是将各种参数在LCD显示出来;报警、存储及串口处理模块主要是实时对实时数据进行相应的处理。图1即为总体系统设计整体结构图。



图1 系统总体框图


系统硬件组成及功能


1 LCD显示部分


液晶显示器(LCD) 具有功耗低、体积小、重量轻、厚度薄等许多其他显示器无法比拟的优点,普遍应用于基于微处理器的仪器仪表及监视、控制等智能装置的终端显示和人机接口中。STN LCD——市面上销售的单色LCD绝大多数都是这种类型。STN LCD可选择自带LCD驱动器/控制器的STN LCD模块。TFT LCD——即俗称的“真彩色”液晶。TFT LCD通常一定要选择总线型液晶显示器,或者外接ARM的LCD驱动板也可以,总之要能够连接单片机或者arm。


2 LED显示与键盘模块


键盘显示部分是利用我们最熟悉的8位LED数码显示加8位键盘输入。图2是自制的LED显示与键盘模块的电路图。利用了飞利浦公司的SPI总线,简单实用,有五根针脚引出。



图2 LED显示与键盘模块


系统软件设计


1 设计思想


在此简易示波系统中,我们采用了LPC2138这种高性能ARM,由于ARM处理器处理速度极快,并且它内部带4路A/D转换。我们知道,ARM中的Fpclk是ARM外设的频率,常规情况下,是ARM内核工作频率的1/4,但我们可以自行修改设定Fpclk等于ARM内核的频率Fcclk,然后我们自行设定A/D转换功能不分频,并且可以设定采样的精度设为8位,这样每A/D转换一次的时间就等于arm的内核工作频率的9倍的时间,这样每次A/D的时间就相当快了,这时我们再采用两路A/D间隔采样,这样每次A/D的时间就又缩短了一半。理论上讲,这时的每次A/D采样时间差不多为2μs。这样,此系统的对外部电压的响应速度就提高了一个档次了,所以此系统的A/D性能比较高。


2 任务的划分


根据任务的划分原则,分析得出了6个任务:延时创建采样任务、采样任务、报警任务、实时时钟显示任务、串口任务、采样数据显示任务。其中采样任务安排优先级最高优先级为4,采样数据显示任务优先级为7,串口任务优先级为8,报警任务优先级为9,实时时钟显示任务为10。为了进行初始化工作,在延时创建采样任务中增加了对目标板的初始化和任务、互斥信号量、信号量的创建工作等内容。


3 共享资源的分析


在本测试要求中,采样的数据既要实时地放到LCD液晶屏上显示,而且还可以通过串口上传到上位机上,因此要采取资源同步的方法,否则有可能破坏时间,实现资源同步的方法一般有两种:关中断;使用互斥信号量。在本测试中使用互斥信号。


4 行为同步


在本测试中要用到两个行为同步,第一个是采样的数据的显示,测试要求把当前采样的数据通过LCD液晶屏上显示出来,所以要在数据显示任务中要等待采样任务完毕的信号量,当采样完毕后,发送信号量,把当前采样的结果显示出来。第二是查询历史记录,用户要查询历史记录时,才把记录显示出来,所以在查询历史记录任务里设置等待查询信号。任务之间相互配合和协调,才能得到预定的效果,这样可以实现任务的同步。



图3 采样任务流程图


5 软件设计模块流程图


嵌入式操作系统是嵌入式系统硬件和应用软件之间的接口,它的使用可以提高软件开发效率,它的可靠性和稳定性直接影响着系统的运行性能。本软件设计采用公开源码的μC/OS-II多任务实时操作系统。μC/OS-II作为一个实时微内核,实际上是一个高效的任务调度器,调度是线程级的,调度策略是采用静态分配优先级的方式,并且采用占先式的调度原则。为了实现基本的任务调度功能, μC/OS-II提供了必备的任务间通信手段,包括信号量、邮箱等。为了实现任务延时,还具有基本的时钟管理。


关键字:LCD  显示电压 引用地址:LCD显示电压示波系统设计方案

上一篇:ARM Linux开发阶段性总结
下一篇:基于嵌入式Windows CE5.0的无线监控系统研究

推荐阅读最新更新时间:2024-11-09 15:02

Linux设备驱动开发 - LCD设备驱动分析
一、S3C6410 LCD驱动裸机代码 LCD控制器初始化: 1 unsigned long VideoBuffer = {0}; 2 void lcd_init(void) 3 { 4 /* 1.初始化IO端口为LCD端口 */ 5 /* GPIO configure */ 6 GPICON = 0xAAAAAAAA; 7 GPJCON = 0x00AAAAAA; 8 9 /* 2.使能LCD时钟 */ 10 //HCLK_GATE |= (1 3); //默认打开 11 12 MIFPCON &=~(1 3); 13 14 /* 3.设置I/F类型 *
[单片机]
Linux设备驱动开发 - <font color='red'>LCD</font>设备驱动分析
OK6410A 开发板 (五) 1 OK6410A u-boot-2021.01 LCD RGB接口
u-boot 中的lcd驱动是 在 u-boot lcd驱动框架下的 lcd驱动,包括 lcd 框架 lcd 驱动 代码在 https://github.com/lisider/u-boot/tree/ok6410a 提交id: 54c4f9e1ec8017d51234e5909ca39662a257632d 总体概览 初始化的时候 drv_lcd_init 1. 调用 s3cfb 提供的接口函数 做 硬件初始化 2. 将 panel_info 的信息放到 cons 全局变量中 使用的时候 printf 1. 调用 cons 的 函数 处理 cons 的 成员变量 将 字符打印到屏幕上 /
[单片机]
单片机液晶滚动显示(AT89C51、LCD1602)
一、简介 此电路由AT89C51最小系统和LCD1602液晶模块组成。可实现上线垂直滚动、左右滚动和播放暂停。 二、执行效果 上下滚动 左右滚动 三、代码 /*更多项目私wo!!!*/ #include reg52.h #include string.h #define uchar unsigned char #define uint unsigned int void Initialize_LCD(); void ShowString(uchar,uchar,uchar *); sbit K1 = P3^0; sbit K2 = P3^1; sbit K3 = P3^2; uchar code Prompt
[单片机]
单片机液晶滚动<font color='red'>显示</font>(AT89C51、<font color='red'>LCD</font>1602)
s3c2440裸机-LCD编程(四、实现显示功能)
1.让LCD显示满屏红色 我们想要在LCD上显示出数据,所需步骤如下: a. 初始化LCD b. 使能LCD c. 获取LCD参数: fb_base, xres, yres, bpp d. 往framebuffer中写数据 1.初始化LCD工作我们在前面一节框架准备和LCD初始化已经详细介绍了。 2.使能LCD void lcd_enable() { lcd_controller_enalbe(); //会间接调用s3c2440_lcd_controller_enalbe } 3.获取LCD参数 void get_lcd_params(unsigned int *fb_base, int *xres, int
[单片机]
LCD1602 液晶
它是一种专门用来显示字母、数字、符号的 点阵 型液晶模块 它是由若干个5x7或者5x10的点阵字符位组成 引脚 时序 操作步骤 初始化 写命令(RS=L)设置显示坐标 写数据(RS=H) 指令 清屏: 指令码:0x01 进入模式设置: I/D:0,写入新数据后 光标 左移;1,写入新数据后光标右移 S:0,写入新数据后显示屏不移动;1,写入新数据后显示屏整体右移 1 个字符 常用指令:0x06 显示开关控制: D:0,显示功能关;1,显示功能开 C:0,无光标;1,有光标 B:0,光标闪烁;1,光标不闪烁 常用指令:0x0c 功能设定: D:0,数据总线为 4 位;1,数据总线为 8 位 N:0,显示
[单片机]
<font color='red'>LCD</font>1602 液晶
s3c2440 lcd 显示图片裸机程序
因为前面的裸机程序非常的简单,就不写博了。 程序的流程: 1,初始化C SP 2,关看门狗 3,初始化SDRAM 4,读出 NAND FLASH 中的 包含图片的程式放到SDRAM里面 5,跳转到SDRAM 执行 因为 2440 自动只读取4K 到 SRAM ,在里面放了图片,自然就不够用了。 就多了一步放到 SDRAM 里面去。 我并没有直接复制教程上面的程式,那个上面比较复杂。用到了c 的 库文件。 教程中只是画线,画圆线很简单。 刚一开始,我是使用 24BPP 开发的,这样遇到的问题还比较多。 图片要转为 C 语言的 头文件。我看网上有很多人在找软件转,还有个用 C的在LINUX
[单片机]
s3c2440 <font color='red'>lcd</font> <font color='red'>显示</font>图片裸机程序
联盛德 HLK-W806 (十一): 软件SPI和硬件SPI驱动ST7567液晶LCD
ST7567介绍 ST7567是128x64分辨率单色LCD液晶显示屏常用的芯片方案. ST7567是点阵LCD驱动集成电路, 可以使用8位并口或4线SPI串口(SPI-4)直接连接外部微控制器. 从MPU传输的数据存储在内部65x132 bits的显示数据内存(DDRAM). 在 DDRAM 中存储的数据与LCD点阵直接关联. ST7567 包含 132 段输出, 64 位输出和 1 个公共图标输出, 输出不需要外部时钟驱动. 特性 单片驱动 Single-chip LCD Controller & Driver, 片内显示内存 On-chip Display Data RAM (DDRAM) 容量Capacity: 6
[单片机]
联盛德 HLK-W806 (十一): 软件SPI和硬件SPI驱动ST7567液晶<font color='red'>LCD</font>
Moto E32更多信息解密:Unisoc T606 SoC+6.5吋LCD
继昨日官方渲染图曝光之后,Moto E32 的更详细规格在今天曝光。Moto E32 将是一款价格低廉的智能手机,使用 Unisoc T606 SoC,4GB + 64GB 的存储组合,机身正面配备 6.5 英寸的 LCD 屏幕,顶部居中有个 1600 万像素的打孔前摄。   机身背面为三摄(1600 万主摄+200 万微距+200 万深度),支持 10W 充电的 5000mAh 电池。Moto E32 出厂运行 Android 11 系统,它的尺寸为163 x 74 x 8.5毫米,重量为190克。根据一个零售商的清单,泄露的定价在欧盟为179欧元。
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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