微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于51单片机的家电控制系统设计

基于51单片机的家电控制系统设计

时间:12-01 来源:互联网 点击:

O 引言
家电控制的智能化已成为社会需求的新趋势。基于微机控制系统的智能化家电使我们的生活更加便利。而是否能够实现远程家电的开关控制。又是否能够随时查询电器的工作状况,或者能够事先对家电的定时开关做出控制。又成为越来越感兴趣的研究方向。家电产品现已进入成熟期和稳定期。市场规模稳步上涨,但竞争日愈剧烈,其核心部件。即控制器性能及质量对企业产品的影响很大。同时,经济快速发展,人们对于家庭生活的舒适程度也提出了越来越高的要求,尤其体现在家电的便捷方面。在这个背景下,可以自主控制的家电控制系统,就逐渐显示出竞争力,这也符合时代发展的客观需要。随着中国经济的快速稳步增长和迅速发展,家电厂家越来越意识到被喻为家电“芯片”的家电控制器的重要性,因而纷纷与专业的研发公司或厂家合作,开发符合市场需求的、具有行业领先水平的控制器。
目前。关于家电控制器的研究和设计方案提出的很多,但仍有许多问题尚待解决,如没有统一的互操作规范等。但是,一些领先技术已经开始被应用于今天的家电控制领域。如:电话远程控制、红外线遥控、语音识别等等。如将语音识别技术应用到电器产品,来实现语音提示操作,从而使系统具有更加良好的操作界面等。随着相关技术不断进步,互操作型智能家电必将向着调度智能化、灵活性和互操作性的方向发展。从而进入寻常百姓家。

1 硬件设计
本设计主要基于AT89S52单片机,并通过C语言来实现多路家电的即时开关控制、定时进行开关操作以及工作状态返回等三个功能程序,并以此为基础。结合带有HJPC5l-B的单片机开发系统来进行硬件调试。完成该基本要求以后,还可考虑加入外接键盘或外接存储器以及ISD语音芯片,并添加录放音程序,从而实现家电语音提示的控制。
本设计采用的硬件芯片为AT89S52芯片,同时选用了8盏绿色LED指示灯,8块LED数码显示管,其中3个分别与单片机的INTl、T0、Tl相连,以用来接收外部信号的按键。另外还使用了一个74LS245模块和两个74ALS573模块。整个硬件的核心是AT89S52芯片。该芯片的P1.0~P1.7口通过74LS245与8盏LED灯相连,这8盏指示灯在即时开关中起到直接显示的作用,而在定时开关中兼有故障检验功能。P0.0~P0.7口和P2.0~P2.7口分别通过两个74ALS573模块与八个LED数码显示管相连。8个数码管中,左起第一个用来指示具体某一路电器的开关状态,第二个指示哪一路电器被选中,第三和第四个显示小时数,第五和第六个显示分钟,第七和第八个显示秒数。另外,硬件电路中还特别配备了小灯,可作为按键是否按下的标志。

2 软件设计
2.1 即时开关与状态返回
即时开关与状态返回都是在初始时按KEYl键进入操作的,完成此功能,需要调用键盘读取子程序、灯泡开关子程序、数码管显示子程序、延时予程序等组合。其中键盘读入子程序是整个软件的基础,在键盘没有按键按下时,KEYl、KEY2、KEY3始终保持高电平,此时KEY值为0X38。而当某一个键被按下时,则该键位出现低电平。此时的KEY值必然出现变化,这样,将该值与0X38相与,然后根据得出的新值,就可以判断哪一个键被按下。
软件通常首先运行读取键盘程序,当数码管显示哪一路被选中后,再次读取键盘,以显示该路电器的工作状态,并根据外部输入决定开关操作。由于需要同时完成两个功能,所以,在程序中。设定KEY2和KEY3对电器进行操作,而KEY1用来在状态返回功能完成以后,指示该功能的结束,并开始即时开关功能。具体来说,就是先检测哪个电器对应的按键被按下,然后调用显示子程序在数码管中显示被选中的电器编号。状态返回部分是检测特定电器对应的管脚输出为低电平还是高电平,若输出为低电平,则调用显示0的数码显示子程序,反之则调用显示1的数码显示子程序。即时开关则可在按下电器对应的按键以后,将该电器(这里就是小灯泡)连接的Pl的某个端口进行取反操作,即工作状态反向。
2.2 时间显示
在确定KEY2按键被按下以后,程序将自动调用数码显示,并循环调用周期为1s的中断程序,如果需要设定时间,则可通过外部输入调用时间设定子程序来对时间进行调整。通过外部按键可改变秒、分钟、小时所对应的变量的值,并将其带入数码显示程序,在数码管中显示。在数码显示部分,应先确定段选和位选位,由于有秒、分钟、小时三个部分,故需要连续6个显示管,所以,在程序中要设定从第一个开始的6次循环,每次分别将选中的数码管的序号送到位选端,并将秒、分钟、小时所对应的变量的值作为实参送到段选端,从而使数码管依次显示对应的时间信息。
2. 3 定时开关
通过定时开关可在初始时按KEY3键进入操作。该功能是整个设计的核心和难点,综合运用到了之前几种功能的设计思想。这里也有一个定时中断子程序,但与之前以ls为基准、一分钟循环60次的固定模式不同的是,这是在事先不清楚用户的定时时间的情况下进行的,所以是以1分钟为基数,即定时时间间隔必须为1分钟的整数倍,但循环次数却是一个全局变量。这个全局变量的值可通过用户按键来实现。根据程序设定,若按下KEYl,则表示将该全局变量的值加60,若按下KEY2,则表示将该全局变量的值加1,即KEYl代表1小时,KEY2代表1分钟。此后若再按下KEY3,则表示设定结束,此时全局变量的值表示进行1分钟的定时的次数,在定时结束时,将该电器(这里就是小灯泡)连接的P1的某个端口进行取反操作,即可完成开关。这一功能的子程序流程图如图1所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top