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

標(biāo)題: 編譯錯(cuò)誤error C141: syntax error near '=', expected '__asm' [打印本頁(yè)]

作者: 123~321    時(shí)間: 2024-3-10 11:46
標(biāo)題: 編譯錯(cuò)誤error C141: syntax error near '=', expected '__asm'
有沒(méi)有大佬幫忙看一下怎么解決

單片機(jī)源程序如下:
#include <reg52.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
sbit KEY_OPEN = P3^3; //引腳定義
sbit KEY_CLOSE = P3^5;

sbit LED_GREEN = P2^1;
sbit LED_RED = P2^2;

sbit BUZZER = P2^0;

#define BUZZER_ON (BUZZER = 0)
#define BUZZER_OFF (BUZZER = 1)

sbit SHAKE_PIN = P1^1; //震動(dòng)傳感器
sbit HC_SR501 = P1^0; //人體活動(dòng)傳感器
sbit RELAY_LOCK = P2^3; //電磁鎖


bit g_irFlag = 0; //紅外接收標(biāo)志,收到一幀正確數(shù)據(jù)后置1
unsigned char g_irCode[4];

unsigned char refreshFlag = 0; //更新顯示標(biāo)志
unsigned char setFlag = 0; //設(shè)置參數(shù)標(biāo)志
bit lockFlag = 1; //鎖的狀態(tài)標(biāo)志
bit monitorFlag = 0; //監(jiān)控標(biāo)志
bit alarmFlag = 0; //報(bào)警標(biāo)志

unsigned char time500msCnt = 0;
unsigned char time500msCnt2 = 0;

bit oldPinState = 0;
bit nowPinState = 0;

char dis0[16]; //定義顯示區(qū)域臨時(shí)存儲(chǔ)數(shù)組

void CheckKey(void);
void CheckBluetooth(void);
void Timer1_Init(void); //定時(shí)器初始化

