單片機--查表,置位

設有一表格,表中數爲:00H、11H、22H、33H、44H、55H、66H、77H、88H、99H、AAH、BBH、CCH、DDH、EEH、FFH。根據片外0000H單元的低4位的數,取出表中相應的值存到片內30H中;根據片外0000H單元的高4位的數,將片內RAM區中可位尋址的相應的位置1(從位00H~位0FH,只可有一個位地址爲1)

源程序如下:

 

<asm>

org 0000h

ajmp Start

        org 0020h

Table: db  00h,11h,22h,33h,44h,55h,66h,77h,88h,99h,0aah,0bbh,0cch,0ddh,0eeh,0ffh

Start:

        mov r0,#00h

        mov r1,#30h

        mov r2, #0fh

        movx a,@r0       ; get the data from 0000h

        mov r3,a         ;store the 0000h's data, for next step

        anl a,r2         ;logic and, a store the result

        mov dptr ,#Table  ;dptr point to Table

        movc  a,@a+dptr  ;seek table and get the data

        mov @r1,a    ;send to 30h

 

        mov a,r3

        anl a, #0fh

        rr a

        rr a

        rr a

        rr a

        mov r0,a

        mov @r0,#1

 

Exit:

        ajmp $

</asm>

發佈了31 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章