当前位置: 首页 > news >正文

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)

       {

相关文章:

  • 机器学习(11)——xgboost
  • JavaScript 中的 Window 对象详解
  • 超越想象:利用MetaGPT打造高效的AI协作环境
  • 1_Spring 【IOC容器的创建】
  • deepseek手动实现一个Spring Starter具体方案
  • 【2025版】SpringCloud Gateway网关快速入门
  • 系统启动时开启选择内核菜单
  • 【内存分配】
  • Python 向量化操作如何实现多条件筛选
  • 双列集合——HashMap,LinkedHashMap,TreeMap基本介绍
  • 聚类算法K-means和Dbscan的对比
  • React Native打包报错: Task :react-native-picker:verifyReleaseResources FAILE
  • 《Python星球日记》 第88天:ChatGPT 与 LangChain
  • 心理学层次结构
  • java中的Servlet2.x详解
  • 基于LabVIEW的双音多频系统设计
  • 【PINN】DeepXDE学习训练营(27)——pinn_forward-diffusion_1d_resample.py
  • 游戏:英雄联盟游戏开发代码(谢苏)
  • c++从入门到精通(六)--特殊工具与技术-完结篇
  • leetcode hot100刷题日记——1.两数之和
  • 不赚“快钱”的佳沛:蒋时杰解密新西兰国果如何在中国“慢养”出43亿生意
  • 无人机企业从科技园区搬到乡村后,村子里变得不一样了
  • 天问二号探测器顺利转入发射区
  • 浙江美术馆馆长人民日报撰文:打开更辽阔的审美场域
  • 人民网:激发博物馆创新活力,让“过去”拥有“未来”
  • 美国失去最后一个AAA评级,资产价格怎么走?美股或将触及天花板