新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機教程:單片機尋址方式與指令系統

        51單片機教程:單片機尋址方式與指令系統

        作者: 時間:2012-06-11 來源:網絡 收藏

        通過前面的學習,我們已經了解了內部的結構,并且也已經知道,要控制,讓它為我們干學,要用,我們已學了幾條,但很零散,從現在開始,我們將要地學習8051部份。

        本文引用地址:http://www.104case.com/article/171313.htm

        一、概述

        1、指令的格式

        我們已知,要讓計算機做事,就得給計算機以指令,并且我們已知,計算機很“笨”,只能懂得數字,如前面我們寫進機器的75H,90H,00H等等,所以指令的第一種格式就是機器碼格式,也說是數字的形式。但這種形式實在是為難我們人了,太難記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關系呢,我們不難理解,本質上它們完全等價,只是形式不一樣而已。

        2、匯編

        我們寫指令使用匯編格式,而計算機和單片機只懂機器碼格式,所以要將我們寫的匯編格式的指令轉換為機器碼格式,這種轉換有兩種辦法:手工匯編和機器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不一樣,所以是一一對應的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。

        二、單片機的

        讓我們先來復習一下我們學過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數據送到對應的位置中去,為什么要送數據呢?第一個因為送入的數能讓燈全滅掉,第二個是為了要實現延時,從這里我們能看出來,在用單片機的編程語言編程時,經常要用到數據的傳遞,事實上數據傳遞是單片機編程時的一項重要工作,一共有28條指令(單片機共111條指令)。下面我們就從數據傳遞類指令開始吧。

        分析一下MOV P1,#0FFH這條指令,我們不難得出結論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規定做什么事情,后面還有一些參數,分析一下,數據傳遞必須要有一個“源”也就是你要送什么數,必須要有一個“目的”,也就是你這個數要送到什么地方去,顯然在上面那條單片機指令中,要送的數(源)就是0FFH,而要送達的地方(目的地)就是P1這個寄存器。在數據傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。

        這條指令中,送給P1是這個數本身,換言之,做完這條指令后,我們能明確地知道,P1中的值是0FFH,但是并不是任何時候都能直接給出數本身的。例如,在我們前面給出的單片機延時程序例是這樣寫的:

        MAIN: SETB P1.0    ?。唬ǎ保?/p>

        LCALL DELAY ;(2)

        CLR P1.0      ;(3)

        LCALL DELAY   ;(4)

        AJMP MAIN   ?。唬ǎ担?/p>

        ;以下子程序

        DELAY: MOV R7,#250  ??;(6)

        D1: MOV R6,#250   ;(7)

        D2: DJNZ R6,D2   ??;(8)

        DJNZ R7,D1  ?。唬ǎ梗?/p>

        RET       ??;(10)

        END       ??;(11)

        表1


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 科尔| 久治县| 探索| 眉山市| 申扎县| 马山县| 嘉定区| 鹿泉市| 焦作市| 图木舒克市| 上虞市| 陆良县| 泽库县| 新疆| 舒兰市| 紫金县| 称多县| 建平县| 北票市| 安泽县| 虹口区| 营口市| 成安县| 巍山| 疏附县| 阜康市| 富顺县| 新野县| 呼和浩特市| 民县| 襄城县| 岱山县| 新源县| 德格县| 莱州市| 台湾省| 大连市| 靖西县| 阿荣旗| 伊川县| 张家界市|