毕业设计基于AT89S51单片机的智能洗衣控制系统_第1页
毕业设计基于AT89S51单片机的智能洗衣控制系统_第2页
毕业设计基于AT89S51单片机的智能洗衣控制系统_第3页
毕业设计基于AT89S51单片机的智能洗衣控制系统_第4页
毕业设计基于AT89S51单片机的智能洗衣控制系统_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业论文基于at89s51单片机的智能洗衣控制系统摘要:基于at89s51 单片机的洗衣控制系统, 控制面板由按键、指示灯和lcd显示器、温度传感器组成。按键选择洗衣机工作方式, 指示灯配合按键工作, lcd 显示器则显示洗衣机涤和脱水时间。洗衣机的整体电路模块包括键盘矩阵、指示灯、电动机控制及电源电路。控制程序设计包括定时中断服务程序、外中断服务程序及主程序。关键词: 洗衣控制系统;at89s51 单片机; 控制程序washing machine control system based on singlechip at89s51abstract:washing machine contro

2、l system based on singlechip at89s51, the control panel is composed by keys, indicating lamps and lcd.the keys select the ways of working, the indicating lamps cooperate the work of the keys.the lcd monitor shows the time of washing and dehydration.the circuit of washing machine includes keyboard ma

3、trix, indicating lamp, motor control and power circuit.the control program includes timing interrupt service program, externalinterrupt service program and main program.key words: washing machine control system;at89s51 microcomputer; control program目 录1 国内洗衣机发展现状11.1前言2 1.2洗衣机概述22 洗衣机原理22.1洗衣机设计思路和结

4、构框架32.2温度传感器工作原理32.3 继电器工作原理 42.4键盘工作原理 52.5 at89s51单片机工作原理62.6 液晶lcd ha1602型号工作原理73 洗衣机设计电路9 3.1洗衣机内部工作电路9 3.2直流电源电路10 3.3过零检测电路11 3.4显示电路11 3.5复位电路12 3.6lc振荡电路12 3.7报警电路12 3.8负载驱动电路12 3.9指示灯电路图13 3.10电动机的控制电路144 洗衣机系统软件设计 144.1系统流程图144.2程序165 试验结论32参考文献32附录32致谢321 国内洗衣机发展现状1.1 前言随着电子技术迅猛发展,电子材料发展也

5、尤为迅速,使得一些产业发展也很快,电子器件和各种集成器件发展也比较迅速,表现突出的有单片机。单片机具有集成度高、运算速度快、体积小、运行可靠、价格低廉等特点, 因此在过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到广泛用。实践证明, 用于家用电器中的洗衣机控制系统具有精度高、功能强、经济性好的特点,无论在提高产品质量还是产品数量, 节约能源, 还是改善劳动条件等方面都显示出无比的优越性。单片机的发展带动了自动化控制的发展,使得单片机应用广泛,它可以涉及到政府、军事、金融、科技、文教等各个领域,所以单片机的应用就显得越来越重要了。本论文就是依据单片机强大的控制为核心,设

6、计出了洗衣机的智能化控制系统。论文主要由传感器采集信号、at89c2051单片机数据处理、键盘控制、执行控制电路、lcd显示几部分组成。1.2 洗衣机概述随着人们的生活水平的日益提高,洗衣机的使用也越来越普及,目前全国的洗衣机的年产量已超过1000万台。洗衣机的分类较多,根据不同的角度大致可分如下几类:洗衣机从不同洗衣的原理来说可分为波轮洗衣机、滚筒洗衣机、以及搅拌式洗衣机。洗衣机从结构上又可分为:单缸和双缸洗衣机;洗衣机从水流方式上又可分为:瀑布水流、手搓水流、悬浮水流等;洗衣机从电机的驱动方式上又可分为:间接驱动和直接驱动(dd型洗衣机);从洗衣机的电机的驱动电源的不同可分为:普通洗衣机和

