电饭煲定时控制器设计

更新时间:2023-06-09 17:16:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电饭煲定时控制器设计

作者:何建新 刘矛 雷学堂 杨帆

来源:《电子世界》2012年第20期

【摘要】电饭煲定时控制器主要利用单片机AT89C51、其它外围元件电路,组成一个具有接通外部电源功能的定时控制器,具有结构简单,定时准确、操作方便等特点。

【关键词】AT89C51;发光二极管;数码管

1.绪论

随着电子产品的不断更新换代,尤其是在智能控制方面技术有了显著的改进。传统电饭煲具有效率高,蒸饭速度快,操作简单等优点。但在使用时必须采用人工开启电饭煲,这在使用中感到非常不便。为此,本设计将介绍在生活中用的最多的定时控制器,主要利用单片机AT89C51、其它外围元件电路,组成一个具有接通外部电源功能的定时控制器。

2.电路的硬件设计

2.1 电源电路设计

电源电路包括电容和稳压器。通过该电路,使得220V电压变为5V,再通过电容的滤波作用,稳压器的稳压作用,可输出5V的稳定电压,如图1所示。

2.2 总的电路图

定时开关的硬件电路如图2所示。采用单片机直接驱动数码管,数码管采用动态显示,数码管的7个笔画直接接单片机的PO.0~P0.7,位选段接单片机的P2.0~P2.5,八个发光二极管接单片机的P1.0~P1.7,三个按键接单片机的P3.0~P3.2。当需要设置定时时间时,我们按下设置开关即可进入设定模式,通过移位开关选择要设定哪一位,找到哪一位后,通过加按键实现在该位上数字的加。

3.电路的软件设计

3.1 定时程序设计

单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-51采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片

机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。

定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.

当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。

3.2 程序及其说明

/*程控定时开关*/

#include /*包含库函数*/

/*七段数码,高电平有效 ,顺序为.gfedcba*/

unsigned char led[]={0,0,0,0,0,0};/*将六个LED定义成一个数组,用来显示时、分和秒 */

unsigned int counter;

unsigned char n,w=0,flag=0,flag1=0;

unsigned char K1_on=0,K2_on=0,K1_off=1,K2_off=1 ;

unsigned char h_data=0,m_data=0,s_data=0;

unsigned char hdata1_on=0,mdata1_on=0,sdata1_on=5, hdata2_on=0,mdata2_on=0,sdata2_on=10;

unsigned char hdata1_off=0,mdata1_off=0,sdata1_off=8,hdata2_off=0,mdata2_off=0,sdata2_off=14;

/*s_data=50为时钟秒计数器,m_data=59为时钟分计数器,n,w=4指定LED的位,*/ /*flag,flag2,flag3,set_mdata1_on为设置分计数器,set_sdata1_on为设置秒计数器,*/ /*mdata1_on为闹钟分计数器,sdata1_on为闹钟秒计数器*/

本文来源:https://www.bwwdw.com/article/awv1.html

Top