历史上的今天
返回首页

历史上的今天

今天是:2025年02月14日(星期五)

正在发生

2020年02月14日 | 基于单片机的PM2.5空气质量检测

2020-02-14 来源:51hei

1概述

1.1 设计的主要内容和意义

1.1.1 设计的主要内容

本设计提出的检测空气质量PM2.5的方案最基本的实现方法是由单片机、粉尘监测传感器、显示模块、报警模块等组成的电路, GP2Y1010AU0F粉尘传感器采集空气中PM2.5的浓度值,经过STC89C51单片机处理后,在LCD1602液晶上显示,并通过LED和蜂鸣器提示浓度状态。


1.1.2 设计的主要意义

21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入到应用工程的各个领域。


因为空气质量的恶化,阴霾天气现象出现增多,危害现象加重。中国不少地区把阴霾天气现象并入雾一起作为灾害性天气预警预报。统称为“雾霾天气”。雾霾主要由PM2.5、PM10、PM0.1以及重金属镍砷铬铅等颗粒组成。在空气动力学和环境气象学中,颗粒物是按直径大小来分类的,粒径小于100微米的称为TSP(TotalSuspendedParticle),即总悬浮物颗粒;粒径小于10微米的称为PM10(PM为ParticulateMatter缩写),即可吸入颗粒物;粒径小于2.5微米的称为PM2.5,即可入肺颗粒物,它的直径仅相当于人的头发丝粗细的1/20。虽然PM2.5只是地球大气成分中含量很少的组分,但它与较粗的大气颗粒物相比,粒径小,富含大量的有毒、有害物质且在大气中的停留时间长、输送距离远,因而对人体健康和大气环境质量影响更大。


世界卫生组织发布的报告显示,无论是发达国家还是发展中国家,目前大多数城市和农村人口均遭受到颗粒物对健康的影响。高污染城市中的死亡率超出相对清洁城市的15%至20%。据统计,在欧洲,PM2.5每年导致386000人死亡,并使欧盟国家人均期望寿命减少8.6个月。人体的生理结构决定了对PM2.5没有任何过滤、阻拦能力,而PM2.5对人类健康的危害却随着医学技术的进步,逐步暴露出其恐怖的一面。气象专家和医学专家认为,由细颗粒物造成的灰霾天气对人体健康的危害甚至要比沙尘暴更大。粒径10微米以上的颗粒物,会被挡在人的鼻子外面;粒径在2.5微米至10微米之间的颗粒物,能够进入上呼吸道,但部分可通过痰液等排出体外,另外也会被鼻腔内部的绒毛阻挡,对人体健康危害相对较小;而粒径在2.5微米以下的细颗粒物,直径相当于人类头发的1/10大小,不易被阻挡。被吸入人体后会直接进入支气管,刺激呼吸道,干扰肺部的气体交换,从而引发咳嗽、呼吸困难、哮喘、慢性支气管炎等呼吸系统的疾病并导致心律不齐、非致命性心脏病等心血管方面的疾病。其中,老人、小孩以及心肺疾病患者是PM2.5污染的敏感人群。因此,对PM2.5的监测与治理便显得越来越重要。


2 主控制器及主要器件

2.1 STC89C51单片机

STC89C51是一个低功耗,高性能CMOS 8位单片机,片内含8k BytesISP的可反复擦写1000次的Flash只读程序存储器,器件采用STC公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。


STC89C51具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及晶振电路。另外,STC89C51可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器(SFR),它们主要用于存放控制命令、状态或数据。除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80H~FFH。这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚好能被8整除。STC89C51是一个高效的微型计算机。它的应用范围广,可用于解决复杂的控制问题,且成本较低。其结构框图如图2.1所示。

1.001.jpg?imageView2/2/w/550


图2.1 STC89C51结构框图

1.002.jpg?imageView2/2/w/550 

STC89C51引脚功能与封装:



图2.2 STC89C51引脚图

按照功能,STC89C51的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O口、控制和复位等。


多功能I/O口:

STC89C51共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0 ~ P0.7,P1.0 ~ P1.7,P2.0 ~ P2.7,P3.0 ~ P3.7,共32根I/O线。每根线可以单独用作输入或输出。


①P0端口,该口是一个8位漏极开路的双向I/O口。在作为输出口时,每根引脚可以带动8个TTL输入负载。当把“1”写入P0时,则它的引脚可用作高阻抗输入。当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。

②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P1口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对Flash编程和程序校验时,P1口接收低8位地址。


另外,P1.0与P1.1可以配置成定时/计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端(P1.0/T2EX),如表2.3所示。


