数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1602|回复: 20

[PIC] 5毛单片机解决淘汰共享干衣架实现倒计时(FT61FC43)

[复制链接]
发表于 2024-11-26 17:32:14 | 显示全部楼层 |阅读模式
看图说话

就是这个玩意


这是控制板,8脚地,9脚VCC,感觉FMD的掉个个按一下正好


学习了单边6脚4个8字数码管驱动,学习了2脚3按键,成功实现按键设置倒计时,泸州这个雾天还是用这个干衣比较快



补充内容 (2024-12-9 09:45):
通过网盘分享的文件:gxyjfmd.rar
链接: https://pan.baidu.com/s/1jH2cNCWwtwN_36h9d30Erw?pwd=gcst 提取码: gcst



补充内容 (2024-12-17 10:24):
1号键,是模式选择,nn00待机,nn01暖风,nn02半暖风,nn03冷风
2号键时间加1,小时最大到7,分钟最大59
3号键切换设置小时和分钟,设置小时上秒点亮

补充内容 (2024-12-17 10:27):
设置分钟下秒点亮
4号键退出
左右红蓝灯分别对应加热
热风结束会继续吹3分钟散热

补充内容 (2024-12-17 10:30):
4号键确定,在设置好后是确定开始,上面描述错了
任何状态按1号键退出加热退出设置

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +66 收起 理由
家睦 + 66

查看全部打赏

发表于 2025-3-9 07:54:43 | 显示全部楼层
bg4rff 发表于 2025-1-8 09:49
有需要修改功能、编译烧录芯片的都可以联系

感谢分享,请教一下没有烧录口是怎么烧写的,用sop16的IC座吗?
回复 支持 反对

使用道具 举报

发表于 2025-1-8 12:58:30 | 显示全部楼层
这个厉害了,谢谢分享!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-8 09:49:09 | 显示全部楼层
有需要修改功能、编译烧录芯片的都可以联系
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-8 09:46:15 | 显示全部楼层
我也做个板子解决淘汰共享干衣架实现倒计时(STC15W408AS)
https://www.mydigit.cn/forum.php ... &fromuid=806097
(出处: 数码之家)
看到坛友分享的源码我也分享一下

//Project: GXYJFMD.prj
// Device: FT61FC4X
// Memory: Flash 4KX14b, EEPROM 128X8b, SRAM 512X8b
// Author: bg4rff
//Company: aponjjz
//Version: 0.1
//   Date: 2024.11.21
//===========================================================
/*                  FT61FC43-RB  SOP16
*                     ----------------
*          VDD-----------|1(VDD)    (GND)16|------------GND     
*          Led3Out-------|2(PB4)    (PB7)15|--------Smg1Out
*          Led2Out-------|3(PB3)    (PC1)14|--------Smg2Out
*          Led1Out-------|4(PB2)    (PA7)13|--------Smg3Out
*          Key1IN--------|5(PB1)    (PA6)12|--------Smg4Out
|-----Key2IN--------|6(PB0)    (PA2)11|--------Smg5Out
|Key4-Key3IN--------|7(PA0)    (PB6)10|--------Smg6Out
*          HeatOut-------|8(PA1)    (PA4)09|---------FanOut
*                                 ----------------
*/
//===========================================================
#include        "SYSCFG.h"
//===========================================================

//***********************宏定义****************************
#define  uint8_t       unsigned char
#define  uint16_t      unsigned int
#define  uint32_t      unsigned long

#define  Led1Out        PB2
#define  Led2Out        PB3
#define  Led3Out        PB4
  
#define  Key1In                PB1
#define  Key2In                PB0
#define  Key3In                PA0

#define  Key2Out_L()        WPUB&=~0x01;TRISB0=0;Key2In=0
#define  Key2In_U()                TRISB0=1;WPUB|=0x01

#define  Key3Out_L()        WPUA&=0x01;TRISA0=0;Key3In=0
#define  Key3In_U()                TRISA0=1;WPUA|=0x01

#define  FanOut            PA4
#define  HeatOut        PA1

#define  Smg1Out        PB7
#define  Smg2Out        PC1
#define  Smg3Out        PA7
#define  Smg4Out        PA6
#define  Smg5Out        PA2
#define  Smg6Out        PB6


