⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 242.asm

📁 周立功试验板上的一个程序
💻 ASM
字号:
IOCD    EQU     0F901H
IODT    EQU     0F900H
BUF     DATA    45H
BUFFER0 EQU     30H
FRIT    EQU     P1
	ORG	0000H
        AJMP	MAIN
        ORG     0100H
MAIN:
	MOV	SP,#60H
        MOV     DPTR,     #IOCD     ;送命令口地址
	MOV     A,        #00H
	MOVX    @DPTR,    A         ;设置为并行输出方式
        MOV	TMOD,#20H	;设置T1为方式2
	MOV	TH1,#0FDH	;设置波特率为9600
	MOV	TL1,#0FDH
	SETB	TR1
        MOV	SCON,#40H	;设置串口位方式1
	MOV	PCON,#00H
UPUP:
        MOV     R0,#30H
        MOV     R7,#5H
RRU:
        SETB    REN
RRUP:   JBC     RI,RRD   ;接受一位
        AJMP    RRUP
RRD:    MOV     A,SBUF
        MOV     @R0,A
        INC     R0
        DJNZ    R7,RRU

        MOV     R0,#30H
        MOV     R7,#5H
UP:     CLR     REN
        MOV     A,@R0
        MOV     SBUF,A  ;把它发送出去
NEXT:   JBC     TI,DOWN
        AJMP    NEXT
DOWN:   INC     R0
        DJNZ    R7,UP
DIP:    ACALL   DISPLAY
        AJMP    DIP

DELAY:  MOV     R3,#10H
DELAY1: MOV     R4,#50H
DELAY2: DJNZ    R4,DELAY2
        DJNZ    R3,DELAY1
        RET

DISPLAY:   
           MOV     R2,       #7FH     ;给位码初值
           MOV     R0,       #BUFFER0 ;给显示缓冲区首值
ZCQ:       MOV     DPTR,     #IODT
           MOV     A,        @R0
           ANL     A,        #0FH
           LCALL   TAB                ;查表取段码
           MOVX    @DPTR,    A        ;送段码输出
           MOV     BUF,      FRIT
           ANL     BUF,      #07H
           MOV     A,        R2       ;保证不影响其它位送位码
           ORL     A,        BUF
           MOV     FRIT,     A
           LCALL   DELAY              ;调延时子程序
           INC     R0
           MOV     A,        R2
           RR      A
           MOV     R2,       A
           CJNE    R0,       #35H,  ZCQ;5位显示完吗?
           RET
;查表子程序
TAB:       INC   A
           MOVC  A,@A+PC
           RET
DB         0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,88H,83H,0C6H,0A1H,86H,8EH  ;共阳段码表
           END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -