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

📄 6122.asm

📁 &#8226 控制器(CPU): Atmel AT90S8515 AVR &#8226 MP3解码器: STA013 &#8226 音频 DAC: CS4334 &#8226 IDE 接口
💻 ASM
字号:

;P3.2接遥控接收头

;---------------------------------------------------------------------

        ORG  0000H
          AJMP MAIN
          ORG  0003H          ;外部中断INT0入口地址
          AJMP INT          ;转中断服务子程序
MAIN:   MOV SP,#40H
        MOV  P1,#0FFH
        MOV  P3,#0FFH
        MOV  P0,#0FFH
        MOV  P2,#0FFH
        SETB EA             ;开CPU中断
        SETB IT0            ;设定INT0触发方式
        SETB EX0            ;INT0请求中断



INT:  CLR EA
      MOV R6,#10
SB:   ACALL  YS1
      JB  P3.2,EXIT
      DJNZ  R6, SB
      JNB P3.2, $;等待高电平避开9毫秒低电平引导脉冲
      ACALL  YS2;延时4。74毫秒判断是否连发
      JB  P3.2,EXIT


      MOV R1,#1AH    ;将32位代码分别放在1AH/1BH/1CH/1DH中
      MOV R2,#4
PP:   MOV R3,#8
JJJJ: JNB P3.2,$
      LCALL YS1
      MOV C,P3.2
      JNC UUU
      JB  P3.2,$
UUU:  MOV A,@R1
      RRC A
      MOV @R1,A
      DJNZ R3,JJJJ
      INC R1
      DJNZ R2,PP

      MOV P1,1CH
      AJMP BIJIAO
      MOV A,1AH;进行代码识别
      XRL A,#0;判断1AH的值是否等于00000000
      JNZ EXI;如果不同则无效将1CH清零

      MOV A,1BH
      XRL A,#11110111B;再判断高8位地址是否正确
      JNZ EXI
      MOV A,1CH
      CPL A
      XRL A,1DH;将1CH的值取反后和1DH比较 不同则无效丢弃核对数据是否准确
      JNZ EXI
      AJMP EXIT
EXI:  MOV 1CH,#0
EXIT: SETB   EA ;允许中断
       MOV  P0,#0FFH
       MOV  P2,#0FFH
       MOV  P3,#0FFH
      RETI

BIJIAO:
     	MOV A,1CH           	;按键数值判断执行
	CJNE A,#00011111B,TT0      	;停止
	CLR P3.4
	SETB P3.3
	SETB P3.5
	CLR P3.7


TT0:                     	;
	CJNE A,#00010100B,TT1      	;播放
	CLR P3.3
	SETB P3.5
	SETB P3.4
	CLR P3.7


TT1:                     	;
	CJNE A,#00010101B,TT2      	;上一个
	CLR P3.3
	CLR P3.5
	CLR P3.4
	CLR P3.7


TT2:                     	;
	CJNE A,#00011110B,TT3      	;下一个
	CLR P3.3
	CLR P3.4
	SETB P3.5
	CLR P3.7


TT3:                     	;
	CJNE A,#00011010B,TT4      	;确认
	SETB P3.3
	CLR P3.5
	SETB P3.4
	CLR P3.7


TT4:                     	;
	CJNE A,#00011100B,TT5      	;声场
	CLR P3.3
	CLR P3.5
	SETB P3.4
	CLR P3.7


TT5:                     	;
	CJNE A,#00010000B,TT6      	;随机
	CLR P3.4
	CLR P3.5
	SETB P3.3
	CLR P3.7


TT6:
ACALL  YS3

	AJMP EXI
;----------------------------------------------------
;延时子程序,(6MHz晶体)
YS1:
	MOV 14H,#10 		;延时子程序1,精确延时882微秒
D1:
	MOV 15H,#20
	DJNZ 15H,$
	DJNZ 14H,D1
	RET
YS2:
	MOV 14H,#5 		;延时子程序2,精确延时4740微秒
D2:
	MOV 15H,#235
	DJNZ 15H,$
	DJNZ 14H,D2
	RET
YS3:
	MOV 14H,#20		;延时子程序3,精确延时4740微秒
D3:
	MOV 15H,#235
	DJNZ 15H,$
	DJNZ 14H,D3
	RET



	END

遥控器的键值表

停止=20 降調=87 原調=65 升調=70 進/出碟=16
1=09 2=29 3=31 4=13 5=25
6=27 7=17 8=21 9=23 0/10=18
10+=89 定時播放=88 菜單=72 編程=73 靜音=74
單步=75 記憶播放=82 返回=83 重復=85 靜像=86
剩餘時間=00 瀏覽=67 九畫面=01 慢放=24 中英切換=95
屏幕顯示=80 =06  制式=05
  ECHO(-)=71 ZOOM=07 ECHO(+)=64  
隨機播放=69 =68  聲道切換=94
音量+=03 OK評分=15 快退=10 快進=30 暫停=19
音量-=02 環繞=66 上一曲=14 下一曲=26 播放=81

⌨️ 快捷键说明

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