關於微控制器IO口重新定義的問題,關於51微控制器io口sbit賦值的問題

2021-03-04 04:56:54 字數 1318 閱讀 7877

1樓:匿名使用者

sbit 是屬於定義、宣告bai,du並不會產生實際的**,用zhi在if後面是不

dao行的。

一個可版行的方法是使用條件權

預處理,像這樣

#if flag

sbit hx711_dout=p1^4;

#else

sbit hx711_dout=p1^2;

#endif

注意,這裡的flag,只能是預定義的符號,不可以是變數。

2樓:匿名使用者

sbit 不能放到程式體中,因此這樣定義是不可行的。

關於51微控制器io口sbit賦值的問題 15

3樓:匿名使用者

你的l1是一個位變數,而a是一個8位的字元型,a=0x40,是第七位為1,你執行把a賦值給l1,得到的是把a的最低位給了位變數l1,所以l1是得0。l1的值要麼是1,要麼是0。

4樓:匿名使用者

dat=num&0x80;是邏輯與的結果送dat,這裡由最高位決定。

l1=a; 遮蔽後送最低位。

微控制器io口定義

5樓:愛笑的天宇

spce061a的i/o埠抄,對某一位襲的設定包括以

下3個基本項:資料向量data、屬性向量attribution和方向控制向量direction。3個埠內每個對應的位組合在一起,形成一個控制字,用來定義相應i/o口位的輸入輸出狀態和方式。

例如,假設需要ioa0是下拉輸入管腳,則相應的data、attribution和direction的值均被置為「0」。如果需要ioa1是帶喚醒功能的懸浮式輸入管腳,則data、attribution和direction的值被置為「010」。a口和b口的data、attribution和direction的設定值均在不同的暫存器裡,使用者在進行i/o口設定時要特別注意這一點。

6樓:匿名使用者

因為標頭檔案裡面沒有對p1^1定義,你可以開啟標頭檔案看看,裡面定義了p0~p3口等其他暫存器,但是沒定義p1^1,所以程式裡你可以直接用p1,而不能用p1^1,自己需要先定義。

7樓:螞蟻叼骨頭

現在你不要把c和彙編搞混了哦, c的話需要編譯器給其做編譯,如果你在c中直接用p1.1或者p1^1,也

內就不符容合編譯規則了。為什麼不能用呢,這是一種規則啊。想用,何必不把p1.1定義呢。也許你也是習慣用匯編而已。

8樓:電子粉絲

這種是便於看懂程式,好記憶.

關於微控制器儲存器的問題,idata,data,badata,xdata,pdata

關於51微控制器記憶體問題,一直是個疑惑大家的問題,因為51微控制器是個很另類的微控制器。下面我給樓主講解一下 51微控制器之所以另類,是因為,他定址記憶體的空間,不是靠匯流排,是用指令的方式。51微控制器有以下幾個記憶體模組組成 1 rom或者flash,叫程式儲存區,你寫的程式是存在這裡面的,上...

關於微控制器的電焊需要什麼的問題,微控制器及電路板的焊接需要些什麼工具 要不要靠一些機械裝置來進行

首先,作為一個電子專業的學生,你的問題不專業。可能你比較在行的是軟體。需要用到的工具有 電烙鐵,焊錫絲,鑷子,偏口鉗,還有洞洞板,好多。你可以參考你買的tx 1c的板子買元器件。要想自己設計電路,要學好數位電路和類比電路,以及電路設計,當然電工學也要學。首先,我以實際經驗告訴你,是的,要好好學,當時...

51微控制器宣告使用io口,可以這樣定義嗎sbit IO DOUT 0xe

使用sbit io dout p1 0 這個直觀易理解,推薦。是位地址的寫法,p1 0 關於51微控制器io口sbit賦值的問題 15 你的l1是一個位變數,而a是一個8位的字元型,a 0x40,是第七位為1,你執行把a賦值給l1,得到的是把a的最低位給了位變數l1,所以l1是得0。l1的值要麼是1...