7、变频洗衣机,其中变频洗衣机又可分为:直流变频洗衣机和交流变频洗衣机;从洗衣机的显示方式来分有:led灯显示、数码管显示、lcd显示、以及vfd显示。目前在国内波轮洗衣机占洗衣机用量的大部分,滚筒洗衣机和搅拌式洗衣机在国内很少,主要在欧美的家庭大量使用。但近几年滚筒洗衣机洗衣机在国内的市场呈快速增长。 波轮洗衣机主要功能完成洗衣过程中的进水、排水、洗涤、漂洗、脱水、自动跳电、故障自检等功能。目前市场推出的健康型洗衣机还要完成消毒、杀菌功能。滚筒洗衣机的主要功能除上面提到的波轮洗衣机的主要功能外,还有给水加热和温控,以及烘干衣物等功能。2 智能洗衣机设计原理2.1洗衣机设计思路和结构框架智能洗衣机

8、设计主要部分有:单片机cpu处理数据,温度传感器采集模块,lcd显示模块,键盘控制模块,指示灯模块,控制执行模块,加热模块。智能洗衣机设计思路:采用at89c2051作为控制核心.其中,p0.0p0.7 显示数据输出口, p1.0p1.5作为键盘扫描的输入输出口,p2.0p2.2 显示数据控制线,p2.3、p2.4 分别为检测水是否加满和检测水是否排光p2.5、p2.6分别控制启动进水闸和控制启动排水闸,p2.7控制报警喇叭, p3.0 、p3.1控制电机正反转, p3.2、p3.3 、p3.4控制各种状态指示灯,p3.5温度传感器ds18b20,p3.6控制加热器.p3.7、 p1.6、 p

9、1.7三个口暂时没有用到;当洗衣机通电以后,lcd显示”hello welcome to washing system !”,即为初始状态,盖子打开或按下复位键或是电路不稳定的时候都会出现此状态,各个键盘功能如下:k1键选择为是否进入自动3次洗衣(加温.脱水);k2键选择为是否进入自动2次洗衣(加温.脱水);k3键为选择是否进入强洗一次(不加温不脱水);k4键为选择是否进入弱洗一次(不加温不脱水);k5键为选择是否进入脱水,k6键是否进入加温;k7键对洗衣或脱水时间分钟加1或是加热要达到的温度加1;k8键对洗衣或脱水时间分钟减1或是加热要达到的温度减1;k9键确定和暂停;当k1和k9组合按下后

10、,选择自动洗衣服3次,k1k6被屏蔽掉,k7k9有效,系统将进入加水.加温(可调).洗衣.排水.加水.洗衣.排水.加水.洗衣.排水.脱水.停.报警30秒.中间可以按下暂停.当k2和k9组合按下后,选择自动洗衣服2次,k1k6被屏蔽掉,k7k9有效,系统将进入加水.加温(可调).洗衣.排水.加水.洗衣.排水.脱水.停.报警30秒.中间可以按下暂停.当k3和k9组合按下后,选择自动强洗衣服一次,k1k6被屏蔽掉,k7k9有效,系统将进入加水,洗衣,排水。中间可以按下k7或k8增加和减少洗衣时间和暂停。当k4和k9组合按下后,选择自动弱洗衣服一次,k1k6被屏蔽掉,k7k9有效,系统将进入加水,洗衣

11、,排水。中间可以按下k7或k8增加和减少洗衣时间和暂停。当k5和k9组合按下后,选择自动脱水,k1k6被屏蔽掉,k7k9有效,系统将进入排水,脱水。中间可以按下k7或k8增加和减少脱水时间和暂停。当k6和k9组合按下后,选择加温,k1k6被屏蔽掉,k7k9有效,系统将进入加水,加温。中间可以按下k7或k8增加和减少要求达到的温度和暂停。当系统完成一个动作的时候比如加水超过3分钟,排水超过3分钟,加热超过8分钟,洗衣服结束,脱水结束,加热结束,都会报警,如果没有按键按下,报警30秒后恢复初始状态,工作中间打开盖子也会恢复到初始状态。ds18b20温度at89s51单片机lcd显示模块键盘对应的状

12、态指示灯键盘控制加热装置报警器电机控制开关水闸水位控制图1智能洗衣机结构框图2.2温度传感器【1】单线数字温度计dsl8b20介绍: dsl8b20数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送入dsl8b20或从dsl8b20送出,因此从主机cpu到dsl8b20仅需一条线(和地线),dsl8b20的电源可以由数据线本身提供而不需要外部电源,因为每一个dsl8b20在出厂时已经给定了唯一的序号,因此任意多个dsl8b20可以存放在同一条单线总线上,这就允许在许多不同的地方放置温度敏感器件。每只ds18b20都可以设置成两种供电方式即数据总线供电方式和外部供电方式采取数据

