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

📄 滚动示波器.asm

📁 关于ADUC841(51内核)的各种实验程序,有串口,ADC,DAC,PWM,的应用及基于ADUC841设计的万用表源程序
💻 ASM
字号:
       $MOD841
      SP0    EQU   50H
      KEY    EQU   P3.2
      CLK81  EQU   P3.5
      DAT81  EQU   P3.3
      KEYVAL EQU   30H
      CHAN   EQU   0
      CSEG
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      ORG    0000H
      LJMP   MAIN
      ORG    0003H
      LJMP   INT0_INT
      ORG    000BH
      LJMP   SERVE2
      ORG    0033H
      LJMP   SERVE1
      ORG    0060H
MAIN:   MOV    R0,#0FFH
        CLR    A
QING:   MOV    @R0,A
        DJNZ   R0,QING
        MOV    SP,#SP0
        LCALL  YS
        LCALL  INI8281
        LCALL  INI841
HERE:   LJMP   HERE
;-------------------------------------------
INI841: MOV   ADCCON1,#0AAH
        MOV   ADCCON2,#CHAN
        MOV   ADCCON3,#07
        MOV   DACCON,#0DH
        MOV   TMOD,#01H
        SETB  EA
        SETB  EX0
        SETB  ET0
        SETB  PADC
        SETB  PT0
        MOV   T2CON,#00H
        MOV   TMOD,#01H
        MOV   20H,#128
        MOV   21H,#8
        MOV   22H,#00H
        MOV   23H,#00H
        MOV   RCAP2H,#0FFH
        MOV   RCAP2L,#28H
        MOV   TH2,#0FFH
        MOV   TL2,#28H
        MOV   TH0,#0FFH
        MOV   TL0,#28H
        RET
;-----------------------------------------------
INI8281:SETB   CLK81
        SETB   DAT81
        MOV    A,#12H
        LCALL  WTO81
        MOV    A,#80H
        LCALL  WTO81
        RET
;----------------------------------
INT0_INT:CLR  TR0
         CLR  EADC
         LCALL  QING_XRAM
        MOV   A,#93H
        LCALL WTO81
        LCALL RDKVAL
        MOV   A,KEYVAL
        CJNE  A,#00H,S1
        LCALL FUNCTION1
        LJMP  S2
S1:     CJNE  A,#01H,S2
        LCALL FUNCTION2
S2:     RETI
;-----------------------------------
SERVE1: MOV   R0,ADCDATAL
        MOV   A,ADCDATAH
        ANL   A,#0FH
        MOV   R1,A
        MOV   DAC0H,R1
        MOV   DAC0L,R0
        MOV   DPH,22H
        MOV   DPL,23H
        MOV   R6,20H
        MOV   R7,21H
        MOV   A,R1
        MOVX  @DPTR,A
        INC    DPTR
        MOV   A,R0
        MOVX  @DPTR,A
        INC   DPTR
PP1:    DJNZ  R6,OVER
        MOV   R6,#128
        DJNZ  R7,PP1
        MOV   DPTR,#0000H
        MOV   R7,#8
OVER:   MOV   20H,R6
        MOV   21H,R7
        MOV   22H,DPH
        MOV   23H,DPL
        RETI
;-----------------------------------------
SERVE2: MOV    TH0,#0FFH
        MOV    TL0,#28H
        MOV   DPH,22H
        MOV   DPL,23H
        MOV   R6,20H
        MOV   R7,21H
        MOVX  A,@DPTR
        MOV   DAC0H,A
        INC   DPTR
        MOVX  A,@DPTR
        MOV   DAC0L,A
        INC   DPTR
PP2:    DJNZ  R6,OVER1
        MOV   R6,#128
        DJNZ  R7,PP2
        MOV   DPTR,#0000H
        MOV   R7,#8
OVER1:  MOV   20H,R6
        MOV   21H,R7
        MOV   22H,DPH
        MOV   23H,DPL
        RETI
;---------------------------------------------
FUNCTION1:LCALL  QING_XRAM
          SETB   TR2
          SETB   EADC
          RET
;-------------------------------
FUNCTION2:CLR    EADC
          MOV    T2CON,#00H
          MOV    TH0,#0FFH
          MOV    TL0,#28H
          SETB   TR0
          RET
;---------------------------------------------
QING_XRAM:  MOV  DPTR,#0000H
            CLR  A
QING1:      MOVX  @DPTR,A
            INC   DPTR
            MOV   R5,DPH
            MOV   R4,DPL
            CJNE  R5,#40H,QING1
            CJNE  R4,#00H,QING1
            RET
;----------------------------------------
WTO81:	MOV	R6,#08H
WAT:	CLR	CLK81
	LCALL	DELAY1
	SETB	CLK81
	JB	DAT81,WAT
	CLR	CLK81
	LCALL	DELAY1
	SETB	CLK81
	JNB	DAT81,$
WTB81:	RLC	A
	MOV	DAT81,C
        CLR	CLK81
	LCALL	DELAY1
	SETB	CLK81
	LCALL	DELAY1
	LCALL	DELAY1
	DJNZ	R6,WTB81
	SETB	DAT81
        RET
;-----------------------------------
RDKVAL: CLR	CLK81
	LCALL	DELAY1
	SETB	CLK81
	JB	DAT81,$
        CLR	CLK81
	LCALL	DELAY1
	SETB	CLK81
        MOV	R6,#08H
RD1:
        LCALL	DELAY1
        LCALL	DELAY1
        LCALL	DELAY1
        MOV	C,DAT81
	 LCALL	DELAY1
	 RLC	A
        CLR	CLK81
	 LCALL	DELAY1
	 SETB	CLK81
        DJNZ	R6,RD1
        MOV	KEYVAL,A
        RET
;---------------------------------
DELAY1:  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 + -