bit用法 微控制器C語言,51微控制器C語言裡面,定義bit的方法,有哪些,請舉例,謝謝!

2021-05-06 00:10:56 字數 3926 閱讀 7254

1樓:觀音斯坦

bit timerout=0; 這裡的bit本質上和char、int一樣的(功能一樣,型別不一樣),char是8位,int是16位,bit是1位。

每個位元組是8位,就可以包含8個bit,bit只有兩個值,1和0.

bit timerout=0;

bit keypress;

就是定義兩個長度為1位的變數。

2樓:

bit 在c51裡面類似c語言的bool,bit定義的是一個位資料型別,只能為0或1兩個值

3樓:匿名使用者

bit就是定義位變數嘛,你要先看懂彙編,和微控制器的記憶體結構,低128位元組裡面20~2fh,都是可以位定址,你必須打好紮實的基礎,這程式太簡單,沒什麼好說的

4樓:匿名使用者

bit 定義一個位變數

用bit定義了keypress後,在後面的程式中變數keypress就只有 0 和 1 兩個值

timerout也是一樣

5樓:阮文卿

bit 位定義。

來自彙編。

6樓:裝著很懂

bit 一位 要嗎是0 要嗎是1

51微控制器c語言裡面,定義bit的方法,有哪些,請舉例,謝謝!

7樓:匿名使用者

二樓正解,只要將變數定義在51微控制器的可位定址區域20h-2fh即可 ,bdata型別

uchar bdata b8 ;

b8^0 = 0 ;

b8^1 = 1 ;等等

聯合體+結構體+位段 對這種做法 編繹器也會自動將其優化在可位定址區域,純粹故弄懸虛,冗長,增加程式維護度,c51講求的是在有限資源內著重精簡、執行效率

8樓:

^一共可以定義16個位元組的位定址變數

static uchar bdata canbusflag=0; //can標誌

sbit canrcv_good=canbusflag^0; //成功接收標誌

sbit cansend_good=canbusflag^1; //成功傳送標誌

sbit canerrflag=canbusflag^2; //can匯流排錯誤標誌

sbit candtoverflag=canbusflag^3; //can匯流排超載標誌

sbit canwuiflag=canbusflag^4; //can匯流排喚醒中斷

//你改變canbusflag,下面的一堆變數也變了,反之既然

定義:union unitemp // 溫度取樣值

idata utemp; //idata是定義變數儲存空間,這裡用的8952微控制器,有idata空間

。。。。

程式裡面使用:

utemp.temp=***;//其實temp_ad[2]陣列裡面的內容也變了,union 結構嘛

如果你只定義8個位,就用第一種方式。

union 結構是為了方便大資料的操作才使用的。如果你要用union 定義一個8位變數的每一位,想應該可以吧。不過不知道符不符合c語法,編一個試試吧~哈哈

9樓:匿名使用者

^你可以定義一個bdata型別的,然後分別定義這8位如:unsigned char bdata temp;

sbit temp0 = temp ^ 0;

sbit temp1 = temp ^ 1;

sbit temp2 = temp ^ 2;

sbit te*** = temp ^ 3;

sbit temp4 = temp ^ 4;

sbit temp5 = temp ^ 5;

sbit temp6 = temp ^ 6;

sbit temp7 = temp ^ 7;

這樣就能使用temp這個位元組裡面的8位了。

例如:te*** = 1;

temp5 = 1;

則temp位元組的第3位和第5位被置為1了,其他位的值不變。

10樓:匿名使用者

比如led燈的控制

sbit d1=p1^0;

sbit d2=p1^1;

sbit d3=p1^2;

sbit d4=p1^3;

sbit d5=p1^4;

sbit d6=p1^5;

sbit d7=p1^6;

sbit d8=p1^7;

這樣在操作的時候就不用對整個p1口操作,直接操作位即可得到指定地址上的一個位元組或字的方法如下:

