基于单片机的多路数据采集系统设计.doc

上传人:文库蛋蛋多 文档编号:4148570 上传时间:2023-04-07 格式:DOC 页数:39 大小:1.81MB
返回 下载 相关 举报
基于单片机的多路数据采集系统设计.doc_第1页
第1页 / 共39页
基于单片机的多路数据采集系统设计.doc_第2页
第2页 / 共39页
基于单片机的多路数据采集系统设计.doc_第3页
第3页 / 共39页
基于单片机的多路数据采集系统设计.doc_第4页
第4页 / 共39页
基于单片机的多路数据采集系统设计.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《基于单片机的多路数据采集系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的多路数据采集系统设计.doc(39页珍藏版)》请在三一办公上搜索。

1、多路数据采集系统设计摘要:多路数据采集技术在电子技术等方面有着重要的作用,它研究数据的采集、存储、处理以及控制等问题。该系统硬件部分是以单片机为核心,并且包含A/D模数转换模块、烟雾传感器模块,温度传感器模块,热释电传感器模块,显示模块,报警模块。通过传感器对光强度、温度和烟雾的采集,将数据传送到单片机中,和预设阀值进行对比。实现了多路数据采集、采集到的数据能在液晶显示器上显示和超过预设阀值时进行声光报警的功能。可应用于火灾报警、恒温控制系统、远程数据监控等方面。关键词:数据采集;烟雾检测;温度检测Multi-channel data acquisition systemAbstract:Mu

2、lti-channel data acquisition technology and other aspects of electronic technologyhas an important role in which studies information and data collection, storage, processing andcontrol problems. The system hardware is based on the microcontroller core, and includes an A / D conversion module, smoke

3、sensor module, the module temperature sensor, the pyroelectric sensor module, display module, the alarm module. Through the sensor light intensity, temperature and smoke collection, transfer data to themicrocontroller, and the default threshold comparison. To achieve a multi-channeldata acquisition,

4、 data collected can be displayed on the LCD display and more thanpreset threshold for sound and light alarm function. Can be applied to a fire alarm,temperature control system, remote data monitoring and so on. Key words:Data acquisition; smoke detectors; temperature detection 目 录1 引言12 设计要求及方案22.1

5、设计要求22.2 设计方案33 系统硬件设计43.1 单片机的选择及接口电路43.2 液晶显示器的选择及接口电路53.3 光强度模块及接口电路73.4 烟雾采集模块及接口电路93.5 时钟模块及接口电路103.6 声光报警模块及接口电路113.7 A/D模数转换的选择及接口电路124 系统软件设计134.1 简介KeilUvision2134.2 主程序设计144.3 温度传感器程序设计144.4 模数转换程序设计154.5 时钟模块程序设计165 调试结果及结论18参考文献19附 录20谢 辞331 引言近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以

6、广泛的应用于各种领域。数据采集系统是通过采集传感器输出的模拟信号并转换成数字信号,并进行分析、处理、传输、显示、存储和显示。它起始于20世纪中期,在过去的几十年里,随着信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采集数据的信息化是目前社会的发展主流方向。各种领域都用到了数据采集,在石油勘探、科学实验、飞机飞行、地震数据采集领域已经得到应用。数据采集技术是信息科学的重要分支之一, 它研究信息数据的采集、存储、处理以及控制等问题。它是对传感器信号的测量与处理, 以微型计算机等高技术为基础而形成的一门综合应用技术。数据采集也是从一个或多个信号获取对象信息的过程。随着微型计算机技术

7、的飞速发展和普及,数据采集监测已成为日益重要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。尽管现在以微机为核心的可编程数据采集与处理技术作为数据采集技术的发展方向得到了迅速的发展,并且适于通用微机使用的板卡级数据采集产品也已大量出现,组成一个数据采集系统简单到只需要一块数据采集卡,把它插在微机的扩展槽内,并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响,因为单片机功能强大、抗干扰能力强、可

8、靠性高、灵活性好、开发容易等优点,使得基于单片机为核心的数据采集系统在许多领域得到了广泛的应用1。2 设计要求及方案2.1 设计要求单片机在各种电子产品中的应用已经越来越广泛,很多的电子产品利用单片机所取得的便利性得到了人们的好评,针对多路数据采集系统的要求提出了以下的方案:通过传感器对当前的温度、烟雾、光强度进行实时采集,通过ADC0804转换为数字信号传输到单片机中,通过对预先设定的阀值进行对比,当超过阀值时,进行声光报警1。本系统的工作原理和实现的功能如下:多路数据采集系统主要有以下几大功能:(1)实时采集当前的温度、烟雾浓度和光照强度(2)液晶显示模块能够显示当前时间、温度值、烟雾模块