表2.1  P1口管脚复用功能

端口引脚

复用功能

P1.0

T2(定时器/计算器2的外部输入端)

P1.1

T2EX(定时器/计算器2的外部触发端和双向控制)

P1.5

MOSI(用于在线编程)

P1.6

MISO(用于在线编程)

P1.7

SCK(用于在线编程)

③ P2端口,该口是带有内部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P2口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器或16位的外部数据存储器时,P2口送出高8位地址,在访问8位地址的外部数据存储器时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Flash编程和程序校验期间,P2口也接收高位地址或一些控制信号。


④ P3端口,该口是带有内部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P3口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在STC89C51中,同样P3口还用于一些复用功能,如表2.4所列。在对Flash编程和程序校验期间,P3口还接收一些控制信号。


表2.2 P3端口引脚与复用功能表

端口引脚

复用功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

INT0(外部中断0)

P3.3

INT1(外部中断1)

P3.4

T0(定时器0的外部输入)

P3.5

T1(定时器1的外部输入)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

RST:复位输入端。在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。看门狗定时器(Watchdog)溢出后,该引脚会保持98个振荡周期的高电平。在SFR AUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽这种功能。DISRTO位的默认状态,是复位高电平输出功能使能。


ALE/PROG:地址锁存允许信号。在存取外部存储器时,这个输出信号用于锁存低字节地址。在对Flash存储器编程时,这条引脚用于输入编程脉冲PROG。一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或晶振。但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。在需要时,可以把地址8EH中的SFR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MOVX或MOVC指令执行时ALE才被激活。在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。


PSEN:程序存储器允许信号。它用于读外部程序存储器。当STC89C51在执行来自外部存储器的指令时,每一个机器周期PSEN被激活2次。在对外部数据存储器的每次存取中,PSEN的2次激活会被跳过。


EA/Vpp:外部存取允许信号。为了确保单片机从地址为0000H~FFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。但是,如果锁定位1被编程,则EA在复位时被锁存。当执行内部程序时,EA应接到Vcc。在对Flash存储器编程时,这条引脚接收12V编程电压Vpp。


XTAL1:振荡器的反相放大器输入,内部晶振工作电路的输入。

XTAL2:振荡器的反相放大器输出。


2.2 A/D转换芯片ADC0832

ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,

其目前已经有很高的普及率。学习并使用 ADC0832 可是使我们了解 A/D 转换器的原理,有助于我们单片机技术水平的提高。

ADC0832 具有以下特点:

①8 位分辨率;

②双通道 A/D 转换;

③输入输出电平与 TTL/CMOS 相兼容;

④5V 电源供电时输入电压在 0~5V 之间;

⑤工作频率为 250KHZ,转换时间为 32μS;

⑥一般功耗仅为 15mW;

⑦8P、14P—DIP(双列直插)、PICC 多种封装;

1.003.jpg?imageView2/2/w/550 

⑧商用级芯片温宽为0°C to +70°C,工业级芯片温宽为−40°C to +85°C;

芯片顶视图:


图2.3


芯片接口说明:

CS_:片选使能,低电平芯片使能。

CH0:模拟输入通道 0,或作为 IN+/-使用。

CH1:模拟输入通道 1,或作为 IN+/-使用。

GND:芯片参考 0 电位(地)。

DI:数据信号输入,选择通道控制。

DO:数据信号输出,转换数据输出。

CLK:芯片晶振输入。

Vcc/REF:电源输入及参考电压输入(复用)。


ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 0~5V 之间。芯片转换时间仅为 32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择。


2.3 1602LCD液晶显示屏

LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。


LCD1602主要技术参数

显示容量为16×2个字符;

芯片工作电压为4.5~5.5V;

工作电流为2.0mA(5.0V);

模块最佳工作电压为5.0V;

字符尺寸为2.95×4.35(W×H)mm。


3.1.2 LCD1602的引脚说明

LCD1602采用标准的14脚接口,其中:

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:V0为液晶显示器对比度调整端。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15~16脚:空脚


3.1.3控制指令说明

1602液晶模块内部的控制器共有11条控制指令,如3.8表所示:

表2.3控制命令表

序号

指令

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

写数到CGRA或DDRAM)

1

0

要写的数据内容

11

从CGRAM或DDRAM读数

1

1

读  出的数据内容

1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

指令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:读数据


2.4 夏普粉尘传感器GP2Y1010AU0F

