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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

error C213: left side of asn-op not an lvalue 單片機程序編譯錯誤

[復(fù)制鏈接]
ID:703121 發(fā)表于 2020-3-16 03:32 | 顯示全部樓層 |閱讀模式
程序如下:紅色部分是第52行
#include <reg51.H>
#include <intrins.h>
#define uc unsigned char
#define ut unsigned int
#define FOSC 11059200L          //系統(tǒng)頻率
#define BAUD 9600             //串口波特率
#define T1MS 1536               //1ms定時器
//宏定義ADC的操作命令
#define ADC_POWER   0x80                        //ADC電源控制位
#define ADC_START   0x08                        //ADC啟動控制位
#define ADC_FLAG    0x10                        //ADC完成標(biāo)志位
#define ADC_SPEEDLL 0x00                        //420時鐘速度控制位

//#define unsigned int p3

#define AUXR 0x00
#define relay 0
#define touch  0
#define TMOD 0x01
#define TLO T1MS
#define TL0 T1MS
#define TH0 T1MS
#define TR0 1
#define        ET0 1
#define        EA 1
#define        P1 P1M0
#define        P1M0 0xff
#define        P1M1 0x00
#define        ADC_DATA 0xC6
sfr ADC_CONTR=0xC5;
sfr p3 = 0xB0;
sfr p1 = 0x90;

sbit RELAY = p3^7;//繼電器輸出
sbit TOUCH = p1^0;//觸摸檢測
uc sec,temp;
ut milsec;

void delay(uc i)
{
  while(i) i--;
}
void InitUart(void);
void InintTimer0(void);
void InitADC(void);
uc GetADCResult(uc ch);

void main()
{
        bit chanal;
        ut save_times,light,voice;
        AUXR=0x00;
        InintTimer0();
        InitADC();
        sec=0;
        relay=0;
        while(1)
        {
                if(chanal)
                {
                        light+=GetADCResult(2);//光照強度檢測
                        save_times++;
                }
                else
                {
                        voice+=GetADCResult(6);//聲音分貝檢測
                }
                chanal=~chanal;
                if(save_times==256)     //消抖
                {
                        save_times=0;
                        light/=256;
                        voice/=256;
                }
                if((light>200)||(voice>50)||(touch==0))relay=1;
                if(sec>=20)relay=0;      //延時輸出20秒后滅燈
                delay(200);
                delay(200);
        }
}
/*
void InitUart(void)
{
  SCON=0x50;                 //8個數(shù)據(jù)位,無校驗
  TMOD|=0x20;                 //8位自動裝載
  TH1=TL1=-(FOSC/12/32/BAUD);//設(shè)置波特率
  TR1=1;                     //使能定時1
}
*/
void InintTimer0(void)
{
  TMOD|=0x01;
  TL0=T1MS;
  TH0=T1MS>>8;
  TR0=1;
  ET0=1;
  EA=1;
}

void InitADC(void)
{
  P1=P1M0=0xff;
  P1M1=0x00;
  ADC_DATA=0;
  ADC_CONTR=ADC_POWER|ADC_SPEEDLL;
  delay(2);
}

uc GetADCResult(uc ch)
{
  ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|ADC_START;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  while(!(ADC_CONTR & ADC_FLAG));//Wait complete flag
  ADC_CONTR &=~ADC_FLAG;
  return ADC_DATA;
}
void tm0_isr() interrupt 1 using 1
{
        TL0=T1MS;
        TH0=T1MS>>8;
        milsec++;
        if(milsec==1000)
        {
                if(sec<20)sec++;
        }
}


錯誤如下:
Build target 'Target 1'
compiling lili.c...
LILI.C(52): error C213: left side of asn-op not an lvalue

回復(fù)

使用道具 舉報

ID:703121 發(fā)表于 2020-3-17 12:11 | 顯示全部樓層
請前輩們幫幫忙,謝謝
回復(fù)

使用道具 舉報

ID:267719 發(fā)表于 2020-3-17 16:16 | 顯示全部樓層
第一:你的特殊寄存器都在REG51.h里用sfr 定義寄存器定義過了,所以AUXR、TMOD、TH0等等關(guān)鍵字被再次宏定義會亂掉的。
其次:你標(biāo)紅的AUXR是你在開頭第16行宏定義的,不是變量,所以不能賦值的。
第三:如果發(fā)現(xiàn)reg51里沒有定義,那就要找到對應(yīng)單片機的頭文件來使用,或者自己在頭文件里用sfr來定義添加這個寄存器的地址。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品a视频 | 日本小视频网站 | 欧美爱爱视频 | 国产精品国产三级国产aⅴ中文 | 91亚洲精选 | 性国产丰满麻豆videosex | 99久久免费精品国产免费高清 | 欧美激情亚洲激情 | av激情影院 | 午夜精品91 | 成人看片在线观看 | 成人欧美一区二区三区1314 | 草久视频 | 精品久久国产 | 成人网视频 | 九九热精品在线 | 亚洲乱码一区二区三区在线观看 | 欧美日韩1区2区 | 狠狠爱一区二区三区 | 国产成人福利视频 | 日韩一级不卡 | 久久精品免费 | 欧美成人a∨高清免费观看 91伊人 | 午夜视频在线播放 | 欧美日韩亚洲一区 | 男人的天堂久久 | 亚洲导航深夜福利涩涩屋 | 久久亚洲春色中文字幕久久久 | 国产伦精品一区二区三区精品视频 | 免费久久精品 | 国产精品一区二区不卡 | 天天操天天射天天舔 | 欧美一级在线 | 精品免费国产一区二区三区四区 | av网站免费在线观看 | 岛国二区 | 午夜理伦三级理论三级在线观看 | 伊人伊人| 国产真实精品久久二三区 | 美日韩精品 | 亚洲精品一区二区冲田杏梨 |