久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機第二次作業

單片機第二次作業

作者: 時間:2016-11-25 來源:網絡 收藏
作業:將A擴大十倍(A值較小,不溢出



,此題方法較多,根據材料有三種做法,下面就一一列出。(既然此題如此繁瑣,就請大家給個好評吧!
當然剛開始還是新建文件和工程,大家都懂得!那么我就直接粘貼啦!
1、先fileànew建asm文件6.asm
方法一:MOV B,#10
MUL AB
END
為了調試時看數據,預先在A中賦值為01H(既然A值較小,不溢出,那么就選個小一點的吧,簡單嘛!)所以程序前加:
MOV A,#01H
2、建新工程,Projectànewproject,選AtemlàAT89C51,導入文件6.asm。
注意,對初學者,一個工程里只能有本程序6.asm,無關的程序要刪除,新試驗一個程序最好重新建工程,以保證一個工程里只有你要試驗的那一個程序。
3、可見程序


4、編譯通過后,點debug下的start/stop開始調試,step和stepover都是單步調試,step是遇到子程序或中斷也要進入進行單步調試,stepover是遇到子程序或中斷當一句一次執行完。本程序物子程序,二者是一樣的。我們執行一句得到:


可見A中的值變為01H,B中還為0,是將要執行的語句,再執行一步,可見:



B中數據已變為0ah,再執行一步,可見:

.
A與B相乘,A中存放低八位。所以A中的值為0AH,B中的值為00H.
,可知已經把A擴大了十倍,這個程序簡單吧?!不過,別急,有簡單就有復雜的,不過誰好誰壞就不知道了,總之能用就行。

方法二:新建文件和工程就不羅嗦了,直接看程序吧!

呵呵,是不是復雜了一些?不過,別怕。一步步來看。執行一步可見:


可見A中的值變為01H,B中還為0,是將要執行的語句,再執行一步,可見:


可見B中的值也變為01H。接著執行:

可見A中的值變為02H。接著執行:

可見:RO中的值變為02H。接著執行:



可見:A中的值變為04H。接著執行:


可見:A中的值變為05H。接著執行:


可見:B中的值也變為05H。接著執行:


哈哈,是不看到A中的值變為0AH了,那就對了!至此,第二種方法也搞定!

,有點困了,不過還是要把它寫完吧!加快速度!!!

第三種方法:照樣是直接看程序啦!


嗯,不是很復雜,一會就搞定了!執行一步:




可見A中的值變為01H,B中還為0,是將要執行的語句,再執行一步,可見:


可見:B中的值也變為01H。接著執行:


對A進行循環左移,相當于乘二,所以A中的值為02H.接著執行:


原因如上,就不說了。所以A中的值為04H.接著執行:


A和B相加,結果放到A中,所以A中的值為05H.接著執行:


還是循環左移,大家都懂吧,所以就不說啦!直接得到結果了。

,還行吧,三種方法都實現了A擴大十倍,只不過這只適合不溢出的情況。OK!寫完了


關鍵詞: 單片機溢

評論


技術專區

關閉