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

📄 电子琴.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
      LO     EQU   31H
      HI     EQU   32H
      TC     EQU   33H
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      ORG    0000H
      LJMP   MAIN
      ORG    0003H
      LJMP   SERVE1
      ORG    000BH
      LJMP   T0_INT
      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    TMOD,#01H
        SETB   EA
        SETB   EX0
        SETB   ET0
        SETB   PT0
RUN:    LCALL  SOUND_ON
        MOV    R4,#1
        LCALL   LOAD_VALUE
        MOV     R5,#100
        LCALL   DELAY
        LCALL   SOUND_OFF
        LCALL  SOUND_ON
        MOV    R4,#2
        LCALL   LOAD_VALUE
        MOV     R5,#100
        LCALL   DELAY
        LCALL   SOUND_OFF
        LCALL  SOUND_ON
        MOV    R4,#3
        LCALL   LOAD_VALUE
        MOV     R5,#100
        LCALL   DELAY
        LCALL   SOUND_OFF
        SETB    P3.4
        RET
;----------------------------------
INI8281:SETB   CLK81
        SETB   DAT81
        MOV    A,#12H
        LCALL  WTO81
        MOV    A,#80H
        LCALL  WTO81
        RET
;----------------------------------
SERVE1: MOV   A,#93H
        LCALL WTO81
        LCALL RDKVAL
        MOV   A,KEYVAL
        CJNE  A,#00H,S1
        LCALL FUNCTION1
        LJMP  S14
S1:     CJNE  A,#01H,S2
        LCALL FUNCTION2
        LJMP  S14
S2:     CJNE  A,#02H,S3
        LCALL FUNCTION3
        LJMP  S14
S3:     CJNE  A,#03H,S4
        LCALL FUNCTION4
        LJMP  S14
S4:     CJNE  A,#04H,S5
        LCALL FUNCTION5
        LJMP  S14
S5:     CJNE  A,#05H,S6
        LCALL FUNCTION6
        LJMP  S14
S6:     CJNE  A,#06H,S7
        LCALL FUNCTION7
        LJMP  S14
S7:     CJNE  A,#07H,S8
        LCALL FUNCTION8
        LJMP  S14
S8:     CJNE  A,#08H,S9
        LCALL FUNCTION9
        LJMP  S14
S9:     CJNE  A,#09H,S10
        LCALL FUNCTION10
        LJMP  S14
S10:     CJNE  A,#0AH,S11
        LCALL FUNCTION11
        LJMP  S14
S11:     CJNE  A,#0BH,S12
        LCALL FUNCTION12
        LJMP  S14
S12:     CJNE  A,#0CH,S13
        LCALL FUNCTION13
        LJMP  S14
S13:     CJNE  A,#0DH,S14
        LCALL FUNCTION14
S14:    SETB   P3.4
        RETI
;--------------------------------
T0_INT: MOV   TL0,LO
        MOV   TH0,HI
        CPL   P3.4
        RETI
;-------------------------------
FUNCTION1:LCALL   SOUND_ON
          MOV   R4,#1
          LCALL PLAY
          RET
;-------------------------------

FUNCTION2:LCALL   SOUND_ON
          MOV   R4,#2
          LCALL PLAY
          RET
;-------------------------------

FUNCTION3:LCALL   SOUND_ON
          MOV   R4,#3
          LCALL PLAY
          RET
;-------------------------------

FUNCTION4:LCALL   SOUND_ON
          MOV	R4,#4
          LCALL PLAY
          RET
;-------------------------------

FUNCTION5:LCALL   SOUND_ON
          MOV	R4,#5
          LCALL PLAY
          RET
;-------------------------------

FUNCTION6:LCALL   SOUND_ON
          MOV	R4,#6
          LCALL PLAY
          RET
;-------------------------------

FUNCTION7:LCALL   SOUND_ON
          MOV	R4,#7
          LCALL PLAY
          RET
;-------------------------------

FUNCTION8:LCALL   SOUND_ON
          MOV	R4,#8
          LCALL PLAY
          RET
;-------------------------------

FUNCTION9:LCALL   SOUND_ON
          MOV	R4,#9
          LCALL PLAY
          RET
;-------------------------------

FUNCTION10:LCALL   SOUND_ON
           MOV  R4,#10
           LCALL PLAY
           RET
;-------------------------------

FUNCTION11:LCALL   SOUND_ON
          MOV  R4,#11
          LCALL PLAY
          RET
;-------------------------------

FUNCTION12:LCALL   SOUND_ON
          MOV	R4,#12
          LCALL PLAY
          RET
;-------------------------------

FUNCTION13:LCALL   SOUND_ON
          MOV  R4,#13
          LCALL PLAY
          RET
;-------------------------------
FUNCTION14:LCALL   SOUND_ON
           MOV R4,#14
           LCALL PLAY
           RET
;-------------------------------
PLAY:      LCALL   LOAD_VALUE
           MOV     R5,#100
           LCALL   DELAY
           LCALL   SOUND_OFF
           RET
;---------------------------------
SOUND_ON:   SETB   TR0
            RET
;--------------------------------
SOUND_OFF:  CLR    TR0
            RET
;--------------------------------
LOAD_VALUE:MOV   DPTR,#HI_LIST
           MOV   A,R4
           MOVC  A,@A+DPTR
           MOV   HI,A
           MOV   DPTR,#LO_LIST
           MOV   A,R4
           MOVC  A,@A+DPTR
           MOV   LO,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	R5,#00H
	MOV	R4,#50H
YS1:	DJNZ	R5,$
	DJNZ	R4,YS1
	RET
;--------------------------
DELAY:MOV    R6,#150
D1:   MOV    R7,#150
      DJNZ   R7,$
      DJNZ   R6,D1
      DJNZ   R5,DELAY
      RET
;------------------------------
HI_LIST:DB 0,0D6H,0DBH,0DFH,0E1H,0E4H,0E7H,0EAH,0EBH,0EDH,0EFH,0F0H,0F2H,0F3H,0F5H
LO_LIST:DB 0,0B3H,03DH,41H, 12H, 7BH, 76H, 24H, 5AH, 0A4H,0A1H,89H, 38H, 0BBH,12H
;----------------------------------------------------------------------------------
       END








⌨️ 快捷键说明

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