已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能温度控制报警器设计 电子与信息工程系 电子信息工程* * 指导老师 * 【摘 要】 本系统是基于单片机的智能温度报警控制器的设计。以STC89C52为核心,采用温度传感器DS18B20作为温度检测器,在液晶显示屏上显示实时温度。本温度计属于多功能温度计,它不仅可以实时显示温度,还可以设置上下限报警温度。当温度超过设置的上限温度或者低于下限温度时,蜂鸣器鸣响报警,同时利用继电器切断电源,起到保护电路的作用。【关键词】 智能温度;DS18B20;报警引 言 温度与人们的生活息息相关,随着经济社会的不断发展,对温度的检测也显得越来越重要。在现代农业上,温度对大规模化的农作物生产起到了关键作用,直接影响了农作物的生长和生产。因此掌握温度的变化显得尤其重要,而传统的温度计需要人工的实时监测,浪费时间人力等显然已经不能适用了。在现代工业上,温度对机器的影响也不容忽视,当温度过高时稍有不慎轻则造成设备的故障,重则造成人员伤亡。特别是针对一些高危设备,人工的温度检测不仅麻烦,容易造成误差,而且对于检测人员又有一定的危险性。于是对温度实时监控就显得至关重要了。本设计以温度传感器DS18B20为测温元件,STC89C52为核心,读取温度信息并写入控制信息:在液晶显示屏上显示温度,设置温度的上下限。我们可以针对不同的应用环境设置不同需求的温度上下限,当被测物体温度超过上限或低于下限温度时,蜂鸣器响动报警同时继电器断开电路。本温度计的设计与传统的温度计相比,不仅可以减少了人力的温度检测,而且具有测量准确、体积小、寿命长等优点。1.总体方案设计1.1方案比对 方案一在本设计中也可采用热敏电阻或者热电偶之类的作为测温原件,它们的工作原理是热电阻的电阻值随着温度的变化而变化,进而将被测的电流或者电压采集过来。如此对电路的设计会比较麻烦,软件设计也会比较复杂,需要用A/D转换后在进行数据处理。方案二在很多单片机测温电路中,大都是使用温度传感器。测温范围广,精度高,且电路设计简单。其中温度传感器DS18B20体积小,精度高,经济实用,且容易直接读取被测温度,满足设计要求。综合以上两种方案,我们采用方案二,其电路设计简单,用单片机即可实现基本功能,软件设计也较简单,所以采用方案二。1.2 总体方案设计图温度报警器总体方案设计如图1所示,控制器采用单片机STC89S52,可任意设定上下限温度报警功能;采用DS18B20作为温度传感器,测温范围为-50-110,误差小于0.5;用LCD液晶屏实现温度及时间日期显示。 控制器STC89C52辅助电路设置上下线报警单片机复位液晶显示拓展功能 DS18B20图1总体方案设计图本设计的系统框图如图1所示。该系统包含温度采集模块、显示模块、电源模块、报警模块、按键模块等几个部分组成。温度采集模块用来采集实时温度;显示模块用来显示温度,日期和时间;按键模块用于设置温度的上下限报警;电源模块对整个系统进行供电;报警模块即当温度超过上下限时进行报警提醒。其工作过程为:利用温度传感器DS18B20检测环境温度,在不同的应用环境设置不同的上下限温度,通过液晶显示器显示实时温度和时间,当环境温度值不在所设的范围内时,蜂鸣器报警提醒。同时拓展功能上,如有需要利用继电器断开外围电路,起到保护电路等作用。2. 系统组成及原理本系统包含温度采集模块、液晶显示模块、电源模块、控制模块、报警模块等5个主要模块。2.1 温度采集模块图2.1温度采集电路图2.1中DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接独处被测温度,并且可根据实际要求通过简单的编程实现。2.1.1 DS18B20主要特点温度采集模块采用温度传感器DS18B20测取温度信息,然后使用单片机STC89C52与温度传感器进行通讯,读取温度信息。DS18B20的主要特点如下:(1) 体积小,零待机功耗。(2) 测温范围广、精度高,测温分辨率可达0.0625。(3) 无需外部器件,电路设计简单。(4) 温度信息读取方便,仅需要一个端口引脚进行通信。2.1.2 DS18B20工作原理1 DS18B20的测温原理如图2.1.2所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2.1.2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。停止=0计数器2低温度系数晶振Lsb 置位/清除的预置温度寄存器=0低温度系数晶振比较计数器1预置斜率累加器图2.1.2 DS18B20测温原理图2.2 液晶显示模块 在温度报警器的工作过程中,系统需要对实时的温度和时间进行显示。使用液晶显示器显示。在本设计中采用LCD1602液晶显示器,它的主要特点如下2:(1)分表率高,显示质量好 (2) 数字式接口,设计简单,操作方便。 (3) 体积小,重量轻。 (4) 寿命长,功耗低。 图2.2显示电路显示模块采用的是LCD1602液晶显示器,图2.2中滑动变阻器R31用来调节LCD1602的亮度,使显示的更加清楚。2.3 温度报警器的电源模块图 2.3 电源电路系统仅需要单个电源,STC89C52使用5V稳压电源。采用三端稳压集成7805得到+5V的稳定电压。利用该方法方便简单,工作稳定可靠。电源变压器:是降压变压器,它将电网220V交流电压变换成12V的交流电压,并送给整流电路,变压器的变比由变压器的副变电压确定。整流电路:利用单向掉电元件,把59HZ的正弦交流电变换成脉动的直流电。滤波电路:可以将整流电路输出电压中的交流成分大部分加以滤除,从而得到比较平滑的直流电压。稳压电路:芯片7805稳压电路的功能是使输出的直流电压稳定,不随交流电网和负载的变化而变化。整流电路采用二极管桥式整流电路,在U正半周,二极管D8、D9导电,D6、D7截止;U的负半周时,D6、D7导电,D8、D9截止。正负半周均有电流流过负载,而且无论在正半周还是负半周,流过负载的电流方向是一致的,因而使输出电压的直流成分得到提高,脉冲成分被降低。桥式整流电路无需采用具有中心抽头的变压器,仍能达到全波整流的目的。2.4 温度报警器的控制模块图2.4 温度报警器主控制电路控制器主要用于对各模块控制显示、报警、计时等。采用STC89C52作为系统控制器的CPU方案。该单片机算术运算功能强,软件编程较灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛3。2.4.1 单片机外围复位电路图2.4.1 单片机复位电路要使主控芯片在上电时能正常复位,按照要求执行程序,必须在上电位时给主控单片机提供至少两个机器周期以上的高电位复位脉冲。图2.4.1是采用的上电复位电路,该电路在上电瞬间电源通过拉地的10K电阻充电,开始时的电流最大,电阻两端的电压最高,而后慢慢减小,直到电容充电完毕,电阻两端便保持低电平。此变化经单片机内部施密特触发器整形后便成了上电瞬间的一个高电平脉冲,只要这个脉冲保持两个机器周期以上便可以正常复位了4。2.4.2单片机外围时钟电路图2.4.2 单片机外围时钟电路图2.4.2的电路主要用来给单片机提供标准工作时钟。这里我们采用的是12MHz晶振,也就时说单片机的时钟周期为1/12S,指令周期为1S4。2.5 温度报警器的报警模块图2.5 温度报警器的报警电路 报警电路采用的是LED灯和蜂鸣器进行报警,其作用是当温度不在设定的范围内,LED灯亮,同时蜂鸣器报警。以此来提醒用户该注意实时的温度,避免因为温度的原因而带来的损害。3. 系统程序设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据子程序等。3.1 主程序流程图初始化读取温度设置键是否按下读出温度值温度计算处理显示数据刷新发温度转换开始命令NY调用显示子程序设置报警温度 图3.1 主程序流程图如图3.1所示主程序的主要功能是负责实时显示温度,设置报警温度线,每一秒进行读出处理DS18B20测量的温度值。3.2 温度读取转换流程图如图3.2.1温度读取程序主要是读出RAM中的9字节,再进行CRC校验,校验有错时直接结束程序,不进行温度数据的改写。如图3.2.2温度转换命令子程序主要是发温度转换开始命令。发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正移入温度暂存器YNNY结束发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束 图3.2.1 温度读取流程图 图3.2.2 温度转换流程图3.3 温度计算和显示流程图图3.3.1将RAM中读取的温度值进行BCD码的转换运算,并进行温度值正负的判定。 图3.3.2主要是对分离后的温度数据显示进行刷新,当标志位位为1时,将符号显示位移入第一位。 开始温度零下?温度值取补码置“1”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“0”标志NY 结束最高为显示分理出的数据最高位显示“”标志位为1?温度数据移入显示寄存器分离显示温度图3.3.1温度计算流程图 图3.3.2 温度显示流程图4. 系统调试4.1 KEIL软件介绍6Keil 是美国Keil公司的C51编译器,它被嵌入到了Keil uVision集成开发环境中。Keil是目前最常用的编译器,支持浮点等到类型,支持多维数组,能生成对应的汇编代码,能直接编译汇编代码程序和内嵌多种工具,可以方便的链接,生成可执行文件。Keil uVision 2 IDE 是Keil software 公司的产品,它集项目管理、编译工具、代码编写工具、代码调试以及完全仿真于一体,适合个人开发或人数少、对开发过程的管理还不成熟的开发团体。这一功能强大的软件提供简易的开发平台,可以让开发者在开发过程中集中精力于项目本身,加快开发速度。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,如图3.2所。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。C51工具包的整体结构,如图4-1所示,其中uVision 与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。图4.1程序调试图 图4.1为本设计的程序调试图,在经过调试也出现了许多问题,如:编译期错误、连接错误等。造成错误的主要原因是函数名书写错误或者分隔符不正确等。4.2 焊接 焊接之前,先画好电路图,做板子得注意的事项:(1) 画电路图时,布线要适当的设置线和焊盘的宽度,否则做出来的板子容易断线或者焊不上。(2) 在将电路图热转印到板子后,如果有一些线路没有印上,此时可以用防水黑色炭笔画上。(3) 用三氯化铁腐蚀板子时,应注意三氯化铁的浓度和腐蚀的时间。(4) 转孔的时候得注意焊盘,一不小心很容易把焊盘给转空了。(5) 最后在用钢刷刷转好孔的板子上的墨时,应控制力度,否则容易将铜线也刷掉。做好板子时候,焊接元器件应注意的事项:(1) 首先是先观察烙铁,看是否有氧化。因为氧化后的烙铁不上锡,不好焊接。如果烙铁氧化可用钢刷适当的刷下烙铁头,或者直接更换烙铁。(2) 焊接一些特殊原件,例如:石英晶振等,要注意焊接的时间和温度。当焊接时间过长时,容易烧坏元器件。(3) 焊单片机的引脚时,应小心焊接,以免短路。(4) 焊接时候,要掌握技巧,加热元器件脚和焊盘后在上锡,焊接上时以45角移开烙铁,这样可以有效避免虚焊。4.3 出现的问题(1) 在画电路板的时候,没有注意封装,lcd1602的封装搞错了,后来重新布线浪费了好多时间。(2) 在画电路图的时候把线布的太细,以至于做第一块板子的时候,焊盘太小无法焊接,后来只好重新做过一块板子了。(3) 在焊接一些特殊原件时候,如:二极管、三极管、和电解电容等,要注意它们的方向。(4) 在焊接的时候要注意不能焊接太久,在焊接电源插座时,因为焊接的时间过长,后来把铜板焊俏皮了,后来只好用一条导线接上。(5) 在焊接完所有元器件后,要注意检查电路,看是否有焊错、漏焊、或者虚焊等。在程序调试的时候,因为板子上有一个电阻虚焊了,以至于无法点亮lcd1602液晶屏。后来反复检查才找到原因。(6) 焊接的时候因为焊接技术不是很熟练,在焊接完后,发现整体元器件不协调,焊点不圆滑,走线也很乱,看上去不美观。(7) 在程序调试的时候,总会出现这样那样的问题,功能没有全部实现。这时候除了自己要多检查程序之外,还要多问问同学老师。4.4 调试结果做好板子焊好元器件后,进行程序编写。看了一些书和上网找了一些资料,在进行第一次调试时,因为板子的硬件问题没有调试成功,检查后发现是一个电阻虚焊了。在搞好板子之后做第二次调试,这时可以显示温度,但是无法驱动蜂鸣器使其报警。后来在同学的帮忙下,让蜂鸣器报警但仍无法显示时间。5. 单片机干扰7(1)单片机应用系统在实际工作过程中,难免会受到各种外部或内部的干扰,使系统发生异常情况。比如,因干扰使程序指针发生错误时,可能会将非操作码执行,造成程序执行的混乱(跑飞)或进入死循环,甚至可能会损坏元器件。(2)干扰窜入应用系统的主要渠道有三条:通过电磁波辐射窜入系统的空间干扰;通过输入/输出通道窜入的通道干扰;电源的干扰。防止干扰最有效的方法是去除干扰源,隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的就是复位;所以单片机软件干扰最重要的是处理好复位状态8。在本设计中受到的单片机干扰不大,也无造成程序执行的混乱,程序调试还算顺利。6. 设计展望 (1)本设计应用范围很广,可以根据具体的应用环境而进行拓展。例如:在农业应用上,在外围设备可接二氧化碳发生器,当温度低于或者超过预设值时,做相应的发生和断开二氧化碳发生器。 (2)本设计还有许多不足的地方,例如若能够加设一个串口通讯,就能实时的记录温度变化;另外在设计时间显示的时候,因为当初考虑到可以利用单片机的定时器做一个时钟,就没有想到用时钟芯片,调试起来的时候发现要实时的显示时间还是挺困难的。7. 总结和致谢毕业设计是对大学阶段所学知识的一个总结。在本次的毕设中,我利用单片机STC89C52和C语言的设计和应用,设计“智能温度控制报警器”作为我的毕业设计。在本次毕业设计中,作为一个初学者,由于自身的知识水平有限,在设计过程中碰到了许多问题。在同学和老师的帮助下解决了一些想到的问题。某些问题可能想的不够周全或者没有想到,希望老师给予指出。作为一个初学者,从想法的产生,到想法在理论上的可行性,以及到最后的设计完成,无不需要突破种种困难,但是我都一一挺了过来。虽然过程很艰苦,但是当做完以后心里是无法言以表达的激动。它对我以后的设计思想、设计方法、设计过程都将会产生深远的影响。学会查阅资料是我在这次设计中的最大收获,毕竟一个人的知识水平有限,而资料在设计中的作用可以说是举足轻重。不断地收集和查阅资料使我知识面不断拓宽,为以后也打下了良好的基础。通过设计,使我对一个产品的设计过程有了全面的了解,设计过程中出现的许多困难也使我自己不断完善。不断的坚持使我信心百倍,我会以后继续努力。在设计过程中感谢廖延初老师的悉心指导以及同学们的帮助,廖延初老师深厚的学术功底、严谨的治学态度、和蔼可亲的为师之道和不知疲倦的进取精神,让我受益颇深,为我树立了人生道路上的榜样,是我今后从事各项事业的楷模。参考文献1 百度文库DS18B20工作原理/view/1134cc8271fe910ef12df858.html 2 百度文库LCD1602中文资料/view/01b9e7eb856a561252d36fa5.html3 AT89S51单片机介绍/haiyang caj/blog/item/ca627c1680c1d1421a4 魏立峰,王宝兴单片机原理与应用技术,北京大学出版社,2007,21-245 杨素行模拟电子技术基础简明教程,高等教育出版社,2004,514-5296 东哥单片机学习网 Keil C51基础知识(1) 2008-03-027 单片机系统应用的抗干扰措施/files/wx/ybjs 2005-4/30.htm8 单片机的抗干扰。/view/6b720289680203d8ce2f2490.html Intelligent temperature control alarm design Electronic and information engineering Electronic and information engineering 118542007113 Zhenkun.huang Instructor Yanchu.liao【Abstract】The system is based on single chip microcomputer intelligent temperature alarm controller design. With 89c51 as the core, and adopting the temperature sensor DS18B20 as temperature detector, on the LCD screen displays real-time temperature. The thermometer belongs to the multifunctional thermometer, it not only can real-time display temperature, still can set upper alarm temperature. When temperatures exceed the limit set temperature or below the lower limit temperature, at the same time use buzzer ring alarm relay to cut off power supply, have protection circuit function.Keywords: Intelligent temperature; DS18B20;alarm;附录一:原理图和PCBA1 原理图A2 PCB图附录二:硬件实物图A3 硬件实物图正面A4 硬件实物图反面附录二:程序清单unsigned char Count;unsigned char code SONG = /祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00, /路边的野华不要采0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,;/*-功能:1MS延时子程序-*/void Delay_xMs(unsigned int x) unsigned int i,j; for( i =0;i x;i+ ) for( j =0;j3;j+ ); /*-功能:歌曲播放子程序i为播放哪一段曲目-*/*-功能:主程序-*/#include #include #include #define uchar unsigned char#define uint unsigned intsbit DQ = P36 ; /定义DS18B20端口DQ sbit BEEP=P32;sbit UP=P33;sbit DOWN=P34;sbit BJ=P31; sbit JR=P30;sbit MUSIC=P35; bit presence ;sbit LCD_RS = P24 ; sbit LCD_RW = P25 ;sbit LCD_EN = P26 ;uchar code cdis1 = DS18B20 OK ;uchar code cdis2 = TEMP: . C ;uchar code cdis3 = DS18B20 ERR0R ;uchar code cdis4 = PLEASE CHECK ;unsigned char code dis1 = play the song;unsigned char code dis2 = Hope you healthy-Sun Yue;unsigned char data temp_data2 = 0x00,0x00 ;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00 ;unsigned char code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09 ;unsigned char code mytab8 = 0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00 ;uchar LIM,tt,LIM2,XX;#define delayNOP() ; _nop_() ;_nop_() ;_nop_() ;_nop_() ; ;/*/void delay1(int ms)unsigned char y ; while(ms-) for(y = 0 ; y250 ; y+) _nop_() ; _nop_() ; _nop_() ; _nop_() ; /*/*检查LCD忙状态 */*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */*/ bit lcd_busy() bit result ; LCD_RS = 0 ; LCD_RW = 1 ; LCD_EN = 1 ; delayNOP() ; result = (bit)(P0&0x80) ; LCD_EN = 0 ; return(result) ; /*写指令数据到LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */*/void lcd_wcmd(uchar cmd) while(lcd_busy() ; LCD_RS = 0 ; LCD_RW = 0 ; LCD_EN = 0 ; _nop_() ; _nop_() ; P0 = cmd ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /*/*写显示数据到LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */*/void lcd_wdat(uchar dat) while(lcd_busy() ; LCD_RS = 1 ; LCD_RW = 0 ; LCD_EN = 0 ; P0 = dat ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /* LCD初始化设定 */*/void lcd_init() delay1(15) ; lcd_wcmd(0x01) ; /清除LCD的显示内容 lcd_wcmd(0x38) ; /16*2显示,5*7点阵,8位数据 delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; /显示开,关光标 delay1(5) ; lcd_wcmd(0x06) ; /移动光标 delay1(5) ; lcd_wcmd(0x01) ; /清除LCD的显示内容 delay1(5) ;/* 设定显示位置 */*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80) ; /数据指针=80+地址变量/*自定义字符写入CGRAM */*/void writetab() unsigned char i ; lcd_wcmd(0x40) ; /写CGRAM for (i = 0 ; i 0 ; i-) DQ = 0 ; / 给脉冲信号 dat = 1 ; DQ = 1 ; /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拒绝黄赌毒课件
- 西华师范大学《民事诉讼法学》2022-2023学年期末试卷
- 校百科知识竞赛500题及答案大全
- 西昌学院《教育科学研究方法》2022-2023学年第一学期期末试卷
- 刘胡兰故事课件
- 浙教版2023小学信息技术三年级上册《进入在线平台》说课稿及反思
- 《民法典》前50年租赁合同
- 2025届高考历史统考一轮复习模块2经济成长历程第9单元资本主义运行机制的调节和苏联的社会主义建设单元综合提升教师用书教案北师大版
- 底商预售合同模板
- 宁夏工商装修合同范例
- 2024年-倒板施工合同方案
- (高清版)DZT 0432-2023 煤炭与煤层气矿产综合勘查规范
- 新能源汽车行业技术发展趋势分析报告
- 《干部监督有关知识》课件
- 扩建办公楼项目可行性研究报告
- 大学生职业生涯发展规划智慧树知到期末考试答案2024年
- b方太营销组织岗位角色与职责设计
- 送教上门教师培训课件
- 湖北省武汉市洪山区武珞路小学2023-2024学年四年级上学期期中测试数学试题
- 慢病防控知识培训
- 维护祖国统一和民族团结
评论
0/150
提交评论