試用微控制器編制程式實現1 2 3 100 ?

2025-01-09 17:30:07 字數 1752 閱讀 1816

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個顯示編碼 可惜少...