在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

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

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

            ;引腳連線
            ;GPF0~GPF3 K1~K4
            ;GPF4~GPF7 LED1~LED4
            ;GPG3 K5
            ;GPG11 K6
            ;GPxCON的配置寄存器每個引腳都占兩位,00表示表示輸入,01表示輸出
            ;GPxDAT寄存器表示引腳的高低電平狀態(tài),讀寫數據在這個寄存器里進行
            ;程序結果:按Kx,則LED就根據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的數據寄存器地址放入r0
            ldr r1,[r0];讀取GPF數據寄存器
            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數據寄存器

            ;測試按鍵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ū)

            關閉