欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 564|回復(fù): 4
收起左側(cè)

FMD 8腳單片機(jī) 一鍵控制多路LED

[復(fù)制鏈接]
ID:59341 發(fā)表于 2026-2-24 16:19 | 顯示全部樓層 |閱讀模式
長(zhǎng)按3秒開(kāi)機(jī),短按控制LED,請(qǐng)高手分析一下下面這個(gè)程序有沒(méi)有漏洞,假如用來(lái)批量生產(chǎn),是不是可行?//*********************************************************
#include        "SYSCFG.h"
#include         "FT62F21X.h"
//***********************宏定義****************************
#define KEY_PIN PA4

#define          LED1_ON                PA0=0  
#define          LED1_OFF        PA0=1
#define          LED2_ON                PA1=0  
#define          LED2_OFF        PA1=1

volatile unsigned int KEY_COUNT;
volatile unsigned char KEY_LOCK;
volatile unsigned char LED_MODE;

/*----------------------------------------------------
* 函數(shù)名:TIMER0_INITIAL
* 功能:  初始化設(shè)置定時(shí)器
* 設(shè)置TMR0定時(shí)時(shí)長(zhǎng)=(1/系統(tǒng)時(shí)鐘頻率)*指令周期*預(yù)分頻值*TMR0
*                                    =(1/16000000)*4*256*255 = 16ms
----------------------------------------------------*/
void TIMER0_INITIAL (void)  
{
        T0ON = 0;
        TMR0 = 0;                                        
        T0CON0 = 0B00000000;                        01:HIRC
        OPTION = 0B00000011;       
       
        T0ON = 1;
}
/*-------------------------------------------------
* 函數(shù)名:POWER_INITIAL
* 功能: 上電系統(tǒng)初始化
* 輸入:  無(wú)
* 輸出:  無(wú)
--------------------------------------------------*/       
void POWER_INITIAL (void)
{
        OSCCON = 0B01110000;       
        INTCON = 0;                          //暫禁止所有中斷
        OPTION = 0;
   
    TRISA = 0B00010000;                                //1:輸入 0:輸出 PA4-輸出
    PORTA = 0B11111111;                                //1:PAx輸出高電平        0:PAx輸出低電平
        WPUA =         0B00010000;                                //1:使能PA口上拉        0:關(guān)閉PA口上拉   
    PSRCA = 0;
   
    PSINKA = 0;                               
   
}

void KEY_FUNCTION(void)
        {
    if(KEY_COUNT>10&&KEY_PIN&&KEY_LOCK==0)//短按
                {
        LED_MODE++;
        if(LED_MODE==4)
                        LED_MODE=0;
                KEY_LOCK=1;        
        }
        if(KEY_COUNT>2999&&KEY_LOCK==0)//長(zhǎng)按3秒
                {
        LED_MODE=0;
                KEY_LOCK=1;        
        }
        }
   
void LED_DRIVE(void)
        {
        switch(LED_MODE)
                {
        case 0: LED1_OFF;LED2_OFF;break;
        case 1: LED1_ON; LED2_OFF;break;
        case 2: LED1_OFF;LED2_ON; break;
        case 3: LED1_ON; LED2_ON; break;
        default: LED_MODE=0;break;
        }
        }
/*-------------------------------------------------
* 函數(shù)名:main
* 功能:  主函數(shù)
* 輸入:  無(wú)
* 輸出:  無(wú)
--------------------------------------------------*/
void main()
{
    POWER_INITIAL();        //系統(tǒng)初始化
    TIMER0_INITIAL();
   
        GIE = 1;                                 //開(kāi)中斷
        T0IE = 1;                                //開(kāi)定時(shí)器/計(jì)數(shù)器0中斷   
    LED_MODE=0;//上電初始化狀態(tài) led全關(guān)
        while(1)
    {
        KEY_FUNCTION();
    LED_DRIVE();
        }
}

/*-------------------------------------------------
* 函數(shù)名: interrupt ISR
* 功能:  中斷處理
* 輸入:   無(wú)
* 輸出:   無(wú)
--------------------------------------------------*/
void interrupt ISR(void)
{
    if(INTCON & 0x04)                       
    {
        INTCON &= ~(1<<2);                       
        TMR0 =10;                               
        if(KEY_PIN==0)
                        {
            if(KEY_COUNT<10000)
                                KEY_COUNT++;
            }
        else
                        {
            if(KEY_COUNT>20)
                                KEY_COUNT=20;
            else if(KEY_COUNT>0)
                                KEY_COUNT--;            
            }
        if(KEY_COUNT==0)
                        KEY_LOCK=0;
        }
}
回復(fù)

使用道具 舉報(bào)

ID:1064915 發(fā)表于 2026-2-25 08:33 | 顯示全部樓層
批量生產(chǎn),是市場(chǎng)與成本決定,單機(jī)試程序
回復(fù)

使用道具 舉報(bào)

ID:59341 發(fā)表于 2026-2-25 10:12 | 顯示全部樓層
joyb 發(fā)表于 2026-2-25 08:33
批量生產(chǎn),是市場(chǎng)與成本決定,單機(jī)試程序

嗯,多謝指點(diǎn)!
回復(fù)

使用道具 舉報(bào)

ID:859047 發(fā)表于 2026-3-18 15:13 | 顯示全部樓層
開(kāi)機(jī)關(guān)機(jī)只是燈亮和不亮的區(qū)別嗎?如果是電池供電的話,最好加上SLEEP
回復(fù)

使用道具 舉報(bào)

ID:859047 發(fā)表于 2026-3-18 20:53 | 顯示全部樓層
程序執(zhí)行部分最好放到主循環(huán),中斷只更新標(biāo)志,主程序中加入看門(mén)狗
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表