久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2565|回復: 5
打印 上一主題 下一主題
收起左側

7按鍵控制對應7LED斷電能記憶上一次狀態

[復制鏈接]
跳轉到指定樓層
樓主
1黑幣
新手,沒有太多的黑幣,抱歉了!
如圖,想做一個多路開關玩,手頭有拆機的MCU,請高手幫忙設計程序。
1、KEY1~7分別控制LED1~7;
2、當任意一個KEY按下后對應LED點亮,但其它LED滅;
4、需要在關機斷電時記錄最近一次操作模式,方便再次開機上電時使用。

d1.jpg (55.46 KB, 下載次數: 72)

d1.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:234868 發表于 2018-3-24 14:28 | 只看該作者
每次有按鍵按下時,將當前的狀態寫入EEPROM中,每次程序啟動時,從EEPROM讀取就行。
回復

使用道具 舉報

板凳
ID:295906 發表于 2018-3-25 15:51 | 只看該作者
511386807 發表于 2018-3-24 14:28
每次有按鍵按下時,將當前的狀態寫入EEPROM中,每次程序啟動時,從EEPROM讀取就行。

關鍵是,不會寫。
回復

使用道具 舉報

地板
ID:287536 發表于 2018-3-26 21:15 | 只看該作者
沒有EEProm沒法實現記憶功能
回復

使用道具 舉報

5#
ID:295906 發表于 2018-3-27 22:27 | 只看該作者

#include "STC_IAP_EEPROM.h"
#include "common.h"
#define uchar unsigned char
#define uint  unsigned int

/*=================DF¶¨òåÏà1Ø================*/
#define FLAG_EPPROM_ADDR            0      //EPPROMÄú′æ3õê¼»ˉ±êÖ¾μØÖ·
#define MODE_EPPROM_ADDR            8      //êäèëí¨μà′æ′¢μØÖ·
#define OUTMODE_EPPROM_ADDR        12      //êä3öí¨μà′æ′¢μØÖ·

void RecoverParam(void)
{
    unsigned char temp;
    temp = Byte_Read(FLAG_EPPROM_ADDR);
    if(temp == 0x5a)
    {
        mode = Byte_Read(MODE_EPPROM_ADDR);
        if(mode>5) mode=0;
    }
}

void UpdateSaveParam(void)
{
    Sector_Erase(FLAG_EPPROM_ADDR);           //2á3yÕû¸öéèÇø
    Byte_Program(FLAG_EPPROM_ADDR, 0x5a);     //½« DEBUG_DATA D′èë EEPROM
    Byte_Program(MODE_EPPROM_ADDR, mode);
}

//5msÑóê±
void Delay5Ms(void)
{
        unsigned int TempCyc = 60552;        
        while(TempCyc--);
}

