访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
AT89S52单片机的家电控制系统设计
内容导读:
AT89S52单片机的家电控制系统设计引言家电控制的智能化已成为社会需求的新趋势。基于微机控制系统的智能化家电使我们的生活更加便利。而是否能够实现远程家电

AT89S52单片机的家电控制系统设计

引言

家电控制的智能化已成为社会需求的新趋势。基于微机控制系统的智能化家电使我们的生活更加便利。而是否能够实现远程家电的开关控制。又是否能够随时查询电器的工作状况,或者能够事先对家电的定时开关做出控制。又成为越来越感兴趣的研究方向。家电产品现已进入成熟期和稳定期。市场规模稳步上涨,但竞争日愈剧烈,其核心部件。即控制器性能及质量对企业产品的影响很大。同时,经济快速发展,人们对于家庭生活的舒适程度也提出了越来越高的要求,尤其体现在家电的便捷方面。在这个背景下,可以自主控制的家电控制系统,就逐渐显示出竞争力,这也符合时代发展的客观需要。随着中国经济的快速稳步增长和迅速发展,家电厂家越来越意识到被喻为家电“芯片”的家电控制器的重要性,因而纷纷与专业的研发公司或厂家合作,开发符合市场需求的、具有行业领先水平的控制器。

目前。关于家电控制器的研究和设计方案提出的很多,但仍有许多问题尚待解决,如没有统一的互操作规范等。但是,一些领先技术已经开始被应用于今天的家电控制领域。如:电话远程控制、红外线遥控、语音识别等等。如将语音识别技术应用到电器产品,来实现语音提示操作,从而使系统具有更加良好的操作界面等。随着相关技术不断进步,互操作型智能家电必将向着调度智能化、灵活性和互操作性的方向发展。从而进入寻常百姓家。

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所示。



3 系统功能分析

3.1 即时开关与状态返回功能

按下KEYl键,即可进入即时开关与状态返回功能。此时数码显示管和LED灯都没有变化,用户可以选择按下KEY2和KEY3中的任意一个,来选择其中一盏灯泡(模拟一路电器)作为操作对象。现以按下KEY2为例,则左起第二个数码管显示“2”,同时左起第6盏LED小灯亮,表示KEY2确实被按下(此处可用于故障检验)。

3.2 时间显示与设定功能

时间显示功能可在初始通电以后按下KEY2键开始执行。在按下KEY3键以后,数码管从左起第三个开始,到第八个为止。分别显示小时、分钟、秒数,用户可以根据需要设定时间,按下KEY3,则小时数加一,按下KEY2,则分钟数加一。该键还带有自动进位功能。整个数码管时间显示的极限是23时59分59 秒。

3.3 定时开关功能

定时开关功能是在初始通电以后按下KEY3键开始进行的。初始数码管从左起第三个开始,到第八个为止,全部显示为“0”,以等待按键输入设定时间。此时,按下KEYl,则小时显示加1,并定时中断程序中,全局变量值加60;按下KEY2,分钟显示加1,定时中断程序中,全局变量值加l;再次按下KEY3,即进入中断定时子程序,开始定时。定时结束以后,所指定的那个电器开关状态取反。在定时结束时,对应的LED自动点亮。

3.4 功能拓展与强化

该系统的现有功能还比较基础,主要局限在对于电器的开关操作中。比较现实的改进方案是加入语音提示功能。使用户在每次按键以前都可以有语音提示,如果出现错误按键,还可以有语音提示纠错。再有就是扩展键盘,现在的键盘数量的限制不仅使可操作的电器数量有限,还制约了控制系统的功能。在加入按键以后,除了可控电器数量会提升,还可以附加诸如分层次调节。在条件更好的情况下,也可以增加电话远程控制,使某个固定号码与控制系统相连,这样,当用户在较远处时,就可以通过网络与系统连接,并根据事先在程序中的设定,通过电话上的不同按键实现系统中按键的效果。从而完成远程家电的控制。

4 结束语

按照上述软硬件的分析。可在充分了解AT89S52单片机的基础上,基本实现带有即时开关、状态返回、时间显示与设定、定时开关等多种功能的多路家电控制系统。用户可以根据自己需要选择相应电器,了解其工作状态,自主设定时间进行通断操作。同时,这个系统还具有良好的拓展性,因此可以加入语音提示、多功能控制、甚至远程控制等后续功能。
标签:AT89S52,单片
来源:不详 作者:同济大学 王骏跃 时间:2010/4/7 9:59:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