#define  Smg1Out_In()        TRISB7=1
#define  Smg2Out_In()        TRISC1=1
#define  Smg3Out_In()        TRISA7=1
#define  Smg4Out_In()        TRISA6=1
#define  Smg5Out_In()        TRISA2=1
#define  Smg6Out_In()        TRISB6=1

#define  Smg1Out_H()        TRISB7=0;Smg1Out=1
#define  Smg2Out_H()        TRISC1=0;Smg2Out=1
#define  Smg3Out_H()        TRISA7=0;Smg3Out=1
#define  Smg4Out_H()        TRISA6=0;Smg4Out=1
#define  Smg5Out_H()        TRISA2=0;Smg5Out=1
#define  Smg6Out_H()        TRISB6=0;Smg6Out=1

#define  Smg1Out_L()        TRISB7=0;Smg1Out=0
#define  Smg2Out_L()        TRISC1=0;Smg2Out=0
#define  Smg3Out_L()        TRISA7=0;Smg3Out=0
#define  Smg4Out_L()        TRISA6=0;Smg4Out=0
#define  Smg5Out_L()        TRISA2=0;Smg5Out=0
#define  Smg6Out_L()        TRISB6=0;Smg6Out=0

//Variable definition
volatile char W_TMP  @ 0x70 ;//系统占用不可以删除和修改
volatile char BSR_TMP  @ 0x71 ;//系统占用不可以删除和修改
void user_isr();//用户中断程序,不可删除
//===========================================================
uint8_t D_t_4ms=0;
uint8_t D_t_1S=0;
uint8_t        D_t_1Min=0;
uint8_t        D_r_hour=3;//默认3小时
uint8_t        D_r_Min=00;
uint8_t        D_r_mod=0;//默认不允许
uint32_t Dispbuf=0x00000000;
uint8_t D_Smg[4]={0x0a,0x0a,0x00,0x00};//初始显示nn00
//0123456789n //
//4位数码管对应的码段
uint32_t Segment[4][12]={
//0                        1                        2                        3                        4                5                        6                        7                        8                        9                n                                       
{0x000F8020,0x00088000,0x000D0028,0x00098028,0x000A8008,0x00038028,0x00078028,0x00098000,0x000F8028,0x000B8028,0x00048008,0x00000000},
{0X00700380,0X00000280,0X006001C0,0X004003C0,0X001002C0,0X00500340,0X00700340,0X00000380,0X007003C0,0X005003C0,0X00200240,0x00000000},
{0X00807C00,0X00800400,0X01006C00,0X01804C00,0X01801400,0X01805800,0X01807800,0X00800C00,0X01807C00,0X01805C00,0X01802000,0x00000000},
{0X3C000014,0X04000004,0X2E000010,0X0E000014,0X16000004,0X1A000014,0X3A000014,0X0C000004,0X3E000014,0X1E000014,0X22000004,0x00000000 }
};
uint32_t Sec_Dot=0X00000000;//秒点对应的码段
bit Tset_idx=0;
bit Runing=0;
//更新显存
void Disp_Scan(void);
void RefleshDispData(void)
{
        Dispbuf=0;
    Dispbuf=Segment[0][D_Smg[0]]|Segment[1][D_Smg[1]]|Segment[2][D_Smg[2]]|Segment[3][D_Smg[3]]|Sec_Dot;
}
uint8_t machinestep=0;
//===========================================================
//Function name:interrupt ISR
//parameters:无
//returned value:无
//===========================================================
void interrupt ISR(void)
{
#asm;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
        NOP;//系统设置不可以删除和修改
#endasm;//系统设置不可以删除和修改
        user_isr(); //用户中断函数
}
void user_isr() //用户中断函数
{
        if(T2UIE && T2UIF)                       
        {
                T2UIF = 1;                            //写1清零标志位            
        if(++D_t_4ms>=4)
        {
                        D_t_4ms=0;
                        if(Runing)
            {
                                if(D_t_1S==0)
                                {
                                        Sec_Dot=0X00000003;
                    RefleshDispData();
                }
                                if(D_t_1S==125)
                                {
                                        Sec_Dot=0X00000000;
                    RefleshDispData();
                }
                                if(++D_t_1S>250)
                                {
                                        D_t_1S=0;
                                        if(++D_t_1Min>60)
                                        {
                                                D_t_1Min=0;
                                                if(D_r_Min>0)
                                                {
                                                        D_r_Min--;
                                                        D_Smg[2]=(D_r_Min/10)%10;
                                                        D_Smg[3]=D_r_Min%10;
                                                        RefleshDispData();
                                                }
                                                else
                                                {
                                                        if(D_r_hour>0)
                                                        {
                                                                D_r_hour--;
                                                                D_r_Min=59;
                                                                D_Smg[0]=(D_r_hour/10)%10;
                                                                D_Smg[1]=D_r_hour%10;
                                                                D_Smg[2]=(D_r_Min/10)%10;
                                                                D_Smg[3]=D_r_Min%10;
                                                                RefleshDispData();
                                                        }
                                                }
                                           if((D_r_hour==0)&&(D_r_Min==0))
                                                {
                                                        if(D_r_mod!=3)  //非3,延时吹风冷却3分钟
                                                        {
                                                                D_r_mod=3;
                                                                Led2Out=1;
                                                                FanOut=1;
                                                                Led3Out=0;
                                                                HeatOut=0;
                                                                D_r_Min=3;  
                                                                D_Smg[0]=(D_r_hour/10)%10;
                                                                D_Smg[1]=D_r_hour%10;
                                                                D_Smg[2]=(D_r_Min/10)%10;
                                                                D_Smg[3]=D_r_Min%10;
                                                                RefleshDispData();
                                                        }
                                                        else
                                                        {
                                                                Led2Out=0;
                                                                FanOut=0;
                                                                Led3Out=0;
                                                                HeatOut=0;                                                               
                                                                machinestep=0;
                                                                D_r_mod=0;
                                                                D_Smg[0]=10;//n
                                                                D_Smg[1]=10;//n
                                                                D_Smg[2]=D_r_mod/10;
                                                                D_Smg[3]=D_r_mod%10;
                                                                Sec_Dot=0X00000000;
                                                                Runing=0;
                                                                RefleshDispData();
                                                        }
                                                }
                                                else
                                                {
                                                        if(D_r_mod==2)
                                                        {
                                                               
                                                                if((D_r_Min%5)==0)//防止继电器过分频繁,继电器5分钟跳
                                {
                                Led3Out=!Led3Out;
                                                                HeatOut=!HeatOut;
                                }
                                                        }
                                                }
                                        }
                                }
                        }
                Disp_Scan();       
        }
        }
}

