找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4143|回復: 6
收起左側

誰知道下面的單片機C語言bdata代碼flag^7是什么意思嗎?

[復制鏈接]
ID:894870 發(fā)表于 2021-3-29 19:54 | 顯示全部樓層 |閱讀模式
bdata uchar flag;          //可位尋址數(shù)據(jù)
sbit bit_out=flag^7;
sbit bit_in=flag^0;
//一般都是定義P1^1這樣的,所以不是很理解上面的代碼是什么意思
//求解?

回復

使用道具 舉報

ID:160500 發(fā)表于 2021-3-29 20:07 | 顯示全部樓層
表示flag的第7位和第0位
回復

使用道具 舉報

ID:898258 發(fā)表于 2021-3-29 21:10 | 顯示全部樓層
bdata是keil c51中特殊類型,是一種存儲器類型說明。比如我定義了一個:
bdata BData=0x00;
然后用:
sbit BData_1=BData^1;  //表示取bit1
sbit BData_7=BData^7;  //表示取bit7
這樣就可以把一個byte拆成8個bit位,每個bit位單獨操作。
回復

使用道具 舉報

ID:57657 發(fā)表于 2021-3-29 22:16 | 顯示全部樓層
bdata 將變量 flag 分配到可位尋址區(qū)域,P1是可位尋址寄存器,flag是可位尋址變量,都可以用sbit操作。
回復

使用道具 舉報

ID:767423 發(fā)表于 2021-3-30 08:17 | 顯示全部樓層
51單片機的的存儲單元里有一段可位尋址區(qū)域 bdata是keil c51中特殊類型,一般用于把變量定義在可位尋址區(qū)域,就可以像端口一樣可以按位操作了。
回復

使用道具 舉報

ID:743654 發(fā)表于 2021-3-30 08:48 | 顯示全部樓層
P1是單片機自帶的端口寄存器,可以位尋址。bdata是可位尋址區(qū)域,bdata uchar flag; 定義了一個可位尋址變量,所以可以像操作寄存器一樣位操作。
回復

使用道具 舉報

ID:887371 發(fā)表于 2021-3-30 09:13 | 顯示全部樓層
bdata sbit是51單片機的特有語法,注意不要在其它mcu使用。為了方便移植,就是在51中也建議不要這么使用。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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