《基于单片机的PM2.5空气质量检测论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的PM2.5空气质量检测论文.docx(37页珍藏版)》请在课桌文档上搜索。
1、基于单片机的空气质量检测系统设计专业:通信工程班级:2023级1班姓名:王世达目录引言21概述31. 1系统组成31.2硬件设计41.3软件设计42电路设计42. 1原理图42.2单片机及外围电路设计42. 3传感器电路设计113. 4A/D模数转换电路124. 5LCD显示电路135. 6LED显示电路152. 7报警模块153程序设计163. 1主程序设计163. 2按键局部错误!未定义书签。3. 3显TjK局部166. 4A/D转换局部174应用软件介绍217. 1keil的应用218. 2protel99se的应用229. 3Protcus的应用235设计的应用2310. 1主要用途2
2、411. 2应用场景246结果与分析24总结24致谢25参考文献26附录1原理图27附录2程序源代码27摘要随着现代科技的高度开展,工业生产力正在不断提高,而由此带来的负面影响也尤为显著,那就是环境的污染,它严重危害着人类的健康和生活。雾霾,为大气污染之一,一直以来广受人们关注。现在有越来越多的地区和国家开始高度重视雾霾天气,并将其视为一种灾害性天气。其实,很早以前就报道过一些雾霾灾害的重大事件,在这几次事件当中,不仅危害到人们的健康,甚至还剥夺了很多人的生命,比方1952年伦敦杀人雾事件和2023年北京雾霾事件。PM2.5,指环境中直径小于2.5Hm的颗粒物,是雾霾的主要成分之一,由于其粒径
3、小,活性强,易附有毒、有害物质,因而对人体健康威胁很大。因此,对PM2.5的测量显得越来越重要。本文将空气中PM2.5的浓度作为评定空气质量的依据。本设计的控制核心采用的是非常实用的51系列单片机AT89C52,配合粉尘浓度采集装置和显示设备,共同完成数据的采集,处理及显示。并会根据设置好的报警值报警提示,并且用不同颜色的指示灯显示空气质量。本文详细介绍了各个单元的电路设计过程及各功能的实现方法,该系统有良好的人机交互界面,有较高的测量精度,不仅简单实用而且便于携带。相信,它的价值一定会得到表达。关键词:雾霾;大气污染;PM2.5;单片机;AT89C52;空气质量ABSTRACTWiththe
4、highlydevelopmentofmodernscienceandtechnology,industrialproductivityisincreasing,andtheresultingnegativeimpactisparticularlysignificant,thatistheenvironmentpollution,whichcauseseriousdamagetothehumanhealthandlife.Foghaze,asoneoftheatmosphericpollution,hasbeenwidelyattentionbypeople.Nowtherearemorean
5、dmoreregionsandcountriesbegintoattachgreatimportancetothefogweather,andregarditasakindofsevereweather.Actually,longagoreportedsomefogdisasterevents,inthiscase,notonlyharmpeople,shealth,evendeprivethelivesofmanypeople,suchaskilling1952LondonfogandsmoginBeijingin2023events.PM2.5referstoenvironmentpart
6、icleslessthan2.5micronsindiameter,isoneofthemajorcomponentsoffog,becauseofitssmallsize,activityisstrong,easytoattachpoisonousandharmfulsubstances,thusabigthreattohumanhealth.So,forthemeasurementofPM2.5ismoreandmoreimportant.ThisarticlewillairconcentrationsofPM2.5asabasisfortheevaluationofairquality.
7、Usedthecontrolcoreofthisdesignisverypracticalto51seriesmicrocontrollerAT89C52,cooperatewiththedustconcentrationacquisitionanddisplaydevices,commontocompletedatacollection,processinganddisplay.Andaccordingtosetgoodalarmvaluealarmprompt,andusedifferentcolorindicatorshowsthattheairquality.Eachunitcircu
8、itareintroducedindetailinthispaperthedesignprocessandmethodofrealizationofeachfunction,thesystemhasgoodman-machineinterface,havehighermeasurementaccuracy,notonlysimpleandpracticalandeasytocarry.Believethatitsvaluewillbereflected.Keywords:Haze;Atmosphericpollution;PM2.5;Singlechipmicrocomputer;AT89C5
9、2;Airquality引言现在,老百姓的生活越来越好,衣食住行和几十年前早已不可同日而语。当然,这些都得益于科技的飞速开展和生产力的不断提高。但与此同时也伴随着一些负面影响。比方,现在老百姓都十分关注的雾霾问题。通过调查发现,现在不管是开展中国家还是兴旺国家,不管是城市还是农村,都或多或少遭受到雾霾的侵害。而雾霾中所包含的有害物质严重影响着人们的健康,甚至威胁到人们的生命。据不完全统计,那些雾霾污染严重的城市比那些相对清洁的城市的死亡率高出将近20%之多。而本设计中检测的PM2.5,它的影响也随着医学技术的开展暴露出其相当恐怖的一面。根据一些气象学和医学方面的专家推测,PM2.5中所包含的颗
10、粒状污染物对人类健康的影响甚至超过了可怕的沙尘暴。由于人类的生理结构原因,人的身体不能够过滤和阻拦PM2.5中的有害物质。人的鼻子只能挡住局部粒径在IOUm以上的颗粒物质,而那些粒径在2.5m-10m之间的颗粒物虽然可以进入到人的上呼吸道,但是会被呼吸系统内部的绒毛阻挡,有些会通过痰液排出,所以不会对健康造成太大的伤害。但是小于2.5Um的颗粒物,由于不能有效的阻挡,会有相当一局部通过呼吸进入支气管,进入肺部,造成呼吸道感染,肺部的气体交换也会受到干扰。这样就有可能使人呼吸困难引发哮喘和慢性支气管炎等疾病,甚至会间接导致心律不齐等心血管方面的问题。因此,必须高度重视对PM2.5的检测,治理以及
11、防范。本设计就是为了到达检测这一目的。只有准确的检测PM2.5,才能有效的治理和防范。根据PM2.5检测网的空气质量新标准,24小时平均值标准值分布如表1:据判断PM2.5的浓度落在哪一个浓度区间,从而判断出空气质量等级,并作出相应的反响。本论文层次清楚,按功能将设计分为几大局部,化整为零。各单元再紧密配合,实现所有功能。1概述1. 1系统组成判断大气空气质量的指标很多,本论文选择比拟典型的PM2.5这一指标作为本次设计对空气质量的主要评定依据。根据空气中PM2.5的浓度将空气质量分为优良、轻度污染、重度污染三个等级。本系统以单片机为核心,通过检测单元采集大气中PM2.5浓度,然后单片机负责处
12、理分析由检测单元传过来的数据,最后将分析结果送给显示单元。图1为系统组成框图,其中检测单元主要包括传感器和模数转换电路,显示单元包括LED显示,LCD显示,蜂鸣器报警。图1系统组成框图1.2硬件设计本系统采用模块化设计,将整个系统细化为一个个小单元,各单元分别实现不同的功能,最后根据它们之间的相互关系,将它们整合到一起,这样能够到达简化设计的目的。这些单元主要包括单片机、传感器、A/D模数转换电路、液晶显示电路、LED显示电路、按键电路等功能模块。各模块之间的关系如图2所示,传感器将空气中的PM2.5浓度转化为模拟的电压信号,由于本设计采用的单片机不能识别模拟信号,所以需要A/D模数转换电路将
13、模拟信号转化为数字信号,单片机分析处理数据,将分析结果通过LCD、LED、报警模块显示出来。图2硬件设计框图1. 3软件设计软件局部按照其功能的不同,主要可以划分为主程序局部,按键局部,显示局部,报警局部,A/D转换局部等。2电路设计2. 1原理图见附件一2.2单片机及外围电路设计2.2.1 AT89C52介绍AT89C52是一款CMOS8位的高性能单片机,它由美国ATMEL公司生产,现在有许多控制场合都采用AT89C52o它不仅兼容标准的MCS-51指令系统和8051产品引脚,它还拥有更大的只读程序存储器和随机存取数据存储器,而且AT89C52除了具备AT89C51的定时器/计数器TO和定时
14、器/计数器Tl,还额外增加了一个定时器/计数器T2,使设计更加丰富、灵活。(1)主要性能特点:与MCS-51产品指令和引脚完全兼容8K字节可重擦写FLASH闪存存储器IoOo次写/擦循环时钟频率:OHZ-24MHZ三级加密存储器256字节内部RAM32个可编程I/O口线3个16位定时/计数器6个中断源可编程串行UART通道f氐功耗的空闲和掉电模式片内振荡器和时钟电路图3引脚图(2)引脚功能PO端口:该口是一个8位漏极开路的双向I/O口。在作为输出口时,每根引脚可以带动8个TrL输入负载。当把1写入PO时,那么它的引脚可用作高阻抗输入。当对外部程序或数据存储器进行存取时,PO可用作多路复用的低字
15、节地址/数据总线,在该模式,PO口拥有内部上拉电阻。在对FIaSh存储器进行编程时,PO用于接收代码字节;在校验时,那么输出代码字节;此时需要外加上拉电阻。Pl端口:该口是带有内部上拉电阻的8位双向I/O端口,Pl口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。Pl口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对FIaSh编程和程序校验时,Pl口接收低8位地址。另外,PLO与Pl.1可以配置成定时/计数器2的外部计数输入端(PI.0T2)与定时/计数器2的触发输入端(P1.0/T2
16、EX),如表2所示。表2P1口管脚复用功能端口引脚复用功能PLUT2(定时器/计算器2的外部输入端)PLlT2EX(定时器/计算器2的外部触发端和双向控制)P1.5MOSI(用于在线编程)P1.6MISO用于在线编程)PL7SCK(用于在线编程)P2端口:该口是带有内部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P2口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器或16位的外部数据存储器时,P2口送出高8位地址,在访问8位地址的
17、外部数据存储器时,P2口引脚上的内容(就是专用存放器(SFR)区中P2存放器的内容),在整个访问期间不会改变。在对FIaSh编程和程序校验期间,P2口也接收高位地址或一些控制信号。P3端口:该口是带有内部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P3口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流囿。在AT89C52中,同样P3口还用于一些复用功能,如表3所列。在对Flash编程和程序校验期间,P3口还接收一些控制信号。表3P3端口引脚与复用功能表
18、端口引脚复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3+2INTO(外部中断0)P3.3INTl外部中断1)P3.4TO(定时器O的外部输入)P3.5Tl(定时器1的外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST:复位输入端。在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。看门狗定时器(WatChdog)溢出后,该引脚会保持98个振荡周期的高电平。在SFRAUXR(地址8EH)存放器中的DlSRTO位可以用于屏蔽这种功能。DISRTo位的默认状态,是复位高电平输出功能使能。ALE/PR0G:地址锁存允许信号。在存
19、取外部存储器时,这个输出信号用于锁存低字节地址。在对FlaSh存储器编程时,这条引脚用于输入编程脉冲PROG0一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或晶振。但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。在需要时,可以把地址8EH中的SFR存放器的。位置为1,从而屏蔽ALE的工作:而只有在MoVX或MoVC指令执行时ALE才被激活。在单片机处于外部执行方式时,对ALE屏蔽位置1并不起作用。PSEN:程序存储器允许信号。它用于读外部程序存储器。当AT89C52在执行来自外部存储器的指令时,每一个机器周期PSEN被激活2次。在对外部数据存储器的每次存取中,PSEN的2
20、次激活会被跳过。EA/Vpp:外部存取允许信号。为了确保单片机从地址为OOooHFFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。但是,如果锁定位1被编程,那么EA在复位时被锁存。当执行内部程序时,EA应接到Vcc。在对FIaSh存储器编程时,这条引脚接收12V编程电压Vpp。XTAL1:振荡器的反相放大器输入,内部晶振工作电路的输入。XTAL2:振荡器的反相放大器输出。2.2.2 单片机最小系统的实现单片机在实际应用中,都是和其它元器件共同完成工作任务的,为了保证单片机能够正常工作并且发挥一定作用,有些元器件是必不可少的,由单片机和这些元器件共同组成的系统称为单片机的最小
21、系统向。一般说来,51系列单片机的最小系统主要包括:电源、输入/输出设备、MCU、复位电路及晶振电路等。单片机最小系统框图如图4所示。图4单片机最小系统框图I)晶振电路晶振,全程晶体振荡器,它在单片机系统中发挥着非常重要的作用。它通常和电容配合共同组成晶振电路,或称为时钟电路。单片机运行程序时,需要时钟频率,而时钟频率就是由晶振电路结合单片机内部电路共同产生。现在已有很多单片机都内置晶振电路,不需要外接晶振。晶振电路提供的晶振频率越高,单片机运行的速度也就越快。单片机时运行需要时间基准才能进行内部各种微操作,而这种时间基准由时钟信号来提供。AT89C52有两种时钟信号产生方式,分别为内部时钟和
22、外部时钟方式。采用内部时钟方式需要外接一个晶振电路(有些单片机内置晶振电路,不需要外接晶振电路)与单片机内部的振荡器组合共同产生时钟脉冲信号,而在实际应用中也可以不用晶振电路,而是直接把外部时钟信号直接引入到单片机内部,这种方式就是外部时钟方式。通常在需要多个单片机同时工作,一般采用外部时钟方式,这样可以使这些单片机同步工作,这种方式下,外部信号通常为频率低于12MHZ且高电平超过20ns的方波。对于CHMoS工艺的单片机,外部时钟要由XTALl端引入,而XTAL2端应悬空。由于本系统只用到一个单片机,所以采用了内部时钟方式。图5为晶振电路设计:图5晶振电路图为了计算方便,晶振电路采用的是12
23、MHz晶体,晶体两端各跨接一个30pF的瓷片电容外接在在单片机的XTALl和XTAL2两个引脚上,与AT89C52单片机的内部的震荡电路共同构成自激振荡器,用来产生时钟脉冲信号。图中两个瓷片电容器能够帮助稳定频率和到达快速起振的目的。电容值通常选在5-30pF之间。复位电路为了使单片机有一个稳定的工作状态,单片机在工作开始之前必须进行一次复位,这样单片机才能在一个确定的状态上。否那么,单片机很有可能因为某一个端口的上下电平的不稳定导致外围电路误动作造成不可逆的损伤;也可能导致内部定时器异常,不能按程序产生中断或者自行产生中断,使程序异常;也可能使单片机随机向外部设备发送数据等。这些都是非常设计
24、者不愿见到的后果。复位电路原理:当AT89C52单片机的RST引脚收到2个机器周期高电平时,单片机就会完成复位操作。在实际应用中,一般用上电复位电路和按键复位电路两种根本形式。RST引脚的高电平必须保持足够的时间(2个机器周期)才能够完成复位操作。每个单片机都有复位电路,复位电路一般外接电阻电容与单片机一起共同完成复位操作。每种单片机都有它典型的复位电路。由于本设计电路比拟简单,所以采用的是上电复位电路,典型电路如图6所示,单片机在上电瞬间,电容充电,.且电容上的电压不会发生突变,这就使单片机RST脚的电压在一定时间内与VCC相同。电容充电一定时间后,RST脚上的电压才会降下来。只要合理的选择
25、电容和电阻,就能使RST引脚保持高电平2个机器周期,这样就可以满足单片机复位要求。图6复位电路图2.23PO口外接上拉电阻本设计中51单片机的PO端与LCD1602液晶显示器相连,为显示器提供数据输出,51单片机的输出口为漏极开路电路,内部无上拉电阻。当做为普通I/O口输出数据时,V2截止,当需要输出高电平时,必须外接上拉电阻,如图7所示。图7PO口外接上拉电阻另外,外接上拉电阻还可以防止端口读取输入数据时出错。这是因为,在输入状态下,一般情况下从引脚上和锁存器上读来的信号一致,但也有特殊情况。比方,单片机内部总线在输出低电平以后,锁存器输入端为低电平,对应的输出端为高电平,此时,对应的场效应
26、管导通,端口线会呈低电平状态。也就是说就算端口线上外接高电平信号,从引脚读入单片机的信号也是低电平,因而造成读取信号错误。又如,假设单片机输入/输出端口内部总线输出高电平,锁存器输入端为高电平,对应的输出端为低电平,此时,对应的场效应管截止,这样,读取信号就会与实际不同,造成读取错误。所以当单片机的PO口作为输入输出端口使用时,外加上拉电阻才能保证在输入数据前,输出级的两个场效应管均截止,引脚处于高阻状态。总的来说:无论是防止PO口在读取数据时发生上述错误,还是在输出时能够驱动NMOS电路都应该在端口上外接上拉电阻。在本设计中,在P0口外加了一个IOK排电阻。2.3传感器电路设计传感器GP2Y
27、IOlOAU介绍经过多方面的比拟,本设计选择了一款体积小,灵敏度高的灰尘传感器GP2Y1010AU作为粉尘检测的工具,该传感器由日本夏普公司生产,它可以用来测量空气中0.8微米以上的微小粒子,可以满足本设计检测PM2.5的要求。在许多花粉浓度及粉尘浓度检测等应用中都采用的是这一款传感器叫此款产品既可以检测出微小粒子的浓度,还在内部设置了气流发生器,用来有效吸入外部空气。灰尘传感器GP2Y1010AU有很长的使用寿命,无论是保养还是安装都非常方便。该传感器不但具有非常低的电流消耗(最大20mA,典型值IlmA),而且其稳定性好,精度高,非常适合简单的检测装置。图8为实物图。图8夏普灰尘传感器GP
28、2Y101OAUOFGP2Y101OAUOF中有一个红外发光二极管和一个光电晶体管,呈对角分布,测量原理如图9所示,传感器中心有个洞可以让空气自由流动,LED定向发射红外线,尤光电晶体管PD检测空气中灰尘散射的光线强度,以此来判断灰尘的密度,然后输出与灰尘密度成正比的模拟电压VO2o图9传感器内部结构2.3.2传感器主要参数表4GP2Y101OAUOF的主要参数电源电压5小工作温度-1065C消耗电流最大值20mA,典型值UmA灵敏度0.5V(0.lmgm3)清洁空气中的输出电压0.6V典型值2. 4A/D模数转换电路2.1.1 ADCO832介绍ADC0832是美国国家半导体公司生产的一种8
29、位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢送,其目前已经有很高的普及率%学习并使用ADC0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。(1) ADCO832主要参数:8位分辨率;双通道A/D转换;输入输出电平与TTL/CMOS相兼容;5V电源供电时输入电压在05V之间;工作频率为250KHZ,转换时间为32S;一般功耗仅为15mW:8P、14P-DlP(双列直插)、PICC多种封装;商用级芯片温宽为(TC+70C,工业级芯片温宽为/(/C+85C;(2)芯片引脚定义:CS一:片选使能,低电平芯片使能。CH0:模拟输入通
30、道0,或作为IN+/-使用。CH1:模拟输入通道1,或作为IN+/-使用。GND:芯片参考0电位(地)。DI:数据信号输入,选择通道控制。DO:数据信号输出,转换数据输出。CLK:芯片晶振输入。Vcc/REF:电源输入及参考电压输入(复用)。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32uS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功
31、能的选择。5LCD显示电路1.CD1602简介1.CD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相(1) 似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示根本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。(2) 1.CDl602主要技术参数显示容量为16X2个字符;芯片工作电压为4.55.5V;工作电流为2.0mA(5.0V):
32、模块最正确工作电压为5.0V;字符尺寸为2.95X4.35(WXH)mm。LCDl602的引脚说明1.CDl602采用标准的14脚接口,其中:第I脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:Vo为液晶显示器比照度调整端。第4脚:RS为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:DOD7为
33、8位双向数据线。2.1.2 第1516脚:空脚2.1.3 1.CD1602电路设计系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,根据各管脚的功能电路设计如图10:图10LCDI602功能电路2. 6LED显示电路本设计采用红、黄、绿三种指示灯显示当前空气质量,当PM2.5小于75时,绿灯亮,表示当前空气质量较为良好;当PM2.5大于75,小于150时,黄灯亮,表示当前空气轻度或中度污染;当PM2.5大于150时,红灯亮,表示当前空气为重度污染状态。红黄绿指示灯负极与单片机三个不同接口相
34、连,正极连在一起并与5V电源相连,当单片机IO口输出低电平时,对应的LED就会被点亮。图11为LED的电路原理图:图11LED电路原理图2. 7报警模块当PM2.5浓度高于一定程度时,会对身体造成很大伤害,因此该设计专门添加了报警电路。当PM2.5浓度超过单片机设定的报警值时,单片机控制蜂鸣器报警提醒用户PM2.5浓度严重超标。当单片机控制引脚输出低电平时,三极管导通,电流通过蜂鸣器,蜂鸣器响。当单片机控制引脚输出高电平时三极管关断蜂鸣器不响。报警模块如图12所示。图12报警模块原理图3程序设计3. 1主程序设计主程序主要配合硬件实现系统的功能,包括数据采集与处理、测量结果的显示以及各个子函数
35、的调用等。图13为主程序流程图:图13主程序流程图3. 2显不局部1602液晶模块内部的控制器共有11条控制指令,如5表所示:表5控制命令表序号指令RSR/WD7D6D5D4D3D2DlDO1清显示0000000U012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CRiL忠6置功能00001DLNF*7置字符发生存贮器地址0()01字符发生存贮器地址8置数据存贮器地址00显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRA或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11
36、读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址(X)H位置指令2:光标复位,光标返回到地址(X)H指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平那么无效指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光
37、标指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据3. 3A/D转换局部正常情况下ADC0832与单片机的接口应为4条数据线,分别是CSCLKDO、DL但由于Do端与Dl端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。当ADC
38、0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片晶振输入端CLK输入晶振脉冲,DO/DI端那么使用Dl端输入通道功能选择的数据信号。在第1个晶振脉冲的下沉之前Dl端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前Dl端应输入2位数据用于选择通道功能,当2位数据为1、0时,只对CHO进行单通道转换。当2位数据为1、1时,只对CHl进行单通道转换。当2位数据为0、“0时,将CHO作为正输入端IN+,CHl作为负输入端IN-进行输入。当2位
39、数据为0、1时,将CHO作为负输入端IN-,CHl作为正输入端IN+进行输入。到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端那么开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATAO,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第Il个字节的下沉输出DATDO0随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。更详细的时序说明请参
40、考图14:ADC0&32Timing123BMtwrsaDiUfiioqa眼EOSSWT CW a ;AU Jm F CWBiOl E*ZOI困w玲遇KL厘呻 FittIIHl-L3RHFMOIItilWlIOl7fitItI61Ii?晔图14ADC0832时序图作为单通道模拟信号输入时ADC0832的输入电压是05V且8位分辨率时的电压精度为19.53mV。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压那么转换后的数据结果始终为OoH。ADC0832数据读取程序流程
41、见图15:图15ADCO832数据读取流程图,应用代码举例:unsignedcharADC0832(bitMO,bitCH)返回转换结果,unsignedchari,dat,ndat;CS=0;/将CS端置0,使能一nop_();延时一个机器周期_nop_();DI=1;起始信号必须置高CLK=1;时钟信号_nop_();_nop_();CLK=0;时钟信号形成第一个脉冲_nop_();_nop_();DI=MO;模式选择CLK=1;_nop_();_nop_();CLK=0;时钟信号形成第二个脉冲_nop_();_nop一O;DI=CH;通道选择CLK=1;/_nop_();_nop一O;C
42、LK=0;时钟信号形成第三个脉冲DI=I;dat=0;读取转换后数据for(i=0;i8;i+)Idat=1;CLK=1;_nop_();-Tiop-();CLK=0;时钟信号形成第四个脉冲_nop_0;_nop_();dat=ADDO;ndat=0;if(ADDO=1)ndat=0x80;反序读取数据,用于校验for(i=.0;i7;i+)ndat=1;CLK=1;nopj);_nopj);CLK=0;/时钟脉冲_nop_();nopj);if(ADDO1)ndat=0x80;CS=I;/结束,使能关CLK=O;DI=I;if(dat=ndat)/数据校验return(dat);elsere
43、turn0;4应用软件介绍4. 1keil的应用KeilC5I是美国KeilSOftWare公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。下面详细介绍KeilC51开发系统各局部功能和使用。KeilC51软
44、件界面如图16:匕dM-HvU沁M文件心MiIiCB(Y)TSo内存AS(B)外也设0DSVcS口时W(三)B :Target 1H Source Group 1 出 STARTUPA51 占图dh*.cQ reg52hQ intrin,.h 目 abucch 1 mathh 目 083ZhOOl tinclude 002 003期005tinclude tinclude *include nclude -0832.h-ooe 007Q::8 (MS 010 J 012 013 C4 015 016 017 018 019tdefine UChat unsigned ChAr define U
45、inC unsigned lac,定义 LCD1602 型 口sbit E-P2*6:1602使能引更bit RS-P2P:1602敷掩命令选择引弊3blt RK=P2S?bit LED-RZC-P22:Sbit LEDYELLOW-PJ-l;sbit LEd2gREENP2eO;Btlt SEEY=P3r;mt ADD-ICEYP35;SbIt SUB_KEY-P3A; sbit BUZZ-P3a7;tnt Wlrning-SOO; ulnt DA;bitFlagScartRHeO;bitfl三o-BJ三O:bitaet0;voidLl602_Atring(ucasbang,ucharlXerucftx*p);029 定时M。初始化OX void TmerO Inic ()O31R032ETO-1;033TMOC 0x11;Q34TLOOxbO;035THO-0x3c;036TRO-1;允许定时