1樓:尚雲社
;51微控制器
mov r0,#60h
mov r1,#80h ;最大數在地址80hmov @r1,#00h
loop:
mov a,@r1
mov b,@r0
cjne a,b,loop1
loop1:
jnc loop2
mov @r1,b
loop2:
inc r0
cjne r0,#70h,loop
jmp $end
2樓:匿名使用者
sfr datastart = 0x60;//用sfr 定義個名字 給 60h
sfr maxdata = 0x80;//最大資料存放位置
unsigned char databuffer[16]; //資料快取
memcpy( databuffer, (char*)datastart, 16 ); //資料快取到 databuffer中
/*找出databuffer中最大的資料 自己寫個函式 */
maxdata = 最大資料;
我覺得這樣應該可以了,但是我沒有除錯過,你可以試試。不能保證對哈。
#include
unsigned char buffer[20];
void main(void)
while(1);
}我剛剛實驗了一下,用這個是可以將數值寫進去 也可以將數值讀出來的。上面的方法可能不太行。至於寫進80的位置,也可以直接給指標賦個絕對地址然後寫進去就行了。
在內部ram 30h單元開始存放著10個無符號數 編寫程式找出其中的最大值送入內部ram的40h單元 微控制器考試題
3樓:匿名使用者
org 0020h
mov r0,#30h ;資料首地址存入r0mov a,@ro ;取第一個資料存入累加器amov r1,#0ah ;比較次數,a=10loop1:
inc r0 ;修改地址指版針,使其指向下一地權址單元
mov 30h,@r0 ;將比較的數暫存於30hcjne a,30h,chk ;兩個數比較chk:
jnc loop2 ;如果a大,則轉換mov a,@r0 ;如果a小,則將較大的數存入a
loop2:
djnz r1,loop1 ;r1減1,如果其不為0,則繼續迴圈
mov 40h,a ;比較完畢,存結果end
【51微控制器組合語言程式設計題】片內ram區30h~3fh單元中存16個8位無符號數,將它們對5求餘,
4樓:
clr a
mov 40h,a
mov 41h,a
mov 42h,a
mov 43h,a
mov 44h,a
mov r0,#30h
loop:
mov a,@r0
mov b,#5
div ab
xch a,b
add a,#40h
mov r1,a
inc @r1
inc r0
cjne r0,#40h,loop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;end
微控制器內部晶振與外部晶振的區別
一 連線方式不同 1 內部晶振 由 c1 與 l1 構成的串聯共振。2 外部晶振 由 c0 c1 與 l1 構成的並聯共振。二 特點不同 1 內部晶振 會振盪在它的一個諧波頻率上,此諧波頻率是基頻的整數倍。只使用奇數次諧波,例如 3 倍 5 倍 與 7 倍的泛音晶體。2 外部晶振 外部電路上的電容會...
微控制器程式設計題 查詢內部ram的20h 50h單元中個位出現
做而論道 org 0000h mov r0,20h mov r1,0 loop mov a,r0 取來一個位元組mov b,10 div ab 除以10xch a,b 取來個位cjne a,06h,next 不等於6則轉移inc r1 等於6則加一next inc r0 cjne r0,51h,lo...
時基電路可以用微控制器內部定時器的功能代替
mist 紫櫻陪林皎看星星 完全可以。一般的時基晶片都要靠外部的電容和電阻來調節時間常數,而實際的電容值和電阻值與標稱值有一定誤差,這就導致了用時基電路的定時精度比較低。用微控制器定時器做定時,定時精度要好幾個數量級,特別是加了補償之後,可以做得非常準。如果對微控制器還不熟悉,補償不太會做,也可以用...