1樓:追夢幽白
keil的話可以。開啟你的reg51(或reg52等)標頭檔案,你就會看到已經宣告的位變數,
格式是:sbit 位變數名=sfr名^位地址值 (p3也是標頭檔案中最開始部分宣告的)
標頭檔案中有
sbit wr=p3^6;
所以你直接寫 wr=1就行了
2樓:
c語言中不能直接給二進位制某一位賦值
但是可以通過按位操作來實現
如果你的p3是整型或者字元型的變數,可以通過「按位或」對某一位賦1,通過「按位與」對某一位賦0
p3=p3|0x40;//這樣就是在不改變其他位的同時給第6位賦10x40轉換成二進位制位01000000
假如:p3的值為10110010
10110010
| 01000000結果為 11110010
3樓:匿名使用者
是可以的 雙擊錯誤資訊 到那一行看看上下有沒有錯
51微控制器c語言程式設計能合併不同的io口來賦值嗎
4樓:
你有兩種方法可以達到這個目的,一種是用定義巨集的方式,另外一種就是寫一個賦值函式。我個人建議用函式的方法,巨集容易出錯誤。
在51微控制器c語言程式設計中如何用sbit建立陣列?
5樓:愛丶秋兒
首先申明一bai下、新手一du枚、我也遇到同zhi樣的問題、說
dao個比較笨的辦法、用的時候專直屬
接給p1賦值、微控制器初始時所有i/o口都為高電平,比如你想要floorled1=0;你就寫p1=0xfe;floorled2=0;你就寫p1=0xfd;floorled1=0;floorled2=0;你就寫p1=0xfb;個人見解、謝謝!!!
51微控制器程式設計時彙編和c語言如何結合
c語言和組合語言之間主要存在 相互呼叫 混合程式設計等關係,舉例來說吧 1 c語言呼叫匯編子程式 此時,彙編子程式需要申明為外部程式 include extern void delay void sbit pluse p1 0 main 彙編子程式 彙編部分需要做如此處理。public delay ...
c51微控制器 中斷,c51微控制器如何使用中斷
這個程式是有問題的,第一次中斷時,x先賦值0再加一,x為1,第二次中斷時,又給x賦值0,這樣每次中斷都為1,不可能為2,也就不可能執行到b,建議用全域性變數可以解決這個問題。還有一個問題,一直在執行中斷程式,下一次中斷來臨時,為同級中斷,同級中斷是否能觸發,這個問題要考慮。解決辦法 a和b放在主程式...
c51微控制器設計,c51微控制器函式宣告
我這裡有個00 99正計時的程式,你先看看。如果認為基本可以,我再幫你改成倒計時的,並且具有按鍵起動 停止的功能。c51微控制器函式宣告 主函式是起始位置,在主函式main後面的函式必須要有函式宣告另外,在main主函式之前的函式,雖然可以省略函式宣告但編寫順序是有先後的,就是你在主函式裡面呼叫函式a...