能转化成c语言吗?这是8279键盘显示实验汇编代码

2019-07-15 15:50发布

  CMD_8279    XDATA    0bF01H    ;8279命令字、状态字地址    DATA_8279    XDATA    0bF00H    ;8279读写数据口的地址    KeyCount    DATA    50H              ORG    0000H              LJMP    STAR              ORG    0100H         STAR:    MOV    SP,#60H              ACALL    INIT8279    ;初始化子程序         MOV    KeyCount,#0         STAR1:    CALL    SCAN_KEY    ;键扫描         JNC    STAR1    ;没有按键         XCH    A,KeyCount              INC     A              CJNE    A,#9,STAR2              MOV    KeyCount,#0              ACALL    INIT8279_1    ;8个数码块全有字符显示后,再按键,清除显示         SJMP    STAR1         STAR2:    XCH    A,KeyCount              CALL    KEY_NUM    ;键值转换为键号         MOV    DPTR,#LED_TAB    ;字型码表         MOVC    A,@A+DPTR              CALL    WRITE_DATA              SJMP    STAR1         ;8279初始化    INIT8279:    MOV    DPTR,#CMD_8279    ;可编程时钟设置,设置分频系数(20分频)         MOV  MOVX    A,#34H  @DPTR,A              CLR     A    ;8*8字符显示,左边输入, 外部译码键扫描方式         MOV    DPTR,#CMD_8279              MOVX    @DPTR,A         INIT8279_1:    CALL    CLEAR    ;清显示         MOV    A,#90H    ;从最后一个数码管开始移位显示         MOVX    @DPTR,A              RET              CLEAR:    MOV    A,#0DEH    ;清除命令         MOV    DPTR,#CMD_8279              MOVX    @DPTR,A         WAIT1:    MOVX    A,@DPTR              JB    ACC.7,WAIT1    ;显示RAM清除完毕吗?         RET              SCAN_KEY:    MOV    DPTR,#CMD_8279              MOVX    A,@DPTR    ;读状态    READ_FIFO:    ANL    A,#7              JZ    NO_KEY    ;是否有键按下    READ:    MOV    A,#40H              MOVX    @DPTR,A    ;读FIFO RAM         MOV    DPTR,#DATA_8279              MOVX    A,@DPTR              SETB    C    ;有键    SCAN_KEY1:    RET              NO_KEY:    CLR     C       ;无键按下,清CY         SJMP    SCAN_KEY1         KEY_NUM:    ANL    A,#3FH              RET              WRITE_DATA:    MOV    DPTR,#DATA_8279              MOVX    @DPTR,A              RET            j    LED_TAB:    DB    0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H         DB    080H,90H,88H,83H,0C6H,0A1H,86H,8EH                        END            
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。