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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM匯編示例—按鍵LED(循環(huán))

          ARM匯編示例—按鍵LED(循環(huán))

          作者: 時間:2016-11-09 來源:網(wǎng)絡 收藏
          匯編程序是學習硬件非常好的切入點,雖然程序用C來寫回比較方便,但是要想真正了解一款硬件,還是得從體系結構和匯編指令上下點功夫。

          一下是一個最基礎的ARM 匯編程序,程序的功能是按鍵,然后在LED上顯示出來是哪個鍵按了下去。

          本文引用地址:http://www.ex-cimer.com/article/201611/317674.htm

          ;引腳連線
          ;GPF0~GPF3 K1~K4
          ;GPF4~GPF7 LED1~LED4
          ;GPG3 K5
          ;GPG11 K6
          ;GPxCON的配置寄存器每個引腳都占兩位,00表示表示輸入,01表示輸出
          ;GPxDAT寄存器表示引腳的高低電平狀態(tài),讀寫數(shù)據(jù)在這個寄存器里進行
          ;程序結果:按Kx,則LED就根據(jù)x的二進制表示出來

          GPFCONEQU0x56000050
          GPFDATEQU0x56000054
          GPGCONEQU0x56000060
          GPGDATEQU0x56000064

          AREA KEY_LED,CODE,READONLY;這里表示此區(qū)域是只讀代碼"KEY_LED"
          EXPORT _ENTRY;引入程序入口,這里跟連接器有關系

          ;程序入口
          _ENTRY

          ;初始化GPIO的配置
          ;這里包括K1~K4輸入配置和LED1~LED4的配置
          ldr r0,=GPFCON
          movr1,#0x5500
          strr1,[r0]

          ;K5和K6的配置
          ldr r0,=GPGCON
          ldr r1,=0xff3fff3f
          strr1,[r0]

          ;初始化將led都熄滅
          ldr r0,=GPFDAT
          movr1,#0xf0
          strr1,[r0]

          ;循環(huán)測試各按鍵狀態(tài),并修改led狀態(tài)
          LOOP

          ;測試按鍵1 GPF0
          ldr r0,=GPFDAT;將GPF的數(shù)據(jù)寄存器地址放入r0
          ldr r1,[r0];讀取GPF數(shù)據(jù)寄存器
          tst r1,#0x01;測試GPF0是否變0(K1按下),若是按下,EQ置1,否則NE置1
          andeq r1,r1,#0xef;若是EQ為1,將GPF4置0(點亮),其他不變
          orrne r1,r1,#0x10;若是NE為1,將GPF4置1(熄滅),其他不變
          strr1,[r0];將LED狀態(tài)寫入GPF數(shù)據(jù)寄存器

          ;測試按鍵2 GPF2
          ldr r0,=GPFDAT
          ldr r1,[r0]
          tst r1,#0x02
          andeq r1,r1,#0xdf
          orrne r1,r1,#0x20
          strr1,[r0]

          ;測試按鍵3 GPF3
          ldr r0,=GPFDAT
          ldr r1,[r0]
          tst r1,#0x04
          andeq r1,r1,#0xcf
          orrne r1,r1,#0x30
          strr1,[r0]

          ;測試按鍵4 GPF04
          ldr r0,=GPFDAT
          ldr r1,[r0]
          tst r1,#0x08
          andeq r1,r1,#0xbf
          orrne r1,r1,#0x40
          strr1,[r0]

          ;測試按鍵5 GPG3
          ldr r0,=GPGDAT
          ldr r1,[r0]
          ldr r0,=GPFDAT
          ldr r2,[r0]
          tst r1,#0x0008
          andeq r2,r2,#0xaf
          orrne r2,r2,#0x50
          strr2,[r0]

          ;測試按鍵5 GPG11
          ldr r0,=GPGDAT
          ldr r1,[r0]
          ldr r0,=GPFDAT
          ldr r2,[r0]
          tst r1,#0x0800
          andeq r2,r2,#0x9f
          orrne r2,r2,#0x60
          strr2,[r0]

          bLOOP

          END




          關鍵詞: ARM匯編按鍵LED循

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();