void main(void)
{
    IR_INPUT = 1;      110.c(49): error C141: syntax error near '=', expected 'hdata'   ,110.c(49): error C141: syntax error near '=', expected '__asm'

    Timer1_Init();
    IR_Init();
    Uart_Init();
    LCD_Init();   //初始化液晶
    DelayMs(200); //延時(shí)有助于穩(wěn)定
    LCD_Clear();  //清屏

    LCD_DispStr(0, 0, "    Welcome!    ");
    DelayS(1);
    LCD_DispStr(0, 0, "   Waiting...   ");
    DelayS(5);

    err_num = GSM_Init(); //GSM初始化

    DelayMs(10);
    if (gsm_init_flag) //初始化完成
    {
        err_num = GSM_Text_Mode(); //GSM 設(shè)置Text模式
    }
    DelayMs(10);
    if (gsm_config_flag)
    {
        err_num = GSM_Delete_Sms("1"); //刪除短信1
    }
    DelayMs(10);
    if (!(gsm_init_flag || gsm_config_flag || gsm_delete_flag)) // AT命令報(bào)錯(cuò)
    {
        BUZZER_ON;
        LCD_DispStr(0, 0, " Init Err Num  ");
        LCD_WriteData((int)err_num+'0');
        DelayS(1);
        BUZZER_OFF;
    }
    else
    {
        LCD_DispStr(0, 0, "    Init OK!    ");
    }

    DelayS(3);

    EEPROM52_Init(); //初始化電話號(hào)碼
    LCD_DispStr(0, 0, "     Status     ");

    while (1) //主循環(huán)
    {
        gsm_receive_process(); //gsm接收處理

        if (lockFlag == 1) //已上鎖
        {
            LED_RED = 0;
            LED_GREEN = 1;
            RELAY_LOCK = 1; //關(guān)閉鎖
            if (alarmFlag == 0)
            {
                if (HC_SR501 == 0 && SHAKE_PIN == 0) //有人且震動(dòng)
                    monitorFlag = 1;

                if (monitorFlag == 1) //進(jìn)入監(jiān)控狀態(tài)
                {
                    if (time500msCnt >= 10 && time500msCnt <= 20) //進(jìn)入監(jiān)控模式后的5s~10s,持續(xù)監(jiān)測(cè)
                    {
                        if (HC_SR501 == 0 && SHAKE_PIN == 0) //再次檢測(cè)到有人且震動(dòng)
                        {
                            alarmFlag = 1;
                            time500msCnt = 0;
                            BUZZER_ON;
                            LCD_DispStr(0, 1, "    Warning!    ");
                            GSM_Send_Sms(phone1, "Please pay attention to your car!");
                            DelayMs(10);
                        }

                    }
                    else if (time500msCnt > 20) //超過(guò)10s沒(méi)檢測(cè)到
                    {
                        monitorFlag = 0; //退出監(jiān)控
                        time500msCnt = 0;
                    }
                }
                else
                {
                    time500msCnt = 0;
                    BUZZER_OFF;
                }
            }
            else //報(bào)警模式
            {
                if (time500msCnt >= 120) //響鈴1分鐘退出報(bào)警模式
                {
                    alarmFlag = 0;
                }
            }
        }
        else
        {
            LED_RED = 1;
            LED_GREEN = 0;
            alarmFlag = 0;
            monitorFlag = 0;
            RELAY_LOCK = 0; //打開(kāi)鎖
            BUZZER_OFF;

        }

        if (refreshFlag == 1) //刷新界面
        {
            refreshFlag = 0;
            TR1 = 0;

            if (lockFlag == 1) //已上鎖
            {
                if (alarmFlag == 0)
                {
                    if (monitorFlag == 1) //進(jìn)入監(jiān)控狀態(tài)
                    {
                        time500msCnt++;
                    }
                    else
                    {
                        time500msCnt = 0;
                        LCD_DispStr(0, 1, "      Lock      ");
                    }
                }
                else //報(bào)警模式
                {
                    time500msCnt++;
                }
            }
            else
            {
                LCD_DispStr(0, 1, "      Open      ");
                if (time500msCnt2 > 0)
                {
                    time500msCnt2--;
                }
                else
                {
                    RELAY_LOCK = 0; //關(guān)閉鎖
                    LED_RED = 0;
                    LED_GREEN = 1;
                    lockFlag = 1;
                }
            }

            TR1 = 1;
        }

        CheckKey();       //檢測(cè)按鍵
    }
}

void CheckKey(void)
{
    static unsigned char rekey = 0;
    if ((KEY_OPEN == 0) || (KEY_CLOSE == 0)) //檢測(cè)到按鍵按下
    {
        DelayMs(10); //小抖動(dòng)
        if (rekey == 0)
        {
            if (KEY_OPEN == 0) //檢測(cè)是否按下
            {
                rekey = 1;
                lockFlag = 0;
                time500msCnt2 = 20; //開(kāi)鎖20*500ms=10s
            }
            else if (KEY_CLOSE == 0) //
            {
                rekey = 1;
                lockFlag = 1;
            }

        }
    }
    else
    {
        rekey = 0; //防止重復(fù)檢測(cè)到按鍵
    }

    if (g_irFlag == 1 && g_irCode[2] == IRCodeMap[0][0])
    {
        lockFlag = 0;
        g_irFlag = 0;
        time500msCnt2 = 20; //開(kāi)鎖20*500ms=10s
    }
    else if (g_irFlag == 1 && g_irCode[2] == IRCodeMap[2][0])
    {
        lockFlag = 1;
        g_irFlag = 0;
    }
}


