版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o"1-3"\h\u27205摘要 24269abstract 321503一、设计的背景目的及意义 4150651.1、设计的背景 4139601.2、设计的意义 4109322硬件部分 6288572.1单片机简介 6282922.2LCD1602液晶简介 1980012.3按键电路简介 244102.3ZPH01灰尘传感器 24256143.软件设计 28109153.1开发环境简介: 28117173.2软件功能简介 2832179致谢 3110268参考文献 3210162附录 331065原理图 335640源程序 33
摘要电伴随着科技的快速发展,用科学技术来进行环境的检测,快速准确的反映出环境的现状是当前最直接有效也最普遍的方式。当人们在追求室内环境的美观时,通过大量使用化学合成材料装修房屋,使得房屋美观度大大提高,也留下了甲醒气体危害。由于环境的变化、气候的异常,粉层污染越来越厉害,造成的鼻炎等呼吸道疾病频繁发生。因此PM2.5指数也就非常受到大家的重视。该设计控制器使用单片机STC89C52,PM2.5检测传感器ZPH01,1602液晶显示。关键字:PM2.5单片机液晶
abstractElectricityisaccompaniedbytherapiddevelopmentofscienceandtechnology,totesttheenvironmentwithscienceandtechnology,rapidaccuratereflectthepresentsituationoftheenvironmentisthemostdirectandeffectivealsothemostcommonway.Whenpeopleareinpursuitoftheindoorenvironmentofthebeautiful,throughtheextensiveuseofchemicalsyntheticmaterialstodecoratehouses,greatlyimprovehousebeautifuldegree,alsoleftawakeofgashazards.Duetochangesintheenvironmentandabnormalweather,thepollutionofthepowderlayerisbecomingmoreandmoresevere,andtherespiratorydiseasessuchasrhinitisarefrequent.Sothepm2.5isverymuchappreciated.ThedesigncontrollerUSESsinglechipcomputerSTC89C52,pm2.5detectionsensorZPH01,1602LCDdisplay.Keywords:LCDofPM2.5
一、设计的背景目的及意义1.1、设计的背景粉尘又称可吸入颗粒物,它是能被呼吸道粘连,直径有10um的颗粒物状,对人的眼睛、上呼吸道、鼻腔都非常有害。粉尘和烟雾它是做为病菌的载体,如果一旦分散到空气中,就会很容易传播各种疾病。人们长久呼吸或长久散落皮肤上会容易导致癌症。由此可以看出粉尘对人体健康和生产的会产生巨大危害性,煤矿井下管道作业、煤炭生产都要产生大量的粉尘,加上煤炭井下没有通风的条件,煤尘浓度可高达1000mg/m³以上。在这环境中工作中,工人会吸入大量的粉尘,如果粉尘长时间进入人的呼吸系统,大量粉尘会在肺泡中沉积,会引起慢性职业病,严重的危机人的身体健康。因此,我们必须对煤矿井下粉尘进行实时检测和采取应急的措施,及时了解煤矿井下工人的劳动环境和安全,并且掌握井下煤尘浓度及变化情况,以及采取应急措施来改变粉尘的浓度,为安全,防尘,降尘等措施提供必要现场数据和采取措施降低浓度。所以,有必要设计一种便携式的用于室内空气质量监测的设备,通过检测设备显示的空气质量的级别高低使用户对室内空气质量有一个定性和定量的了解,为人们拥有一个舒适健康的生活环境提供保障。1.2、设计的意义对环境进行检测的系统有温湿度检测系统、空气和废气检测系统、光化学烟雾检测系统、有机污染自动连续监测系统、燃气报警系统、粉尘颗粒检测系统等。环境检测系统的发展现状由以前人工采样和实验室分析为主,向自动化、智能化和网络化为主的检测方向发展;由劳动密集型向技术密集型方向发展:由较窄领域向全方位领域监测的方向发展;由单纯的地面环境监测向与遥感环境监测相结合的方向发展:环境监测仪器将向高质量、多功能、集成化、自动化、系统化和智能化方向发展而它的检测的方向将是物理、化学、生物、电子、光学等技术综合应用的高技术领域发展。目前环境检测开始采用单片机或者PLC为系统核心,组成多功能检测系统,从而实现对环境高效、快速、精确、集成化、智能化的检测要求。
1.3设计的目的本设计以MCS-51系列单片机为核心设计的PM2.5指数监测系统,并通过串口通信通信技术,直接采集灰尘传感器的数据,减少了外围采集电路,实现主机采集的传感器数据进行处理,判断。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机爱好者提供了很好的借鉴。
2硬件部分本次设计是基于51单片机的粉尘颗粒检测,也称为PM2.5检测,主要的功能就是检测出PM2.5数据并且将数据显示到液晶上,同时增加数据超限报警的功能。那么根据本次设计的功能,最终硬件方面主要就五大部分:单片机控制部分、液晶显示部分、按键处理部分、报警部分电路以及PM2.5检测部分电路。整体硬件设计简单,操作简单符合本次设计。2.1单片机简介单片机是STC公司最新推出的一种新型51内核的单片机。片内含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。封装图如下图:2.1.1主要特性1.
增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任 意 选择,指令代码完全兼容传统8051.
2.
工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.
工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频 率可达48MHz
4.
用户应用程序空间为8K字节
5.
片上集成512字节RAM
6.
通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口 用时,需加上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专 用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序, 数秒即 可完成一片
具有EEPROM功能
具有看门狗功能
10.
共3个16位定时器/计数器。即定时器T0、T1、T2
11.
外部中断4路,下降沿中断或低电平触发电路,Power
Down模式 可由外部中断低电平触发中断方式唤醒
12.
通用异步串行口(UART),还可用定时器软件实现多个UART
13.
工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)2.1.2、引脚功能VCC(40引脚):电源电压
VSS(20引脚):接地
P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash
ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流
P3口引脚复用功能
引脚号
复用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。
XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。2.1.3定时器/计数器89单片机至少有两个16位内部定时器/计数器(T/CTimer/Counter)。分别是定时器/计数器0(T/C0)和定时器/计数器1(T/C1),另外一个是定时器/计数器2(T/C2)。它们既可以编程为定时器使用,也可以编程为计数器使用。T/C是加1计数的,不支持减1计数。当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数频率=当前单片机工作频率/12。当单片机工作在12MHz时,计数频率=1MHz,单片机每1us计数值加1。当T/C工作在计数器时,计数脉冲来自外部脉冲输入引脚T0(P3.4)T1(P3.5)。当T0或T1引脚上负跳变时计数值加1。识别引脚上的负跳变需要2个机器周期,即24个振荡周期。所以T0或者T1输入的可计数外部脉冲的最高频率为当前单片机工作频率/24。当单片机工作在12MHz时,最高计数频率500KHz,高于该频率将计数出错。TMOD在内存RAM中位于特殊功能寄存器区的89H处,其高4位用于设置定时器/计数器T1的工作方式,低4位用于设置定时器/计数器T0的工作方式。由于T0和T1的用法很相似,所以,在此只结合TMOD的低4位讲解定时器/计数器T0的用法。D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0T1控制字T0控制字当GATE=0时,定时器/计数器开始工作或停止工作不受GATE位的控制,而只受TCON寄存器中的TR0位控制,TR0=0时定时器/计数器T0停止工作,而当TR0=1时定时器/计数器T0开始工作。当GATE=1时,定时器/计数器T0工作的起停除了受TCON寄存器中的TR0位控制外,还受单片机外部引脚P3.2的控制,只有该引脚为高电平且TR0=1这两个条件同时满足时,定时器/计数器才开始工作,一般这种用法通常用来测量P3.2引脚上正脉冲的宽度。对于控制T1方式字段中的GATE位和T0中的用法完全一样,只是当GATE位为1时受单片机外部引脚P3.3和TCON中TR1的控制。C/T位决定T0工作在定时方式还是计数方式。当C/T=0时,T0工作在定时方式,此时由TH0和TL0组成的16位计数容器,这个容器会对晶振产生的脉冲再12分频后的脉冲进行计数,如果单片机外部接的是12M晶振,则TH0和TL0组成的16位计数容器中的数据就会每隔1微妙自动加1;当C/T=1时,T0工作在计数方式,由TH0和TL0组成的16位计数容器会对从单片机外部引脚P3.4输入单片机的脉冲进行计数,每输入一个脉冲,则TH0和TL0组成的16位计数容器中的数据会自动加1。如果TMOD高4位中的C/T=0,表示T1工作在定时方式,而当C/T=1表示T1工作在计数方式,计的是来自单片机外部引脚传入单片机的脉冲数。M1和M0两位都可以设置成0或1,因此这两位有4种组合,这4种组合决定了T0的计数容器TH0和TL0共同构成的16位计数容器中所计的脉冲数的变化规律。具体见下表:M1M0工作模式TH0和TL0构成的16位计数容器的计数方式的描述00模式0此时TH0和TL0构成16位计数容器,最大计数范围0~65535共65536个数01模式1此时TH0和TL0构成16位计数容器,最大计数范围0~65535共65536个数10模式2TH0和TL0成为两个8位计数器,TH0中的数据固定为开始设定的值不变,TL0中数据按晶振12分频后速度自动加1至溢出,TH0中数据自动拷贝给TL0,在此基础上自加,TL0如此循环自加11模式3只有T0可用于本模式,T1不可以,此时T0的TH0和TL0成为两个独立的8位计数器,且TH0只能用于定时方式;TL0可以工作与定时方式也可以工作与计数方式定时器/计数器控制寄存器TCON如下表所示,其中高4位和定时器/计数器T0及T1有关。TCON是一个八位寄存器,用于控制定时器的启动/停止及标志定时器溢出中断申请,既可以进行字节寻址也可以进行位寻址。TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTF1—T1溢出标志为。当定时器/计数器发生溢出时,该位由硬件置1,表示计数容器已经计满溢出,所谓溢出就是计数容器中的数从最大变成0的现象。向CPU申请中断进入终端服务程序,TF1又由硬件清零0,也可以软件清零0。TF0—T0溢出标志。其功能操作与TF1相同。TR1—T1运行控制位,可通过软件置1或0来启动关闭定时器1。TR0—T0运行控制位,其功能操作与TR0相同1。中断允许寄存器IED7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0当ET0=1(SETBET0)时,单片机的CPU能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET0=0(CLRET0)时,单片机的CPU不能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序。当ET1=1(SETBET1)时,单片机的CPU能够在定时器/计数器T1的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET1=0(CLRET1)时,即使定时器/计数器T1的计数容器发生了溢出,单片机也不能中断主程序而去执行相应的中断服务子程序。EA为总中断允许控制位,将EA位设置成0关中断。2.1.4外部中断单片机正在主程序里无穷无尽的循环的时候,突然发生了一个紧急事件,程序就“飞”到了另一处(发生突发事件的地方)执行,处理完突发事件后又自己“飞”回到主程序中继续执行。表6-5中断允许寄存器IED7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX08051系列单片机有5个事件可以中断单片机正在执行的主程序,分别是定时器/计数器T0和T1计数容器溢出、外部引脚P3.2和P3.3上的信号以及串口通讯中断;8052系列单片机比8051单片机多一个引起中断的事件就是定时器T2,中断允许寄存器IE就是用于设置单片机,当相应的事情发生时是否通知单片机的CPU中断当前执行的任务并“飞”出去做相应的处理的。下面分别介绍中断允许寄存器IE中各位的功能。1、EX0当EX0=1(SETBEX0),同时在单片机P3.2引脚上出现中断信号时,单片机会中断主程序的执行“飞”往中断服务子程序去执行,执行完中断程序后通过中断返回指令RETI自动返回主程序继续执行。当EX0=0(CLREX0),即使单片机P3.2引脚上出现中断信号,程序也不会从主程序“飞”出去执行。因为此时单片机的CPU相当于被“堵上了耳朵”,根本接收不到P3.2引脚上的中断信号。2、ET0当ET0=1(SETBET0)时,单片机的CPU能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET0=0(CLRET0)时,单片机的CPU不能够在定时器/计数器T0的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序。3、EX1当EX1=1(SETBEX1)时,并且外部P3.3引脚上出现中断信号时,单片机的CPU会中断主程序而去执行相应的中断服务子程序;当EX1=0(CLREX1)时,即使外部P3.3引脚上出现中断信号,单片机的CPU也不能中断主程序转而去执行中断服务子程序。4、ET1当ET1=1(SETBET1)时,单片机的CPU能够在定时器/计数器T1的计数容器发生溢出时中断主程序而去执行相应的中断服务子程序;当ET1=0(CLRET1)时,即使定时器/计数器T1的计数容器发生了溢出,单片机也不能中断主程序而去执行相应的中断服务子程序。5、ES当ES=1(SETBES)时,单片机的CPU能够在串口发送完或接收完一个字节数据时中断主程序而去执行相应的中断服务子程序;当ES=0(CLRES)时,即使单片机的串口发送完或接收完一个字节数据也不会产生中断。6、EAEA为总中断允许控制位,将EA位设置成0关中断。2.1.5、串口通信一条信息的各位数据被逐位顺序传送的通信方式成为串行通信。根据信息的传送方向,串行通信可以可以进一步划分为单工、半双工和全双工3种。信息只能单方向传送为单工;信息能双向传送但不能同时双向传送为半双工;信息能够同时双向传送则成为全双工。8051系列单片机有一个全双工串行口,全双工的串行通信只需要一根输出线和输入线。串行通信又有异步通信和同步通信这两种方式。异步通信用起始位“0”表示字符的开始,然后从低位到高位逐位传送数据,最后用停止位“1”表示字符结束。一个字符又称作一帧信息,一帧信息包括1位起始位、8位数据位、1位停止位,若数据位增加到第9位,在8051系列单片机中,第九位数据可以用作奇偶校验位,也可以用作地址/数据帧标志。8051系列单片机串行I/O接口的工作原理就是:当要发送数据时,单片机自动将SBUF内的8位并行数据转换为一定格式的串行数据,从TXD引脚按规定的波特率来输出;当要接收数据时,要监视RXD引脚,一旦出现起始位“0”,按规定的波特率将外围设备送来的一定格式的串行数据转换成8位并行数据,等待用户读取SBUF寄存器,若不及时读取,SBUF中的数据有可能被刷新。8051系列单片机上有通用异步接收/发送器用于串行通信,发送时数据由TXD引脚输出,接收时数据从RXD引脚输入。有两个缓冲器(SerialBuffer),一个作发送缓冲器,另外一个作为接收缓冲器。UART是可编程的全双工的串行口。SBUF是可以直接寻址的专用寄存器。物理上,它对应着两个寄存器,即一个发送寄存器一个接收寄存器,CPU写SBUF就是修改发送寄存器;读SBUF就是读接收寄存器。接收器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时的响应接收器的中断,没有把上一帧的数据读走而产生两帧数据重叠的问题。对于发送器,为了保持最大的传输速率,一般不需要双缓冲,因为发送时CPU是主动的,不会产生重叠问题。SCON是一个逐位定义的8位寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态,SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。它的各个位定义如下:SM2在工作方式2和3中是多机通信的使能位。在工作方式0中,SM2必须为0。在工作方式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。在工作方式2和3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志RB8不会被激活,若接收到的第9位数据(RB8)为1,则RI置位。此功能可用于多处理机通信。REN为允许串行接收位,由软件置位或清除。置位时允许串行接收,清除时禁止串行接收。TB8是工作方式2和3要发送的第9位数据。在许多通信协议中该位是奇偶位,可以按需要由软件置位或清除。在多处理机通信中,该位用于表示是地址帧还是数据帧。RB8是工作方式2和3中接收到的第9位数据(例如是奇偶位或者地址/数据标识位),在工作方式1中若SM2=0,则RB8是已接收的停止位。在工作方式0中RB8不使用。TI为发送中断标志位,由硬件置位,软件清除。工作方式0中在发送第8位末尾由硬件置位;在其他工作方式时,在发送停止位开始时由硬件置位。TI=1时,申请中断。CPU响应中断后,发送下一帧数据。在任何工作方式中都必须由软件清除TI。RI为接收中断标志位,由硬件置位,软件清除。工作方式0中在接收第8位末尾由硬件置位;在其他工作方式时,在接收停止位的中间由硬件置位。RI=1时,申请中断,要求CPU取走数据。但在工作方式1中,SM2=1且未接收到有效的停止位时,不会对RI置位。在任何工作方式中都必须由软件清除RI。系统复位时,SCON的所有位都被清除。(1)工作方式0SM0=0且SM1=0时,串口选择工作方式0,实质这是一种同步移位寄存器模式。其数据传输的波特率固定为Fosc/12,数据由RXD引脚输入或输出,同步时钟由TXD引脚输出。接收/发送的是8位数据,传输是低位在前,帧格式如下:……..D0D1D2D3D4D5D6D7…….(2)工作方式1当SM0=0且SM1=1时,串口选择工作方式1,其数据传输的波特率由定时/计数器T1、T2的溢出速率决定,可通过程序设定。当T2CON寄存器中的RCLK和TCLK置位时,用T2作为发送和接收波特率发生器,而RCLK=TCLK=0时,用T1作为波特率发生器,两者还可以交叉使用,即发送和接收采用不同的波特率。数据由TXD引脚发送,由RXD引脚接收。发送或接收一帧的数据为10位,即1位起始位(0)、8位数据位(低位在先)和1位停止位(1)。帧格式如下:起始位0D0D1D2D3D4D5D6D7停止位1类似于工作方式0,当执行任一条SBUF指令时,就启动串行数据的发送。在执行写入SBUF的指令时,也将“1”写入发送移位寄存器的第9位,并通知发送控制器有发送请求。实际上,发送过程始于内部的16分频计数器下次满度翻转(全“1”变全“0”)后的那几个机器周期的开始。所以,每位的发送过程与16分频计数器同步,而不是与“写SBUF”同步。方式2和方式3这两种方式都是11位异步接收/发送方式。他们的操作过程都是完全一样的,所不同的是波特率而已。方式3波特率同方式1(定时器1作为波特率时钟发生器)。方式2和方式3的发送起始于任何一条SBUF数据装载指令。当第9位数据(TB8)输出之后,TI将被置位(TI=1)。方式2和方式3的接收数据前提条件也是REN被编程为1。在第9位数据接收到后,如果下列条件同时满足,即RI=0且SM2=0或者接收到的第9位为1,则将已接受的数据装入SBUF缓冲器和RB8,并将RI置位(RI=1)否则接收数据无效。8051串行口的不同寻常的特征是包括第9位方式。它允许把在串行口通信增加的第9位用于标志特殊字节的接收。用这种方式,一个单片机可以和大量的其他单片机对话而不打扰不寻址的单片机,这种多机通信方式必须工作在严格的主从方式,由软件进行分析。最小系统的原理图单片机最小系统由电源接口,开关,时钟电路,下载接口,复位电路和STC89c52单片机组成。复位电路:当在89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源Vcc接通而实现的。按键手动复位电路见下图。时钟频率用12MHZ时C取10uF,R取10kΩ。时钟电路:STC89C52RC单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图3所示。在89S51单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和6MHz。下载接口:STC89c52系列单片机具有在系统可编程(ISP)特性,ISP
的好处是:省去购买通用编程器,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。有些程序尚未定型的产品可以一边生产,一边完善,加快了产品进入市场的速度,减小了新产品由于软件缺陷带来的风险。由于可以在用户的目标系统上将程序直接下载进单片机看运行结果对错,故无须仿真器。单片机出厂时就已完全加密。需要单片机内部的电放光后上电复位(冷起动)才运行系统ISP程序,如从
P3.0/RxD
检测到合法的下载命令流就下载用户程序,如检测不到就系统复位到用户程序区。具体如下图所示:2.2LCD1602液晶简介显示部分则主要用于显示温度与温度的上下限度。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机与人的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。本设计中采用的是液晶显示器作为输出器件的。在单片机系统中应用液晶显示器作为输出有以下几个优点:显示质量高:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻:液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多低功耗:相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。本设计采用的液晶显示器为1602字符型液晶显示器。1602LCD主要技术参数:显示容量:16×2个字符;芯片工作电压:4.5—5.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm。1602液晶显示器引脚接口说明:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图3.11所示:图3.111602液晶显示器尺寸图LCD显示的基本原理:点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。1602液晶模块内部的控制器共有11条控制指令如表3.2所示:表3.21602液晶模块控制指令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容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:读数据。读操作时序如图3.12所示:图3.12读操作时序写操作时序如图3.13所示:图3.13写操作时序液晶显示器电路如图3.14所示:图3.14液晶显示器电路图2.3按键电路简介按键处理电路还是比较简单的,按键就两个方向,一端接上单片机IO口,一端接上地,这样的话,当我们按键按下之后,相当于按键IO直接与地相连接,这样就强制拉低,我们只要检测定义的按键IO是否为低电平,就可知道按键是否按下。按键部分电路图如下:2.3ZPH01灰尘传感器2.3.1ZPH01灰尘传感器的概述本传感器是采用先进PM2.5检测机理,实现对PM2.5的检测。该传感器中PM2.5检测单元采用粒子计数原理,可灵敏检测直径1μm以上灰尘颗粒物。传感器出厂前经过老化、调试、标定、校准,具有良好的一致性和极高的灵敏度。具有PWM信号输出,可配置成UART数字串行接口及定制IIC接口。极高的灵敏度、优异的长期稳定性、出厂已标定校准、内置加热器可实现空气的自动吸入。产品具有外形紧凑、重量轻、易安装、易维护等优点。主要用于空气净化器、空气清新机、通风设备、环境监控设备、烟雾报警器、空调等。2.3.2ZPH01灰尘传感器引脚介绍说明:1、加热源:传感器内置一个加热器,加热引起气流上升使外部空气流进传感器内部。2、检测的粒子类型:此传感器被设计成可以检测1μm以上粒子,如香烟、房屋灰尘、霉菌、花粉、孢子。3、控制脚:此脚位为输出模式控制(悬空为PWM模式,GND为串口模式)。4、输出脚OUT2/RXD:此脚位串口模式下为RXD,PWM模式下为普通输出脚位,灵敏度已预设定,最小粒子检出能力为1μm。5、输出脚OUT1/TXD:此脚位串口模式下为TXD。2.3.3ZPH01灰尘传感器的说明1、产品技术参数产品型号ZPH01工作电压范围5±0.2VDC输出方式PWM/UART粉尘最小粒子检出能力1μm预热时间≤5min检测粒子范围15000个/283ml工作电流≤150mA湿度范围储存环境≤90%RH工作环境≤90%RH
2、串行接口(单向)通讯协议通用设置波特率9600数据位8位停止位1位校验位无
通讯命令模块每间隔1S发送一次浓度值,只发送不接收。命令行格式如下3、传感器使用时须注意的事项:传感器必须垂直安装,避免接触有机溶剂(包括硅胶及其他胶粘剂)、涂料、药剂、油类及高浓度气体。远离人工气流如风扇,如当用于空气清新机时,风扇的前方和后方都不能安装,可任选外壳一侧安装,但外壳上要保留通风口以保证外部气流可以流进来。粉尘传感器能检测到像粉尘一样的水蒸气,请不要在有水蒸气的地方像浴室或空气加湿气附近使用传感器。粉尘传感器利用红外线的LED和可见光截止的光电传感器,在光学区域灯光的辐射会影响粉尘传感器的输出准确度。使用时建议用海绵遮盖粉尘传感器中心三角孔,防止外部光照照进传感器的镜头。切记勿遮挡传感器的进气口和出气口。模组初次上电使用需要预热5分钟以上,切勿应用到涉及人身安全的系统中。当传感器受潮湿将会影响它的正常功能,因此应避免受潮。
3.软件设计3.1开发环境简介:STC89C52RC单片机软件开发平台为Keiluvision4C52,仿真环境为Protues,下载软件为STC_ISP。KeilC52是美国KeilSoftware公司出品的52系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8052、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。3.2软件功能简介本次设计主要的功能就是检测PM2.5的数据,通过按键进行设置相应的阈值信息,将检测到的数据与阈值进行对比,当超过阈值时,触发报警部分,实现超限报警警示的功能,同时将PM2.5数据与阈值数据在液晶上显示。主流程图如下:液晶显示流程图:按键处理流程图
致谢通过这一阶段的努力,我的毕业设计终于完成了,这意味着我的大学生活即将结束。在大学阶段,我在学习上和思想上都受益匪浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在本论文的完成过程中,我的指导老师倾注了大量的心血,从选题到开题报告,从写作提纲到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。写作毕业论文是一次在系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始,我将铭记我曾是一名工大学子,在今后的工作中把工大的优良传统发扬光大。感谢各位专家的批评指导。
参考文献[1]肖金球,冯翼.增强型51单片机与仿真技术[M].北京:清华大学出版社社,
[2]肖金球.单片机原理与接口技术[M].北京:清华大学出版社,2004,17-128.
[3]周鸿武.基于单片机的酒精浓度检测仪设计[J].制造业自动化2012,02.
[4]
康华光.电子技术基础模拟部分(第五版)[M].高等教育出版社,2006年[5]
康华光.电子技术基础数字部分(第五版)[M].高等教育出版社,2006年[6]
纪宗南.单片机外围器件使用手册—输入通道器件分册[M].北京航空航天大学出版社,2005年
[7]贾伯年.传感器技术[M].东南大学出版社,2000年[8]何希才.传感器及其应用[M].国防工业出版社,2001年[9]郑学坚.微型计算机原理及应用[M].清华大学出版社,2006年[10]张水利.
单片机原理及应用.
黄河水利出版社,出版年:2008年8月
[11]谭浩强.
C程序设计.
第三版.
清华大学出版社,出版年:2005年7月
附录原理图源程序/**************************************************************************************STC89C51单片机,11.0592M晶振,1602液晶显示***********************第一行显示单位ug/m3第2行显示pm2.5上限单位ug/m3************************超限报警********************* 设置的上限值掉电保存********************************************************************/#include<reg52.h>#include<intrins.h>#include"delay.h"#include"1602.h"#include"eeprom52.h"#defineucharunsignedchar#defineuintunsignedintbitadd=1;bitminus=1;bitdata_true;//\窜口接收数据正确标志sbitalarm_buzz=P2^0;sbitled1=P1^0;sbitled2=P1^1;sbitkey_add=P1^2;sbitkey_minus=P1^3;ucharcodetable[]={"0123456789"};ucharUART_Upload[9];//Upload上传accord主动uintpm_rateH,pm_rateL,pm_particle,pm_density,pm_URV;//低脉冲率高位。低脉冲率低位,比率,颗粒,浓度PM_URVpm上限值ucharaccord,pm_URV_H,pm_URV_L,beep,sec,receive_bit;//BEEP1/0声音led闪烁开/关标志 sec时间标志receive_bit校验标志voidinit_ser(){SCON=0x50;//SCON:方式1,8-bitUARTTMOD=0x20;//TMOD:timer1,方式2,8-bit自动重装PCON=0x00;//SMOD=1;串口波特率加倍TH1=0xfd; // TL1=0xfd;//波特率:960011.0592MHzTR1=1;//开定时器1TI=0; RI=0; EA=1;// //开总中断 ES=1;//串行口中断开 PS=1;}voidtimer0_init(){ TMOD|=0x01;TH0=0x0D8;TL0=0x0F0;EA=1;ET0=1;TR0=1; PT0=0;}voidalarm()//报警{ if(pm_URV<pm_density)//浓度值大于等于设置的上限值是,发出警报 { led1=1; //led1灭 if(beep==1) //led2闪烁,蜂鸣器发出滴滴报警声 {led2=0;alarm_buzz=0;} if(beep==0) {led2=1;alarm_buzz=1;} } else//led1亮。指示正常 { led1=0; led2=1; alarm_buzz=1; }}voideeprom_data(){ SectorErase(0x2000); //保存上限值 byte_write(0x2000,pm_URV/256); byte_write(0x2001,pm_URV%256); }voidkeyscan() //按键扫描{ if(key_add!=add)//判断按键状态变化 { delayms(10);//消抖 if(key_add!=add)//确认发生变化 { add=key_add;//读取按键状态 sec=0; ////当按键松开是。按键状态发生变化,sec时间标志清零 if(add==1) //按键松开 { pm_URV++;//加 if(pm_URV>=10000) {pm_URV=0;} eeprom_data(); } } } if(key_add==0)//判断按键按下 { if(sec>=10) //等待500ms { if(key_add==0)//确认按键没有松开 { if(sec>=10)//延时150ms { if(key_add==0)//确认按键没有松开 { pm_URV=pm_URV+10;//加 sec=10; //按键状态没有变化。时间标志返回10 if(pm_URV>=10000) {pm_URV=0;} eeprom_data(); } } } } } if(key_minus!=minus) { delayms(10); if(key_minus!=minus) { minus=key_minus; sec=0; if(minus==1) { pm_URV--;//减 if(pm_URV>=10000) {pm_URV=9999;} eeprom_data(); } } } if(key_minus==0) { if(sec>=10) { if(key_minus==0) { if(sec>=10) { if(key_minus==0) { pm_URV=pm_URV-10;//减 sec=10; if(pm_URV>=10000) {pm_URV=9999;} eeprom_data(); } } } } } }voiddisplay(){ LCD_Write_String(0,1,"PM_H:"); LCD_Write_Char(6,1,table[pm_URV/1000]);//pm上限值 LCD_Write_Char(7,1,table[pm_URV%1000/100]);// LCD_Write_Char(8,1,table[pm_URV%100/10]);//pm上限值 LCD_Write_String(9,1,"."); LCD_Write_Char(10,1,table[pm_URV%10]);//pm上限值 LCD_Write_String(11,1,"ug/m3"); LCD_Write_String(0,0,"PM2.5:"); LCD_Write_Char(6,0,table[pm_density/1000]); //显示的浓度 LCD_Write_Char(7,0,table[pm_density%1000/100]); LCD_Write_Char(8,0,table[pm_density%100/10]); LCD_Write_String(9,0,"."); LCD_Write_Char(10,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年新高一语文初升高衔接《现代文阅读之文学类文本阅读》含答案解析
- 手工书的设计课件
- 【语文】《采用合理的论证方法》课件+2024-2025学年统编版高中语文选择性必修上册
- 《绝对产权》课件
- 抗病毒制剂产品入市调查研究报告
- 爽肤水市场洞察报告
- 绘画用纸产业规划专项研究报告
- 手笼服装市场发展现状调查及供需格局分析预测报告
- 精密计时器产业运行及前景预测报告
- 电热敷布外科市场发展现状调查及供需格局分析预测报告
- 天然气管道投产运行过程和相关技术要求
- T∕CHTS 20016-2021 公路桥梁各向异性摩擦摆减隔震支座
- 6.1圆周运动课件(共20张PPT)
- 计算机系统的组成--完整版PPT课件
- 成品保护及文明施工措施(完整版)
- 电极电热干蒸汽高压微雾二流体喷淋的比较101103
- 重污染天气应急响应资料台账
- 10以内加减法口算题(13套100道题-可直接打印)
- 企业中层管理人员绩效考核中存在的问题及对策
- 新教科版五年级上册科学期末试卷
- 汽车维修价格表格模板
评论
0/150
提交评论