• 大小: 398KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签:

资源简介

总体要求:基于51设计一个定时开关用于定时控制四个回路的电源通断。 基本要求: 1、主要应用于定时控制四个回路的电源通断。 2、以当前时间为基准,以24小时为周期,可以任意设定哪个回路于某时刻开,到某时刻关。如可以设置第一个回路在8:30-11:30开,14:30-18:00开,其他时间段为关。 3、能通过按键任意设置某回路某时间段的开关状态,利用数码管显示要直接明了。 4、请辅以操作说明书给于说明操作步骤,请同学们以产品研发的思路制作,面向用户设计人机交互,力求做到功能强大,操作简单。 备注说明: 硬件制作时,可以用一个回路接继电器控制,其他用发光二极管代替。为了人身安全,试验和演示时,只需听到继电器吸合声音即可,无需接入220V电源。

资源截图

代码片段和文件信息

#include
#include

#define WEI P2
#define DATA P0

#define delaystime 2    //延时
#define ON 1            //led状态
#define OFF 0
#define MAX_SETTING_TIME 1440 //24小时就是1440分钟 不能超过这个界限
#define DEC_QU 10             //取余取整用的 不动

sbit KEY_ENTER = P3 ^ 0;
sbit KEY_INC = P3 ^ 1;
sbit KEY_DEC = P3 ^ 2;

sbit LED1 = P3 ^ 4;
sbit LED2 = P3 ^ 5;
sbit LED3 = P3 ^ 6;
sbit LED4 = P3 ^ 7;

unsigned int tcount = 0; //20ms增加1
unsigned int rtc_sec = 2 etc_min = 29 rtc_hour = 12; //时间

unsigned int LED1_LOWR_ = 123; //按分钟换后的下限值 比如123代表 02:03
unsigned int LED1_HIGH_ = 127; //按分钟换后的下限值 比如123代表 02:03

unsigned int LED2_LOWR_ = 241; //按分钟换后的下限值 比如123代表 02:03
unsigned int LED2_HIGH_ = 246; //按分钟换后的下限值 比如123代表 02:03

unsigned int LED3_LOWR_ = 364; //按分钟换后的下限值 比如123代表 02:03
unsigned int LED3_HIGH_ = 369; //按分钟换后的下限值 比如123代表 02:03

unsigned int LED4_LOWR_ = 483; //按分钟换后的下限值 比如123代表 02:03
unsigned int LED4_HIGH_ = 489; //按分钟换后的下限值 比如123代表 02:03

unsigned int RTC_TIME; //用于控制LED 讲实时时钟转化成分钟进行比较

unsigned int MODE_ENTER = 0; //enter切换模式 0代表实时时间 1 2  3  4  5 6 7 8 代表八个时间设置模式 控制显示

char code table[]=
{   0xc00xf90xa40xb00x990x920x820xf80x800x900x880x830xc60xa10x860x8e};
char code wei[]=
{   0x800x400x200x100x080x040x020x01};

//***********************************************************************
//  //演示1ms时间
//***********************************************************************
void delay(unsigned int aa)
{
    unsigned int dsa;
    while (aa--)
    {
        for (dsa = 125; dsa > 0; dsa--)
            ;
    }
}

//***********************************************************************
//  //定时器设置 设置为外部计数器 和定时器
//***********************************************************************
void init()
{

    //  //   定时器初始化
    TMOD = 0x10;
    TH1 = (65536 - 50000) / 256;               //计数初值重装载
    TL1 = (65536 - 50000) % 256;
    TR1 = 1;
    TF1 = 0;
    EA = 1;
    ET1 = 1;
    //  //   IO口初始化
    LED1 = OFF;
    LED1 = OFF;
    LED1 = OFF;
    LED1 = OFF;

    

}
//***********************************************************************
//  // 定时器定时50ms中断
//***********************************************************************
void jishi()
interrupt 3
{
    TH1=(65536-50000)/256;               //计数初值重装载
    TL1=(65536-50000)%256;

    TF1=0;
    ///////////////////实时时间生成
    tcount++;
    if(tcount==20)//1s达到
    {
        tcount=0;
        rtc_sec++;
        if(rtc_sec==60)
        {
            rtc_sec=0;
            etc_min++;
            if(etc_min==60)
            {
                etc_min=0;
                rtc_hour++;
                if(rtc_hour==24)
                {
                    rtc_hour=0;
                }
            }
            

        }
    }
    /////////////////////

}
//***********************************************************************
//  //刷新数码管显示
//*****************************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-24 16:17  025 四路定时开关\
     文件       17422  2018-06-23 15:28  025 四路定时开关\单片机课程设计题目要求(共四个题目)(1).docx
     目录           0  2018-11-18 11:07  025 四路定时开关\时钟显示在数码管上\
     文件       22952  2018-06-24 02:45  025 四路定时开关\时钟显示在数码管上\AAAA.pdsprj
     文件        2196  2019-04-24 16:17  025 四路定时开关\时钟显示在数码管上\AAAA.pdsprj.ANOOP.PC1.workspace
     文件       22954  2018-06-24 02:34  025 四路定时开关\时钟显示在数码管上\Backup Of AAAA.pdsbak
     文件       23023  2018-06-24 02:33  025 四路定时开关\时钟显示在数码管上\Last Loaded AAAA.pdsbak
     文件        3740  2018-06-01 13:56  025 四路定时开关\时钟显示在数码管上\LCD1602.LST
     文件        4749  2018-06-01 13:56  025 四路定时开关\时钟显示在数码管上\LCD1602.OBJ
     文件       25703  2018-06-24 12:33  025 四路定时开关\时钟显示在数码管上\main.c
     文件       43035  2018-06-24 12:30  025 四路定时开关\时钟显示在数码管上\main.LST
     文件       41328  2018-06-24 12:30  025 四路定时开关\时钟显示在数码管上\main.OBJ
     文件       35773  2018-06-12 21:23  025 四路定时开关\时钟显示在数码管上\main.SRC
     文件       34083  2018-06-24 12:30  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS
     文件       11483  2018-06-24 12:30  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS.hex
     文件          45  2018-06-24 12:30  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS.lnp
     文件       37016  2018-06-24 12:30  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS.M51
     文件         205  2018-07-03 17:06  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS.plg
     文件       55635  2018-06-24 17:24  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS.uvopt
     文件       13231  2018-06-05 00:22  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS.uvproj
     文件       55643  2018-06-24 17:23  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS_uvopt.bak
     文件       13571  2018-06-01 02:01  025 四路定时开关\时钟显示在数码管上\PWM_MOTOS_uvproj.bak
     文件        3759  2018-06-01 13:56  025 四路定时开关\时钟显示在数码管上\STCEEPROM.LST
     文件        3718  2018-06-01 13:56  025 四路定时开关\时钟显示在数码管上\STCEEPROM.OBJ
     文件        2547  2018-06-24 01:06  025 四路定时开关\时钟显示在数码管上\实时时钟显示在数码管.c
     文件      274617  2018-11-21 20:51  如何运行仿真.docx
     文件         691  2019-04-24 15:13  说明书.txt

评论

共有 条评论