13、总线供电方式可以节省一根导线但完成温度测量的时间较长采取外部供电方式则多用一根导线但测量速度较快,所以我们采用如图2单线连接的方式采集。at89c2051单片机图2温度传感器单线连接图【2】ds18b20的特性:ds18b20可以程序设定912位的分辨率,精度为0.5c。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在eeprom中,掉电后依然保存。存储用户定义报警温度、分辨率参数的eeprom,精度降低为2c,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 【3】ds18b20的主要特性如下: 1.适应电压范围更宽,电压范围:3.05.5v。2.独特的

14、单线接口方式,ds18b20在与微处理器连接时仅需要一条口线 3.ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上。4.ds18b20在使用中不需要任何外围元件, 5.温范围55125,在-10+85时精度为0.56.负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。ds1820工作主程序流程图如3所示。1820复位开始读取温度数据转换显示结束图3ds18b20主程序流程图2.3 继电器工作原理继电器可以分为很多种,有塑壳式短路器,中间继电器,时间继电器,电流继电器,热继电器,速度继电器,固体继电器等,本论文采用就是固体继电器。【1】固体继电器工作原理:固

15、体继电器(solid state relays,缩写ssr)是一种无触点电子开关,由分立元器件、膜固定电阻网络和芯片,采用混合工艺组装来实现控制回路(输入电路)与负载回路(输出电路)的电隔离及信号耦合,由固体器件实现负载的通断切换功能,内部无任何可动部件。继电器主要由输入(控制)电路,驱动电路和输出(负载)电路三部分组成。固体继电器的输入电路是为输入控制信号提供一个回路,使之成为固体继电器的触发信号源。固体继电器的输入电路多为直流输入,个别的为交流输入。直流输入电路又分为阻性输入和恒流输入。阻性输入电路的输入控制电流随输入电压呈线性的正向变化。恒流输入电路,在输入电压达到一定值时,电流不再随电

16、压的升高而明显增大,这种继电器可适用于相当宽的输入电压范围。【2】固体继电器引脚图:本继电器有六个端口,采用输入控制继电器的闭合或断开(on/off)输出,它们可以直接控制其它外围电路。引脚如下图7所示,有nc、 com 、no、 l1、 l2。nc:normal close,常闭点。以com为共同点,nc与com在平时是呈导通的状态。com:common,共同点。输出控制接点的共同接点。no:normal open,常开点。no与com平时呈开路状态,当继电器动作时,no与com导通,nc与com则呈开路状态。l1:继电器输入控制。l2:继电器输入控制。图4.继电器引脚图2.4 键盘工作原理

17、键盘有独立键盘和矩阵键盘,它是由一组开关所组成。通常按键所用开关为机械弹性开关,当按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,键盘的两个引脚被接通,松手后,键盘的两个引脚被断开,理想状态下,按键引脚电平变化如图9所示,但是实际机械开关是有抖动的,一般510ms,在这段时间里会连续产生多个脉冲,在段开的时候也不会一下子断开按键同样有抖动电平如图10所示,论文按键电路设计如图11所示。按键的确认可以判断按键的闭合,但是必须消除按键抖动,本论文用软件来实现,即在第一次检测到有按键被按下的时候去执行一段延时1215ms的子程序,从而可以消抖。理想按键电压波形 按下释放图5.理想按键电压

18、波形实际按键电压前抖后抖稳定闭合图6.实际按键电压波形 本系统中使用了3*3矩阵键盘,使用了p1.0p1.5,首先给列全为高电平,行全为低电平,定时扫描,读出p1口的值,如果依然列全为高,行全为低的话,说明没有按键按下,否则就是有按键按下,如果有按键按下的话,去抖,然后给出第一行为低电平,其他的都为高电平,扫描第一列,第二列,第三列,如果第n列读出的是低电平,说明是第一行的第n列为按下的键,依次给出第二行,第三行为低电平,同样扫描,可以得到键值。2.5 at89s51单片机的工作原理以atmel公司生产的51系列家族的at89s51单片机来讲解,at89s51是目前最常用的单片机,其中at89

