基于单片机的智能窗帘控制系统设计
目 录
摘 要 I
Abstract II
引 言 1
1 控制系统设计 3
1.1 系统方案设计 3
1.2 系统工作原理 4
2 硬件部分设计 6
2.1控制模块设计 6
2.2 时钟模块 8
2.3红外线接收模块 9
2.4 光敏检测模块电路 9
2.5 步进电动机控制电路 10
2.6 液晶显示 11
2.7电源电路 12
3 系统原理图 13
4 软件设计 14
4.1系统主程序设计 14
4.2 步进电机子程序设计 14
4.3 按键子程序设计 15
5焊接与调试 17
5.1 电路焊接 17
5.2 系统调试 17
结 论 19
参考文献 20
附录1 原理图 22
附录2 源程序清单 23
致 谢 27
摘 要
为了解决家居环境中手动调节窗帘调整采光避光问题,满足人们智能地调控窗帘的需求,本文设计了单片机控制的智能窗帘系统。该系统含两种控制方式:手动和自动。当处于手动控制状态时,人们可以自主选择打开关闭窗帘。当系统是自动控制状态的时候,利用光照传感器与光敏电阻来进行当前环境的检测,系统控制功能则由单片机完成。单片机将检测到的光强数据经过分析处理传递给执行模块,从而控制电动机正反转。该窗帘系统能够根据所处环境的光照强度与时间来实现窗帘的自动打开和关闭,当光照强度比最低预设值小的时候,窗帘自动打开,相反,光照强度超出最高预设值时,窗帘自动关闭。
本次所设计智能窗帘系统不仅能够根据光照变化实现窗帘的自动打开与关闭控制,而且可以通过设定的时间进行窗帘的开关,操作简洁易懂。
这款用单片机控制的窗帘控制彻底解放人们亲自开窗帘的麻烦。整套系统在运行中表现极好,其智能、便捷的特点也备受消费者的欢迎。
关键词:STC89C52单片机;光强检测;ULN2003驱动芯片;显示模块
Abstract
In order to solve the problem of manually adjusting the curtain to adjust the light and avoid the light in the home environment, and to meet the needs of people to intelligently adjust the curtain, an intelligent curtain system controlled by single chip microcomputer is designed. This system includes two control modes: manual and automatic. When it is under manual control, people can choose to open the curtains. When the system is in the state of automatic control, people can open and close the curtains at their own discretion.and the system control function is completed by single chip microcomputer.The single-chip microcomputer transmits the detected light intensity data to the executive module through analysis and processing, so as to control the forward and reverse rotation of the motor. The curtain system can automatically open and close the curtain according to the light intensity and time of the environment. When the light intensity is smaller than the minimum preset value, the curtain will automatically open. On the contrary, when the light intensity exceeds the maximum preset value, the curtain will automatically close.
The intelligent curtain system designed in this paper can not only realize the automatic opening and closing control of curtain according to the change of light, but also can switch the curtain through the set time, the operation is simple and easy to understand.
The curtain control controlled by single-chip microcomputer completely liberates the trouble of people opening the curtain themselves. The whole system performs well in operation, and its intelligent and convenient features are also popular with consumers.
Keywords: STC89C52 single chip;light intensity detection; ULN2003 driver chip; display module
引 言
一般认为智能家居电器系统的出现将会给人们的生活带来品质上的提升与改善。其实智能化、自动化家居电器正在一步一步的迈向人们所期盼的生活,其中最显著的变化就是系统的方便性、实用性、易整合性。
在提高人们生活水平改善人们对美好生活的需要起着极大作用的智能系统,有着安全、方便、快捷、智能和个性的特点,因此智能家居的市场前景非常广阔。
开关窗帘遮挡阳光是家居窗帘的基本功能,但如果使用原来的手动窗帘,用户必须要通过自己感知光照强度进行拉动窗帘调节;早晨开启晚上关闭也只能是手动进行;如果用户过忙或距离窗户过远而不方便拉窗帘,就会使用户感觉手动拉窗帘的麻烦,上述一系列使用传统窗帘可能带来的问题,为智能控制窗帘系统提供了很大的发展空间。
本次设计是为了解决人们开窗帘不方便的诸多问题,主要的功能是在自动模式下实现,通过传感器和光敏电阻的检测驱动电动机进行正反转来实现窗帘的打开与关闭,在手动模式下,用户可以通过按键实现一键开窗一键关窗。用户同样可以通过红外线遥控控制窗帘开关。
人们的生活跟随着科技的迅速发展开始对智能化、实用化等产品的需求量与日俱增。智能化产品的大量生产和使用使科学力量更贴近日常生活,这样高大上的科学技术也已经渗透到我们生活中的绝大多数领域,同时也激发了更多的人们对科普知识的浓厚兴趣。生活中各种电子产品的控制被人们提出了许多高标准,不但要求智能自动而且还要求质量过关。当然,各种智能家居系统作为现代人追捧的消费对象也不例外。智能家居既有居住功能,又改善了人们大部分不方便的生活方式。智能窗帘起源于欧美等国家,是一种新兴起的行业。但在各项人工智能家具中针对智能窗帘这个方面的研究我国暂时没有得到很大的重视和研究,甚至可以用没有什么改变来形容。虽然有很多国家的各大厂家及研究人员对智能窗帘都有较深的了解与研究,但是他们所研究出来的窗帘只能通过消费者手动按键或者拉动的方式对窗帘开闭进行相应的调整,不够智能化,不能够满足现代人的诸多需求。因此智能窗帘也有很大发展空间,其市场研究价值很高,并且渐渐的这种生活模式将会吸引社会的很大关注。
在大多数普通人群的生活中,能够根据外界环境的不断变化而使硬件本身功能随之变化的智能窗帘并不常见。普通的窗帘在生活中就仅仅只能一个功能,只能通过人工的方式去进行操作。在科技如此发达的今天,普通的窗帘存在很多不便利的问题,已经不能够满足消费者的多方面需求了。在目前的市场发展角度上看,质量优秀、更智能、实用度高的窗帘更会受到更多人的喜爱。
本文基于STC89C52设计的智能窗帘控制系统,总体分为五个部分,主要内容:
第一章:控制系统设计。通过系统的选题背景和研究目的提出自己的系统设计方案。
第二章:硬件部分设计。主要介绍单片机模块、电机模块、光敏检测传感器、红外检测等模块。
第三章:系统原理图。将各个硬件模块通过Proteus软件进行仿真。
第四章:软件设计。介绍系统设计软件框图。
第五章:PCB板焊接。介绍系统焊接事项及调试过程。
1 控制系统设计
1.1 系统方案设计
单片机应用于多种电子产品中所取得的便捷性受到了人们的广泛喜爱,对于自动窗帘控制系统对单片机应用的智能化要求,实现自动控制的方案有两种:
方案一 以单片机为基础的温度及声控检测器件的自动控制。
方案二 以单片机为基础的光照强度及时钟模块的自动控制。
方案比较:
相同点:都是通过单片机控制的,利用步进电机控制开关以及以液晶屏显示。
不同点:检测器件的选取不同。
方案一系统框图如图1.1。
图 1.1 方案一框图
方案二系统框图如图1.2。
图 1.2 方案二框图
两种方案比较的差别主要是在检测器件的选择上,方法一主要以温度采集和声音检测元件作为检测器件,通过设定的温度及声音检测开关窗帘从而减少光照对室内的温度影响,利用声音控制虽然很方便,但容易造成较大的误差。方法二主要以时钟模块以及光照采集元件,通过设定光照值来控制窗帘的打开与关闭从而实现白天开窗帘,晚上关窗帘的功能,利用设定的时间来控制窗帘的开闭,实用性更强[1]。综合考虑以上因素,系统设计采用方案二。
1.2 系统工作原理
智能窗帘控制系统由光敏传感器来感应外部环境的光强变化,由光敏传感器感应出来的信号输入到A/D转换器,转换后的信号由单片机控制步进电动机,来操作电机的正转、反转与停止[2]。自动窗帘控制器的各种状态信息通过显示模块显示。键盘控制为输入设备,控制单片机的各种参数。单片机所需电压由电源模块来提供[3]。
总体结构框图如图1.3。
图 1.3 总体结构框图
2 硬件部分设计
2.1控制模块设计
2.1.1 STC89C52单片机
单片机作为本系统的主控模块,应满足要求如下:
(1)8 位的CPU(微处理器);
(2)片内数据存储器RAM(128B);
(3)片内程序存储器ROM(4KB);
(4)两个定时器/计数器;
(5)四个8 位并行I/O 接口P0-P3;
(6)五个中断源的中断控制系统;
(7)片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;
根据以上要求本毕业设计作品选用的是STC89C52单片机来控制步进电机正反转实现窗帘的开关。自动模式下时,光敏电阻检测光照强度的变化转化为电压变化的信号输送给单片机,单片机输送信号给电机驱动模块控制电机的正反转实现窗帘的打开与关闭;智能遥控模式时,通过遥控发射和接收模块,单片机接收遥控指令控制电机的正反转;手动按键模式时,由按键控制电机的正反转来实现窗帘的打开与关闭。
单片机相关引脚如图2.1。
图 2.1 单片机引脚
(1)时钟电路引脚XTAL1(19 脚)和XTAL2(18 脚)[4]。
(2)控制信号引脚RST(9 脚),ALE(30 脚),PSEN (29 脚)和EA(31 脚)。
(3)输入/输出端口P0/P1/P2/P3
P0口(P0.0-P0.7,39-32 脚):P0口是一个漏极开路的8 位准双向I/O口。
P1口(P1.0-P1.7,1-8 脚)/P2口(P2.0-P2.7,21-28 脚):是一个8 位准双向I/O口带内部上拉电阻。
P3口(P3.0-P3.7,10-17 脚):P3口是一个8 位准双向I/O口带内部上拉电阻。它的每一个引脚第二种功能如下:
P3.0/P3.1:(RXD)串行数据接收/发送。
P3.2(INT0#)/P3.3(INT1#):外部中断0/1的输入端口。
P3.4/P3.5:(T0)定时/计数器0/(T1)定时/计数器1在外部的计数输入端口。
P3.6/P3.7:(WR#)外部数据存储器写/读的选择通道端口。
STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,与此同时内部还含有5个中断源,2个优先级和2个16位的定时/计数器[5]。STC89C52单片机组成如图2.2。
图2.2 单片机组成
2.1.2单片机晶振电路
石英晶体振荡器即单片机电路中的晶振,晶振存在着两个谐振点,并联在一起是高频率的,串联则是低频率[6]。单片机的工作速度,即晶振可以给单片机提供脉冲信号。晶振与单片机引脚中的X1、X2引脚相连接,产生谐波使振荡器的稳定性受到影响。在晶振引脚处接入在10pF到50pF之间的瓷片电容。若使单片机运行的速度快并且时钟频率快就得晶振频率高。本作品以12MHz的石英晶体作为晶振。
图2.3 晶振电路
2.1.3复位电路
复位是使微处理器(CPU)和系统中的其他元器件都有一个明确的初始的状态,使其从这个状态开始工作。除此之外,当单片机系统出错或者操作失误时系统仍死机状态时,可通过按复位键重新启动[7]。
RESET引脚是STC89C52单片机的输入端口,仅在高电平时有效。系统复位之后,单片机开始执行程序其内容初始化为0000H,内部RAM的状态不受单片机复位影响。
上电复位和按键复位为其外部复位电路具有两种操作方式[8]。
按键电平复位就等同于RESET通过电阻接高电平,如图2.4所示。
图2.4复位电路图
2.2 时钟模块
DS1302通过串行的方式与单片机之间进行数据转换与传送,能够向单片机提供准确的实时时间信息,并且也可以对月末时间、闰平年的天数进行自动的调整,它还有着双电源引脚即:主电源和备份电源,尽管在主电源无法供电或关闭的的状态下,也能够保持时钟模块的不中断[8]。
DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成[9]。结构图如图2.5所示。
图2.5 DS1302结构图
2.3红外接收模块
红外线接收模块采用的是VS1838b,在此设计中作为红外线接收头用来接收遥控器发射的指令。VS1838b的组成是包括PIN光电二极管、放大前置IC[10]。它具有几个特性:电压一般是在2.7V到5.5V之间,工作电压比较宽;拥有较低的功耗;VS1838b对外部环境的干扰的抵抗力较强,稳定性较高。它的输出在低电平的状态下生效,和TTL以及CMOS相匹配。VS1838b通常应用于家庭电器,制冷设备,电扇,灯棍等。
如图2.6所示,图中三个引脚是信号输出脚、接地脚GND、电压引脚VCC。
图2.6 VS1838b引脚
2.4 光敏检测模块电路
根据外面环境的光照强度值变化来控制电动机合理的打开或者是关闭窗帘,而光敏电阻主要负责感应光强从而完成此部分要实现的功能。在此次焊接设计中用到的是光敏电阻。光敏电阻,意思也就是外部光照强度值的变化会直接影响电阻值的改变,对此感应十分敏感。光照强度增加电阻值减少;反之则电阻增大[11] ,如图2.7所示。
图2.7光强检测原理图
光敏电阻系统接收外部光照,在光照达到一定强度时窗帘会关闭,在光照弱时会自动打开。光敏电阻收集到的是动态的模拟信号[12],我们需要将这些信号转换成数字信号并输出到单片机使其驱动电机正反方向转动。根据这一方面就要用到数模转换电路,在本作品中选用的是ADC0832芯片。
2.5 步进电动机控制电路
步进电机利用电磁感应原理,其角位移是通过控制电脉冲的数量来实现的[13]。步进电机主要涉及相数、拍数、步距角、启动转矩以及电机正反转控制等[14]。电动机连接图与ULN2003芯片结构如图2.8和图2.9所示。
图2.8电动机管脚连接图
图2.9 ULN2003芯片内部结构
其主要特性如下表2.1。
表2.1特性表
参数名称 符号 数值 单位
电压输入 VIN 30 v
电流输入 IIN 25 mA
功耗 PD 1 W
环境温度 Topr -20t0+85 ℃
存储温度 Tstg -55t0+150 ℃
ULN2003芯片概述与特点:
ULN2003具有抗高压和超高电流的达林顿系列,它的每一对达林顿管都有一个2.7K的基极电阻被串联,在5V工作电压下工作时,才与TTL和CMOS电路直接相连。组成主要为七个NPN型达林顿管。
步进电机驱动电路的工作过程是:通过P2.0-P3.0口将单片机与ULN2003连接,从P2口输出00000001B,ULN2003连接的四个管脚中每次只有一个管脚导通,其他的管脚则断开[15]。驱动原理图如图2.10。
图2.10 驱动原理图
2.6 液晶显示
液晶显示器主要优点是功耗小、大小适宜轻便、显示内容多种多样、显示屏很薄等优点,被各种系统广泛的应用。本作品中应用的是液晶显示模块LCD1602。图2.11为本作品的显示器的连接图。
图2.11 LCD1602连接图
LCD1602显示的内容主要有两行一共是十六个字节,通过点阵图形(5x7)用显示窗帘相关功能信息的显示模块。实物图展示如图2.12和图2.13所示。
图2.12 LCD1602正面图
图2.13 LCD1602反面图
2.7电源电路
智能窗口供电电路输出5V电压给所有模块供电,如图2.14所示。
图2.14电源电路
3 系统原理图
本次毕设作品智能窗帘系统主要有两种控制模式。当系统处于手动模式的时候可以通过按键实现一键开关窗帘;当系统处在自动模式下通过光敏检测元件检测光强从而实现窗帘的自动开关。DS1302芯片是本设计的时钟芯片,可以设置时间开启和关闭窗帘,还可以实时的检测当前时间。液晶显示模块显示当前时间、光照强度系数和工作模式等信息。原理图如图3.1所示。
图3.1 系统设计原理图
4 软件设计
4.1系统主程序设计
本设计系统的主程序需要完成的功能有:单片机各个模块的初始化操作,定时器初值设置以及开启,按键的扫描,电机运转,显示时间光照数字量等[16]。如图4.1所示。
图4.1程序框图
4.2 步进电机子程序设计
采用C程序语言来更加高速便捷有效的实现数据通信,由于数据转换时间较短且采样频率较快,从而使得其可以实现特殊场合的数据转换的实时有效性。判断步进电机旋转方向并根据数据信号来判断是否传输完毕。
关于步进电动机程序设计要求:
(1)判断是正转还是反转;
(2)按照检测的先后依次传递控制脉冲;
(3)判断所需要的步进电动机脉冲是否执行完毕。
图4.2步进电动机控制程序框图
4.3 按键子程序设计
当按下按键时按键的触点会发生抖动,在编写程序的过程中需要用软件来消除抖动,也就是平常所说的消抖[17]。编写程序时判别按键能否闭合是先通过2毫秒的延时,确定按下按键后再延时10毫秒,以此就可以防止按下键盘时的抖动。
用 keyscn()函数来完成按键的扫描,我们通过扫描按键子程序来判断是否已经到了预设的起闭窗帘时间[18]。是否需要调节时间的时、分、秒,是否需要改变光照强度值的上下限等等。此函数较长但编写原理相类似,其中加上延时函数。按键模块程序流程图如图4.3所示。
图4.3 键盘程序框图
5焊接与调试
5.1 电路焊接
在整个设计作品系统电路中焊接起着重要的作用,不管我们在设计系统时想的和设计的再多,如果在焊接实物的这个过程中出现了问题,会影响到整个控制系统的运行,这个系统的设计很有可能就会以失败而告终。所以说焊接的技术会直接导致设计的这个控制系统是否能够使用。数字电路和单片机电路更适合使用单孔板,而模拟电路和分立电路则更适合使用连孔板,所以本次毕业设计作品采用的是单孔板。焊接后实物图如图5.1所示。
图5.1 焊接实物图
为了确保系统能够正常运行,在焊接的时候要严格根据电路图认真对照,尽量避免焊接位置出现错误或者连错线等问题,焊接时成45°角正确操作。铜板要注意防氧化,使用前用橡皮或棉棒沾酒精擦拭,锡板材质比铜板坚硬,不易变形,价钱也比较贵。
5.2 系统调试
在系统接通电源之前,首先观察实物的焊接是否存在问题,如:有明显断裂、正负极连接、器件连接、焊接不实等;如果焊接的物体没有问题接下来我们用万用表来检测电源的正负电压,观察是否出现了严重的电源问题,如短路、断路等以确认焊接的系统没有问题。
物体焊接没有问题以后,还需要对软件程序进行调试,如果程序调试没有出现错误等问题,接下来就要依次验证系统的功能是否可以满足预设的要求,如果作品调剂还有问题,还需继续对程序调试,最后能够达到所有功能都一一调试成功。
5.2.1 软件调试
在软件调试过程中,点击编译按键,文件在系统中正常运行,提示的信息可以在窗口中进行显示,若提示的信息中显示“error”,就要根据提示找到错误程序并改正,直到错误消失。
实际在调试过程中,第一次对程序进行编译时提示窗口提示错误,根据窗口错误提示,检查发现在程序句末尾出现了中文字符下的符号,除此之外出现过其他的问题,经过请教老师以及同学的帮助,一次次的编译和修改,直到程序提示没有错误为止。
5.2.2 硬件测试
首先使用万用表检测电源是否连接完好,然后检查元器件的管脚是否连接正确,有没有出现接线错误的情况。接通电源以后,观察每个元器件是否能够进行正常的工作,逐一测试功能。
结 论
本文叙述的智能窗帘系统主要有两种控制模式:手动控制和自动控制。人们通过按键手动的打开关闭窗帘时为手动控制,同时还可以通过红外线遥控器来关闭和打开窗帘。利用光照传感器与光敏电阻来对外部环境的光照强度进行感应,当感应光强过高时,窗帘自动关闭,相反当感应光强过低时,窗帘自动打开。窗帘的系统控制主要由单片机控制完成,各个模块将数据传递给单片机,单片机再将数据传递给相应模块,再通过驱动电路控制电动机正反转。该窗帘系统也能够根据所处环境的时间来实现窗帘的自动打开和关闭,用户可以通过设置键设置窗帘打开时间和窗帘的关闭时间。
控制器方面采用STC89C52单片机通过第二章对单片机的功能、要求及技术参数的分析可知完全符合本设计的控制需求。本设计通过时钟模块、红外线检测模块、光敏检测模块、执行元件步进电动机、显示模块以及电源电路模块合理结合构成智能窗帘控制系统。虽然毕设作品完成了基本的功能,但是还是存在着一定的瑕疵,比如本设计中不足主要体现在未加入AT24C02芯片来进行掉电保护,在关机之后重新启动时会自动恢复到初始设置值,在日常生活中若是忽然碰到断电关机等现象后有可能会给人们带来一些麻烦困扰,所以需要在这一方面进行改进。
参考文献
[1] 王建军,王守谦,成艳亭,乔建委,许文硕.基于单片机和以太网的远程测控系统[J].山东理工大学学报(自然科学版),2020,34(03):29-33
[2] 许春平.基于单片机的外装车用雨量光照传感器装置设计[J].科技创新与应用,2020,5(09):39-40
[3] 郝海燕,董胜豪.基于单片机的智能窗帘系统设计[J].科技风,2020,6(09):10
[4] 键谈. 用梯形图编程进行STC单片机应用设计制作—拼装式单片机控制板及应用(二)[N]. 电子报,2020-03-22(007)
[5] 石广召,李杰.基于单片机的智能交通灯控制系统设计[J].南方农机,2020,51(05):211-213+240
[6] 秦川,孙沐钰,袁嘉鑫.智能家用自动存取鞋柜的设计[J].南方农机,2020,51(05):238-240
[7] 齐成玺,曹玉柱,郑旭媛,刘迢迢.基于单片机和Android系统的智能LED光闪烁系统的设计和实现[J].现代电子技术,2020,43(06):30-33
[8] 廖海强.面向单片机技术下家庭防盗门电子锁的设计研究[J].轻工科技,2020,36(03):61-62+103
[9] 齐成玺,曹玉柱,郑旭媛,刘迢迢.基于单片机和Android系统的智能LED光闪烁系统的设计和实现[J].现代电子技术,2020,43(06):30-33
[10] 严寅贇.浅谈单片机通信系统中无线通信技术的应用[J].计算机产品与流通,2020,5(03):48
[11] 方雪莹.单片机与微机远程通信接口电路的设计及编程分析[J].电子世界,2020,7(05):185-186
[12] 薛东,彭志强.单片机技术下的智能厨房控制系统实现探讨[J].科技创新与应用,2020,7(08):4-95
[13] 黄俊梅,罗剑.创新思维训练在单片机产品设计中的应用[J].科技风,2020,8(07):15
[14] 廖海强.面向单片机技术下家庭防盗门电子锁的设计研究[J].轻工科技,2020,36(03):61-62+103
[15] 彭伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社.2009.1:108-152
[16] 吕广红,黄崇林,陈晓铭.基于AT89C52的智能晾衣架的设计[J].机自动化与仪器仪表,2013(2):71-73
[17] 张新. 基于单片机的信号发生器设计系统[D].东北师范大学,2011
[18] 唐荣霞.智能家居控制系统的设计与实现[D].山东大学,2009
附录1 原理图
附录2 源程序清单
#include <reg52.h>
#include <dht11.h>
#include <adc0832.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit rs=P2^0;
sbit rd=P2^1;
sbit lcden=P2^2;
sbit JDQ=P3^0;
sbit menu=P2^5;
sbit add=P2^4;
sbit dec=P2^3;
sbit open=P2^6;
sbit close=P2^7;
sbit IR=P3^5;
sbit BEEP=P3^1;
#define MOTORSTEP P1
uchar dsflj,kval,lofl,menusw,con,befl,zhenfl,fanfl,brigfl;
uint sudu,dwbrigfl;
uchar count0,second,zhenzhuan,fanzhuan,timeflg,opensw,closesw,keysw;
uint adc1;
uint upbrig,dwbrig,kwbrig; //
uint hour,minit,secon,DSdat,VAldat ,time;
uint ONhour,ONminit,ONsecon;
uint OFhour,OFminit,OFsecon;
uchar U8T_data_H,U8RH_data_H;
#define Imax 14000
#define Imin 8000
#define Inum1 1450
#define Inum2 700
#define Inum3 3000
uchar f=0;
uchar Im[4]={0x00,0x00,0x00,0x00};
uchar show[2]={0,0};
ulong m,Tc;
uchar IrOK;
void delay(uint z);
void write_rvalue();
uchar code logo1[]= "Welcome to use ";
uchar code logo2[]="window system ";
//uchar code logo3[]=“S=253T=85oCU=85%”;
uchar code logo4[]="Br= 12:00:00 ";
uchar code logo5[]="window open ";
uchar code logo6[]="window close ";
uchar code logo7[]="GWbrig= LUX ";
//uchar code logo8[]="UP-Hum= % ";
uchar code logo9[]="Please input… ";
uchar code logo10[]="Please wait… ";
uchar code logo12[]=“SEtime 12:00:00”;
uchar code logo13[]=“ONtime 12:00:00”;
uchar code logo14[]=“OFtime 12:00:00”;
uchar code logo16[]="KWbrig= LUX ";
void delaymoto()
{
uint y=sudu;
while(y–);
}
uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
uchar code REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
xdata num1 [4] = {0x00,0x00,0x00,0x00,};
xdata num2 [4] = {0x00,0x00,0x00,0x00,};
xdata num3 [4] = {0x00,0x00,0x00,0x00,};
xdata num4 [4] = {0x00,0x00,0x00,0x00,};
xdata num5 [4] = {0x00,0x00,0x00,0x00,};
void delaylog(uint z){
uint x,y;
for(x=z;x>0;x–)
for(y=500;y>0;y–);
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x–)
for(y=10;y>0;y–);
}
void SETP_MOTOR_FFW() {
uint i=0;
for(i=0;i<8;i++)
{
MOTORSTEP=FFW[i];
delaymoto();
}
}
void SETP_MOTOR_REV() {
uint i=0;
for(i=0;i<8;i++) {
MOTORSTEP=REV[i];
delaymoto();
}
}
void write_com(uchar com)
{
rs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date){
rs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init1602()
{
uchar num;
rd=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(num=0;num<16;num++)
{
write_date(logo1[num]);
delay(2);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_date(logo2[num]);
delay(2);
}
delaylog(200);
致 谢
经过几个月的忙碌工作,用心设计,本设计倾注了很多精力和汗水,现在即将到达设计的尾声,非常感谢孟军红老师和张有成老师的耐心指导,在校四年期间各位授课老师的教导和给我的很多实践的机会。在设计中遇到了许许多多的问题,但是在向老师请教的时候总会得到解决思路,其实问题不可怕,最可怕的就是不知道问题出在了哪里。
首先我要感谢的是我的导师老师,在完成整个毕业设计的过程中,老师给我提供了很大的帮助,在选题、设计以及修改论文的各个环节里老师给我指出了很多错误,提出了很多宝贵意见,对于设计中存在的问题也是耐心的回答和指导,让我能够顺利的完成毕业设计,本人向孟军红和张有成老师致以诚挚的感谢。
最后要感谢的是在大学四年中教育指导过我的所有老师,你们传授给我的专业课知识是我能够顺利完成本毕业设计的基础,同时也将成为日后踏入工作岗位的重要垫脚石,本人在此对于老师们一丝不苟,兢兢业业的精神表示崇高的敬意。
原文地址:https://blog.csdn.net/qq1744828575/article/details/136506819
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!