/*-------------------------------------------------
* 函数名:POWER_INITIAL
* 功能:  上电系统初始化
* 输入:  无
* 输出:  无
--------------------------------------------------*/       
void POWER_INITIAL (void)
{
        OSCCON = 0B01110001;        //16MHz 1:1
        INTCON = 0B01000000;                          //暂禁止所有中断
   
        PORTA = 0B00000000;               
        TRISA = 0B11000101;                //PA输入输出 0-输出 1-输入   PA7  PA6  PA2 PA0
        PORTB = 0B00000000;               
        TRISB = 0B11000011;                //PB输入输出 0-输出 1-输入  PB7  PB6  PB1 PB0
        PORTC = 0B00000000;        
        TRISC = 0B00000010;                //PC输入输出 0-输出 1-输入         PC1
       
        WPUA = 0B00000001;             //PA端口上拉控制 1-开上拉 0-关上拉 PA0->上拉
        WPUB = 0B00000011;             //PB端口上拉控制 1-开上拉 0-关上拉 PB1PB0->上拉
        WPUC = 0B00000000;             //PC端口上拉控制 1-开上拉 0-关上拉
   
    WPDA = 0B00000000;             //PA端口下拉控制 1-开下拉 0-关下拉
        WPDB = 0B00000000;             //PB端口下拉控制 1-开下拉 0-关下拉
        WPDC = 0B00000000;             //PC端口下拉控制 1-开下拉 0-关下拉
   
    PSRC0 = 0B11111111;          //PORTA 源电流设置最大 0:最小,1:最大
    PSRC1 = 0B11111111;     //PORTB 源电流设置最大 0:最小,1:最大
    PSRC2 = 0B11111111;                //PORTC 源电流设置最大 00:最小 11:最大
   
    PSINK0 = 0B11111111;          //PORTA 灌电流设置最大 0:最小,1:最大
    PSINK1 = 0B11111111;         //PORTB 灌电流设置最大 0:最小,1:最大
    PSINK2 = 0B11111111;        //PORTC 灌电流设置最大 0:最小,1:最大
       
    ANSELA = 0B00000000;    //全为数字管脚
}
/*-------------------------------------------------
* 函数名:TIMER2_INIT
* 功能:  TIME2初始化
* 输入:  无
* 输出:  无
-------------------------------------------------*/
void Time2Initial(void)
{
        PCKEN |= 0B00000100;    //使能timer2时钟模块
    CKOCON = 0B00100000;
    TCKSRC = 0B00000000;    //TIM2时钟系统时钟
        //Bit7:  低频内振模式: 1 = 256K 振荡频率模式,0 = 32K 振荡频率模式
        //Bit[6:4]:TIM2时钟源选择位
        //值        时钟源
        //0                系统时钟/主时钟
        //1                HIRC
        //2                XT时钟/外部时钟
        //3                HIRC的2倍频
        //4                XT时钟/外部时钟的2倍频
        //5                LIRC
        //6                LP时钟/外部时钟
        //7                LP时钟/外部时钟的2位频
        //Bit3:   保留位
        //Bit[2:1]:TIM1时钟源选择位
        //值        时钟源
        //0                系统时钟/主时钟
        //1                HIRC
        //2                XT时钟/外部时钟
        //3                HIRC的2倍频
        //4                XT时钟/外部时钟的2倍频
        //5                LIRC
        //6                LP时钟/外部时钟
        //7                LP时钟/外部时钟的2位频

    TIM2CR1 =0B10000101;  //预载允许,边沿对齐向上计数器,计数器使能
        //Bit7:自动预装载允许位
        //0: TIM2_ARR寄存器没有缓冲,它可以被直接写入;
        //1: TIM2_ARR寄存器由预装载缓冲器缓冲。

        //Bit[6:4]:保留位
       
        //Bit3:单脉冲模式
        //0: 在发生更新事件时,计数器不停止;
        //1: 在发生下一次更新事件(清除CEN位)时,计数器停止。
       
        //Bit2:更新请求源
        //0: 如果UDIS允许产生更新事件,则下述任一事件产生一个更新中断:
        //寄存器被更新(计数器上溢/下溢)
        //1: 如果UDIS允许产生更新事件,则只有当下列事件发生时才产生更新中断,并UIF置1:
        //寄存器被更新(计数器上溢/下溢)
       
        //Bit1:禁止更新
        //0: 一旦下列事件发生,产生更新(UEV)事件:
        //计数器溢出/下溢
        //产生软件更新事件
        //1: 不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持它们的值。
       
        //Bit0:允许计数器
        //0: 禁止计数器;
        //1: 使能计数器。
            
    TIM2IER =0B00000001;
        //Bit[7:4]: 保留位
       
        //Bit3: 允许捕获/比较3中断
        //0: 禁止捕获/比较3中断;
        //1: 允许捕获/比较3中断。

        //Bit2: 允许捕获/比较2中断
        //0: 禁止捕获/比较2中断;
        //1: 允许捕获/比较2中断。

        //Bit1: 允许捕获/比较1中断
        //0: 禁止捕获/比较1中断;
        //1: 允许捕获/比较1中断。

        //Bit0: 允许更新中断
        //0: 禁止更新中断;
        //1: 允许更新中断。
      
    TIM2ARRH =0x3e;        //自动重载16000,周期1k
    TIM2ARRL =0x80;
   
    GIE =1;                //开总中断
}