日本夏普公司灰尘传感器GP2Y1010AU,体积小巧,灵敏度高,可以用来测量0.8微米以上的微小粒子,可用于室内环境中烟气、粉尘、花粉等浓度的检测。此款产品不但可以检测出单位体积粒子的绝对个数,而且内置气流发生器,可以自行吸入外部空气。灰尘传感器GP2Y1010AU安装保养方便,使用寿命长,精度高,稳定性好。其内部对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,即使非常细小的如烟草烟雾颗粒也能够被检测到,通常在空气净化系统中应用。该传感器具有非常低的电流消耗(最大20mA,典型值11mA),可使用高达7VDC。该传感器输出为模拟电压,其值与粉尘浓成正比。      

1.004.jpg?imageView2/2/w/550






图2.4 夏普灰尘传感器GP2Y1010AU0F

1.005.jpg?imageView2/2/w/550


传感器内部结构


图2.5


应用领域:

1、空气净化器和空气清新机;

2、空调;

3、空气质量监控仪;

4、空调等相关产品。

主要参数:

灵敏度:0.5V/(0.1mg/m3)

输出电压:0.9V(TYP)

消耗电流:11mA

工作温度:-10~65℃

存储温度:-20~80℃

2.5 蜂鸣器

该设计有报警电路,当浓度超过设置的报警上限时,单片机控制蜂鸣器鸣响提醒超限,控制引脚接在P3.7引脚上,利用三极管当做开关电路可以保护单片机,还可以起到放大电流的作用,当三极管基极为高电平时,发射极截止,为低电平时,发射极导通。报警模块如图12所示。


1.006.jpg?imageView2/2/w/550

图2.6 声音报警模块

3 硬件电路设计

3.1 电路设计框图

1.007.jpg?imageView2/2/w/550 系统的组成结构如下:

1.008.jpg?imageView2/2/w/550 1.009.jpg?imageView2/2/w/550 1.010.jpg?imageView2/2/w/550 1.011.jpg?imageView2/2/w/550



1.012.jpg?imageView2/2/w/550 1.013.jpg?imageView2/2/w/550 1.014.jpg?imageView2/2/w/550



1.015.jpg?imageView2/2/w/550 1.016.jpg?imageView2/2/w/550 1.017.jpg?imageView2/2/w/550

1.018.jpg?imageView2/2/w/550


图3.1

3.2 系统概述

本电路是由STC89C51单片机为控制核心,另外主要通过5个模块的电路设计实现功能,他们分别是LCD显示模块、粉尘传感器、A/D转换、蜂鸣器电路、LED指示电路。

系统原理图如下

1.019.jpg?imageView2/2/w/550

                                    图3.2

3.3 单片机最小系统

单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对51系列单片机来说, 最小系统一般应该包括: 单片机、晶振电路、复位电路、输入/ 输出设备等。

单片机最小系统框图

1.020.jpg?imageView2/2/w/550


图3.3


晶振电路:

在设计晶振电路之前,让我们先了解下51单片机上的晶振管脚:

XTAL1(19 脚) :芯片内部振荡电路输入端。

XTAL2(18 脚) :芯片内部振荡电路输出端。

XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部晶振驱动。图3中采用的是内晶振模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.2 ~ 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。在本实验套件中采用的11.0592M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 ~ 40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 ~ 50pF 之间。通常选取33pF的陶瓷电容就可以了。

1.021.jpg?imageView2/2/w/550 

晶振电路如图所示。


图3.4晶振电路图


复位电路:

在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。


MCS-5l 系列单片机的复位引脚RST( 第9管脚) 出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。


复位操作通常有两种基本形式:上电自动复位和开关复位 。上电瞬间 ,电容两端电压不能突变 ,此时电容的负极和 RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0 ,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后 ,通过按下按键使RST管脚出现高电平达到手动复位的效果。

复位电路图如图所示:

1.022.jpg?imageView2/2/w/550



图3.5 复位电路图


EA/VPP(31 脚)的功能和接法:

51 单片机的EA/VPP(31 脚) 是内部和外部程序存储器的选择管脚。当EA 保持高电平时,单片机访问内部程序存储器;当EA保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。

对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。

在本实验套件中,EA 管脚接到了VCC 上,只使用内部的程序存储器。这一点一定要注意,很多初学者常常将EA 管脚悬空,从而导致程序执行不正常。


P0口外接上拉电阻:

51 单片机的P0 端口为开漏输出,内部无上拉电阻。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,

