1樓:網友
說個大體的思路吧。
char i;
int max=0;
for(i=1,i<=100,i++)
max +=i;
2樓:網友
mov r0,#01h
mov r7,#00h
mov r6,#00h
loop:clr c
mov a,r0
add a,r6
mov r6,a
clr aaddc a,r7
mov r7,a
inc r0
cjne r0,#65h,loop
nopend
結果放高位放在r7和低位放在r6中,形式為16進位。
3樓:網友
給你乙個個人編寫的**(含有彙編程式設計和c程式設計)彙編需要注意:我在彙編的時候沒有用到cjnz的語句,是因為考慮到微控制器有可能在比較惡劣的環境下使用,如果pc跑飛了(這裡不考慮看門狗),會一直在迴圈中,我是使用了比較小於,即使pc跑飛,總有個時刻會退出迴圈。
彙編**如下:
h_byte equ r4 ;儲存結果,高8位。
l_byte equ r5 ;儲存結果,低8位。
max_adder equ 100 ;最大的加數org 0000h
ljmp main
org 0030h
main:mov r2,#1 ;加數。
mov r4,#
mov r5,#
start:
mov a,#max_adder
clr cy
subb a,r2
jc result
mov a,r2
add a,l_byte
mov l_byte,a ;儲存低位。
mov a,h_byte
addc a,#
mov h_byte,a ;儲存高位。
inc r2
jmp start
result:
sjmp $ 只用於除錯。
end c語言**如下:
#include "" /由於你這裡只是計算結果,所以這行**可以去掉。
void main(void)
unsigned char i=1;
unsigned int result=0;
for(i=1;i<=100;i++)
result+=i;
while(1); 這裡用於除錯。
以上程式都除錯通過了。
4樓:候鳥兒
是不是用c語言編制呀?
微控制器編寫一段程式,該程式執行後,(a)=10+9+8+7+6+5+4+3+2+1=37h,要求使
5樓:匿名使用者
以下是debug中操作的截圖。
1、先用e命令輸入資料;
2、再用a命令輸入**;
3、再用g命令執行**。
6樓:做而論道
51 微控制器的程式,如下:mov r2,#mov a,#lp:
add a,r2djnz r2,lpsjmp $end
C語言程式設計編制程式 編制文字選單用來對學生資訊進行輸入 修改 刪除和顯示誰幫忙改下
include include define n 4 struct student st n int c 0 main void del c else cout x if x c x 0 else cout void sort st p st i st i min void diap c語言程式設計...
微控制器程式,微控制器的應用
寫錯了吧,0x10和0x01能一樣嗎?if adc contr 0x10 測試其第5位是否是1 相當於 if adc contr 0x10 0 while adc contr 0x10 測試其第5位 d4 是否是0 乙個是測試 1 乙個是測試 0x10 能一樣麼?微控制器的應用 微控制器的應用領域 ...
微控制器程式注釋,微控制器程式注釋(大致注釋)
嘿嘿 還是俺來幫你回答吧 1 這是乙個一位的7段數碼管顯示控制程式,通過p3口連線了乙個7段數碼管 靜態顯示,共陽極 2 該程式就是利用這個一位的7段數碼管分時迴圈顯示0 9 a f共16個十六進製制數碼。3 在程式儲存器存放的 tab 是共陽極顯示編碼 應該是0 9 a f共16個顯示編碼 可惜少...