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

📄 二位加减法.asm

📁 关于ADUC841(51内核)的各种实验程序,有串口,ADC,DAC,PWM,的应用及基于ADUC841设计的万用表源程序
💻 ASM
字号:
        $MOD841
        SP0   EQU   50H
        CLK81 EQU   P3.5
        DAT81 EQU   P3.3
        KEYVAL  EQU 31H
;------------------------
        ORG    0000H
        LJMP   MAIN
        ORG    0003H
        LJMP   SERVE
        ORG    0060H
MAIN:   MOV    R0,#0FH
        CLR    A
QING:   MOV    @R0,A
        DJNZ   R0,QING
        MOV    SP,#SP0
        MOV    R3,#0FFH
        LCALL  YS
;---------------------------------------
        LCALL  INI8281
        LCALL  INI841
        LJMP   HERE
;---------------------------------------
INI841: SETB   EA
        SETB   EX0
        RET
;----------------------------------------
INI8281:SETB   CLK81
        SETB   DAT81
        MOV    A,#12H
        LCALL  WTO81
        MOV    A,#80H
        LCALL  WTO81
        RET
HERE:   LJMP   $
;-----------------------------------
SERVE:  INC   R3
        MOV   A,#93H
        LCALL WTO81
        LCALL RDKVAL
        CJNE  R3,#00H,S1
        LCALL FUNCTION1
        LJMP  OVER
S1:     CJNE  R3,#01H,S2
        LCALL FUNCTION2
        LJMP  OVER
S2:     CJNE  R3,#02H,S3
        LCALL FUNCTION3
        LJMP  OVER
S3:     CJNE  R3,#03H,S4
        LCALL FUNCTION4
        LJMP  OVER
S4:     MOV   A,KEYVAL
        CJNE  A,#0DH,S5
        LCALL HE
        LJMP  OVER
S5:     CJNE  A,#0EH,S6
        LCALL CHA
        LJMP  OVER
S6:     CJNE  A,#0FH,OVER
        MOV   R3,#0FFH
        LCALL QINGPING
OVER:   RETI
;-------------------------------
FUNCTION1:MOV  A,#14H
          LCALL  WTO81
          MOV  A,KEYVAL
          MOV  40H,A
          LCALL  WTO81
          RET
FUNCTION2:MOV  A,#14H
          LCALL  WTO81
          MOV  A,KEYVAL
          MOV  41H,A
          ORL  A,#10H
          LCALL  WTO81
          RET
FUNCTION3:MOV  A,#14H
          LCALL  WTO81
          MOV  A,KEYVAL
          MOV  42H,A
          ORL  A,#20H
          LCALL  WTO81
          RET
FUNCTION4:MOV  A,#14H
          LCALL  WTO81
          MOV  A,KEYVAL
          MOV  43H,A
          ORL  A,#30H
          LCALL  WTO81
          RET
;----------------------------------
HE:       MOV   A,40H
          MOV   B,#10
          MUL   AB
          ADD   A,41H
          MOV   41H,A
          MOV   A,42H
          MOV   B,#10
          MUL   AB
          ADD   A,43H
          ADD   A,41H
          LCALL CHULI
          LCALL ZHU_XIANSHI
          RET
;------------------------------
CHA:      MOV   A,40H
          MOV   B,#10
          MUL   AB
          ADD   A,41H
          MOV   41H,A
          MOV   A,42H
          MOV   B,#10
          MUL   AB
          ADD   A,43H
          MOV   43H,A
          CLR   C
          MOV   A,41H
          SUBB  A,43H
          JC   JIXU
          LCALL CHULI
          LCALL ZHU_XIANSHI
          LJMP  OVER1
JIXU:     MOV   A,43H
          CLR   C
          SUBB  A,41H
          LCALL CHULI
          LCALL ZHU_XIANSHI
          MOV   A,#04H
          LCALL WTO81
          MOV   A,#0BFH
          LCALL WTO81
OVER1:    RET
;-------------------------------
CHULI:    MOV   B,#100
          DIV   AB
          MOV   45H,A
          MOV   A,B
          MOV   B,#10
          DIV   AB
          MOV   46H,A
          MOV   47H,B
          RET
;---------------------------------
ZHU_XIANSHI:MOV   A,#14H
            LCALL WTO81
            MOV   A,45H
            ORL   A,#50H
            LCALL WTO81
            MOV   A,#14H
            LCALL WTO81
            MOV   A,46H
            ORL   A,#60H
            LCALL WTO81
            MOV   A,#14H
            LCALL WTO81
            MOV   A,47H
            ORL   A,#70H
            LCALL WTO81
            RET
;--------------------------------------
QINGPING:   MOV   A,#16H
            LCALL  WTO81
            MOV   A,#00H
            LCALL  WTO81
            RET
;----------------------------------
WTO81:	MOV	R6,#08H
WAT:	CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	JB	DAT81,WAT
	CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	JNB	DAT81,$
WTB81:	RLC	A
	MOV	DAT81,C
        CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	LCALL	DELAY
	LCALL	DELAY
	DJNZ	R6,WTB81
	SETB	DAT81
        RET
;-----------------------------------
RDKVAL: CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	JB	DAT81,$
        CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
        MOV	R6,#08H
RD1:
        LCALL	DELAY
        LCALL	DELAY
        LCALL	DELAY
        MOV	C,DAT81
	LCALL	DELAY
	RLC	A
        CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
        DJNZ	R6,RD1
        MOV	KEYVAL,A
        RET
;---------------------------------
DELAY:  NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        RET
;----------------------------------------
YS:	MOV	R5,#00H
	MOV	R4,#50H
YS1:	DJNZ	R5,$
	DJNZ	R4,YS1
	RET
	END


























































⌨️ 快捷键说明

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