新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 第五個(gè)試驗(yàn)----跟我學(xué)作單片機(jī)運(yùn)算加減乘除法

第五個(gè)試驗(yàn)----跟我學(xué)作單片機(jī)運(yùn)算加減乘除法

作者: 時(shí)間:2011-02-25 來(lái)源:網(wǎng)絡(luò) 收藏

看到這個(gè)題目,呵呵,可能好多人要打石頭哥的板子;7+5等于幾啊?這還用你教?但是里,數(shù)字是用二進(jìn)制來(lái)表示的:這個(gè)就有一點(diǎn)拗口啦/雖然我們的教材到這里你可能還沒(méi)有學(xué)會(huì)一個(gè)指令。但是我的意思是首先作幾個(gè)試驗(yàn),提高大家對(duì)的興趣。具體的指令太多了,不過(guò)還好,一般我們只需要記住常用的10-20條就夠了。OK,現(xiàn)在開(kāi)始動(dòng)手。

我們寫(xiě)入以下兩條指令

MOV P1,#23H
END

這個(gè)程序大家想必看得懂, 就是把23H這個(gè)16進(jìn)制數(shù)送往P1口(即P1.0--P1.7)匯編得到HEX燒寫(xiě)后然后把芯片插入實(shí)驗(yàn)卡座; 可以看到P1.0-1.7的狀態(tài)為;

P1.0 滅

P1.1 滅

P1.2 亮

P1.3 亮

P1.4 亮

P1.5 滅

P1.6 亮

P1.7 亮

(倚天開(kāi)發(fā)套件運(yùn)行照片)

為什么會(huì)這樣呢?

注意,因?yàn)槲覀兊腜1口的8個(gè)燈,都是一端接正5V,一端接端口的,那么呢端口為低電平0。發(fā)光管亮。高電平不亮。從高往低排列(從1.7---1.0)那么就是00100011。這個(gè)數(shù)字就是23H啦。什么?你不信?好了,請(qǐng)您接著看!00100011二進(jìn)制呢就是100011,按照數(shù)學(xué)的原則前面的0不算數(shù)。

跟我打開(kāi)電腦的程序/附件/計(jì)算器,然后把計(jì)算器設(shè)置為科學(xué)型。然后點(diǎn)擊二進(jìn)制,輸入100011

然后點(diǎn)擊一下十六進(jìn)制可以看到數(shù)字變成了23。這就是我們輸入的23H了,

練習(xí):25H+36H?

程序如下:

MOV R0,#25H;將立即數(shù)25送寄存器R0

MOV A,#36H;將立即數(shù)36送累加器A

ADD A,R0;將R0與A的內(nèi)容相加,結(jié)果在A

NOP;空操作

POV P1,A;將累加器A的值送P1口。

END;結(jié)束

將程序編譯以后燒入片子運(yùn)行;可以看到燈的狀態(tài)為

P1.0 滅

P1.1 滅

P1.2 亮

P1.3 滅

P1.4 滅

P1.5 亮

P1.6 滅

P1.7 亮

就是二進(jìn)制數(shù)01011011。我們還是用上面的計(jì)算器來(lái)看看結(jié)果對(duì)不對(duì):先將計(jì)算器設(shè)置為16進(jìn)制,輸入25+36=結(jié)果為5E

然后呢再點(diǎn)擊二進(jìn)制結(jié)果為1011110,可見(jiàn)結(jié)果完全正確〉

大家接著可以自行練習(xí)

減法指令SUBB

乘法指令 MUL

除法指令 DIV

的用法, 相信經(jīng)過(guò)這一節(jié)的學(xué)習(xí),大家對(duì)這幾個(gè)指令的印象會(huì)非常深刻了。同時(shí)讓我們對(duì)于計(jì)算機(jī)的數(shù)字有了一個(gè)

深刻的認(rèn)識(shí)。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