51微控制器c語言程式設計能合併不同的io口來賦值嗎

2021-03-04 04:56:54 字數 926 閱讀 1418

1樓:

你有兩種方法可以達到這個目的,一種是用定義巨集的方式,另外一種就是寫一個賦值函式。我個人建議用函式的方法,巨集容易出錯誤。

微控制器不同組io口整合成一個變數

2樓:匿名使用者

人家已經都說了,是「巨集定義」。

巨集定義能幹的事情多了,對於你這裡所提出的「多個埠賦值」來說,基本上相當於一個無殼的函式。打個比方,例如:

#define set_port_val(x)還能按你的需要無限延長。

之前某論壇裡面有個傢伙發過一個搞笑帖,他的主函式裡面只有一個while(1);,結果這個while是個巨集定義,裡面是大段大段的**......

51微控制器c語言程式設計能給位賦值麼?

3樓:追夢幽白

keil的話可以。開啟你的reg51(或reg52等)標頭檔案,你就會看到已經宣告的位變數,

格式是:sbit 位變數名=sfr名^位地址值 (p3也是標頭檔案中最開始部分宣告的)

標頭檔案中有

sbit wr=p3^6;

所以你直接寫 wr=1就行了

4樓:

c語言中不能直接給二進位制某一位賦值

但是可以通過按位操作來實現

如果你的p3是整型或者字元型的變數,可以通過「按位或」對某一位賦1,通過「按位與」對某一位賦0

p3=p3|0x40;//這樣就是在不改變其他位的同時給第6位賦10x40轉換成二進位制位01000000

假如:p3的值為10110010

10110010

| 01000000結果為 11110010

5樓:匿名使用者

是可以的 雙擊錯誤資訊 到那一行看看上下有沒有錯

微控制器與c語言,微控制器與c語言

這樣.假設三個按鍵分別連在微控制器p1.0 p1.1 p1.2三個io口上,按下去為低電平,不按為高電平。include 你是什麼微控制器?自己把標頭檔案包含好哦。define keymask 0x07 對應二進位制0000 0111,作用是取出p1連結有按鍵的最低三位 int key 記錄按鍵 i...

51微控制器組合語言例項,51微控制器組合語言資料

其他沒要求了?要是這樣,隨便寫寫的呀。清零程式 org 0000h ljmp start org 0030h start mov r7,mov r0,30h clr aloop mov r0,a inc r0 djnz r7,loopend 我的部落格上有,你可以去看看。51微控制器組合語言資料 一...

KEIL C51微控制器組合語言程式設計問題

name cs t pr?cs t?cs t segment code public cs t rseg pr?cs t?cs t以上是什麼意思 編譯軟體 肯定 不認 以下程式 應該 可以編譯 cs t push acc 這程式看不出起什麼作用。mov th0,00hmov tl0,00hmov a...