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

QQ登錄

只需一步,快速開始

搜索
查看: 1610|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)定義變量error C129: missing ';' before '^1

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
大家好!我是單片機(jī)新手。定義變量我不想用sbit=p^x這種現(xiàn)成的,我想用unsigned int a;/unsigned char a;編譯不了
unsigned int a;//unsigned char a;也試試
P2^0=a;
K1=P2^0;
unsigned int b;
P2^1=b;
K2=P2^1;
unsigned int c;
P1^0=c;
L1=P1^0;

弄成這樣,如何實(shí)現(xiàn)呢?


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2023-3-25 14:32 | 只看該作者
^是異或,P2^0=a;是標(biāo)準(zhǔn)的語法錯(cuò)誤——左值不可以參與運(yùn)算。
回復(fù)

使用道具 舉報(bào)

板凳
ID:277550 發(fā)表于 2023-3-25 15:12 | 只看該作者

unsigned int b;
P2^1=b;

P2第n位,不可以直接賦值。使用unsign char類型,加以位運(yùn)算,如與、或等

要把第2位設(shè)置高,使用
P2 |= 2;

要把第2位設(shè)置低,使用
P2 &= 0xfd;

其它位,類推
回復(fù)

使用道具 舉報(bào)

地板
ID:883242 發(fā)表于 2023-3-25 15:35 | 只看該作者

錯(cuò)!P2是可以位尋址的,位地址從0xa0~0xa7,P2.1的位地址是0xa1。

你和樓主的錯(cuò)誤就是不知道c語言里面^是個(gè)運(yùn)算符,不能隨心所欲地做位地址來用,那樣子會(huì)跟c語言基本語法發(fā)生矛盾。Keil C51為了使用位地址,采用的是sbit和^配合使用來定義位地址,比如sbit P21=P2^1;這樣的寫法,因?yàn)闃?biāo)準(zhǔn)c語言里面沒有sbit這個(gè)關(guān)鍵字,是c51自行擴(kuò)展出來的,所以這種寫法不會(huì)與c語言語法發(fā)生矛盾。
回復(fù)

使用道具 舉報(bào)

5#
ID:1034262 發(fā)表于 2023-3-25 22:52 | 只看該作者
樓主要好好看看C語言,同時(shí)看一下C51。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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