另外,避免输入时读取数据出错,也需外接上拉电阻。在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从内部总线输出低电平后,锁存器Q = 0, Q = 1,场效应管V1 开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电平还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q = 1, Q = 0,场效应管V1 截止.如外接引脚信号为低电平, 从引脚上读入的信号就与从锁存器读入的信号不同。所以当P0 口作为通用I/O 接口输入使用时,在输入数据前,应先向P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入。


总结来说:为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻。在本实验套件中采用的是外加一个10K 排阻。此外,51 单片机在对端口P0—P3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰。


3.4 粉尘传感器电路设计

根据粉尘传感器GP2Y1010AU的规划书中对管脚的描述:

1.023.jpg?imageView2/2/w/550 
1.024.jpg?imageView2/2/w/550 
图3.6



对应的管脚为:


1.025.jpg?imageView2/2/w/550



图3.7


故粉尘传感器的电路设计如图:

粉尘传感器GP2Y1010AU通过对空气粉尘颗粒浓度的检测输出模拟电压,其值与粉尘浓度成正比。故在仿真原理图中,我们用可变电阻设计的局部限压电路代替传感器:


1.026.jpg?imageView2/2/w/550 
图3.8

3.5 A/D转换

1.027.jpg?imageView2/2/w/550 
ADC0832的封装机管脚说明:

                                  图3.9

CS_:片选使能,低电平芯片使能。

CH0:模拟输入通道 0,或作为 IN+/-使用。

CH1:模拟输入通道 1,或作为 IN+/-使用。

GND:芯片参考 0 电位(地)。

DI:数据信号输入,选择通道控制。

DO:数据信号输出,转换数据输出。

CLK:芯片晶振输入。


3.6 LCD显示模块设计

     系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,根据各管脚的功能电路设计如下:

1.028.jpg?imageView2/2/w/550 

                             图3.10

1.029.jpg?imageView2/2/w/550 

仿真电路图:



图3.11

3.7  LED指示电路

    红黄绿指示灯与单片机单片机的P2.0口P2.1口和p3.1口连接。LED的正极都接电源,当单片机IO口输出低电平时,对应的LED就会点亮。LED的电路原理图如下3-5所示:

1.030.jpg?imageView2/2/w/550

                                 图3.12


4 程序设计及软件应用

4.1 主程序设计

/********************************************************************

* 名称 : Main()

* 功能 : 主函数

***********************************************************************/

void main()

推荐阅读

史海拾趣

HDK(北陆电气)公司的发展小趣事

对于STM32与四线电阻触摸屏的接口电路,网友可能会有以下一系列问题,我将逐一进行回答:

1. STM32如何与四线电阻触摸屏连接?

回答:STM32与四线电阻触摸屏的连接主要通过STM32的GPIO口实现。通常,STM32的多个GPIO口会分别连接到四线电阻触摸屏的X+、X-、Y+、Y-四个引脚。这些引脚用于驱动和检测触摸屏上的触摸动作。

2. 如何在STM32上配置GPIO以支持四线电阻触摸屏?

回答:在STM32上配置GPIO以支持四线电阻触摸屏时,需要将相应的GPIO口配置为模拟输出(用于驱动触摸屏)或模拟输入(用于读取触摸屏上的电压信号)。此外,还需要配置中断引脚来检测触摸屏是否被触摸。具体的配置步骤包括设置GPIO的模式(如推挽输出、上拉输入等)、速度以及是否启用中断等。

3. 如何使用STM32读取四线电阻触摸屏的坐标值?

回答:读取四线电阻触摸屏的坐标值通常涉及两步操作:首先,通过驱动触摸屏的X+或Y+引脚为高电平,并同时保持对应的X-或Y-引脚为低电平,以在触摸屏上形成电压梯度;然后,使用ADC(模数转换器)读取另一侧的X+或Y+引脚上的电压值。根据读取到的电压值与参考电压的比例关系,可以计算出触摸点的X或Y坐标。为了获得更准确的坐标值,通常需要进行多次读取并取平均值。

4. 是否需要外部控制芯片来实现STM32与四线电阻触摸屏的接口?

回答:不一定需要外部控制芯片。STM32的GPIO口和ADC功能已经足够强大,可以直接与四线电阻触摸屏接口。然而,在某些情况下,为了简化电路设计或提高触摸检测的精度和稳定性,可能会使用如XPT2046这样的专用触摸屏控制芯片。这些芯片内部集成了A/D转换器和触摸屏控制逻辑,可以通过SPI等接口与STM32通信,从而简化软件设计。

5. 如何进行触摸屏的校准?