/*-------------------------------------------------
* 函数名称:DelayUs
* 功能:    短延时函数 --16M-2T--大概快1%左右.
* 输入参数:Time延时时间长度 延时时长Time Us
* 返回参数:无
-------------------------------------------------*/
void DelayUs(unsigned char Time)
{
        unsigned char a;
        for(a=0;a<Time;a++)
        {
                NOP();
        }
}                  
/*-------------------------------------------------
* 函数名称:DelayMs
* 功能:    短延时函数
* 输入参数:Time延时时间长度 延时时长Time ms
* 返回参数:无
-------------------------------------------------*/
void DelayMs(unsigned char Time)
{
        unsigned char a,b;
        for(a=0;a<Time;a++)
        {
                for(b=0;b<5;b++)
                {
                         DelayUs(197); //快1%
                }
        }
}

/*-------------------------------------------------
* 函数名称:消隐函数
* 功能:    数码管输出脚全部为输入
* 输入参数: 无
* 返回参数:无
-------------------------------------------------*/
void Disp_off(void)
{
        Smg1Out_In();
        Smg2Out_In();
        Smg3Out_In();
        Smg4Out_In();
        Smg5Out_In();
        Smg6Out_In();
}

/*-------------------------------------------------
* 函数名称:显示扫描函数
* 功能:    分节拍扫描
* 输入参数: 无
* 返回参数:无
-------------------------------------------------*/
void Disp_Scan(void)
{
        static uint8_t SStep;
    Disp_off();
    //RefleshDispData();
         switch(SStep)
         {
          case 0:
                if(Dispbuf&0x00000001)Smg2Out_H();
        if(Dispbuf&0x00000002)Smg3Out_H();
        if(Dispbuf&0x00000004)Smg4Out_H();
        if(Dispbuf&0x00000008)Smg5Out_H();
        if(Dispbuf&0x00000010)Smg6Out_H();
                Smg1Out_L();
        SStep++;
                break;
          case 1:
                if(Dispbuf&0x00000020)Smg1Out_H();
        if(Dispbuf&0x00000040)Smg3Out_H();
        if(Dispbuf&0x00000080)Smg4Out_H();
        if(Dispbuf&0x00000100)Smg5Out_H();
        if(Dispbuf&0x00000200)Smg6Out_H();               
                Smg2Out_L();
        SStep++;   
                break;
          case 2:
                if(Dispbuf&0x00000400)Smg1Out_H();
        if(Dispbuf&0x00000800)Smg2Out_H();
        if(Dispbuf&0x00001000)Smg4Out_H();
        if(Dispbuf&0x00002000)Smg5Out_H();
        if(Dispbuf&0x00004000)Smg6Out_H();               
                Smg3Out_L();
        SStep++;
                break;
          case 3:
                if(Dispbuf&0x00008000)Smg1Out_H();
        if(Dispbuf&0x00010000)Smg2Out_H();
        if(Dispbuf&0x00020000)Smg3Out_H();
        if(Dispbuf&0x00040000)Smg5Out_H();
        if(Dispbuf&0x00080000)Smg6Out_H();               
                Smg4Out_L();
        SStep++;
                break;
          case 4:
                if(Dispbuf&0x00100000)Smg1Out_H();
        if(Dispbuf&0x00200000)Smg2Out_H();
        if(Dispbuf&0x00400000)Smg3Out_H();
        if(Dispbuf&0x00800000)Smg4Out_H();
        if(Dispbuf&0x01000000)Smg6Out_H();                       
                Smg5Out_L();
        SStep++;
                break;
          case 5:
                if(Dispbuf&0x02000000)Smg1Out_H();
        if(Dispbuf&0x04000000)Smg2Out_H();
        if(Dispbuf&0x08000000)Smg3Out_H();
        if(Dispbuf&0x10000000)Smg4Out_H();
        if(Dispbuf&0x20000000)Smg5Out_H();               
                Smg6Out_L();
        SStep=0;
                break;
          default:
                SStep=0;
                break;
         }
       
}
//===========================================================
//Function name:main
//parameters:无
//returned value:无
//===========================================================
main()
{
        POWER_INITIAL();                //系统初始化
    Time2Initial();
    RefleshDispData();
        while(1)
        {
         switch(machinestep)
         {
          case 0://初始模式选择,1全风全暖,2全风半暖,3全风不暖
                        if(D_r_mod>0)
            {
                if(Key3In == 1)//K4
                {
                                        Key2Out_L();
                    if(Key3In == 0)                 //判断输入是否为低电平
                                        {
                                                DelayMs(10); //延时一下 防抖动
                        if(Key3In == 0)
                        {
                        Key2In_U();
                        Key3Out_L();
                        if(Key2In==0)
                                                        {
                                                        while(Key2In==0);//松手检测,松后后执行
                                                                machinestep=1;
                                D_r_hour=3;
                                D_r_Min=0;
                                                                D_Smg[0]=D_r_hour/10;
                                D_Smg[1]=D_r_hour%10;
                                D_Smg[2]=D_r_Min/10;
                                D_Smg[3]=D_r_Min%10;
                                Sec_Dot=0X00000001;
                                Runing=0;
                                Tset_idx=0;
                                                        RefleshDispData();
                                                        }
                        Key3In_U();
                        }
                                        }
                                        Key2In_U();
                }
             }
                        if(Key1In == 0)                 //判断输入是否为低电平
                        {
                                DelayMs(10); //延时一下 防抖动
                                if(Key1In == 0)
                                {
                                        while(Key1In==0);//松手检测,松后执行
                                        if(++D_r_mod>3) D_r_mod=0;
                                        machinestep=0;
                                        D_Smg[0]=10;//n
                                        D_Smg[1]=10;//n
                                        D_Smg[2]=D_r_mod/10;
                                        D_Smg[3]=D_r_mod%10;
                    Sec_Dot=0X00000000;
                    Runing=0;
                                        RefleshDispData();
                                }
                        }
                break;
          case 1://工作时间调节
                        if(Key1In == 0)                 //判断输入是否为低电平
                                {
                                        DelayMs(10); //延时一下 防抖动
                    if(Key1In == 0)
                    {
                                                while(Key1In==0);//松手检测,松后后执行
                                                D_r_mod++;
                        machinestep=0;
                                                D_Smg[0]=10;//n
                                                D_Smg[1]=10;//n
                        D_Smg[2]=D_r_mod/10;
                                                D_Smg[3]=D_r_mod%10;
                        Sec_Dot=0X00000000;
                        Runing=0;
                                                RefleshDispData();
                    }
                                }
             if(Key2In == 0)                 //判断输入是否为低电平
                                {
                                        DelayMs(10); //延时一下 防抖动
                    if(Key2In == 0)
                    {
                                                while(Key2In==0);//松手检测,松后后执行
                                                if(Tset_idx)
                        {
                                                        if(++D_r_Min>59) D_r_Min=0;
                            Sec_Dot=0X00000002;
                        }
                        else
                        {
                                if(++D_r_hour>7) D_r_hour=0;
                            Sec_Dot=0X00000001;
                        }
                        machinestep=1;
                                                D_Smg[0]=(D_r_hour/10)%10;
                                                D_Smg[1]=D_r_hour%10;
                                                D_Smg[2]=(D_r_Min/10)%10;
                                                D_Smg[3]=D_r_Min%10;
                                                Runing=0;
                                                RefleshDispData();
                     }
                                }
            if(Key3In == 0)                 //判断输入是否为低电平
                                {
                                        DelayMs(10); //延时一下 防抖动
                    if(Key3In == 0)
                    {
                                                while(Key3In==0);//松手检测,松后后执行
                                                if(Tset_idx)
                        {
                            Sec_Dot=0X00000001;
                            Tset_idx=0;
                        }
                        else
                        {
                                                        Tset_idx=1;
                            Sec_Dot=0X00000002;
                        }
                        RefleshDispData();
                    }
                                }
            if(D_r_mod>0)
            {
                if(Key3In == 1)//K4
                {
                                        Key2Out_L();
                    if(Key3In == 0)                 //判断输入是否为低电平
                                        {
                                                DelayMs(10); //延时一下 防抖动
                        if(Key3In == 0)
                        {
                        Key2In_U();
                        Key3Out_L();
                        if(Key2In==0)
                                                        {
                                                        while(Key2In==0);//松手检测,松后后执行
                                                                machinestep=2;
                                Runing=1;
                                Led2Out=1;
                                                                FanOut=1;
                                                                Led3Out=1;
                                                                HeatOut=1;
                                if(D_r_mod==3)
                                {
                                Led3Out=0;
                                HeatOut=0;
                                }
                                                        }
                        Key3In_U();
                        }
                                        }
                                        Key2In_U();
                }
             }   
   
                break;
          case 2://运行
                        if(Key1In == 0)                 //判断输入是否为低电平
                        {
                                DelayMs(10); //延时一下 防抖动
                                if(Key1In == 0)
                                {
                                        while(Key1In==0);//松手检测,松后后执行
                                        Led2Out=0;
                                        FanOut=0;
                                        Led3Out=0;
                                        HeatOut=0;
                                        D_Smg[0]=10;//n
                                        D_Smg[1]=10;//n
                                        D_Smg[2]=D_r_mod/10;
                                        D_Smg[3]=D_r_mod%10;
                    Sec_Dot=0X00000000;
                    Runing=0;
                    machinestep=0;
                                        RefleshDispData();
                                }
                        }

                break;
//          case 3:
//                break;
//          case 4:
//                break;
//          case 5:
//                break;
          default:
                Led2Out=0;
                FanOut=0;
                Led3Out=0;
                HeatOut=0;
                machinestep=0;
                break;
         }
        }
}
//===========================================================
回复 支持 1 反对 0