9、和光强度模块的工作状态。(3)报警系统能通过声音和光提示人们当前数据异常。2.2 设计方案在本系统设计中,将提出一种基于AT89S52单片机的多路数据采集系统的设计方案,以实现实时数据采集并超过设定的阀值是报警的功能。系统的总体结构框图如图1所示:图1 多路数据采集系统的总体结构框图各模块的功能如下:A/D转换器:将电信号(模拟信号)转换为数字信号。时钟模块:显示实时时间。烟雾采集模块:对实时烟雾浓度的采集,将烟雾信号转换为电信号并传输到单片机中。光强度采集模块:对实时光照强度的采集,将光信号转换为电信号并传输到单片机中。液晶显示模块:显示当前时间、当前温度和各模块的工作状态。3 系统硬件设计

10、3.1 单片机的选择及接口电路单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。此系统是由CPU、随即存取数据存储器、只读程序存储器、输入输出电路(I/O口),还有可能包括定时/计数器、串行通信口、显示驱动电路(LCD和LED驱动电路)、脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机任务。单片机要使用特定的组译和编译软件编译程序,在用keiluvision2把程序下载到单片机内。而本设计选用的是AT89C52.单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(

11、CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换及A/D转换器等电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。总的而言单片机的特点可以归纳为以下几个方面:集成度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。单片机按内部数据通道的宽度,可分为4位、8位、16位及32位单片机。它们被应用在不同领域里,8位单片机由

12、于功能强大,被广泛的应用在工业控制、智能接口、仪表仪器等各个领域。8位单片机在中、小规模应用场合仍占主流地位,代表了单片机的发展方向,在单片机应用领域发挥越来越大的作用。随着移动通讯、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到了长足发展。纵观单片机的发展过程,可以预示单片机的发展趋势3:1、 微型单片化2、 低功耗CMOS3、 与多品种共存4、 可靠性和应用水平越来越高单片机有着微处理器所不具备的功能,它可以独立地完成现代工业控制所要求的智能化控制功能这就是单片机的最大特点。然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程

13、序,它便是一个最小的、完整的微机控制系统。它与单板机或个人电脑有着本质的区别,单片机属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使芯片具备特定的智能。其原理图如图1所示:图1 ST89C52原理图3.2 液晶显示器的选择及接口电路显示部分我选择地1602,其原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样就可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动和易于实现全彩色显示的特点,目前已经被广泛应用在便携电脑、数字摄像机和PDA移动通信工具等众多领域4。

14、其特点:(1)显示质量高由于液晶显示器每一个点抽到信后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器那样需要不断刷新新亮点,因此,液晶显示器画质高且不会闪烁。(2)数字式接口液晶显示器都是数字式的,与单片机系统接口更加简单可靠,操作更加方便。(3)体积小、重量轻液晶显示器通过显示屏上的点击控制液晶分子状态来达到显示的目的,在重量上臂相同显示面积的传统显示器要轻的多。(4)功耗低相对而言,液晶显示器的功耗主要消耗在内部的电极和驱动IC上,因而耗电量比其他显示器要少的多。字符型模块的性能重量轻:100g;体积小:11mm 厚;功耗低:1015mW;显示内容:192 种字符(57 点字型

15、);32 种字符(510 点字型);可自编 8(57)或许(510)种字符;指令功能强:可组合成各种输入、显示、移位方式以满足不同的要求;接口简单方便:可与 8 位微处理器或微控制器相联;工作温度宽:050oC可靠性高:寿命为 50,000 小时(25oC)液晶显示器的基本原理:液晶板上排列着若干 57 或510 点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40 位,有一行、两行及四行三类5。其原理图如图2所示:图2 液晶1602原理图3.3 光强度模块及接口电路热释电传感器的特点:全自动感应:人进入其感应范围则输出高电平, 人离开感应范围则自动延时

16、关闭高电平,输出低电平。光敏控制(可选择,出厂时未设):可设置光敏控制,白天或光线强时不感应。温度补偿(可选择,出厂时未设):在夏天当环境温度升高至3032,探测距离稍变短,温度补偿可作一定的性能补偿。两种触发方式:(可跳线选择)不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变为低电平;可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。具有感应封锁时间(默认设置:无封锁时间

17、):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒几十秒钟)。工作电压范围宽:默认工作电压DC4.5V-20V。微功耗:静态电流2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端9。DS1302的原理图如图6所示:图6 DS1302原理图3.6 声光报警模块及接口电

