關於430微控制器,程式語句的問題,請各位多多指教

2023-02-14 01:05:29 字數 3714 閱讀 2087

1樓:匿名使用者

這個問題,我也曾經是很難理解,這裡牽涉到兩個概念

1,|= 和 = 的基本區別

2,ucsctl4 在上面的兩個方式下會發生什麼不一樣的變化

這樣回答你把,可能比較好理解

1,對於 |= 和 = 的基本區別

直接等於的話,是會把原來的ucsctl4 的值給抹掉,然後再賦給一個全新的值,就是說和原來的值沒有任何關係了。

但是|= 呢,和原來的值有直接的關係,只是拉高了 等於 號後面對應位為1的值,而等於號後面位原來為0的值還是0,原來為1的值還是1,舉個例子

ucsctl4 = 0x1f; // (0b1000 1111)

ucsctl4 = 0x11;

上面的那句話執行之後,就和開始的值為0x1f值沒有任何關係了,最後得到的值就是 0x11;

ucsctl4 = 0x8f;

ucsctl4 = 0x11; //(0b0001 0001)

這個執行之後,就和原來的0x1f有關係,實際上就做了一個位運算

0b1000 1111

0b0001 0001 ,拉高最後一位,以及倒數第5位和倒數第8位

-----------------

0b1001 1111

最後的值是 0x1f,原來的倒數第8,3,2位,因為和0一起運算,所以本身是1,最後還是1;

2,ucsctl4 在上面的兩個方式下會發生什麼不一樣的變化,現在你大概能夠明白了把,如果把(sela__xt1clk+sels__xt1clk + selm__xt1cl)看成我們上面例子的0x11 的話,那麼最後的結果,對於兩種運算方式來說,一種是和原來的值有關係,一種是和原來的值沒有關係。

2樓:匿名使用者

首先你要知道 | 是或運算.

其次 a|=b , 這樣的寫法等同於 a=a|b;

最後 ucsctl4 | =sela__xt1clk+sels__xt1clk + selm__xt1clk

等同於 ucsctl4 =ucsctl4 |(sela__xt1clk+sels__xt1clk + selm__xt1clk )

這樣的運算也可以擴充套件為 a+=b,a-=b等等

3樓:匿名使用者

|= 符號前後的值進行或運算後 將值賦給前面的變數

= 僅僅是把後面的值賦給前面的變數

微控制器中程式每條語句的意思

4樓:

org 000h ;設定程式儲存區初始地址的偽指令

ljmp main ;跳到main語句,繞過中斷入口

org 1000h ;設定程式儲存區初始地址的偽指令

main: mov sp,#60h ;堆疊入口地址

mov 81h,#50h ;把立即數50h送到資料區81h地址

mov r0,#20h ;把立即數20h送到r0

mov @r0,#45h ;暫存器間接定址,把45h送到r0存的資料對應的地址

;就是20h這個地址

inc r0 ;r0加一

mov @r0,#74h ;暫存器間接定址,把74h送到r0存的資料對應的地址

;就是21h這個地址

mov r1,#30h ;把30h送到r1

mov @r1,#67h ;暫存器間接定址,把67h送到r1存的資料對應的地址

;就是30h這個地址

inc r1 ;r1加一

mov @r1,#28h ;暫存器間接定址,把28h送到r1存的資料對應的地址

;就是31h這個地址

clr c ;清除符號位

mov r2,#02 ;把2送到r2

l2:acall l1 ;調子函式l1

dec r0 ;r0減一

dec r1 ;r1減一

djnz r2,l2 ;如果r2減到0,就執行下一句,否則跳到l2

clr a ;累加器清零

mov acc.0,c ;把符號位移到累加器的第零位

nop ;延時一個週期

mov @r0,a ;暫存器間接定址,把a裡的資料傳送到r0對應的地址

l3: sjmp l3 ;死迴圈

l1: mov a,@r0 ;暫存器間接定址,把r0對應的地址

;裡的資料傳送到 a

addc a,@r1 ;把r1裡存放的地址裡的資料和a相加,再加進位位。

da a ;十進位制調整指令

mov @r0,a ;暫存器間接定址,把a裡的資料傳送到r0對應的地址

ret ; 子程式返回

end ;結束

求解:請各位大師多多指教 想問下如何用c語言編輯微控制器指令,指令如...

5樓:凌瓏井

unsigned char data;

data = 0x01;

p0 = data;

p1 = data;

p2 = data;

p3 = data;

如果不需要變數的話就直接

p0 = 0x01;

p1 = 0x01;

p2 = 0x01;

p3 = 0x01;

html 佈局的一個問題,請各位大俠多多指教!為方便描述問題,用**來說明問題 30

6樓:匿名使用者

沒有貼**啊,只是這麼簡單的要求麼?那可以試試這樣行1測試

行2測試

行3在進行測試描述問題

行4測試

7樓:等待放飛夢想

給描述問題,新增一個class。比如padding-left: 45px

求解:請各位大師多多指教 想問下如何用c語言編輯微控制器指令,指令如下...

8樓:快樂小斯

#include"reg52.h"

main()

9樓:

例:x=1;

p0=x;p1=x;p2=x;p3=x;

10樓:

p0=01h;

p1=01h;

p2=01h;

p3=01h

具有挑戰性的stc12c5a60s2微控制器程式設計問題!高手請多多指教!!

11樓:匿名使用者

按鍵可以考慮用電壓表示 可以省7個口 或者佔用p3的8個口 ,數碼管考慮用zlg 只要一箇中斷口,兩個普通口。 至於切換賦值要用到陣列,10個數字鍵 ,一個切換位置鍵,顯示用陣列直接顯示,內部實際數值演算法重算, 控制暫空比可以到官網上下例項 有個專門控制pwm暫空比的, 改改還是挺好用的 pid演算法得靠自己調了 得考慮實際情況

12樓:匿名使用者

口合!問題多而籠統!要搞明白,需看幾百頁的資料,不是幾句話能說明白的!而且每個人解決問題的程式設計思路也不同!

13樓:

呵呵,確實有點標題黨啊

大都是基礎知識,自己去翻書找資料才能提高

51微控制器與430微控制器的區別,430微控制器與51微控制器有什麼區別

首先,89c 51 單片 1 51單片 bai機是8位單 片機,du430是16位微控制器zhi。2 51微控制器dao效能和功耗上都不如版430微控制器,430微控制器被認權 為是現在功耗最低的微控制器。3 51微控制器主要用在一些比較簡單的工業裝置控制上,430主要用在一些低功耗手持裝置上 4 ...

微控制器問題。msp430g2 和51微控制器有哪些區別?求詳細

完全不一樣的架構,根本沒有可比性。430微控制器與51微控制器有什麼區別 一 主體不同 1 430微控制器 是美國德州儀器 ti 1996年開始推向市場的一種16位超 內低功耗 具有精簡指令容集 risc 的混合訊號處理器。2 51微控制器 是對所有相容intel 8031指令系統的微控制器的統稱。...

關於51微控制器中斷程式的一個問題

include unsigned char countsecond 計到20為1s unsigned int second 秒。void initial t0 void timer0 interrupt 1 using 0void main second 0 如果中斷則清0 51微控制器外部中斷的觸...