找回密码
 立即注册
查看: 464|回复: 2

基于STC15W408AS单片机设计的可编程多功能延时时间控制器开源原理图和例程

[复制链接]

该用户从未签到

42

主题

7

回帖

246

积分

中级会员

积分
246
发表于 2023-6-15 13:11:33 | 显示全部楼层 |阅读模式
GYJ-0306 淘宝描述_04.jpg

GYJ-0306 淘宝描述_02.jpg

GYJ-0306 淘宝描述_03.jpg

GYJ-0306 淘宝描述_05.jpg

GYJ-0306 淘宝描述_06.jpg

GYJ-0306 淘宝描述_07.jpg


【声明】此程序仅用于学习与参考!     
*********************************************************************/
#include <STC15W408AS.h>
#include <intrins.h>
#include <string.h>
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型

/**************************************************
                                 IO口定义
***************************************************/
sbit led = P1^0;
sbit IN1 = P5^4;
sbit set1= P1^7;
sbit set2= P1^6;
sbit set3= P1^1;

sbit ten1= P3^7;
sbit ten2= P3^6;
sbit ten3= P3^5;
sbit ten4= P3^4;

sbit b1 = P3^3;
sbit b2 = P3^2;
sbit b3 = P3^1;
sbit b4 = P3^0;
sbit OUT = P5^5;
bit bz=0,bk=0,kk=0,bt=0,kz=0,bs1=0,bs2=0,bs3=0;
uchar ba=0;
uint dat=0,dat1=0,dat2=0,jsu=0,js=0,js1=0,js2=0;

/**************************************************
                                配置t0
***************************************************/
void Timer0Init(void)                //1毫秒@11.0592MHz
{
        AUXR |= 0x80;                //定时器时钟1T模式
        TMOD &= 0xF0;                //设置定时器模式
    TL0 = 0xCD;                //设置定时初值
        TH0 = 0xD4;                //设置定时初值
        TF0 = 0;                //清除TF0标志
        ET0 = 1;
        TR0 = 1;                //定时器0开始计时
}