使用道具 举报

发表于 2025-1-3 16:50:56 | 显示全部楼层
bg4rff 发表于 2024-12-9 08:19
给地址,顺丰或者京东到付可以吗

我用STC15W408AS也改造了一个
我也做个板子解决淘汰共享干衣架实现倒计时(STC15W408AS)
https://www.mydigit.cn/forum.php ... amp;fromuid=1329198
(出处: 数码之家)
回复 支持 反对

使用道具 举报

发表于 2024-12-17 17:06:14 | 显示全部楼层

厉害   支持改造
回复 支持 反对

使用道具 举报

发表于 2024-12-17 16:06:02 | 显示全部楼层
哈哈哈,厉害这都可以改造
回复 支持 反对

使用道具 举报

发表于 2024-12-9 09:47:59 | 显示全部楼层
哈哈哈,厉害这都可以改造
回复 支持 反对

使用道具 举报

发表于 2024-12-9 09:02:36 | 显示全部楼层
bg4rff 发表于 2024-12-9 08:22
需要分享什么呢,直接上芯片就行,编译好的文件吗

去年没找到合适的MCU,用STM8S003做了一个。没想到前辈直接换IC就行了,佩服!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-9 08:22:44 | 显示全部楼层
3dg6 发表于 2024-12-3 21:03
这个好,能分享一下吗?

