微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求程序转换啊,转换成c语言的

求程序转换啊,转换成c语言的

时间:10-02 整理:3721RD 点击:
                        ORG                00H
                        PORTA        EQU                0FFFCH                         ;A口
                        PORTB        EQU                0FFFDH                         ;B口
                        PORTC        EQU                0FFFEH                         ;C口
                        CTRL        EQU                0FFFFH                         ;控制字地址
                        SJMP                START
       
                        ORG                30H
START:       
                        MOV                A,P1
                        ANL                A,#00H
                        ORL                A,#00AH   ;片选CS3
                        MOV                P1,A
                        MOV                P2,#0FFH
                        MOV                A,#82H                   ;方式0,PA,PC输出,PB输入
                        MOV                DPTR,#CTRL
                        MOVX                   @DPTR,A
       
LINE_1:                        MOV                A,#0FEH                ;扫描第一行,PC0置0,其余置1
                        MOV             DPTR,#PORTC
                        MOVX                   @DPTR,A              ;输出C口
                        ;LCALL                READ_KEY
                        MOV             DPTR,#PORTB
                        MOVX            A,@DPTR              ;读入B口
                        CPL                A
                        JNZ                K3
LINE_2:                        MOV                A,#0FDH                ;扫描第二行,PC1置0,其余置1
                        MOV             DPTR,#PORTC
                        MOVX                   @DPTR,A              ;输出C口
                        MOV             DPTR,#PORTB
                        MOVX            A,@DPTR              ;读入B口
                        CPL                A
                        JNZ                K7
LINE_3:                        MOV                A,#0FBH                ;扫描第三行,PC2置0,其余置1
                        MOV             DPTR,#PORTC
                        MOVX                   @DPTR,A              ;输出C口
                        MOV             DPTR,#PORTB
                        MOVX            A,@DPTR              ;读入B口
                        CPL                A
                        JNZ                KB
LINE_4:                        MOV                A,#0F7H                ;扫描第四行,PC3置0,其余置1
                        MOV             DPTR,#PORTC
                        MOVX                   @DPTR,A              ;输出C口
                        MOV             DPTR,#PORTB
                        MOVX            A,@DPTR              ;读入B口
                        CPL                A
                        JNZ                KF1
LL:                        LJMP                START
KF1:                        LJMP                KF
K3:                        CJNE        A,#80H,K2
                            MOV        R0,#3
                        LCALL        DIS
                        LJMP        LL
K2:                        CJNE        A,#40H,K1
                        MOV        R0,#2
                        LCALL        DIS
                        LJMP        LL
K1:                        CJNE        A,#20H,K0
                        MOV        R0,#1
                        LCALL        DIS
                        LJMP        LL
K0:                        CJNE        A,#10H,LINE_2
                        MOV        R0,#0
                        LCALL        DIS
                        LJMP        LL
;----------------------------------
K7:                        CJNE        A,#80H,K6
                            MOV        R0,#7
                        LCALL        DIS
                        LJMP        LL
K6:                        CJNE        A,#40H,K5
                        MOV        R0,#6
                        LCALL        DIS
                        LJMP        LL
K5:                        CJNE        A,#20H,K4
                        MOV        R0,#5
                        LCALL        DIS
                        LJMP        LL
K4:                        CJNE        A,#10H,LINE_3
                        MOV        R0,#4
                        LCALL        DIS
                        LJMP        LL
;------------------------------------
KB:                        CJNE        A,#80H,KA
                            MOV        R0,#11
                        LCALL        DIS
                        LJMP        LL
KA:                        CJNE        A,#40H,K9
                        MOV        R0,#10
                        LCALL        DIS
                        LJMP        LL
K9:                        CJNE        A,#20H,K8
                        MOV        R0,#9
                        LCALL        DIS
                        LJMP        LL
K8:                        CJNE        A,#10H,RE1
                        MOV        R0,#8
                        LCALL        DIS
                        LJMP        LL
RE1:                        LJMP        LINE_4
;------------------------------------
KF:                        CJNE        A,#80H,KE
                            MOV        R0,#15
                        LCALL        DIS
                        LJMP        LL
KE:                        CJNE        A,#40H,KD
                        MOV        R0,#14
                        LCALL        DIS
                        LJMP        LL
KD:                        CJNE        A,#20H,KC
                        MOV        R0,#13
                        LCALL        DIS
                        LJMP        LL
KC:                        CJNE        A,#10H,RE2
                        MOV        R0,#12
                        LCALL        DIS
RE2:                        LJMP        LL
;-------------------------------------
DIS:                        MOV        DPTR,#TAB        ;
                        MOV        A,R0                ;
                        MOVC        A,@A+DPTR        ;
                        MOV        P2,A                ;
                        ;INC        R0                ;
                        CALL        DELAY
                         
                        ;=====
                        CALL        DELAY
                        LJMP        START
DELAY:                        MOV                R6,#0FFH
                        MOV                R7,#0FFH
DELAYLOOP:
                        DJNZ        R6,DELAYLOOP
                        DJNZ        R7,DELAYLOOP
                        RET
TAB:        DB        0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
                        END
用得芯片是8255,还有89c51rc。谢谢大家

有空儿还是去学学C语音吧,
很容易的。

那这个怎么改啊 我想借鉴一下 也学习一下啊 谢谢你咯

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top