/**************************************************************************************************
*************************************紅外解碼定時(shí)器程序********************************************
**************************************************************************************************/
//外部中斷解碼程序_外部中斷0
void Ext0_Interrupt(void) interrupt 0
{

    unsigned char i, j;
    unsigned char byt;
    unsigned int time;

    time = IR_GetLowTime();

    if ((time < 7833) || (time > 8755))
    {
        IE0 = 0;
        return;
    } //找到啟始碼

    time = IR_GetHighTime();

    if ((time < 3686) || (time > 4608)) //時(shí)間判定范圍為4.0~5.0ms,
    {                                   //超過(guò)此范圍則說(shuō)明為誤碼,直接退出
        IE0 = 0;
        return;
    }
    //接收并判定后續(xù)的4 字節(jié)數(shù)據(jù)
    for (i = 0; i < 4; i++) //循環(huán)接收4 個(gè)字節(jié)
    {
        for (j = 0; j < 8; j++) //循環(huán)接收判定每字節(jié)的8 個(gè)bit
        {
            //接收判定每bit 的560us 低電平
            time = IR_GetLowTime();
            if ((time < 313) || (time > 718)) //時(shí)間判定范圍為340~780us,
            {                                 //超過(guò)此范圍則說(shuō)明為誤碼,直接退出
                IE0 = 0;
                return;
            }
            //接收每bit 高電平時(shí)間,判定該bit 的值
            time = IR_GetHighTime();
            if ((time > 313) && (time < 718)) //時(shí)間判定范圍為340~780us,
            {                                 //在此范圍內(nèi)說(shuō)明該bit 值為0
                byt >>= 1;                    //因低位在先,所以數(shù)據(jù)右移,高位為0
            }
            else if ((time > 1345) && (time < 1751)) //時(shí)間判定范圍為1460~1900us,
            {                                        //在此范圍內(nèi)說(shuō)明該bit 值為1
                byt >>= 1;                           //因低位在先,所以數(shù)據(jù)右移,
                byt |= 0x80;                         //高位置1
            }
            else //不在上述范圍內(nèi)則說(shuō)明為誤碼,直接退出
            {
                IE0 = 0;
                return;
            }
        }
        g_irCode[ i] = byt; //接收完一個(gè)字節(jié)后保存到緩沖區(qū)
    }
    g_irFlag = 1; //接收完畢后設(shè)置標(biāo)志
    IE0 = 0;    //退出前清零INT0 中斷標(biāo)志
}
/**************************************************************************************************
***************************************************************************************************
**************************************************************************************************/


/*------------------------------------------------
                    定時(shí)器初始化子程序
------------------------------------------------*/
void Timer1_Init(void)
{
    TMOD &= 0x0F; //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響
    TMOD |= 0x10; //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響
    TH1 = (65536 - 18432) / 256; //重新賦值 20ms
    TL1 = (65536 - 18432) % 256;
    EA = 1;  //總中斷打開(kāi)
    ET1 = 1; //定時(shí)器中斷打開(kāi)
    TR1 = 1; //定時(shí)器開(kāi)關(guān)打開(kāi)
}
/*------------------------------------------------
                定時(shí)器中斷子程序
------------------------------------------------*/
void Timer1_Interrupt(void) interrupt 3
{
    static unsigned char time20ms  = 0;
    TH1 = (65536 - 18432) / 256; //重新賦值 20ms
    TL1 = (65536 - 18432) % 256;
    time20ms++;

    if (time20ms >= 25)
    {
        refreshFlag = 1;
        time20ms = 0;
    }
}
作者: Hephaestus    時(shí)間: 2024-3-10 14:54
IR_INPUT沒(méi)有定義。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲视频在线免费观看 | 国产黄色一区 | 亚洲精品免费观看 | 伊人国产在线 | 欧美在线视频免费 | 欧美一级一级 | 国产美女啪啪 | 日韩在线资源 | 欧美日韩在线观看视频 | 91色漫| 成年人免费看视频 | 一区二区三区在线免费观看 | 91成人国产| 天天看天天操 | 亚洲成人一区二区 | 亚洲成人免费 | 色综合视频在线观看 | 亚洲成人免费 | 91成人在线观看喷潮蘑菇 | 亚洲免费成人 | 国产精品手机在线观看 | 国产一区在线视频 | 超碰在线人人 | 欧美在线| 国产精品91在线 | a毛片视频 | 成人免费在线观看 | 99视频网站| 亚洲免费一区二区 | 久久九九精品 | 欧美成人一区二区 | 黄色小视频在线观看 | 天天干夜夜草 | 久久综合激情 | www国产亚洲精品久久网站 | 色综合小说 | 欧美 日韩 国产 在线 | 专业操老外 | 国产在线中文字幕 | 久久免费观看视频 | 91插插插插插|