需要分享什么呢,直接上芯片就行,编译好的文件吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-9 08:20:34 | 显示全部楼层
本帖最后由 bg4rff 于 2024-12-9 08:21 编辑
17805352 发表于 2024-12-5 09:13
什么单片机能说一下型号吗

FT61FC43,不带A不带B,但是安装时要掉个个,就是1脚对应原来的9,16对应原来的8
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-9 08:19:03 | 显示全部楼层
zhousz2000 发表于 2024-12-5 08:15
求发一片写好程序的FMD单片机

给地址,顺丰或者京东到付可以吗
回复 支持 反对

使用道具 举报

发表于 2024-12-6 21:39:02 来自手机浏览器 | 显示全部楼层
估计是共享倒闭流出的?
回复 支持 反对

使用道具 举报

发表于 2024-12-6 20:00:32 | 显示全部楼层
本帖最后由 3dg6 于 2024-12-7 15:20 编辑
17805352 发表于 2024-12-5 09:13
什么单片机能说一下型号吗

程序里写着:ft61fc43(ft61f143)
回复 支持 反对

使用道具 举报

发表于 2024-12-5 09:13:13 | 显示全部楼层
什么单片机能说一下型号吗
回复 支持 反对

使用道具 举报

发表于 2024-12-5 08:15:42 | 显示全部楼层
求发一片写好程序的FMD单片机
回复 支持 反对

使用道具 举报

发表于 2024-12-3 21:03:06 | 显示全部楼层
这个好,能分享一下吗?
回复 支持 反对

使用道具 举报

发表于 2024-11-27 11:33:37 | 显示全部楼层
废物再利用
回复 支持 反对

使用道具 举报

发表于 2024-11-26 18:15:26 | 显示全部楼层
这是旅馆房间里的共享干衣架?就像房间里的共享充电线一类的玩意?
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-25 21:29 , Processed in 0.280800 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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