回答:触摸屏的校准是为了确保触摸点与实际屏幕坐标之间的准确对应。通常,在触摸屏首次使用或更换后需要进行校准。校准过程包括在触摸屏上选择几个已知的点(如屏幕的四个角),然后记录这些点对应的ADC值。通过计算这些点的ADC值与实际屏幕坐标之间的关系,可以得到校准参数(如缩放因子和偏移量)。在后续的触摸检测中,可以使用这些校准参数将ADC值转换为实际的屏幕坐标。

6. STM32与四线电阻触摸屏接口电路中的常见问题有哪些?

回答:STM32与四线电阻触摸屏接口电路中的常见问题可能包括:

  • 触摸屏无响应:可能是由于GPIO配置错误、ADC配置不当或触摸屏硬件故障等原因导致。
  • 坐标偏移:可能是由于触摸屏未正确校准或校准参数设置错误导致。
  • 触摸点跳动:可能是由于触摸屏表面有污渍、静电干扰或ADC采样不稳定等原因导致。

解决这些问题的方法通常包括检查GPIO和ADC的配置、重新校准触摸屏以及清洁触摸屏表面等。如果问题依然存在,可能需要检查触摸屏硬件是否损坏。

永丰盈(CST)公司的发展小趣事

在稳步发展国内市场的同时,CST积极拓展国际市场。公司建立了分布世界各地的销售渠道,与多家国际知名企业建立了长期稳定的合作关系。通过不断的市场拓展和品牌建设,CST在国际市场上树立了良好的企业形象和品牌形象。

D1 International Inc公司的发展小趣事

随着技术的不断成熟,D1 International Inc公司开始积极拓展市场。公司不仅在国内市场取得了显著的成果,还成功打入国际市场。与此同时,D1 International Inc公司也注重与其他企业的战略合作。通过与知名电子制造商的合作,D1 International Inc公司的产品线得到了极大的丰富,同时也提升了公司的品牌影响力。

Auctor Corp公司的发展小趣事

随着电子行业的快速发展,Auctor Corp公司意识到只有不断创新才能在竞争中脱颖而出。因此,公司加大了对研发的投入,不断引进先进技术和人才。经过数年的努力,公司成功开发出一系列具有行业领先水平的新产品,不仅性能卓越,而且具有极高的性价比。这些新产品的推出,使得Auctor Corp在市场上获得了广泛的认可。

Gigabit Logic Inc公司的发展小趣事
部分设计还可以实现模拟自然风等功能,提升用户体验。
ETEQ Microsystems Inc公司的发展小趣事

为了进一步扩大市场份额,ETEQ Microsystems Inc开始实施全球化战略。公司在亚洲、欧洲和北美等地设立了研发中心和销售办事处,并与多家国际知名企业建立了战略合作关系。这些举措不仅增强了公司的品牌影响力,还为公司带来了更多的商业机会。

问答坊 | AI 解惑

如何才能满足I1>>IB

在分压式偏置电路中,如何才能满足I1>>IB?(看的是绿色的那本教材童诗白的第2.4.2节上)…

查看全部问答>

无线路由怎么配

我有一54M无线宽带路由器,配置以后开始的时候迅雷下载有30k左右,接的是铁通的2m的网,重启后,过了一会就变得很慢,只有1k,再调也很慢!请高手解决一下,有什么优化手段!?…

查看全部问答>

初学定时计数器的疑问

题目:设MCS-51系统时钟为12MHZ,编程实现从P1.1输出周期为1s的方波。 分析:这时应产生一个500ms的周期定时,可以利用定时计数器T0定时10ms,用R2对T0溢出计数50次。 因为T0要定时10ms,所以其初值应设为X=65536-10000=55536=1101100011110000B ...…

查看全部问答>

请问大家:VxWorks下的枚举类型占几个字节?

在Vc6中,一个枚举当作一个整数,类型占四个字节;VxWorks下面是如何处理的?…

查看全部问答>

关于西门子TD400编程问题

现有一项目想用TD400做一状态监视,具体要求为当寄存器里数据为1时显示“正在前进中》》》”,当数据为2时显示“正在后退中”, 当数据为3时显示“正在保压中”这三个状态要在一个位置显示。我研究了几天实在是想不出来怎么做,请各位大师请点…

查看全部问答>

版主你给的这个链接怎么打不开

版主你给的这个链接怎么打不开 截图00.png (6.38 KB) 下载次数:1 2010-1-27 14:28 …

查看全部问答>

手机电池充放电保护电路

请问那位仁兄有手机电池充放电保护电路,小弟现在急需,望仁兄帮帮忙,谢谢!!…

查看全部问答>