18、路声光报警电路在AT89C51的控制下,可以根据不同的情况(火灾、异常、故障),发出不同的声光信号报警。由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。声报警电路由单片机的P10引脚进行控制,当P10输出的电平为高电平时,三极管导通,蜂鸣器的电流形成回路,发出声音报警;否则,三极管截止,蜂鸣器不发出声音10。声音报警器原理图如图7所示:图7 蜂鸣器报警原理图光报警的工作电流就没有声音报警需要的那么大,可以直接用单片机来驱动。光报警电路由单片机的P23引脚控制,当P23输出为高电平时,发光二级管两端电压相同,不

19、发光;当P23输出为低电平时,发光二级管正常工作并且发光。光报警器原理图如图8所示:图8 光报警原理图3.7 A/D模数转换的选择及接口电路A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。位数越高其分辨率就越高,价格也就越贵。A/D转换器型号很多,而其转换时间和转换误差也各不相同。逐渐逼近式A/D转换器:它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。双积分A/D转换器:它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。并行式A/D转换器:它又被称为flash(快速)型,

20、它的转换数度很高,但她采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域11。本设计选用的A/D转换器ADC0804。其原理图如图9所示:图9 ADC0804原理图4 系统软件设计4.1 简介KeilUvision2Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起。Keil有以下几个特点:1、 全功能的源代码编辑器;2、 器件库用来配置开发工具设置;3、 项目管理器用来创建和维护用户的项目;4、 集成的MAKE工

21、具可以汇编、编译和连接用户嵌入式应用;5、 所有开发工具的设置都是对话框形式的;6、 真正的源代码级的对CPU和外围器件的调试器;7、 高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信124.2 主程序设计本软件系统有一个主程序,两个子程序,两个个子程序分别为时钟芯片程序、液晶显示程序。本系统摒弃了传统的汇编语言而采用C语言进行程序设计。因为C语言的描述由函数组成,是一种结构化的程序设计语言,所以更容易实现模块化,而且具有可读性好,易于移植等优点,同时还有汇编语言一样的位操作功能的硬件详细控制指令。数据结构方面,可以使用结构体和数组,能够处理复杂的数据,

22、可用于实时处理系统13。多路数据采集系统控制器上采用AT89C51作为主控芯片,为了便于系统维护,在多路数据采集系统的软件设计中采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。既使得程序结构清晰,又便于以后进一步扩展其功能。本系统主要包括主程序、温度、烟雾和光强度数据采集子程序、时钟程序、数据异常判断与报警子程序等。系统程序流程图如图10所示。图10 程序流程图4.3 温度传感器程序设计由于设计采用的是模块化设计,系统实现报警功能是通过调用子程序实现的。在数据采集子程序中,一次温度烟雾信号采集延时10ms,是让ADC0804准备好进行下一次信号转换。当系统采集2次温度

23、烟雾信号后,转换好的数据存入单片机的寄存器中,系统再调用火灾判断子程序14。系统温度烟雾信号采集程序流程图如图11所示。图11 数据采集流程图在多路数据采集报警系统的程序设计中使用了延时程序,延时10ms的程序如下:void delay_10ms (uint i) while (i-) uchar i , j , k ; for (i=5 ;i0 ;i- ) for (j=4 ;j0 ;j- ) for (k=248 ;k0 ;k- ) ; 4.4 模数转换程序设计由温度、烟雾和光强传感器采集的数据,送至A/D转换器,在CS为低电平时,启动A/D转换器,经过四个时钟脉冲后,由DO开始一位一位的

