STC89C52单片机模拟洗衣机源代码程序 C语言程序 按键设置洗衣模式和洗衣时间 洗衣完成后语音报警提示

洗衣机控制系统程序如下:

***必要的变量定义及声明***

#include <reg52.h>

#define LCD P0                          //定义单片机P0口为LCD数据输入专用口

sbit E = P2^7;                                         //定义P2.7为LCD使能信号输入端

sbit RW = P2^5;                                 //定义P2.6为LCD读/写命令输入引脚

sbit RS = P2^6;                                  //定义P2.5为LCD数据/命令输入引脚

sbit psk0 = P2^0;                                                                                         //开始键

sbit psk1 = P2^1;                                                                                          //暂停键

sbit psk2 = P2^2;                                                                                          //结束键

sbit psk3 = P2^3;                                                                //蜂鸣器启停控制引脚

unsigned char i = 0,j = 0;

unsigned int count = 0,counter = 0;            //T0计数值count,T1计数值counter

unsigned int res_time = 0,wash_mode = 0;

unsigned char show_time[] = "00:00:00";            //定义LCD初始化显示值

unsigned char show_mode[] = "0";

unsigned char mode[] =                    //11个按键分别按下时所对应的P3口数值

{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char array[8] = {1,2,3,15,30,45,60,90}; //为wash_mode、res_time赋值

***洗衣机定时,T0中断子程序***

TTT() interrupt 1                                            //T0每秒请求中断,显示时间-1s

{

       TH0=(65536-50000)/256;

       TL0=(65536-50000)%256;

       count++;

       if(count == 150)

       {

              res_time--;

              Display(1);

              count=0;

              if(res_time ==0)                //洗涤完成,关闭T0,开启T1,蜂鸣器响起

              {

                     TR0 = 0;

                     psk3 = 1;

                     counter = 0;

                     TH1 = (65536-50000) / 256;

                     TL1 = (65536-50000) % 256;

                     TR1 = 1;

              }

        }

}

***蜂鸣器报警定时,T1中断子程序***

SSS() interrupt 3                                 //蜂鸣器报警结束,关闭T1,关闭蜂鸣器

{

       TH1 = (65536-50000) / 256;

       TL1 = (65536-50000) % 256;

       counter++;

       if(counter == 1500)

       {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuanshang_yutou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值