色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)教程:?jiǎn)纹瑱C(jī)邏輯與或異或指令詳解

          51單片機(jī)教程:?jiǎn)纹瑱C(jī)邏輯與或異或指令詳解

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

          8.gif
          圖3

          應(yīng)用背景介紹:在開發(fā)中,經(jīng)常要用到鍵盤,見上面的9個(gè)按鍵的鍵盤。我們的要求是:當(dāng)按下功能鍵A………..G時(shí)去完成不同的功能。這用程序設(shè)計(jì)的語(yǔ)言來(lái)表達(dá)的話,就是:按下不同的鍵去執(zhí)行不同的程序段,以完成不同的功能。怎么樣來(lái)實(shí)現(xiàn)呢?

          看圖2,前面的程序讀入的是按鍵的值,如按下'A'鍵后獲得的鍵值是0,按下'B'鍵后獲得的值是'1'等等,然后根據(jù)不同的值進(jìn)行跳轉(zhuǎn),如鍵值為0就轉(zhuǎn)到S1執(zhí)行,為1就轉(zhuǎn)到S2執(zhí)行。。。。如何來(lái)實(shí)現(xiàn)這一功能呢?

          先從程序的下面看起,是若干個(gè)AJMP語(yǔ)句,這若干個(gè)AJMP語(yǔ)句最后在存儲(chǔ)器中是這樣存放的(見圖3),也就是每個(gè)AJMP語(yǔ)句都占用了兩個(gè)存儲(chǔ)器的空間,并且是連續(xù)存放的。而AJMP S1存放的地址是TAB,到底TAB等于多少,我們不需要知道,把它留給匯編程序來(lái)算好了。

          下面我們來(lái)看這段程序的執(zhí)行過(guò)程:第一句MOV DPTR,#TAB執(zhí)行完了之后,DPTR中的值就是TAB,第二句是MOV A,R0,我們假設(shè)R0是由按鍵處理程序獲得的鍵值,比如按下A鍵,R0中的值是0,按下B鍵,R0中的值是1,以此類推,現(xiàn)在我們假設(shè)按下的是B鍵,則執(zhí)行完第二條后,A中的值就是1。并且按我們的分析,按下B后應(yīng)當(dāng)執(zhí)行S2這段程序,讓我們來(lái)看一看是否是這樣呢?第三條、第四條是將A中的值乘2,即執(zhí)行完第4條后A中的值是2。下面就執(zhí)行JMP@A+DPTR了,現(xiàn)在DPTR中的值是TAB,而A+DPTR后就是TAB+2,因此,執(zhí)行此句程序后,將會(huì)跳到TAB+2這個(gè)地址繼續(xù)執(zhí)行。看一看在TAB+2這個(gè)地址里面放的是什么?就是AJMP S2這條指令。因此,馬上又執(zhí)行AJMP S2指令,程序?qū)⑻絊2處往下執(zhí)行,這與我們的要求相符合。

          請(qǐng)大家自行分析按下鍵“A”、“C”、“D”……之后的情況。

          這樣我們用JMP @A+DPTR就實(shí)現(xiàn)了按下一鍵跳到相應(yīng)的程序段去執(zhí)行的這樣一個(gè)要求。再問(wèn)大家一個(gè)問(wèn)題,為什么取得鍵值后要乘2?如果例程下面的所有指令換成LJMP,即:

          LJMP S1,LJMP S2……這段程序還能正確地執(zhí)行嗎?如果不能,應(yīng)該怎么改?

          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理



          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