24、读取并由函数存储数据,读完8位数据后,CS为高电平,此时关闭A/D转换器,将经过处理的数据返回,送至单片机15。模数转换程序设计流程图如图11所示。图11 模数转换程序设计流程图4.5 时钟模块程序设计时钟芯片的主要的主要功能是完成年、月、日、时、分、秒的及时,通过外部接口为单片机系统提供日历和时钟。所以一个最基本的实时时钟芯片通常会具有如下的一些部件:电源电路、时钟信号产生电路、实时时钟、数据存储器、通信接口电路、控制逻辑电路等。DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑1,如果D7=0,则禁止写DS13

25、02,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。时钟模块的流程图如图12所示:图12 DS1302流程图5 调试结果及结论这个系统是一个的数据采集系统。系统调试以程序为主,硬件调试应先检测电路的焊接是否正确,然后用万用表检测或通电检测其是否有短路或断路。

26、软件调试包括调试程序和对硬件准确性的调试。通过软件设置,当烟雾弄超过预设阀值时或光强度超过预设阀值或温度超过30时,进行声光报警。为了演示方便预设阀值都设置的较低。由于时间紧迫和个人能力有限,本文设计的火灾报警系统还存在许多需要完善和作进一步研究的问题,如:多路数据采集系统判断的算法有待进一步的研究改进,应用更先进的神经网络和模糊识别等智能算法,降低系统的误报率,提高灵敏度。多路数据采集系统没有联网,当发生异常报警时不能通过电话网络向消防指挥中心报警。用户不能根据自己的需要设定数据异常报警阈值。参考文献1 丁璐,李春华,杨戍.火灾探测技术的分析J.煤矿现代化.2007.4:29 31.2 吴龙

27、标,袁宏永.火灾探测与控制工程M.合肥:中国科学技术大学出版社.1999.11:1 20.3 范维澄.中国火灾科学基础研究概况J.火灾科学.2005.6:5762.4 Vaughn Bradshaw. The Building Environment: Active and Passive Control systemsM.John Wiley & Sons,2006.5 陈悦,刁若菲,刘志伟等.烟雾检测火灾报警系统的设计J.北京:微计算机信息,2007,23(8 2):93 95.6 陈汝全.电子技术常用器件应用手册M.北京:机械工业出版社.2004.10.7 毕满清,王黎明,高文华.模拟电

28、子技术基础M.北京:电子工业出版社.2008.6.8 韩焱,张艳花,王康谊.电子技术基础M.北京:电子工业出版社.2009.6.9 童长飞.CSO5lF系列单片机开发与C语言编程M.北京:北京航空航天大学出版社.2005.10 王忠民, 郝静, 张瑜.基于单片机的语音数字联网火灾报警器设计M.西安邮电学院.11 郝晓剑,杨述平,张连红.仪器电路设计与应用M.北京:电子工业出版社,2007.6.12 范红刚.51单片机自学笔记J.北京:北京航空航天大学出版社,200913 高云.基于MSP430的温室多路数据采集系统J.农机化研究,2009,No.814 常铁原,王欣,陈文军. 多路数据采集系统

29、的设计J.电子技术应用,2008,No.1115元增民,张文希.单片机原理与应用基础M.国防科技大学出版社,2006.附 录1、主程序(包括烟雾传感器、热释电传感器及报警系统程序)主程序对系统进行初始化,主要是进行定时/计数的初始化,然后调用键盘扫描程序Keys_Scan(),再根据按下的键来调用向串口发送数据子程序putc_to_serialport()将相应的数据发送给串行口。#include MyType.h#include LCD1602.h#include ds18b20.h#include DS1302.h sbit bz=P13;sbit re=P15;sbit ya=P16;