/**************************************************
                                t0
***************************************************/
void InterruptTimer0() interrupt 1{//T0中断服务函数,执行串口接收监控
             dat2=dat+dat1;
          if(dat2==0){kz=1;}else{kz=0;}
          if((kk==1)&&(bk==0)&&(kz==0)){jsu++;}
          if(ba==0)//秒
          {
            if(jsu==100){if(bt==0){OUT=1;}else{OUT=0;}}
            if(jsu==800){led=0;}
            if(jsu==1000)//1s
            {
               
              jsu=0;
                  led=1;
                  js++;
                   if(js==dat2)
                   {
            js=0;
                    bk=1;
                    kk=0;
                    led=0;
                    OUT=!OUT;
                   }
             }
          }

          if(ba==1)//分
          {
            if(jsu==100){if(bt==0){OUT=1;}else{OUT=0;}}
            if(jsu==800){led=0;}
            if(jsu==1000)//1s
            {
               
              jsu=0;
                  led=1;
                  js++;
                  if(js==60)//1fen
                   {
                      js=0;
                          js1++;
                      if(js1==dat2)
                      {
               js1=0;
                       bk=1;
                       kk=0;
                       led=0;
                       OUT=!OUT;
                      }
                   }
             }
          }

         if(ba==2)//分
          {
            if(jsu==100){if(bt==0){OUT=1;}else{OUT=0;}}
            if(jsu==800){led=0;}
            if(jsu==1000)//1秒
            {
               
              jsu=0;
                  led=1;
                  js++;
                  if(js==60)//1分钟
                   {
                      js=0;
                          js1++;
                          if(js1==60)//1小时
                          {
                            js1=0;
                            js2++;
                         if(js2==dat2)
                        {
                 js2=0;
                         bk=1;
                         kk=0;
                         led=0;
                         OUT=!OUT;
                        }
                          }
                    }
              }
           }
}
/**************************************************
                                主函数
***************************************************/
void main()
{
  Timer0Init();
  EA=1;
  ba=0;
  while(1)
  {
        if((IN1==0)&&(bz==0)){bz=1;kk=1;bk=0;}
        if((IN1==1)&&(bz==1)){bz=0;}
        if(set1==0){bt=1;}else{bt=0;} //拨上拨码开关设置延时断开,不拨延时接通
        if((set2==1)&&(set3==1)&&(bs1==0)){ba=0;bs1=1;bs2=0;bs3=0;}
        if((set2==0)&&(set3==1)&&(bs2==0)){ba=1;bs1=0;bs2=1;bs3=0;}
        if((set2==0)&&(set3==0)&&(bs3==0)){ba=2;bs1=0;bs2=0;bs3=1;}

        if((b1==1)&&(b2==1)&&(b3==1)&&(b4==1)){dat=0;}//1秒
        if((b1==0)&&(b2==1)&&(b3==1)&&(b4==1)){dat=1;}
        if((b1==1)&&(b2==0)&&(b3==1)&&(b4==1)){dat=2;}
        if((b1==0)&&(b2==0)&&(b3==1)&&(b4==1)){dat=3;}
        if((b1==1)&&(b2==1)&&(b3==0)&&(b4==1)){dat=4;}
        if((b1==0)&&(b2==1)&&(b3==0)&&(b4==1)){dat=5;}
        if((b1==1)&&(b2==0)&&(b3==0)&&(b4==1)){dat=6;}
        if((b1==0)&&(b2==0)&&(b3==0)&&(b4==1)){dat=7;}
        if((b1==1)&&(b2==1)&&(b3==1)&&(b4==0)){dat=8;}
        if((b1==0)&&(b2==1)&&(b3==1)&&(b4==0)){dat=9;}
        if((b1==1)&&(b2==0)&&(b3==1)&&(b4==0)){dat=10;}
        if((b1==0)&&(b2==0)&&(b3==1)&&(b4==0)){dat=11;}
        if((b1==1)&&(b2==1)&&(b3==0)&&(b4==0)){dat=12;}
        if((b1==0)&&(b2==1)&&(b3==0)&&(b4==0)){dat=13;}
        if((b1==1)&&(b2==0)&&(b3==0)&&(b4==0)){dat=14;}
        if((b1==0)&&(b2==0)&&(b3==0)&&(b4==0)){dat=15;}//15秒

        if((ten1==1)&&(ten2==1)&&(ten3==1)&&(ten4==1)){dat1=0;}//0s
        if((ten1==0)&&(ten2==1)&&(ten3==1)&&(ten4==1)){dat1=10;}//10s
        if((ten1==1)&&(ten2==0)&&(ten3==1)&&(ten4==1)){dat1=20;}//20s
        if((ten1==0)&&(ten2==0)&&(ten3==1)&&(ten4==1)){dat1=30;}//30s
        if((ten1==1)&&(ten2==1)&&(ten3==0)&&(ten4==1)){dat1=40;}//40s
        if((ten1==0)&&(ten2==1)&&(ten3==0)&&(ten4==1)){dat1=50;}//50s
        if((ten1==1)&&(ten2==0)&&(ten3==0)&&(ten4==1)){dat1=60;}//60s
        if((ten1==0)&&(ten2==0)&&(ten3==0)&&(ten4==1)){dat1=70;}//70s
        if((ten1==1)&&(ten2==1)&&(ten3==1)&&(ten4==0)){dat1=80;}//80s
        if((ten1==0)&&(ten2==1)&&(ten3==1)&&(ten4==0)){dat1=90;}//90s
        if((ten1==1)&&(ten2==0)&&(ten3==1)&&(ten4==0)){dat1=100;}//100s
        if((ten1==0)&&(ten2==0)&&(ten3==1)&&(ten4==0)){dat1=110;}//110s
        if((ten1==1)&&(ten2==1)&&(ten3==0)&&(ten4==0)){dat1=120;}//120s
        if((ten1==0)&&(ten2==1)&&(ten3==0)&&(ten4==0)){dat1=130;}//130s
        if((ten1==1)&&(ten2==0)&&(ten3==0)&&(ten4==0)){dat1=140;}//140s
        if((ten1==0)&&(ten2==0)&&(ten3==0)&&(ten4==0)){dat1=150;}//150s
  }
}

/*********************************************************************************************/


可编程多功能延时时间控制模块开源资料.zip

109.04 KB, 下载次数: 27

回复 送花

使用道具 举报

  • TA的每日心情
    开心
    2024-3-1 10:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    117

    回帖

    1053

    积分

    版主

    积分
    1053
    发表于 2023-6-15 16:14:35 | 显示全部楼层
    本帖最后由 STC芯势力 于 2023-6-15 16:17 编辑

    感谢楼主分享,建议使用我们强大的STC-USB Link1D工具,专业仿真器,全自动在线下载器/自动停电上电,脱机烧录器,USB转双串口工具,可以加我QQ1939247469,免费加包邮安排
    QQ图片20230615161657.jpg
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    42

    主题

    7

    回帖

    246

    积分

    中级会员

    积分
    246
     楼主| 发表于 2023-6-15 18:10:14 | 显示全部楼层
    STC芯势力 发表于 2023-6-15 16:14
    感谢楼主分享,建议使用我们强大的STC-USB Link1D工具,专业仿真器,全自动在线下载器/自动停电上电,脱机 ...

    我用了很好用,尤其是脱机下载功能,没电脑也可以下载,很方便。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-2 05:01 , Processed in 0.076411 second(s), 39 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表