《基于单片机数字温度计设计.doc》由会员分享,可在线阅读,更多相关《基于单片机数字温度计设计.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 2012届本科生毕业论文题目: 基于单片机的数字温度计的设计 作 者 姓 名: 戴 佳 学 号: 2008080408 系 (院):机械与电子工程学院 专 业:电机工程及其自动化 指导教师姓名: 胡 学 青 指导教师职称: 讲 师 2011年 12月 18日SuZhou UniversityYear 2012 Bachelor Graduation assignment(Design) Title: Chip digital thermometer design Author: Daijia Student ID: 2008080408 Department: College of mech
2、anical and Electionic EngineeringMajor: Electrical engineering and actomationInstructor: Huxueqing Professional Title: lecture December 18th, 2011摘 要随着时代的进步和发展,单片机技术已经普及到我们的生活、工作、科研、各个领域,已经成为一种比较成熟的技术。本文介绍一种基于AT89C51单片机的一种温度测量,该电路采用DS18B20作为温度监测元件,测量范围-30-150。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,
3、AT89C51单片机功能和应用。该系统可以方便的实现温度采集和显示,并可根据需要设定上下限温度,它使用起来具有精确度高、测量广、灵敏度高、体积小、功耗低等优点。该电路设计新颖、功能强大、结构简单,有广泛的应用前景。关键词:温度测量; DS18B20 ; AT89C51ABSTRACT Along with the progress and development of the ages,single slice the machine technigue has already make widely availablc the life is to us,work,research,each
4、 reach,have alrealy become the technique of a kind of comparison maturity.The introduction of a cost-based AT89C51 MCU a temperatur measurement circuits, the circuits used DS18B20 high-precision temperatur sensor , measuring scope -30+150。The paper focuses on providing a software and hardware system
5、 components circuit, introduced the theory of DS18B20, the founctions and applications of AT89C51 .System can easily to collect and display the temperature,it can also arbitrary set alarm temperature according to the accrual need.It is used convenience ,it has high precision ,wide range,high sensiti
6、vity,small size,and low power disspition,This circuit design innovative, powerful, can be expansionary strong,turu into as a complementary expansion.Key Words : Temperatur measurement ; DS18B20 ; AT89C51目 录引 言11 器件简介21.1 AT80C51 简介21.1.1 AT89C51简介21.1.2 管脚说明21.2 DS18B20 简介41.2.1 DS18B20简介4 1.2.2 DS1
7、8B20的性能特点4 1.2.3 DS18B20的内部结构4 1.2.4 DS18B20 的测温5 1.3 LCD 液晶显示62 系统设计7 2.1设计方案7 2.2 总体设计框图73 系统硬件软件设计方案8 3.1硬件设计8 3.1.1主板电路8 3.1.2 复位信号及外部复位电路9 3.1.3温度传感器与单片机的连接9 3.1.4温度控制及超温和超温警报单元10 3.1.5液晶显示电路11 3.2软件设计12 3.2.1 主程序12 3.2.2 读出温度子程序12 3.2.3显示数据子程序13结束语14致 谢15参考文献16附 录17宿州学院毕业论文(设计) 引言引 言随着人们生活水平的不
8、断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用4位共阳极LCD串口传送数据,实现温度显示,能准确达到以上要求。26宿州学院毕业论文(设计) 器件简介1器件简介1.1 AT89C51简介1.1
9、.1 AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。1.1.2
10、管脚说明如图1 为AT89C51引脚图,各引脚功能说明如下:VCC: 电源GND: 地图1 AT89C51引脚图 P0 口:P0口是一个8位漏极开路的双向I/O口。 作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高
11、,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)P2口:P2口是一个具有内部上拉电阻的8位双向I/O 口,P2 输出缓冲器能驱动4个TTL逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口
12、使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口,对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C51特殊功能(第二功能)使用,如表1-1所示。表1 AT89C51引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断
13、0)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST:复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出69个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来
14、作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。1.2 DS18B20 简介1.2.1 DS18B20 简介DS18B20温度传感器是采用美国DALLAS公司生产的 DS18B20可组网数字温度传感器芯片,经焊接,外加不锈钢保护管封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间
15、设备数字测温和控制领域,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。1.2.2 DS18B20的性能特点1)独特的单线接口仅需要一个端口引脚进行通信;2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;4)可通过数据线供电,电压范围为3.05.5V;6)温度以9或12位数字;7)用户可定义报警设置;8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;1.2.3 DS18B20的内部结构I/OC64位ROM单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器VddDS18B20的内部结构框图如图1-1所示。图
16、2 DS18B20内部机构DS18B20内部结构主要由四部分组成:1)64位光刻ROM2)温度传感器3)非挥发的度报警触发器TH和TL4)配置寄存器。1.2.4 DS18B20 的测温原理DS18B20 的温度传感器是通过温度对振荡器的频率影响来测量温度,如图4 所示。DS18B20 内部有两个不同温度系数的振荡器。低温系数振荡器输出的时钟脉冲信号通过由高温系数振荡器产生的门开通周期而被计数,通过该计数值来测量温度。计数器被预置为与- 55对应的一个基数值,如果计数器在高温系数振荡器输出的门周期结束前计数到零,表示测量的温度高于- 55,被预置在- 55的温度寄存器的值就增加一个增量,同时为了
17、补偿和修正温度振荡器的非线性,计数器被斜率累加器所决定的值进行预置,时钟再次使计数器计数直至零,如果开门通时间仍未结束,那么重复此过程,直到高温度系数振荡器的门周期结束为止。这时温度寄存器中的值就是被测的温度值。这个值以16位二进制补码的形式存放在便笺式存储器中。温度值由主机通过发读存储器命令读出,经过取补和十进制转换,得到实测的温度值。低温度系数振荡器 高温度系数振荡器停止+1预置计数器温度寄存器=0计数器=0斜率累加器预置比较器 图3 DS18B20测温原理1.3 LCD 液晶显示显示器是人与机器沟通的重要界面,本文采用LM016L做为显示屏。LM016L液晶模块采用HD44780 控制器
18、,HD4478具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,HD44780 控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数 RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器 RAM AC 。IR 用于寄存指令码,只能写入不能读出,DR 用于寄存数据,数据由内部操作自动写入 DDRAM 和 CGRAM,或者暂存从 DDRAM 和 CGRAM 读出的数据,BF 为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存
19、储显示的字符,能存储 8个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10 点阵字符 32 种。如图1-3所示,用89C51的P2口作为数据线,用P3.2、P3.1、P3.0 分别作为 LCD 的 E、R/W、RS。其中 E 是下降沿触发的片选信号,R/W 是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为 8 位,显示行数为 1 行,字型为 57 点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据
20、被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。宿州学院毕业论文(设计) 系统设计2 系统设计2.1 设计方案选用AT89C51型单片机作为主控制器件,DS18B20作为测温传感器,通过4个共阳极LCD串口传送数据,实现温度显示1。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在-30150最大误差小于正负0.5。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传
21、输与处理过程。 2.2 总体设计框图 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89C51,温度传感采用DS18B20;用LCD实现温度显示。 模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,处理后的数据送到LCD中显示。图4 总体设计方框图宿州学院毕业论文(设计) 系统硬件软件设计3 系统硬件软件设计3.1 硬件设计3.1.1 主板电路主板电路如图2所示。图中包括AT89C51单片机、时钟电路和复位电路、发光二极管、按键设置报警电路、液晶显示模块、上拉电阻、蜂鸣器、DS18B20温度传感器。图2有4个独立键按键,可以分别调整温度计的上下限报警设
22、置,当被测温度不在上下限范围时,图中的蜂鸣器就会发出报警声音,LCD显示屏可以显示测出的温度值;图中的按键复位电路是上电加手动复位,使用比较方便2。图5 单片机主板仿真图3.1.2 复位信号及外部复位电路单片机的端口是看门狗电路中喂狗信号的P1.6 MAX813输入端即单片机每执行一次程序就设置一次喂狗信号,清零看门狗器件3。若程序出现异常单片机引脚将出现两个机器周RST期以上的高电平,使其复位。该复位信号高电平有效,其有效时间应持续24个振荡脉冲周期即两个机器周期以上4。若使用频率为12MHz的晶体振荡器,则复位信号持续时间应超过2us才完成复位操作 3.1.3 温度传感器与单片机的连接温度
23、传感器的单总线(1-Wire)与单片机的P2.0连接,P2.0是单片机的高位地址线A8。P2端口是一个带内部上拉电阻的8位双向I/O,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路5。对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,如执行MOVX DPTR指令, 则表示P2端口送出高8位的地址数据.在访问8位地址的外部数据存储器时, 可执行MOVX RI指令, P2端口内容即为特殊功能寄存器(SFR)区中R2寄存器内容,整个访问期间不改变
24、.在Flash编程和程序校验时, P2端口也接收高位地址和其他控制信号. 图3为DS18B20内部结构6。图4为DS18B20与单片机的接口电路。I/OC64位ROM单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd图6 DS18B20的内部结构图7 DS18B20与单片机的连接3.1.4温度控制及超温和超温警报单元当采集的温度经处理后超过规定温度上限时,单片机通过 P1.4 输出控制信号驱动三极管 D1 ,使继电器 K1开启降温设备 ( 压缩制冷设备 ) :当采集的温度经处理后低于设定温度下限时,单片机通过 P1.5 输出控制信号驱动三极管
25、D2 ,使继电器K2开启升温设备( 加热1)7。当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。如图5:图8 具体电路连接图3.1.5液晶显示电路 在液晶显示的电路设计中选择具有单向输出数据功能的PO端口向液晶显示模块提供数据,P2.5、P2.6、P2.7口作为液晶显示模块的端口,在PO口上需要外加上拉电阻,才可以是液晶显示模块正常显示如图6.图9 液晶显示电路仿真图3.2 软件设计3.2.1 主程序 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当
26、前温度值,温度测量每1s进行一次8。其程序流程见图7所示。 3.2.2 读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验。CR为Cyclical Redundancy Check (循环冗余检验)的缩写,是一种使用广泛、检错能力很强的差错检测方法。它对数据进行多项式计算,并将得到的和数作为这个文件的一个实用的特征码。校验有错时,不进温度数据的改写9。其程序流程图如图8所示。 图10 主程序流程图 图11 读温度流程图3.2.3显示数据子程序显示数据子程序主要是对显示缓冲器中的显示数据进行操作10,11。当最高显示位为0 时,将符号显示位移入下一位,程序流程
27、图如图9所示。图12 数据显示流程图宿州学院毕业论文(设计) 结束语结束语这次的毕业设计将这三年所学的单片机和C语言以及PROTEL的理论知识用到具体的实践中去,深化了理论知识,同时也锻炼了动手实践能力,有了以前的练习为前提做起来也比较的这顺利。不过在具体的实践的时候还是遇到了一些小的问题,比如数据类型的定义错误,字符的错误输入等等,这些虽然都是小问题,不过在具体实践过程中却浪费了不少时间,看来平时要多多的实践才是,除了要考虑问题周到还要多多注意一些细小的问题才是,做的熟练了问题也很容易的解决。通过本次的课程设计对PROTEL的功能又多了些了解,同时也较为熟悉的掌握了C这门语言。一开始的时候遇
28、到了不少小问题,后来多和同学讨论,多看看书,理论联系实践,许多问题就迎刃而解了。在本次的课程设计中觉得应该注意程序的设计。虽然不是很难,但很多细小的问题需要认真的对待,稍有不注意问题就会在具体的应用程序调试过程中出现,这要求在实践的过程中除了要了塌实的理论知识还要细心,有耐心。当然在本次的设计过程中还出现了其他不少的问题,问题随着设计思想的深入而不断变化,不断的产生新问题,而在这过程中不断的解决问题,正是在这一过程中,加深了对原理的认识,完善了设计思想,使自己分析问题解决问题的能力得到进一步的加强。当然在这次宝贵的毕业设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识
29、的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。但是,光是完成了作品还是不可以自我满足的,在从一开始的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度,我想这个目的将在不远的时期内被实现。总之,这次设计从软件编写、调试到软硬件联机调试,我倾注了大量的时间和心血。真是曾经为程序的编写而冥思查找过,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹豫彷徨过,但最终我成功了。因为我不仅品味到了结果的喜悦,更明白了过程的弥足珍贵宿州学院毕业论文(设计) 致谢致 谢在大
30、学学习生活即将结束之际,对四年来曾关心、指导、帮助和鼓励过我的老师、同学们表示衷心的感谢。让我们共同分享完成论文的喜悦。感谢指导老师胡学青老师在论文的选题、实验设计与论文的撰写过程中,自始至终以严谨的治学作风和崇高的责任心给予了全面的指导。同时也感谢班级同学及其他老师在设备和实验方面给予的帮助。感谢我的朋友们在我四年本科生的学习、工作和生活中对我的支持、理解与鼓励。最后,祝愿所有老师和同学在今后的工作、学习和生活中事事顺心,心想事成。宿州学院毕业论文(设计) 参考文献参考文献1 王迎旭 . 单片机原理与应用J.北京.机械工业出版社.2004.2.7:23-302 夏晓玲. 基于AT89C205
31、1的数字温度计的设计J.鄂州大学学报,2005,12(3):38-40. 3 A.A.Girgis,J. Qiu.Measurement of parameters of aSlowlyT ime-Varying High-Frequency Transient.IEEE Trans on Instrum MeasM 1989,38(6):1057-1063 4 胡伟,季晓衡.单片机C程序设计及应用M. 北京:人民邮电出版社,2004.:58-725 全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001), 北京:北京理工大学出版社,20036 C.H.Diy.C
32、alculated Performance of A DigitalS ampling Wattmeter Using Sys tematic Sampling.IEEP roc.SCIENCEJ1 982,129(3):172-1757 王金亮,张强.数字温度传感器DS18B20 在化学工业中的应用J. 国外电子测量技术,2005(24):18-218 曹冬.基于AT89S51 的新型打铃器的研制J. 现代电子技术,2005(10):20-21.9 居荣,郭怡倩.DS18B20 在温控系统中的应用J. 农机化研究,2005(1):224-226. 10 韩志军,刘新民.数字温度传感器DS18
33、B20 及其应用J. 南京工程学院学报:自然科学版,2003(1):9-1.11 P.S.Wirght,P. Pickering.An Ac Voltage Based on a PWM DAC IEEE Trans onInstrum MeasM,1999,40(2):457-461.宿州学院毕业论文(设计) 附录附 录程序#include #include #include #define uchar unsigned char#define uint unsigned intsbit DQ =P27 ;sbit TEMP_UP =P01 ;sbit TEMP_DOWN=P02;sbit
34、key3=P34; /温度升sbit key4=P35; /温度降void uart_init() SCON=0X50; /串口模式1,8位异步,允许接收TMOD=0X21; /定时器1工作在自动重装模式 定时器0工作在1模式TL1=0XFD;/波特率9600TH1=0XFD; TH0=0x4c; TL0=0x00; ET0=1; TR0=1;PCON=0;/波特率不倍增TI=0;TR1=1;REN=1;ES=1;EA=1;void uart_send(uchar date)SBUF=date;while(!TI);TI=0;void receive()interrupt 4 using 1i
35、f(RI)RI=0;/datesigna2=SBUF;uart_send(SBUF);/if(signa2=4)uchar h_b1(uchar temp ,uchar n)uchar date;if(n=1) temp=temp&0x0f;else temp=(temp4)&0x0f;switch(temp) case 0x00:date=0;break; case 0x01:date=1;break; case 0x02:date=2;break; case 0x03:date=3;break; case 0x04:date=4;break; case 0x05:date=5;break;
36、 case 0x06:date=6;break; case 0x07:date=7;break; case 0x08:date=8;break; case 0x09:date=9;break; case 0x0a:date=10;break; case 0x0b:date=11;break; case 0x0c:date=12;break; case 0x0d:date=13;break; case 0x0e:date=14;break; case 0x0f:date=15;break;return date;h_b3(uchar h_hex,uchar l_hex) uint shu; sh
37、u=h_hex*256+l_hex; return shu; if(key1=0) /温度升 delay10ms(); if(key1=0) if(DEF_TH1) DEF_TH-; DEF_TL=DEF_TH-1; while(key2=0); void main(void)/ COM=0x80;/ Lcd_Init();/ hanzi_Disp(0,1,智能温湿度);/ hanzi_Disp(1,0,测 量 装 置);/ hanzi_Disp(2,0,当前湿度 %RH);/hanzi_Disp(3,0,当前温度 ); uchar i;/float SRH_f,T_f; P2=0X00; u
38、art_init();lcd_init();/ 初始化LCDdelay(10); lcd_pos(0x40);i = 0;while(dis1i != 0)lcd_wdat(dis1i);/ 显示字符 i+; lcd_pos(0x80);i = 0;while(dis2i != 0)lcd_wdat(dis2i);/ 显示字符 i+; while(1) EA=0; RH(); SRH=h_b3(U8RH_data_H,U8RH_data_L); T= h_b3(U8T_data_H,U8T_data_L); EA=1; lcd_pos(0x40); temp_disp(T); lcd_pos(
39、0x4c); /设定显示位置 temp_disp(DEF_TH*10); lcd_pos(0x80); temp_disp(SRH); lcd_pos(0x8C); /设定显示位置 temp_disp(DEF_SRH*10); / shuma_display(SRH);/ Delay1(10000);/ SRH=SRH/10; / T=T/10; if(SRHDEF_SRH*10) SRH_DOWN=1; else SRH_DOWN=0;LCD显示程序#define uchar unsigned char#define uint unsigned int/*LCD接口定义*/sbit LCD_RS = P20; /1:输入数据 ;0:输入命令sbit LCD_RW = P21; /1:读数据 0:写数据sbit LCD_EN = P22; /LCM使能端/sbit LCD_PSB = P23; /串并口选择 1:并口模式; 0:串口模式;#define LCD_DATA P1 /LCD总线端口/*LCD功能初始化指令*/#define CLEAR_SCREEN 0x01 /清屏指令:清屏且AC值为00H#define AC_INIT 0x02 /将AC设置为00H。且游标移到原点位
限制150内