30、void main(void)Init_DS1302();LCD1602Init();/初始化1602DispStr(0,1,Time:);/提示信息DispStr(0,0,Temp: C);/提示信息while(1)re=1;ya=1;DispStr(6,0,get_temp_string();DispStr(6,1,show_date();delay(500);if(!ya)DispStr(15,0,S);elseDispStr(15,0, );if(re)DispStr(15,1,H);elseDispStr(15,1, );2、时钟芯片子程序 #include MyType.h#inc

31、lude LCD1602.h#include DS1302.h#include intrins.h/*从430上移植过来的*/unsigned char hour,minute;uchar time=_TIME_;/_TIME_为WINDOWS时间,格式为hh:ss:mmuchar value,key,EnableSet;uchar DS1302_OutputByte() /实时时钟读取一字节(内部函数) uchar value,i; value=0x00; for (i=8;i0;i-) value= value1; SetSDAIN; if (ReadSDA) value= value|0

32、x80; SetSCL; ClrSCL; return value; void DS1302_InputByte(uchar value)/实时时钟写入一字节(内部函数) uchar i; SetSDAOUT;for (i=8;i0;i-) if(value&0x01)SetSDA; else ClrSDA; SetSCL; ClrSCL; value=value1; uchar Read_DS1302(uchar Addr)/读取DS1302某地址的数据 unsigned char ucData; ClrRST; ClrSCL; SetRST; DS1302_InputByte(Addr|0

33、x01); / 地址,命令 ucData = DS1302_OutputByte();/ 读1Byte数据 SetSCL; ClrRST; return(ucData);void Write_DS1302(uchar Addr,uchar ucDa)/Addr: DS1302地址, ucData: 要写的数据 ClrRST; ClrSCL; SetRST; DS1302_InputByte(Addr); / 地址,命令 DS1302_InputByte(ucDa); / 写1Byte数据 SetSCL; ClrRST;void DS1302_SetProtect(uchar flag) /是否

34、写保护 if(flag) Write_DS1302(0x8E,0x10); else Write_DS1302(0x8E,0x00);uchar tran_input(uchar value)/输入数据入转换函数 return (value/10)4)*10 +(value&0x0F);void DS1302_SetTime(uchar Address, uchar value) /设置时间函数 DS1302_SetProtect(0); Write_DS1302(Address, tran_input(value); /重设时间void RescriptTime(uchar* IsSetTi

35、me)EnableSet=1;DS1302_SetProtect(0);/清除写保护/Addr: DS1302地址, ucData: 要写的数据(要将字符串转换成数值)Write_DS1302(0x84,tran_input(IsSetTime0-0)*10+IsSetTime1-0);/小时设置Write_DS1302(0x82,tran_input(IsSetTime3-0)*10+IsSetTime4-0);/分钟设置Write_DS1302(0x80,tran_input(IsSetTime6-0)*10+IsSetTime7-0);/秒钟设置DS1302_SetProtect(1);

36、/设置写保护EnableSet=0; void Init_DS1302()/初始化芯片 EnableSet=0; SetSCLOUT; SetRSTOUT; if(Read_DS1302(0x80)&0x80) DS1302_SetTime(0x80,0); RescriptTime(time); uchar* show_date(void) if(EnableSet=1)return 0;/如果正在设定时间就停止走 value=(Read_DS1302(0x81);/秒 key=Tran_Output(value); time6=( key/10 + 0); time7=( key%10 +

37、 0);/DS1302_SetTime(0x82,23); minute=value=(Read_DS1302(0x83);/分 key=Tran_Output(value); time3=( key/10 + 0); time4=( key%10 + 0);/DS1302_SetTime(0x84,16); hour=value=(Read_DS1302(0x85);/时 key=Tran_Output(value); time0=( key/10 + 0); time1=( key%10 + 0);return time;3、液晶显示程序Liquid crystal display pro

38、gram/1602驱动程序。#include MyType.h#include LCD1602.h/*从430上移植过来的*/(2)写指令,RS.RW=00void write_com(uchar com)RS=0;/RS为0表读或写指令。RW=0;/RW为0是写状态。E=1;/ E为高电平数据输入。P0=com;/指令输入。/uchar i=90;while(i-);/经调试,i=90是最短的延时时间了delay(1);/延时2ms,让数据稳定.E=0;/数据锁存。/(3)写数据,RS.RW=10void write_date(uchar date)RS=1;/RS为1表数据。RW=0;/R

39、W为0是写状态。E=1;/ E为高电平数据输入。P0=date;/数据输入。/uchar i=90;while(i-);/经调试,i=90是最短的延时时间了delay(1);/延时2ms,让数据稳定.E=0;/下降沿数据锁存。void LCD1602Init() /初始化。write_com(0x38);/8位数据线传送,2行5点阵。/write_com(0x28);/0x28=0010 1000, 4位数据线传送,2行57点阵,4位数据线传送则要传送两次D7到D4。write_com(0x0c);/显示开,光标关,闪烁关write_com(0x06);/输入模式设定显示一个字符之后向右移动一个位置,不移动write_com(0x01);/清显示. write_com(0x80);/从第一行第一个位置显示。/让液晶从某个位置起连续显示一个字符串void DispStr(uchar x,uchar y,uchar

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号