#define mem_b(x) (*((byte *)(x)))#define mem_w(x) (*((word *)(x)))不過這個有點複雜,一般用於arm

微控制器c語言a|=bit(b)是什麼意思

11樓:天天奕想

a=a|bit(b) bit(b)應該是一個有返回值的函式,整個語句代表的是一個數,它與a這個數進行或運算了之後把運算結果賦給a

微控制器c語言程式設計中,用關鍵字bit定義微控制器的埠.對嗎

12樓:匿名使用者

bit 是宣告一個位變數的,定義微控制器埠的是sbit.

如:sbit led=p2^1; //定義引腳p2.1為led

bit flag; //宣告一個位變數

13樓:匿名使用者

不對,用sbit

bit申明位變數。

14樓:心聲代

sbit,不是bit

而且只有51型別的微控制器合適

sbit led1 = p1^1;

微控制器c語言程式設計bit(pb0)的含義 5

15樓:匿名使用者

這是位操作,

portb|=bit(pbo)的作用是一般是將portb的第pbo位置1,

你的**我猜測是這樣的:

#define bit(x) (0x1 << (x))#define pbo 3

portb|=bit(pbo);

這裡就相當於把portb的第3位置1,

暫存器的位操作很有用的。

微控制器c語言的一個問題 static bit a 什麼意思

16樓:匿名使用者

static表示靜態的,當程式執行時這個變數就在記憶體中開闢地址了.當這個變數在某版函式內定義時,不象自動變權量那樣,當呼叫時就存在,退出函式時就消失。靜態區域性變數始終存在著,也就是說它的生存期為整個源程式。

對基本型別的靜態區域性變數若在說明時未賦以初值,則系統自動賦予0值。而對自動變數不賦初值,則其值是不定的,非靜態區域性變數在函式關閉後重新開啟時就會重置初始值,而靜態變數的值和函式本身的呼叫無關,始終存在.

17樓:

在微控制器抄c語言中,bit a表示定義一襲個變數a,其型別為bit型,所謂的bit型就是用一位二進位制數來表示變數。bit型的取值為0或1。

static bit a表示定義一個bit型的變數a,其為靜態變數,只初始化一次即可。

18樓:匿名使用者

static 靜態的全域性變數,就是你改動後,就一直不變了,可以再改變。可以用在類裡面,這樣你一個類的例項改一次每個類的例項都會改變

19樓:

static是靜態變數, 但是沒有遇到過static bit 一起用的時候,你先確定下 是不是正確的!

20樓:匿名使用者

表示該變數是靜態的,靜態變數是全域性變數

求51微控制器c語言教程 ,求51微控制器c語言教程 pdf

微控制器學習方法 網上微控制器資料很多 你上csdn上找吧 那上面多的是 這個網上的太多了。你搜一下,有很多 的。這種東西多得很,你應該先搜搜再提問 急求郭天祥 新概念51微控制器c語言教程 入門 提高 開發 拓展全攻略 pdf 這是郭天祥這本書最完整的pdf,是整本的,不是一部分。望採納 從入門到...

51微控制器程式設計,用C語言,51微控制器程式設計時彙編和C語言如何結合?

給你一個矩陣鍵盤的參考程式 行列掃描 通過高四位全部輸出低電平,低四位輸出高電平。當接收到的資料,低四位不全為高電平時,說明有按鍵按下,然後通過接收的資料值,判斷是哪一列有按鍵按下,然後再反過來,高四位輸出高電平,低四位輸出低電平,然後根據接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪...

求助微控制器c語言程式問題,求助 微控制器C語言程式問題

第一個是在主程式中設定的定時計數器中斷相關引數設定,tmod 0x10 設定定時計數器的工作方式為方式1 16為計數器 也就是計數範圍為 0 65536 th1 65536 200 256 tl1 65536 200 256 設定計數器的初值為 200.ea 1 開總中斷,et1 1 開定時計數器1...