//400msÑóê±
void Delay400Ms(void)
{
        unsigned char TempCycA = 5;
        unsigned int TempCycB;
        while(TempCycA--)
        {
                  TempCycB=44269;
                  while(TempCycB--);
        }
            UpdateSaveParam();
}
//-------------------------------------í¨μàêäèëÑ¡Ôñé趨oˉêy¿aê¼---------------------------------------//
void key_scan()
{
        static bit KEY_MODE1_sign,KEY_MODE2_sign,KEY_MODE3_sign,KEY_MODE4_sign,KEY_MODE5_sign;                                //¾2ì¬Î»±äá¿°′¼ü×ÔËø±êÖ¾
        static uint count1,count2,count3,count4,count5;                                                                                                                                                                                                //¾2쬼Æêy±äá¿                        
        
        if(KEY_MODE1==0)                                                                                                                                                                       //¼ì2a°′¼ü1°′ÏÂ
        {
                if(KEY_MODE1_sign==0)
                {
                        count1++;                                 //Ïû¶¶¼Æêy1×Ô+1
                        if(count1>=1000)                          //°′Ö÷Ñ-»·ÖüÆú100~2000μ÷Õû
                        {
                                KEY_MODE1_sign=1;                 //°′¼ü1×ÔËø±êÖ¾ÖÃ1
                                K1=0;K2=K3=K4=K5=1;               //led1è¡·′                        
                        }
                }
        }
        else                                                       //°′¼ü1ì§Æe
        {
                KEY_MODE1_sign=0;                                  //°′¼ü1×ÔËø±êÖ¾Çå0
                count1=0;                                          //Ïû¶¶¼Æêy1Çå0
        }

        if(KEY_MODE2==0)                                           //¼ì2a°′¼ü2°′ÏÂ
        {
                if(KEY_MODE2_sign==0)
                {
                        count2++;                                 //Ïû¶¶¼Æêy1×Ô+1
                        if(count2>=1000)                          //°′Ö÷Ñ-»·ÖüÆú100~2000μ÷Õû
                        {
                                KEY_MODE2_sign=1;                 //°′¼ü2×ÔËø±êÖ¾ÖÃ1
                                K2=0;K1=K3=K4=K5=1;               //led2è¡·′                        
                        }
                }
        }
        else                                                       //°′¼ü2ì§Æe
        {
                KEY_MODE2_sign=0;                                  //°′¼ü2×ÔËø±êÖ¾Çå0
                count2=0;                                          //Ïû¶¶¼Æêy1Çå0
        }

        if(KEY_MODE3==0)                                           //¼ì2a°′¼ü3°′ÏÂ
        {
                if(KEY_MODE3_sign==0)
                {
                        count3++;                                 //Ïû¶¶¼Æêy1×Ô+1
                        if(count3>=1000)                          //°′Ö÷Ñ-»·ÖüÆú100~2000μ÷Õû
                        {
                                KEY_MODE3_sign=1;                 //°′¼ü1×ÔËø±êÖ¾ÖÃ3
                                K3=0;K2=K1=K4=K5=1;               //led3è¡·′                        
                        }
                }
        }
        else                                                       //°′¼ü1ì§Æe
        {
                KEY_MODE3_sign=0;                                  //°′¼ü1×ÔËø±êÖ¾Çå0
                count3=0;                                          //Ïû¶¶¼Æêy1Çå0
        }

        if(KEY_MODE4==0)                                           //¼ì2a°′¼ü2°′ÏÂ
        {
                if(KEY_MODE4_sign==0)
                {
                        count4++;                                 //Ïû¶¶¼Æêy1×Ô+1
                        if(count4>=1000)                          //°′Ö÷Ñ-»·ÖüÆú100~2000μ÷Õû
                        {
                                KEY_MODE4_sign=1;                 //°′¼ü2×ÔËø±êÖ¾ÖÃ1
                                K4=0;K1=K3=K2=K5=1;               //led4è¡·′                        
                        }
                }
        }
        else                                                       //°′¼ü4ì§Æe
        {
                KEY_MODE4_sign=0;                                  //°′¼ü4×ÔËø±êÖ¾Çå0
                count4=0;                                          //Ïû¶¶¼Æêy1Çå0
        }
        if(KEY_MODE5==0)                                           //¼ì2a°′¼ü2°′ÏÂ
        {
                if(KEY_MODE5_sign==0)
                {
                        count5++;                                 //Ïû¶¶¼Æêy1×Ô+1
                        if(count5>=1000)                          //°′Ö÷Ñ-»·ÖüÆú100~2000μ÷Õû
                        {
                                KEY_MODE5_sign=1;                  //°′¼ü5×ÔËø±êÖ¾ÖÃ1
                                K5=0;K1=K3=K2=K4=1;               //led5è¡·′                        
                        }
                }
        }
        else                                                       //°′¼ü5ì§Æe
        {
                KEY_MODE5_sign=0;                                  //°′¼ü5×ÔËø±êÖ¾Çå0
                count5=0;                                          //Ïû¶¶¼Æêy1Çå0
        }
                               
                                UpdateSaveParam();
}
/************Ö÷3ìDò************/
void main()
{
        RecoverParam();
                                key_scan();                     
}
回復

使用道具 舉報

6#
ID:295906 發表于 2018-3-27 22:28 | 只看該作者
511386807 發表于 2018-3-24 14:28
每次有按鍵按下時,將當前的狀態寫入EEPROM中,每次程序啟動時,從EEPROM讀取就行。

師傅,幫忙看看我的代碼哪里有問題。
加入存儲后,按鈕無法控制LED了,不加就可以,但是不能存儲。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久草福利 | av手机免费在线观看 | 中文字幕国产视频 | 国产一区二区视频免费在线观看 | 一级黄色片网址 | 色资源在线观看 | 国产线视频精品免费观看视频 | 日韩中文字幕视频在线观看 | 欧美精品一区在线发布 | 综合久久av | 欧美午夜激情在线 | 亚洲欧美国产精品久久 | 作爱视频免费看 | 欧美日韩久 | 欧美日韩亚洲视频 | 精品国产乱码久久久久久蜜柚 | 在线播放亚洲 | 中文字幕亚洲视频 | 伊人国产精品 | 久久夜视频 | 国产 日韩 欧美 中文 在线播放 | 99re99| 91一区二区三区在线观看 | 在线观看中文字幕 | 亚洲高清中文字幕 | 成人av电影在线观看 | 国产精品一区二区久久 | 亚洲精品一区二区三区蜜桃久 | 国产精品日韩高清伦字幕搜索 | 国产片网站 | 精品欧美一区二区三区久久久小说 | 亚洲视频观看 | 亚洲视频一 | 午夜精品一区二区三区在线观看 | 一级毛片播放 | 午夜精品久久久久久久久久久久 | 国产在线一区二区 | 久久99成人 | av国产精品| 可以在线观看av的网站 | 欧美在线一区二区三区 |