<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機的指令系統(tǒng)及試驗

          51單片機的指令系統(tǒng)及試驗

          作者: 時間:2013-04-03 來源:網(wǎng)絡(luò) 收藏

          在講前我們先來復(fù)習(xí)一下數(shù)制的概念。
          1.十進制(Decimal)
          基數(shù)是10,它有10個數(shù)字符號,即0,l,2,3,4,5,6,7,8,9。其中最大數(shù)碼是基數(shù)減1,即9,最小數(shù)碼是0。
          2.二進制(Binary)
          基數(shù)是2,它只有兩個數(shù)字符號,即0和1。這就是說,如果在給定的數(shù)中,除0和1外還有其它數(shù),例如 1012,它就決不會是一個二進制數(shù)。
          3、十六進制(Hexadecilnal)
          基數(shù)是16,它有16個數(shù)字符號,除了十進制中的10個數(shù)可用外,還使用了6個英文字母。它的16個數(shù)字依次是0,l,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)。其中A至F分別代表十進制數(shù)的10至15,最大的數(shù)字也是基數(shù)減1。
          4、二進制數(shù)與十六進制數(shù)的相互轉(zhuǎn)換。
          (1)、二進制轉(zhuǎn)換為十六進制:
          整數(shù)部分,從低位開始,小數(shù)部分,從高位開始,每四位一組(不夠四位的補0),轉(zhuǎn)換為對應(yīng)的十六進制數(shù)。
          例:(1 0001 0011.1100 0111)2=(113.C7)H
          (2)、十六進制轉(zhuǎn)換為二進制:
          將十六進制數(shù)的每一位分別轉(zhuǎn)換為對應(yīng)的四位二進制數(shù)。
          例:(3E9D)H=(11 1110 1001 1101)B
          例:( 2ABE)H= 0010 1010 1011 1110B
          以后我們在單片機編程方面采用十六進制,這個請大家注意了!
          MCS-51系列單片機的共有111條指令,其中49條是單字節(jié)指令,45條是雙字節(jié)指令,17條是三字節(jié)指令。
          MCS-51的共有33個功能,用匯編編程時只需要42個助記符就能指明這33個功能操作。
          1、 指令格式:MCS-51匯編語言指令格式與其他微機的指令格式一樣,均由以下幾部分組成:[標號:]操作碼 [操作數(shù)][,操作數(shù)][;注釋]
          標號:又稱為指令地址符號,地址的符號化,一般由1到6個字符組成,以字母開頭的字母數(shù)字串,與操作碼之間用冒號分開。
          操作碼:是由助記符表示的字符串,它規(guī)定了指令的操作功能。
          操作數(shù):是指參加操作的數(shù)據(jù)和數(shù)據(jù)的地址。
          注釋:是為該條指令作說明,以便于閱讀。
          注意:[ ]中表示為可選項。操作數(shù)可以為1、2、3個,也可以沒有。
          不同功能的指令,操作數(shù)作用不同,如:傳送指令多數(shù)有兩個操作數(shù),寫在左面的是目的操作數(shù)(表示操作結(jié)果存放的單元地址),寫在右面的稱為源操作數(shù)(指出操作數(shù)的來源)。操作碼和操作數(shù)之間必須用空格分隔,操作數(shù)與操作數(shù)之間必須用逗號“,”分隔。帶方括號項可有可無,稱為可選項。操作碼是指令的核心不可缺少。
          2、 指令分類
          MCS-51的111條指令分為下面5類:
          (1) 數(shù)據(jù)傳送類指令29條,分為片內(nèi)RAM,片外RAM、程序存儲器的傳送指令,交換及堆棧操作指令。
          (2) 算術(shù)運算類24條,分為加,帶進位加,減,乘,除,加1,減1指令。
          (3) 邏輯運算類24條,分為邏輯與、或、異或、移位指令。
          (4) 控制程序轉(zhuǎn)移類17條,分為無條件轉(zhuǎn)移與調(diào)用,條件轉(zhuǎn)移,空操作指令。
          (5) 布爾變量操作類17條,分為數(shù)據(jù)傳送、位與、位或,位轉(zhuǎn)移指令。
          3. 指令代碼:
          (1) 數(shù)據(jù)傳送類
          MOV 傳送數(shù)據(jù)
          指令格式:MOV A,#DATA;將立即數(shù)DATA送到累加器A中。
          例:
          MOV P1,#11111110B;把立即數(shù)11111110B傳送到P1口。

          MOVX 片外數(shù)據(jù)存儲器傳送數(shù)據(jù)
          指令格式:MOVX A,@DPTR;將DPTR指向的地址單元中的內(nèi)容傳送至A中。
          例:MOV DPTR,#1000H;將地址1000H傳送到數(shù)據(jù)指針DPTR中。
          MOVX A,@DPTR;將DPTR指向的地址單元(1110H)中的內(nèi)容傳送至A中。
          MOVC 程序存儲器傳送數(shù)據(jù)
          指令格式: MOVC A,@A+DPTR;
          例:MOV A,#00H
          MOV DPTR,#1000H;將地址1000H傳送到數(shù)據(jù)指針DPTR中。
          MOVC A,@A+DPTR;把累加器A的值和DPTR的值相加得到值作為地址,把這個程序存儲器的地址單元中的內(nèi)容傳送到A中。
          (2) 算術(shù)運算指令
          ADD 不帶進位的加法類指令
          指令格式:ADD A,#DATA;把立即數(shù)DATA和累加器A的內(nèi)容相加得到的值存放到累加器A中。A+DATA→A
          例:
          SETB C;讓累加器C置1
          MOV A,#01H;A=01H
          ADD A,#01H;A=02H

          ADDC 帶進位的加法類指令
          指令格式:ADDC A,#DATA;把立即數(shù)DATA和累加器A的內(nèi)容相加,再加上進位標志C得到的值存放到累加器A中。A+DATA+C→A
          例:
          SETB C; 把累加器C置1
          MOV A,#01H ; A=01H
          ADDC A,#01H; A+DATA+C→A ,A=03H

          蜂鳴器相關(guān)文章:蜂鳴器原理

          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();