基于单片机的电热水器定时控制器设计
发布时间:2008/6/3 0:00:00 访问次数:851
            
    本系统的核心单片机at89c2051为20脚300mil封装,是一种带有2kb flash e2prom的单片机。该单片机除了少了两个并口外,能兼容mcs-51系列单片机的所有功能,且具备体积小、功能强、运行速度快等特点。该电路可通过单片机的p3.7口连接一个键盘电路来实现对参数的人工自由设定,同时可通过串口连接6位led数码管,以分别显示小时、分钟和秒。系统定时启动是通过p3.0口完成的。程序开始时这三个口的输出状态都是低电平,at89c2051通过程序查询p3.0口输出on或off的状态预置时间是否已到,
    如果已到时间,则改变相应的输出状态,从而完成对外部电路的控制。    下面重点介绍键盘、显示以及输出控制这三种电路。    1.1 显示电路    本系统中的显示电路主要由七段共阳显示译码器74ls47、3线-8线译码器74thc138、7个pnp型三极管和六个数码管组成。通过at89c2051的p1.4~p1.7口将要显示字符的bcd码输出到74ls47的四个输人端,然后译码并输出相应的笔段来驱动led数码管(共阳)。led数码管显示采用动态扫描方式,即在某一时刻,只有一个数码管被点亮。数码管的位选信号由at89c2051的p3.3~p3.5输出,并经74hcl38译码后通过三极管放大,以驱动相应的数码管。    1.2 键盘电路    键盘电路跟显示电路一样采用扫描方式,并利用动态显示时的数码管驱动位置信号来判断相应按键的状态。单片机的p3.3~p3.5口输出的bcd码经译码器译码后,相应的y口呈低电平,而at89c205 1的p3.7口平时为高电平(由于有上拉电阻),只有当某一按键按下时,p3.7才被下拉为低,这时,单片机将利用程序查询p3.7是否为低,如果p3.7为低电平,则读回单片机p3.3~.p3.5口的值(从缓冲区读取),并判断是那个按键按下.然后调用相应的处理程序进行处理。    1.3 输出控制电路    单片机的控制输出是通过p3.0~p3.2口完成的。当程序开始时,这三个口的输出状态都是低电平,at89c2051通过程序查询三路输出的on或off状态预置时间是否已到,若时间到,则改变相应的输出状态,以完成对外部电路的控制。    2 软件设计    2.1 主程序流程    本系统的主程序工作过程是首先循环进行六个数码管的扫描显示(disply段),然后比较所有预置时间(comp段)是否与当前时间相等,如相等则转向相应处理程序。比较完成(或处理完成)后,再判断有无按键(pp2段)按下,没有则返回继续显示、比较、判断;有按键按下则转向相应的处理程序。按键转移采用偏移量加表格跳转转移法(key段)。预置时间比较则采用逐一比较法,即对每一个预设的值都进行比较,如果相等,则进行相应的处理。在具体比较时(comp1段),首先比较th值,如不相等,则直接转出并置"时间到"标志ccb为0,而如果th、tm、ts全部对应相等,则置该标志为1,其软件流程见图2所示。
            
    2.2 秒脉冲发生器的软件设计    系统中的秒脉冲发生器是由定时器t0和内存空间tt0配合完成的。其中t0工作于l 6位计数器模式,当t0向上计数并由全1变为全0时产生中断。本程序中,t0的初值为0dc00h,大约0.01秒中断一次。这里使用的晶振频率为11.0592mhz,由此可计算
            
    本系统的核心单片机at89c2051为20脚300mil封装,是一种带有2kb flash e2prom的单片机。该单片机除了少了两个并口外,能兼容mcs-51系列单片机的所有功能,且具备体积小、功能强、运行速度快等特点。该电路可通过单片机的p3.7口连接一个键盘电路来实现对参数的人工自由设定,同时可通过串口连接6位led数码管,以分别显示小时、分钟和秒。系统定时启动是通过p3.0口完成的。程序开始时这三个口的输出状态都是低电平,at89c2051通过程序查询p3.0口输出on或off的状态预置时间是否已到,
    如果已到时间,则改变相应的输出状态,从而完成对外部电路的控制。    下面重点介绍键盘、显示以及输出控制这三种电路。    1.1 显示电路    本系统中的显示电路主要由七段共阳显示译码器74ls47、3线-8线译码器74thc138、7个pnp型三极管和六个数码管组成。通过at89c2051的p1.4~p1.7口将要显示字符的bcd码输出到74ls47的四个输人端,然后译码并输出相应的笔段来驱动led数码管(共阳)。led数码管显示采用动态扫描方式,即在某一时刻,只有一个数码管被点亮。数码管的位选信号由at89c2051的p3.3~p3.5输出,并经74hcl38译码后通过三极管放大,以驱动相应的数码管。    1.2 键盘电路    键盘电路跟显示电路一样采用扫描方式,并利用动态显示时的数码管驱动位置信号来判断相应按键的状态。单片机的p3.3~p3.5口输出的bcd码经译码器译码后,相应的y口呈低电平,而at89c205 1的p3.7口平时为高电平(由于有上拉电阻),只有当某一按键按下时,p3.7才被下拉为低,这时,单片机将利用程序查询p3.7是否为低,如果p3.7为低电平,则读回单片机p3.3~.p3.5口的值(从缓冲区读取),并判断是那个按键按下.然后调用相应的处理程序进行处理。    1.3 输出控制电路    单片机的控制输出是通过p3.0~p3.2口完成的。当程序开始时,这三个口的输出状态都是低电平,at89c2051通过程序查询三路输出的on或off状态预置时间是否已到,若时间到,则改变相应的输出状态,以完成对外部电路的控制。    2 软件设计    2.1 主程序流程    本系统的主程序工作过程是首先循环进行六个数码管的扫描显示(disply段),然后比较所有预置时间(comp段)是否与当前时间相等,如相等则转向相应处理程序。比较完成(或处理完成)后,再判断有无按键(pp2段)按下,没有则返回继续显示、比较、判断;有按键按下则转向相应的处理程序。按键转移采用偏移量加表格跳转转移法(key段)。预置时间比较则采用逐一比较法,即对每一个预设的值都进行比较,如果相等,则进行相应的处理。在具体比较时(comp1段),首先比较th值,如不相等,则直接转出并置"时间到"标志ccb为0,而如果th、tm、ts全部对应相等,则置该标志为1,其软件流程见图2所示。
            
    2.2 秒脉冲发生器的软件设计    系统中的秒脉冲发生器是由定时器t0和内存空间tt0配合完成的。其中t0工作于l 6位计数器模式,当t0向上计数并由全1变为全0时产生中断。本程序中,t0的初值为0dc00h,大约0.01秒中断一次。这里使用的晶振频率为11.0592mhz,由此可计算
上一篇:基于ARM的FPGA加载配置实现