1樓:匿名使用者
因為你前面的語句:(p3&0x10)==0 p3是一個暫存器,可讀可寫,當然可以直接操作。然而p3^4=1; 這句話就是錯的,p3^4是p3的第四個埠,是一個地址,它不是變數,所以不能直接對它賦值,你必須先進行位定義,如:
sbit a=p3^4;a=1;這就對了。51微控制器是可以進行位定址的,使用前必須先進行位定義哦。
2樓:林奈克斯
因為p3^4的結果是個地址,所以當然會出錯了。。。。他只能用來sbit p3_4=p3^4,然後用p3_4。。。。這句話意思是吧p3_4的地址設定為 p3^4的值。。。。
p3^4一般沒有別的用途但可以賦值給一個bit型別的指標,因為c51可以位定址,而c語言沒有這種變數,是附加的一個內容,意思就是固定地址定義一個bit型變數,這裡^也不是異或的意思。。。。
3樓:匿名使用者
一個是&運算,一個^運算,樓主有沒有寫錯?
如果沒有寫錯,那麼p3假設是0x0,那麼0^4如何等於0?
4樓:匿名使用者
p3^4是一個bit型別的值,能和0直接比較麼?
微控制器IO口控制另微控制器IO口問題
3.3v和5v的兩個微控制器io口不要直接連線到一起,應該用電平轉換電路隔離。3.3v的io口增加了18ma電流,這是很大的,容易燒壞3.3v微控制器,這種連線是不合理的。如果5v微控制器是stc的,引腳可設定成高阻輸入模式是最簡單的,如下表。如果不是也不能設定io模式,那可以用一片74hc04 用...
關於51微控制器io口驅動能力的問題
殘卷 51微控制器io口為集電極上拉輸出方式,高電平輸出電流等於上拉電阻的電流,這個電流比較小,低電平輸出是內部電晶體吸收的電流,最大可以達到10ma,但是整個埠的總電流不能超過24ma。電平低於0.7v就是低電平,高於1.8v就是高電平。在這個之間不確定。 這個和他裡面的結構是有關係的,裡面有一個...
89c51微控制器有幾組I O口,請簡單介紹其主要功能
4組,p0可以作普通io口,也可以在讀寫外部儲存器作低8位的地址匯流排和8位的資料匯流排 p1口只作為一般io口 p2作為一般io口還在在讀寫外部儲存器作高8位的地址匯流排 p3口除作為一般io口還為第二輸入 輸出功能 p3.0 序列資料接入端 p3.1 序列資料傳送端 p3.2外中斷0輸入端 p3...