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

📄 232.asm

📁 周立功试验板上的一个程序
💻 ASM
字号:
BUF     DATA    45H
DBUF0	EQU     30H
FRIT    EQU     P1
SDA	BIT     P1^0
CLK	BIT     P1^1	

	ORG	0000H
        AJMP	MAIN
        ORG     0100H
MAIN:
	MOV	SP,#60H
        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


DISPLAY:  
	   PUSH	   PSW
	   PUSH	   ACC	
	   MOV     R2,       #7FH     ;给位码初值
           MOV     R0,       #DBUF0   ;给显示缓冲区首值
ZCQ:       MOV     A,        @R0
           LCALL   TAB                ;查表取段码
           ACALL   TXDBYTE		      ;送段码输出
           MOV     BUF,      FRIT
           ANL     BUF,      #07H
           MOV     A,        R2       ;保证不影响其它位送位码
           ORL     A,        BUF       
           MOV     FRIT,     A
           LCALL   DELAY              ;调延时子程序
 	   MOV	   FRIT,#0FFH
           INC     R0
           MOV     A,        R2
           RR      A
           MOV     R2,       A
           CJNE    R0,       #45H,  ZCQ;5位显示完吗?
           MOV	   FRIT,     #0FFH
	   POP	   ACC
           POP	   PSW	
           RET

TXDBYTE:
	   PUSH	   PSW
	   PUSH	   ACC	
	   MOV	   R3,#08H
TXDUP:	   RLC	   A
	   MOV	   SDA,C
	   CLR	   CLK
	   SETB	   CLK
	   DJNZ	   R3,TXDUP
	   POP	   ACC
           POP	   PSW
	   RET

;延时子程序
DELAY:     MOV     R7,      #50H     ;12M时钟下延时1MS	
DELAY0:    MOV     R6,      #10H
DELAY1:    DJNZ    R6,      DELAY1
           DJNZ    R7,      DELAY0
           RET

;查表子程序
TAB:       INC     A	             ;基地址加一
           MOVC    A,       @A+PC    ;查段码表,取其相应的段码
           RET
DB         0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,090H,088H,083H,0c6H,0a1H,86H,8eH,0bfH,89H,8CH
	   ;(0-9 A-F)共阳段码表
           END

⌨️ 快捷键说明

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