1、ABSTRACT毕业设计论文_液位检测显示控制系统设计摘 要水位测量在日常生活和工业领域有着广泛的应用,比如江河湖泊,地下水,水电站等都需要进行水位监测,以此来了解水位的工作情况以方便工作。水位监测系统目前在国里外都有广泛的应用。水位检测就是水位数据的采集、存储、传输、处理等技术的集成。水位检测的方法有很多种,如人工检测、传感器检测等等。本文介绍的是基于压力传感器实现的液位控制器的设计方法,该控制器以STC89C51单片机为核心,并辅以外围硬件电路来实现控制要求。本文首先介绍总体的设计方案,接着重点介绍各功能模块的作用及实现方法。最后,介绍proteus仿真软件。关键词: 水位检测 单片机 控
2、制 传感器ABSTRACTWater level measurement in daily life and industrial fields have a wide range of applications, such as rivers, lakes, groundwater, hydropower, all these need water level monitoring , in order to understand the changes in the water level to facilitate the work. Water level monitoring sys
3、tem are widely used inside and outside currently. Level detection is the level of data collection, storage, transmission, processing and other technology integration. Level detection methods are many, such as artificial detection, sensor detection and so on. This article is based on a pressure senso
4、r to achieve the level controller design method, the controller STC89C51 microcontroller as the core, supplemented by peripheral hardware circuit to achieve control requirements. This paper describes the overall design scheme, and then focuses on the role of various functional modules and implementa
5、tion. Finally, proteus simulation software is introduced.Keywords: level detection single chip microcomputer control sensor 附录3 实物图i目 录第一章 绪 论31.1 液位自动检测的现状及发展趋势31.2 课题背景及研究意义31.3 方案规划3第二章 单片机最小系统设计32.1 单片机最小系统的功能32.2 51系列单片机32.3 单片机最小系统的结构32.3.1 时钟电路32.3.2 复位电路32.4 最小系统的电路设计3第三章 水位测量与显示模块的设计33.1 传感
6、器的介绍33.2 0804模数转换器33.3 LCD液晶显示模块电路设计33.4 报警电路的设计33.5 控制电路的设计3第四章 软件的设计34.1 软件的整体结构设计34.2 LCD液晶显示程序设计34.2.1 LCD1602的基本操作时序34.2.2 LCD1602的初始化过程34.2.3 LCD1602的显示流程34.2.4 液晶显示部分子函数源程序34.3 4*1键盘程序设计34.3.1 按键的消抖34.3.2 按键部分源程序34.4 ADC0804程序的设计3第五章 Proteus仿真软件介绍35.1 仿真介绍35.2 Proteus的ISIS介绍35.3 利用Proteus绘制原理
7、图35.4 Keil与Proteus的联调仿真3第六章 总 结3致 谢3参考文献3附录1 电路图3附录2 程序3附录3 实物图3第一章 绪 论1.1 液位自动检测的现状及发展趋势在现代化的工业生产中,液位测量几乎遍及生产工厂的各个环节。在许多生产领域,不但对液位测量的精度要求高,还需要测量仪表很好的使用工业现场的特殊环境,例如高温、高压、强腐蚀性、强放射性的场合,以及远距离传送和在密闭压力容器内的使用等情况。工业自动检测技术是以物理学、电子学、自动控制、电子计算机、测量技术等原理为基础的一门综台性技术,其研究目的是对工业自动化系统中各种工艺参数进行自动检查与测量。作为一个工业自动化检测系统,其
8、任务就是对生产设备和工艺过程参数进行计。对只有传感器、AD转换和数字计算机的数据测量(处理)系统,存在着大量工艺参数和模拟量的转换问题,系统的精度很大程度上取决于检测装置的精度 近年来,随着计算机技术的不断完善以及高精度传感器的出现,给参数检测自动化带来了新的生机。目前国内外在液位监测方面采用的技术和产品很多,传统的液位传感器按其采用的测量技术及使用方法分类已多达十余种。近年来国内外一些研制单位还在研制开发更新的传感监测技术。归纳起来主要有以下几种:差压式液位测量仪表、浮体式液位测量仪表、声波液位测量仪表、电窖式液位测量仪表、核辐射式液位测量仪表、直流电极式液位测量仪表、光纤液位测仪表、感应式
9、数字水位测仪表。近年来由于微电子技术的发展使得液位检测技术发生了根本性变化。新的检测原理与电子部件的应用使得液位测量仪更趋向小型化和微型化,特别是一些小型现场液位开关发展极快,如超声液位计和振动式液位开关,由于没有可动部件,所以可靠性高,不仅可现场显示,而且可以发出控制信号。与此同时,液位检测也在向着智能化发展,在液位测量领域内广泛应用微处理技术,以实现故障诊断和报警,目的是提高测量的精确度、可靠性、安全性和多功能化。在传感器方面,在应用和设计中尽量实现不接触式或不渗透式涮量,其中以超声波式液位计、光学式液位计、电磁式液位计与辐射式液位计最为典型,从而提高探头对恶劣的过程条件的抵抗能力。随着计
10、算机应用的普及,直接输出数字信号的数字化液位传感器已成为这一领域仪表的发展趋势;随着纳米技术、生物工程技术的发展,纳米技术和生物技术在液位测量中的应用也将会日益增多 对于一些处于发展阶段的液位计在目前的应用中并不是十分普遍,但其低成本、高性能的吸引力给其发展带来光明的前景1。1.2 课题背景及研究意义不论社会经济如何飞速发展,水一直在人们正常生活和生产中起着重要的作用,一旦断了水,轻则给人们生活带来很大的不便,重则会造成严重的生产事故和重大损失,从而对供水系统提出了跟高的要求,必须满足及时、准确、安全、充足的供水,如果仍然采用人工供水的方式,则劳动强度大,工作效率低,安全性无法保证,因此必须进
11、行自动化控制,从而实现提供充足的水量,平稳的水压。随着科学技术的发展,单片机作为嵌入式控制器在工业测控系统、智能仪器和家用电器得到广泛应用。再实时监测和自动控制的单片机应用系统中,单片机往往作为核心部件来使用。本文主要研究液压水位的测量与显示系统,以单片机为核心,讲述了单片机系统的选择、开发和设计,根据需要选择了成本低、技术成熟、可靠性高的51单片机系列;论述了压力传感器的选择、外围电路的设计以及相关软件的使用。本次课程设计对我有以下意义: 1通过这次课程设计,加深对片机理论方面的理解。2掌握单片机的内部模块的应用,如片内外存储器、A/D 转换器等。3了解和掌握单片机应用系统的软硬件设计过程、
12、方法及实现,为以后设计和实现单片器应用系统打下良好基础。4通过简单课题的设计练习,了解必须提交的工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。1.3 方案规划基于单片机的数据采集系统是以单片机为核心的控制器件,结合外围电路所构成的,基本正常如图1.1所示。输出通道单片机输入通道 图1.1 单片机数据采集系统结构图采集系统硬件主要包括传感器、转换器、单片机、输入输出电路等。单片机作为控制单元的数据采集系统工作可以分为以下几个步骤2:数据采集是将被测量的信号转换为能被单片机识别的信号并输入给单片机;数据处理由单片机执行以测试为目的的算法程序后,得到与被测参数对应的测量值或形成相应
13、的判断和决策。广泛的液位显示检测控制系统包括对水体的液位,压力等控制,本系统只侧重介绍液位的检测。液位检测是利用压力传感器,把液位的转台转换为模拟信号,再通过数模转换器ADC0804把输出信号直接接到单片机的I/O口,单片机经过运算控制,输出数字信号,输出接口接LCD和发光二级管,实现液位的显示和报警,如图1.2所示 报警电路控制电路液位显示STC89C51A/D转换器D压力信号传感器 图1.2 水位显示测量控制系统总体结构图由图1.2可知传感器对液面进行测量,然后输出模拟信号,再通过数模转换器把输入的模拟信号转换成输出数字信号,再通过已经存入80C51单片机内部的程序的运算控制,将叶面高度在
14、LCD显示屏上表示出来,如果液位过高或者太低,则报警装置进行报警,提醒工作人员注意加水或排水。 第二章 单片机最小系统设计 2.1 单片机最小系统的功能在日常生活及工业生产中单片机的应用越来越广泛,但单片机本身正常运行所需的资源基本是固定不变的,因此就需要开发单片机最小系统。单片机最小系统,或称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来讲,最小系统一般包括:单片机、晶振电路、复位电路。一般将单片机最小系统最为应用系统的核心部分,通过对其存储器扩展、A/D扩展等,使单片机完成比较复杂的功能。2.2 51系列单片机8051系列单片机由于其生产成本低、功能强大、应
15、用技术成熟等优点被广泛的应用于生产生活的各个方面。8051系列单片机的基本结构如下3:1一个8位微处理器CPU2片内数据存储器RAM和特殊功能寄存器SFR3片内程序存储器ROM4两个定时/计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计数5四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输出6一个串行端口,用于数据的串行通信7中断控制系统8内部时钟电路51单片机引脚及其功能如图2.1所示:图2.1 51单片机引脚图P0.0P0.7 P0口8位双向口线(在引脚的3932号端子) P1.0P1.7 P1口8位双向口线(在引脚的18号端子) P2.0P2.7 P2口8位双向口线(在
16、引脚的2128号端子) P3.0P3.7 P2口8位双向口线(在引脚的1017号端子) 这4个I/O口具有不完全相同的功能。 P0口有三个功能: 1、外部扩展存储器时,当做数据总线。2、外部扩展存储器时,当作地址总线。 3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。 P1口只做I/O口使用:其内部有上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其内部有上拉电阻; P3口有两个功能: 除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器设置。有内部EPROM的单片机芯片(例如8751
17、),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/Vpp) 在介绍这四个I/O口时提到了“上拉电阻”,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。 PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。 1、内部ROM读取时,PSEN不动作; 2、外部ROM读取时,在每个机器周期会动作两次; 3、外部RAM读取时,两个PSEN脉冲被跳过不会输
18、出; 4、外接ROM时,与ROM的OE脚相接。 ALE/PROG 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。PORG为编程脉冲的输入端。EA/VPP 访问和序存储器控制信号: 1、接高电平时: CPU读取内部程序存储器(ROM) 扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。 2、接低电平时:CPU读取外部程序存储器(ROM)。 在前面的学习中我们已知道,8031单片机内部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。 3、8751烧写内部
19、EPROM时,利用此脚输入21V的烧写电压。 XTAL1和XTAL2 外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC:电源+5V输入 VSS:GND接地。RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。2.3 单片机最小系统的结构51单片机的最小系统是以51单片机为核心,再辅以外部硬件电路,主要包括时钟电路、复位电路、扩展接口电路等部分,如图2,2所示:51单片机系统接口时钟电路
20、复位电路图2.2 单片机最小系统结构框图2.3.1 时钟电路时钟电路(如图2.3、2.4所示)就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。 图中的电容C1和C2起稳定作用图2.3 时钟电路2.3.2 复位电路单片机在启动时都需要复位以使CPU及系统各部件处于确定的初始状态并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时且振荡器稳定后如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上则CPU就可以响应并将系统复位。单片机系统的复位方式有手动按钮复位和上电复位。在单片机系统中,系统上电启动
21、的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1
22、.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位4。89c51RS
23、T图2.4 复位电路2.4 最小系统的电路设计对于51单片机来说,单片机+晶振电路+复位电路便组成了一个最小系统5,本次设计采用的是STC89C51,属于51系列单片机。STC89C51单片机的最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性。使用的51单片机在+5V的直流条件下才能够稳定工作。单片机的接+5V的引脚为40引脚VCC,而接地的引脚为20引脚GND。供给单片机工作的+5V直流电源,必须
24、是很稳定的,否则会导致单片机频频复位,这在单片机的正常工作中必须避免。,除非是有特定的需要。 图2.5 单片机最小系统电路图总结:复位电路的原理是单片机RST接收到2US以上的电平信号,只要保证电容充放实践大于2US,即可实现复位。按复位键系统复位,其实质是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加造成的。51单片机最小电路介绍:51单片机最小系统的复位电路的极性电容C1的大小直接影响单片机的复位时间的长短,一般采用1030uf,容值越大复位时间越短。单片机最小系统的晶振Y1可以用6MNZ或11.0592MHZ,晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。起
25、振电容C2、C3一般采用1533uf,电容离晶振越近越好,晶振离单片机越近越好。P0口为开漏输出,作为输出口试需加上拉电阻,阻值一般为10K。当晶振频率为12MHZ时,最高计数频率不应该超过0.5MHZ,即计数脉冲的周期要大于2ms。第三章 水位测量与显示模块的设计3.1 传感器的介绍MPX4115系列压电电阻传感器是一个硅压力传感器,MPX4115传感器是整体片少带两级操作扩大电路和薄膜电阻网络提供高精度输出和温度补偿。这个传感器结合了高级的微电机技术,薄膜镀金属,以及两级半导体处理精确度高,还能为高水准模拟输出信号提供一个均衡压力。在0-85的温度下误差不超过1.5%,温度补偿是-40-1
26、256。它的实物如图3.1所示:图3.1 MPX4115实物图压力传感器MPX4115的管脚说明如表3.1所示:表3.1 MPX4115的管脚 压力传感器MPX4114的特性参数如表3.2所示:表3.2 压力传感器MPX4114的特性参数本系统中采用一个滑动变阻器代替压力传感器,用阻值的变化模拟水压的变化,根据不同的阻值LCD显示不同的液位高度值。3.2 0804模数转换器A/D转换就是将模拟信号转换成为数字信号,A/D转换器就是来实现这一功能的。ADC0804是用CMOS集成工艺制成的逐次比较型摸数转换芯片。分辨率8位,转换时间100s,输入电压范围为05V,增加某些外部电路后,输入模拟电压
27、可为5V。该芯片内有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU数据总线上,无须附加逻辑接口电路7。ADC0804芯片引脚图如3.2所示。引脚名称及意义如下:图3.2 ADC0804引脚图AGND:模拟信号地。DGND:数字信号地。CLKIN:外电路提供时钟脉冲输入端。VCC:电源端。CLKR:内部时钟发生器外接电阻端,与CLKIN端配合可由芯片自身产生时钟脉冲,其频率为1/1.1RC。CS:片选信号输入端,低电平有效,一旦CS有效,表明A/D转换器被选中,可启动工作。WR:写信号输入,接受微机系统或其它数字系统控制芯片的启动输入端,低电平有效,当CS、WR同时为低电平
28、时,启动转换。RD:读信号输入,低电平有效,当CS、RD同时为低电平时,可读取转换输出数据。INTR:转换结束输出信号,低电平有效。输出低电平表示本次转换已完成。该信号常作为向微机系统发出的中断请求信号。VIN(+)、VIN():差动模拟电压输入。输入单端正电压时,VIN()接地;而差动输入时,直接加入VIN(+)、VIN()。VREF:辅助参考电压。DB0DB7:8为数字输入端。在使用时应注意以下几点:(1)转换时序当CS与WR同时为低电平A/D转换器被启动切在WR上升沿后100模数完成转换,转换结果存入数据锁存器,同时,INTR自动变为低电平,表示本次转换已结束。如CS、RD同时来低电平,
29、则数据锁存器三态门打开,数字信号送出,而在RD高电平到来后三态门处于高阻状态。(2)零点和满刻度调节。ADC0804的零点无须调整。满刻度调整时,先给输入端加入电压,使满刻度所对应的电压值是,其次是输入电压的最大值,是输入电压的最小值。当输入电压与值相当时,调整端电压值使输出码为FEH或FFH。(3)参考电压的调节在使用A/D转换器时,为保证其转换精度,要求输入电压满量程使用。如输入电压动态范围较小,则可调节参考电压,以保证小信号输入时ADC0804芯片8位的转换精度。(4)接地模数、数模转换电路中要特别注意到地线的正确连接,否则干扰很严重,以至影响转换结果的准确性。A/D、D/A及取样保持芯
30、片上都提供了独立的模拟地(AGND)和数字地(DGND)的引脚。在线路设计中,必须将所有的器件的模拟地和数字地分别连接,然后将模拟地与数字地仅在一点上相连。图3.3 ADC0804部分电路连接图3.3 LCD液晶显示模块电路设计在单片机的人机交流界面中,一般的输出有以下几种:发光管、LED数码管、液晶显示器。本设计采用的显示屏是LCD1602液晶显示屏,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用
31、1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。图3.4 LCD1602实物图LCD1602各引脚的定义如下所示:LCD1602各引脚的定义如下所示:引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)
32、端,写操作时,下降沿使能。读操作时,E高电平有效7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极在实际电路中将滑动变阻器与液晶显示屏连接来调节液晶显示屏的对比度以及液晶显示屏幕背光灯的亮度。图3.5 LCD电路连接3.4 报警
33、电路的设计本系统的报警电路使用两个红绿发光二级管作为报警灯8,当水位达到上限时红色的发光二极管亮提醒注意排水,当水位达到下限时绿色的发光二极管亮提醒注意加水,报警电路的连接如图3.6所示。图3.6 报警电路当水高于或低于设定的最高和最低水位时,发光二级管导通,提醒工作人员注意。3.5 控制电路的设计通过电机的控制芯片试使电机与单片机连通,通过反馈信息来控制电机的转向,以实现水位高时排水,水位低时加水的控制,实现自动化管理。本文不涉及电机电路部分,故不对电机的控制芯片及其反馈作出介绍。 第四章 软件的设计4.1 软件的整体结构设计本系统包括液压的采集、LCD液晶显示、A/D转换、报警模块、控制模
34、块等几部分。在系统的硬件确定以后,功能完善的软件能够很好的指导和协调硬件的工作,可使系统发挥其最大的功效。一个完整的系统离不开对系统状态的监控。开机后,系统经过LCD初始化,显示启动界面;对系统进行初值的设定,设定最高水位和最小水位,当测量的水位高于最高水位或低于最低水位时,系统报警,同时控制系统加水或排水9。图4.1 主程序流程序4.2 LCD液晶显示程序设计4.2.1 LCD1602的基本操作时序1.读操作顺序(如图4.2所示)图4.2 读操作时序2写操作时序(如图4.3所示)图4.3 写操作时序3.LCD1602的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表4.1所
35、示:表4.1 LCD1602指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0
36、为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显
37、示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。1602LCD的一般初始化(复位)过程延时15ms 写指令38H(不检测忙信号)延时5ms 写指令38H(不检测忙信号)延时5ms 写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移
38、动设置写指令0CH:显示开及光标设置4.2.2 LCD1602的初始化过程图4.4 液晶初始化过程4.2.3 LCD1602的显示流程图4.5 显示程序流程图4.2.4 液晶显示部分子函数源程序1.写指令到LCD函数void write_com(uchar cmdcode)chk_busy();LCM_RS=0;LCM_RW=0;LCM_EN=1;Lcd_Bus=cmdcode;LCM_EN=0;2.写数据到LCD函数void write_data(uchar Dispdata)chk_busy();LCM_RS=1;LCM_RW=0;LCM_EN=1;Lcd_Bus=Dispdata;LCM
39、_EN=0;3.检查忙函数void chk_busy()LCM_RS=0;LCM_RW=1;LCM_EN=1;Lcd_Bus=0xff;While(Lcd_Bus&0x80)=0x80);LCM_EN=0;4.初始化LCD屏函数void lcm_init() write_com(0x30); write_com(0x0c); lcm_clr(); write_com(0x60); lcm_clr2();4.3 4*1键盘程序设计4.3.1 按键的消抖一般的按键是机械弹性开关,由于机械触点的弹性作用,按键闭合时不会立马接通,按键断开时也不会立马断开,在闭合和断开的瞬间会产生一些抖动,如果不消除按
40、键的抖动,会导致单片机对按键的误判,从而产生误差。利用按键稳定闭合的时间与按键的抖动时间较大的差别,可采用硬件或软件的方式进行消抖处理。本系统采用的是软件消抖。软件消抖的原理为10:当检测到按键闭合后执行一个5ms-10ms的延时程序,即避开按键前沿抖动部分,再一次检测按键状态,如仍为闭合,则确认按键被按下;同样的,当检测到按键被释放后,也执行一个5ms-10ms的延时程序,即避开按键前沿抖动部分,之后才能再一次进入读按键状态处理程序。4.3.2 按键部分源程序/*键盘程序函数*/Void keyscan() if(SET=0) delay1(5); if(SET=0) set_st+; if
41、(set_st1) set_st=0; While(!SET); if(set_st=0) if(ADD=0) delay1(5); if(ADD=0) Shangxian+; If(shangxian50)shangxian=50; while(!ADD); show1(); If(DEC=0) delay1(5); If(DEC=0) Shangxian-; If(shangxianshangxian)xiaxian=shangxian; While(!ADD); Show2(); If(DEC=0) Delay1(5); If(DEC=0) xiaxian-; If(xiaxian=-5
42、0) Xiaxian=-50; While(!DEC); Show2(); If(ENTER=0) Set_st=2; Show1(); Show2(); 4.4 ADC0804程序的设计ADC0804是属于连续渐进式(Successive Approximation Method)的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高价钱便宜的优点,普遍被应用于微电脑的接口设计上。以输出8位的ADC0804动作来说明“连续渐进式A/D转换器”的转换原理,动作步骤如下表示(原则上先从左侧最高位寻找起)。第一次寻找结果:10000000 (若假设值输入值,则寻找位假设位1
43、)第二次寻找结果:11000000 (若假设值输入值,则寻找位假设位1)第三次寻找结果:11000000 (若假设值输入值,则寻找位该假设位0)第四次寻找结果:11010000 (若假设值输入值,则寻找位假设位1)第五次寻找结果:11010000 (若假设值输入值,则寻找位该假设位0)第六次寻找结果:11010100 (若假设值输入值,则寻找位假设位1)第七次寻找结果:11010110 (若假设值输入值,则寻找位假设位1)第八次寻找结果:11010110 (若假设值输入值,则寻找位该假设位0)这样使用二分法的寻找方式,8位的A/D转换器只要8次寻找,12位的A/D转换器只要12次寻找,就能完成转换的动作,其中的输入值代表图1的模拟输入电压。对8位ADC0804而言,它的输出准位共有28256种,即它的分辨率是1/256,假设输入信号Vin为05V电压范围,则它最小输出电压是5V/2560.0195
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100