19、s51为标准51单片机,当然其功能比早期的51单片机更强大,支持isp在系统编程技术,内置硬件看门狗。2.5.1、at89s51单片机引脚介绍at89s51有pdip、plcc、tqfp三种封装方式,其中最常见的就是采用40pin封装的双列直接pdip封装,外形结构下图。芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口(见右图)左边那列引脚逆时针数起,依次为1、2、3、4。40,其中芯片的1脚顶上有个凹点(见右图)。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程i/o引脚32根。1、主电源引脚(2根)vcc(pin40):电源输入,接5v电源gn

20、d(pin20):接地线2、外接晶振引脚(2根)xtal1(pin19):片内振荡电路的输入端xtal2(pin20):片内振荡电路的输出端3、控制引脚(4根)rst/vpp(pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ale/prog(pin30):地址锁存允许信号psen(pin29):外部存储器读选通信号ea/vpp(pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。图7芯片实物图片芯片引脚功能4、可编程输入/输出引脚(32根) at89s51单片机有4组8位的可编程i/o口,分别位p0、p1、p2、p3口

21、,每个口有8位(8根引脚),共32根。每一根引脚都可以编程,比如用来控制电机、交通灯、霓虹灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能,尽情发挥你的想象力吧,实现你想要的:) 强大无比。 po口(pin39pin32):8位双向i/o口线,名称为p0.0p0.7 p1口(pin1pin8):8位准双向i/o口线,名称为p1.0p1.7 p2口(pin21pin28):8位准双向i/o口线,名称为p2.0p2.7 p3口(pin10pin17):8位准双向i/o口线,名称为p3.0p3.72.6 液晶lcd ha1602型号工作原理本论文选用ha1602型号的液晶显示,使用方便,而

22、且价格比较便宜使用,它是16*2lcd,每行可以显示16个字,可显示的行数为了2行,有16只脚,其中数据线db0db7与控制信号线rs、r/w、e用来与富士通单片机i/o口连接,另外3只引脚为电源线vss、vdd、v0各脚功能如表1所示引脚符号功能说明1vss接地2vdd+5v3v0显示屏明亮度调整脚,一般将此脚接地4rs寄存器选择 0:指令寄存器(write),busy flag,位置计数器(read)1:数据寄存器(write,read) 5r/wread/write选择 1:read 0:write6e读写使能,下降沿使能7db0低4位三态,双向数据总线8db19db210db311db

23、4高4位三态,双向数据总线db7也是一个busy flag12db513db614db715bla背光源正极16blk背光源负极【1】寄存器选择及显示器地址:lcd中的寄存器dd ram是显示数据的存储器,用来存放lcd的显示数据;cg ram是字符产生器,用来存放自己设计的5*7点阵图形的显示数据。lcd指令寄存器和数据寄存器的选择如表所示,通常r/w 与rs信号线一起使用。当rs=0时,选择指令寄存器;rs=1时,选择数据寄存器。当r/w=0时,数据写入lcd控制器;当r/w=1,到lcd控制器读取数据。e:高电位使能信号线。lcd控制指令如下表2序号指令功能控制线数据线rsr/wd7d6

24、d5d4d3d2d1d01清除显示屏0000000000清除显示屏,并把光标移至左上角2光标回到原点0000000001光标移至左上角,显示内容不变3设定进入模式00000001i/dsi/d=1:地址递增,i/d=0:地址递减s=1:开启显示屏,s=1:关闭显示屏4显示器开关0000000dcbd=1:开启显示屏,d=0:关闭显示屏c=1:开启光标,c=0:关闭光标b=1:光标所在的位置的字符闪烁,b=0:字符不闪烁5移位方式000001s/cr/l*s/c=0,r/l=0:光标左移;s/c=0,r/l=1:光标右移s/c=1,r/l=0:光标和字符左移;s/c=1,r/l=1:光标和字符右

25、移6功能设定00001dl nf*dl=1:数据长度为度为8位,dl=0:数据长度为度为4位n=1:双列字,n=0,单列字:f=1:5*10字形,f=0:5*7字形7cg ram地址设定0001cg ram 地址将所要操作的 cg ram地址放入计数器8dd ram地址设定001dd ram 地址将所要操作的dd ram地址放入计数器9忙碌标志位bf01bf地址计数器内容读取地址计数器,并查询lcd是否忙碌10写入数据10写入数据将数据写入cg ram 或dd ram11读取数据11读取数据读取cg ram 或dd ram的数据3.洗衣机电路设计3.1洗衣机内部工作电路全自动洗衣机的电路包含2

26、20v交流负载驱动电路,ic和蜂鸣器工作用的低压直流电路及高低压共路的电路交流220v变压器滤波整流稳压at89s51单片机水位开关安全开关驱动双向可控硅电磁铁电机水阀振荡继电器报警器复位电路驱动发光二级管驱动lcd显示键盘扫描图8 洗衣机内部电路图 3.2直流电源电路电气控制系统一般需两种直流电源:+5v和+12v,其中+5v作为ic、led显示电路、三极管放大器驱动双向可控硅的直流电源;+12v直流电压供给蜂鸣电路及继电器。系统电源部分电气原理图如图所示。市电220v 经过变压器t 变压为12v 交流电压, 通过4只二极管1n4004 全桥整流, 再经过电容c 滤波后得到光滑的直流电压,

27、经过三端稳压器7805 稳压后得到稳定的+5v 电压给各器件供电。在控制器中,输入的电源为交流220v15%,50hz。为提高整个控制器的抗干扰能力,一般在电源l与n之间加上一104m 275v的x2安规电容,该可有效吸收大部分外来干扰,另外为提高整个控制器的抗雷击能力,在交流输入侧加上一个压敏电阻,以吸收大部分因雷击带来的外来能量,保护整个控制器不被损坏。考虑到成本,在洗衣机控制器中的压敏电阻一般采用10d621k。控制器中的电源主要向继电器、可控硅、led灯、以及蜂鸣器等供电,负载电流较大,为有效抑制滤波后的电源的纹波,我们在稳压片7805的输入和输出端各加一个电解电容,一般在7805输入

28、端加电容较大为1000uf/25v(如果整个控制器所驱动的负载较多时,为保证通过电压跌落实验需将该电容选得大一些2200uf/25v),7805的输出端一般加一个100uf/16v的电解电容。另外为提高整个电源部分的抗干扰能力,一般在7805的输入和输出端还须各加一个高频电容(以吸收外来的各种高频干扰信号。在洗衣机控制器的设计过程,对高频电容的选取,一般不选用瓷片电容和独石电容,而选用纸介电容,如涤纶电容和金属聚脂膜电容。 洗衣机控制器整个电源部分的电路如附图9所示。 图9 电源电路图 3.3过零检测电路由分压电阻及脉冲信号电路组成,将交流电过零点所产生的同步信号输入给ic,以作为双向可控硅过

29、零触发的同步触发信号。(见附图10) 图10 过零检测电路图3.4显示电路显示电路一般由发光二极管(或led、lcd组成),由ic输出端巡回输出显示信号,使显示电路发光二极管(或led、lcd)交替发光显示,以显示洗衣机的运转状态。发光二极管的电路一般采用的是三极管的驱动放大来使得发光二极管的亮灭。对于led必须采用直流电压驱动,led是电阻性负载,动态响应快。工作电压为1.5-5v。(见附图11 )对于lcd必须采用交流(方波)驱动电压,以防止液晶材料分解失效,lcd是容性负载,动态响应慢。工作电压为2-6v。(见附图12) 图11 led显示电路 图12 lcd显示电路3.5复位电路复位电

30、路一端接于直流电源的三端稳压器输出,一端接于ic,当电源出现低电压或电源有间断时,稳压输出端的直流电压不正常,复位电路便将ic内部存储器清零,使ic始终处于初始状态,以防止工作状态混乱。目前采用的复位电路是rc充放电电路,其中二极管d是用于电源电压跌落时对电容上的电荷快速放电。其中电阻r最好小于40000欧姆,这样才能确保r两端的电压将不超过0.2v, 以免在复位引脚上压降过大而影响引脚上的高电平。(见附图13) 图13 复位电路3.6lc振荡电路(时钟电路)lc元件和ic内部电路组成的振荡电路为lc提供了几兆赫的时钟信号,程控器的一切程序功能都是在时序脉冲控制下,严格地按指令周期完成。3.7

31、报警电路三极管、电阻和陶瓷蜂鸣片等构成报警电路,当有信号给蜂鸣片使之发声,表示按键按动有效,程序执行终了以及异常运转状态等。(见附图14) 图14 报警电路3.8负载驱动电路 以双向可控硅为电源开关的电路。按钮选择开关发出操作指令给ic,ic根据指令按预定的程序向各个双向可控硅控制极输出控制信号,使各双向可控硅按程序导通,电机等按程序运转,洗衣机按程序工作。与各个触发电路上相连的是uln2003反向驱动放大芯片,是总控门,只有它发出信号,各个可控硅才可能导通或截止。与双向可控硅驱动电路并联的压敏电阻,是用以吸收瞬间高压,保护双向可控硅的安全。在保护回路是一个并接在双向可控硅阳极之间的rc网络。

32、可控硅的负载都是小电感负载,他们容易受到机器内外的干扰而误动作,这样保护回路中的小电阻r不仅不会影响对负载的控制,而且还可以起到限制电容通过双向可控硅的放电电流,同时负载电感和电容构成了高频滤波器,从而保证了可控硅的正常工作。(见附图15) 图15 负载电路目前设计洗衣机控制器中所采用的可控硅主要有:t8300-800w,t435-800w、z0110na、bt134-800等几款。洗衣机控制器中所采用可控硅一般都要求耐压为800v,而且门电流加大(大约在25ma35ma之间),选用较大门电流的可控硅主要为提高控制器的抗干扰能力,防止在有干扰条件下可控硅误通。在洗衣机控制器的设计过程中,为提高

33、抗干扰能力,一般在可控硅的门极要加上一个104的电容,在做pcb板时应尽量将该电容靠近可控硅的门极,否则将减少其效果。可控硅的驱动在没有采用78012时,其驱动电源尽量采用+5v电源来驱动,该方式可避免因网络电压的波动影响可控硅的驱动。另外,在计算可控硅的门极电流时,将其电流值靠近该可控硅的最大门极电流,这样可避免在低温条件下可控硅的导通情况。3.9指示灯电路图在图中, 74138 的输入端c、b、a 分别接单片机的p1.3、p1.4、p1.5, 输出端y0、y1、y2、y3、y4、y5、y6 分别与7 个发光二极管的阴极相连, 发光二极管的阳极接电源。74138 的输出端y0 控制“暂停”指

34、示, (见附图16)灯, y1 控制“加温状态”指示灯, y2 控制“脱水状态”指示灯, y3 控制“弱洗状态”指示灯, y4 控制“强洗状态”指示灯, y5 控制“智能洗两次”指示灯, y6 控制“智能洗三次时间”指示灯。y7 控制“运行状态”指示灯。3.10电动机的控制电路电动机控制部分电气原理图如图所示。电动机有两个控制端, 一端控制正向运转, 该端与p3.0相连, 另一端控制反向运转, 该端与p3.1 相连。系统供电时, 交流220v 电压经过双向可控硅加在电动机的两个控制端, 可控硅的控制端由单片机的p3.0、p3.1 控制, 调节p3.0、p3.1的高低电平输出,电机正反向旋转。在

35、整个洗衣过程中, 程序会不断判断洗衣机的强弱洗模式, 从而不断调整电机转动方向。(见附图16) 图16 proteus模拟电路图4 智能洗衣机控制系统软件设计论文以c语言为开发语言,开发软件为keil7和proteus结合。主程序由键盘扫描程序判断,然后跳转子程序模块。跳转子程序有温度显示,洗衣剩余时间显示等。其主程序流程图如图17所示,各子程序如下图。开始初始化显示取键值有键按下k1k2k3k4k5k6k7k8k9k9k9k9k9k9k9+1-1k9洗3次洗2次弱洗1次强洗1次脱水加温确定暂停结束图17.主程序流程图 开始状态灯亮示全体扫描去抖取键值有键按下否?返回图18 键盘扫描流程图加水

36、加水加水排水排水排水加热洗衣洗衣洗衣脱水报警超时超时超时超时超时超时超时结束洗衣3次图19 自动3次洗衣服的子程序流程图总程序如下#include unsigned char minite=24; /分钟全局变量在定时器0中用到unsigned char second=8; /秒钟全局变量在定时器0中用到unsigned char wdz=37; /全局变量可调节的临界温度值变量bit flag=0;bit sflag=0; /设置慢洗中的变量 在定时器0中用到bit sflagg=0; /设置报警中的变量 在定时器1中用到unsigned char san=0; /设置三分钟排水 报警中的变

37、量 在定时器1中用到unsigned char ba=0; /设置八分钟排水 报警中的变量 在定时器1中用到unsigned char biao=0; /设置标号选择 识别按键值unsigned char su=0; /确定键的标识号unsigned char jc1,jc2;/暂停时 寄存 p2 p3 口/*void jia();void jian();void getkey(void);void jiashui(void);void paishui(void);void jiawen(void);void threetime(void );void twotime(void);void m

38、anxi(void);void sure(void);void baojing(void);/*void daojishi(void) ;/定时器0void dingshi(void) ;/定时器1/*void disauto3();/以下是六个操作按键的显示函数void disauto2(void);void diskxi(void);void dismxi(void);void distuoshui(void);void disjiare(void);/*void delay(unsigned int i);/延时void delay1ms(unsigned int count);/延时/

39、lcd灯显示的初始化*sbit lcdrs= p20;sbit lcdrw= p21;sbit lcden = p22;#define dbport p0#define lcd_command0 / command#define lcd_data1 / dataunsigned char lcd_wait(void);void lcd_write(bit style, unsigned char input);void lcd_initial();void gotoxy(unsigned char x, unsigned char y);void print(unsigned char *st

40、r);void inttostr( unsigned char *str) ;void chartostr( unsigned char *str) ;void display(void);/显示当前温度和设置要到的温度void disp(void);/void wdszstr( unsigned char *str) ;void wdszdis(void);/*sbit dq=p35;/读温度是用到的函数readonechar(void);/读一个字节writeonechar(unsigned char dat);unsigned int readtemperature(void);/读取温

41、度/*void main(void) unsigned char n; for(n=0;n2;n+) p2=0;p3=0;lcd_initial(); delay1ms(10);gotoxy(0,0);print(hello welcome to); gotoxy(0,1);print(washing system !); while(1) getkey();if(biao=3)|(biao=4)|(biao=5)disp();if(biao=6)display(); /*void delay1ms(unsigned int count)unsigned int i,j;for(i=0;ico

42、unt;i+)for(j=0;j120;j+);void delay(unsigned int i)/延时函数 while(i-);/*bit pkey(void)/判断键的否被按下,通过返回值确定 p1=0x38; /p.0p1.2接行,p1.3p1.5接列。给行输入低电平,给列输入高电平,整体扫描 if(p1!=0x38) delay1ms(50); if(p1!=0x38) return 1;/如果有按键按下返回1 else return 0; else return 0;/没有按键按下返回0void getkey(void) unsigned char key=0x09,s,k,c;

43、while(1) if(pkey()=1) p1=0x3e; k=0x3e;for(c=0;c3;c+) s=p1&0x38;switch(s) case 0x30: key=3*c+0; break; case 0x28: key=3*c+1; break; case 0x18: key=3*c+2; break; default: break; k=(k=4)su=2;sure();break;/确定键和暂停 default :break; else break; /*void disauto3(void) p3_2=0;p3_3=1;p3_4=1;tr1=0; gotoxy(0,0);p

44、rint(system will auto);gotoxy(0,1);print(wash three times);biao=1;void disauto2(void) p3_2=1;p3_3=0;p3_4=1;tr1=0; gotoxy(0,0);print(system will auto);gotoxy(0,1);print( wash two times );biao=2; void diskxi(void)p3_2=0;p3_3=0;p3_4=1;tr1=0;minite=8;gotoxy(0,0);print( kuai xi yi ci );gotoxy(0,1);print(time: );biao=3;void dismxi(void)p3_2=1;p3_3=1;p3_4=0;tr1=0;minite=8;gotoxy(0,0);print( man xi yi ci );gotoxy(0,1);print(time: );biao=4;void distuoshui(void)p3_2=0;p3_3=1;p3_4=0;tr1=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论