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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1959|回復: 4
收起左側

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

[復制鏈接]
ID:1066823 發表于 2023-3-25 11:39 | 顯示全部樓層 |閱讀模式
大家好!我是單片機新手。定義變量我不想用sbit=p^x這種現成的,我想用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;

弄成這樣,如何實現呢?
下載 (1).png

回復

使用道具 舉報

ID:883242 發表于 2023-3-25 14:32 | 顯示全部樓層
^是異或,P2^0=a;是標準的語法錯誤——左值不可以參與運算。
回復

使用道具 舉報

ID:277550 發表于 2023-3-25 15:12 | 顯示全部樓層

unsigned int b;
P2^1=b;

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

要把第2位設置高,使用
P2 |= 2;

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

其它位,類推
回復

使用道具 舉報

ID:883242 發表于 2023-3-25 15:35 | 顯示全部樓層
devcang 發表于 2023-3-25 15:12
unsigned int b;
P2^1=b;

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

你和樓主的錯誤就是不知道c語言里面^是個運算符,不能隨心所欲地做位地址來用,那樣子會跟c語言基本語法發生矛盾。Keil C51為了使用位地址,采用的是sbit和^配合使用來定義位地址,比如sbit P21=P2^1;這樣的寫法,因為標準c語言里面沒有sbit這個關鍵字,是c51自行擴展出來的,所以這種寫法不會與c語言語法發生矛盾。
回復

使用道具 舉報

ID:1034262 發表于 2023-3-25 22:52 | 顯示全部樓層
樓主要好好看看C語言,同時看一下C51。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表