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

📄 4点滤波.asm

📁 关于ADUC841(51内核)的各种实验程序,有串口,ADC,DAC,PWM,的应用及基于ADUC841设计的万用表源程序
💻 ASM
字号:
      $MOD841
      SP0  EQU   50H
      CLK81 EQU   P3.5
      DAT81 EQU   P3.3
      KEYVAL EQU  30H
      CHAN EQU   0
      CSEG
;-----------------------
      ORG  0000H
      LJMP MAIN
      ORG  0003H
      LJMP INT0_INT
      ORG  0033H
      LJMP SERVE
      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   $
;----------------------------
INI841: MOV   ADCCON1,#0AAH
        MOV   ADCCON2,#CHAN
        MOV   ADCCON3,#07
        MOV   DACCON,#0DH
        SETB  EA
        SETB  EX0
        SETB  PADC
        MOV   T2CON,#00H
        MOV   RCAP2H,#0FFH
        MOV   RCAP2L,#028H
        MOV   TH2,#0FFH
        MOV   TL2,#028H
        RET
;---------------------------
INI8281:SETB   CLK81
        SETB   DAT81
        MOV    A,#12H
        LCALL  WTO81
        MOV    A,#80H
        LCALL  WTO81
        RET
;----------------------------
INT0_INT:MOV   A,#93H
         LCALL WTO81
         LCALL RDKVAL
         CLR  EADC
         MOV  R0,#20H
         MOV  R6,#8
         CLR  A
QING1:   MOV  @R0,A
         INC  R0
         DJNZ R6,QING1
         MOV  R0,#20H
         MOV  R6,#8
         SETB TR2
         SETB EADC
         RETI
;-------------------------------
SERVE:   MOV   R5,ADCDATAL
         MOV   A,ADCDATAH
         ANL   A,#0FH
         MOV   @R0,A
         INC    R0
         MOV    A,R5
         MOV   @R0,A
         INC    R0
         MOV    A,R0
         CJNE   A,#28H,OVER
         MOV    R0,#20H
OVER:    LCALL  PING_JUN
         MOV    DAC0H,R2
         MOV    DAC0L,R1
OVER1:   RETI
;-----------------------------
PING_JUN:CLR   C
         MOV   R3,21H
         MOV   A,23H
         ADDC  A,R3
         MOV   R3,A
         MOV   R4,20H
         MOV   A,22H
         ADDC  A,R4
         MOV   R4,A
;------------------------
         CLR   C
         MOV   A,25H
         ADDC  A,R3
         MOV   R3,A
         MOV   A,24H
         ADDC  A,R4
         MOV   R4,A
;------------------------
         CLR   C
         MOV   A,27H
         ADDC  A,R3
         MOV   R3,A
         MOV   A,26H
         ADDC  A,R4
         MOV   R4,A
;-------------------------
         CLR   C
         MOV   A,R4
         RRC   A
         MOV   R4,A
         MOV   A,R3
         RRC   A
         MOV   R3,A
          CLR   C
         MOV   A,R4
         RRC   A
         MOV   R2,A
         MOV   A,R3
         RRC   A
         MOV   R1,A
         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	R6,#00H
	  MOV	R5,#50H
YS1:	  DJNZ	R6,$
	  DJNZ	R4,YS1
	  RET
          END












⌨️ 快捷键说明

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