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

📄 pt2320.s

📁 sunplus spca514 cdmp3 源码
💻 S
字号:
	.module pt2320.c
	.area data(ram, con, rel)
_Mchvol::
	.blkb 1
	.area idata
	.byte 30
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s Mchvol _Mchvol c
_Treblevol::
	.blkb 1
	.area idata
	.byte 7
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s Treblevol _Treblevol c
_Bassvol::
	.blkb 1
	.area idata
	.byte 7
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s Bassvol _Bassvol c
_Balanceval::
	.blkb 1
	.area idata
	.byte 7
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s Balanceval _Balanceval c
_Loudnessval::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s Loudnessval _Loudnessval c
_pt_fsel_val::
	.blkb 1
	.area idata
	.byte 4
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s pt_fsel_val _pt_fsel_val c
_Schvol::
	.blkb 1
	.area idata
	.byte 8
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s Schvol _Schvol c
_SWchvol::
	.blkb 1
	.area idata
	.byte 8
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s SWchvol _SWchvol c
_Cchvol::
	.blkb 1
	.area idata
	.byte 8
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbsym s Cchvol _Cchvol c
	.area text(rom, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
	.dbfunc s pt2320_3d _pt2320_3d fI
	.even
_pt2320_3d::
	.dbline -1
	.dbline 36
; /*pt2320*/
; #include <iom163.h>
; #include "..\main.h"
; #include "..\io.h"
; #define PT_LMM      0x10
; #define PT_RMM      0x20
; #define PT_MC       0x30
; #define PT_LMR      0x40
; #define PT_RMR      0x50
; #define PT_MSW		0x60
; #define PT_FSEL     0x70
; #define PT_BASS     0x90
; #define PT_INTER    0xa0
; #define PT_TREBLE   0xb0
; #define PT_SWITCH   0xc0
; #define PT_MVOL_ONE 0xd0
; #define PT_MVOL_TEN 0xe0
; #define PT_RESET    0xf0
; 
; #define DVD_CH      0x07
; #define AV3_CH      0x06
; #define AV2_CH      0x05
; #define AV1_CH      0x04
; #define TUNER_CH    0x03
; 
; unsigned char Mchvol=30,Treblevol=7,Bassvol=7,Balanceval=7,Loudnessval=0;
; unsigned char pt_fsel_val=4;
; #ifndef NO_SIX_CHANNEL_OUTPUT
; unsigned char Schvol=8,SWchvol=8,Cchvol=8;
; #endif
; #define pt2320_switch(x)   pt2320_write(PT_SWITCH|x)
; extern unsigned char g_avtv,muted,work_mode,rds_display_type,display_type,g_ui_tmp_msg_cnt;
; extern unsigned int g_vfd_grid_buffer[];
; 
; void pt2320_3d(void)
; {
	.dbline 37
; 	if(Loudnessval)
	lds R2,_Loudnessval
	tst R2
	breq L2
	.dbline 38
; 		pt_fsel_val &= 0x0b;
	lds R24,_pt_fsel_val
	andi R24,11
	sts _pt_fsel_val,R24
	xjmp L3
L2:
	.dbline 40
; 	else
; 		pt_fsel_val |= 0x04;
	lds R24,_pt_fsel_val
	ori R24,4
	sts _pt_fsel_val,R24
L3:
	.dbline 41
; 	pt2320_write(PT_FSEL|pt_fsel_val);
	lds R16,_pt_fsel_val
	clr R17
	ori R16,112
	xcall _pt2320_write
	.dbline -2
	.dbline 42
; }
L1:
	.dbline 0 ; func end
	ret
	.dbfunc s set_balance _set_balance fI
;           val1 -> R20
	.even
_set_balance::
	xcall push_gset1
	.dbline -1
	.dbline 45
; 
; void set_balance(void)
; {
	.dbline 47
; 	unsigned char val1;
; 	if(Balanceval<7)
	lds R24,_Balanceval
	cpi R24,7
	brsh L5
	.dbline 48
; 	{
	.dbline 49
; 		val1= 7-Balanceval;
	mov R2,R24
	ldi R20,7
	sub R20,R2
	.dbline 50
; 		val1 <<=1;
	lsl R20
	.dbline 51
; 	}
	xjmp L6
L5:
	.dbline 53
; 	else
; 		val1 = 0;
	clr R20
L6:
	.dbline 54
; 	pt2320_write(PT_RMM|++val1);
	mov R24,R20
	subi R24,255	; addi 1
	mov R2,R24
	mov R20,R2
	mov R16,R2
	clr R17
	ori R16,32
	xcall _pt2320_write
	.dbline 56
; 	
; 	if(Balanceval>7)
	ldi R24,7
	lds R2,_Balanceval
	cp R24,R2
	brsh L7
	.dbline 57
; 	{
	.dbline 58
; 		val1=Balanceval-7;
	mov R20,R2
	subi R20,7
	.dbline 59
; 		val1<<=1;
	lsl R20
	.dbline 60
; 	}
	xjmp L8
L7:
	.dbline 62
; 	else
; 		val1 = 0;
	clr R20
L8:
	.dbline 63
; 	pt2320_write(PT_LMM|++val1);
	mov R24,R20
	subi R24,255	; addi 1
	mov R2,R24
	mov R20,R2
	mov R16,R2
	clr R17
	ori R16,16
	xcall _pt2320_write
	.dbline -2
	.dbline 64
; }
L4:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r val1 20 c
	.dbfunc s pt2320_vol _pt2320_vol fI
;        val_ten -> R20
;        val_one -> R22
	.even
_pt2320_vol::
	xcall push_gset2
	sbiw R28,2
	.dbline -1
	.dbline 67
; #define PT2320_ADD 0x88
; void pt2320_vol(void)
; {
	.dbline 70
; 	unsigned char val_one,val_ten;
; 	//temp_val = Mchvol;
; 	if(Mchvol==0)
	lds R2,_Mchvol
	tst R2
	brne L10
	.dbline 71
; 	{
	.dbline 72
; 		val_one =9;
	ldi R22,9
	.dbline 73
; 		val_ten =7;
	ldi R20,7
	.dbline 74
; 	}
	xjmp L11
L10:
	.dbline 76
; 	else
; 	{
	.dbline 77
; 		val_one = 60-Mchvol;
	lds R2,_Mchvol
	ldi R22,60
	sub R22,R2
	.dbline 78
; 		val_ten = val_one/10;
	ldi R17,10
	mov R16,R22
	xcall div8u
	mov R20,R16
	.dbline 79
; 		val_one %= 10;
	ldi R17,10
	mov R16,R22
	xcall mod8u
	mov R22,R16
	.dbline 80
; 	}
L11:
	.dbline 83
; 	 //Mchvol = vol_table[Mchvol];
; 	//VFD_volume = (BYTE)temp_val&0x3f;
; 	i2c_write(PT2320_ADD,PT_MVOL_TEN|val_ten,PT_MVOL_ONE|val_one);
	mov R24,R22
	clr R25
	ori R24,208
	std y+0,R24
	std y+1,R25
	mov R18,R20
	clr R19
	ori R18,224
	ldi R16,136
	ldi R17,0
	xcall _i2c_write
	.dbline -2
	.dbline 84
; }
L9:
	adiw R28,2
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r val_ten 20 c
	.dbsym r val_one 22 c
	.dbfunc s bt_trans _bt_trans fI
;            val -> R16
	.even
_bt_trans::
	.dbline -1
	.dbline 88
; 
; 
; unsigned char bt_trans(unsigned char val)
; {
	.dbline 89
;   if(val>7)
	ldi R24,7
	cp R24,R16
	brsh L13
	.dbline 90
;     val = (22-val);	
	ldi R24,22
	sub R24,R16
	mov R16,R24
L13:
	.dbline 91
;   return val;     
	clr R17
	.dbline -2
L12:
	.dbline 0 ; func end
	ret
	.dbsym r val 16 c
	.dbfunc s pt2320_bass _pt2320_bass fI
;           bass -> R20
	.even
_pt2320_bass::
	xcall push_gset1
	.dbline -1
	.dbline 94
; }
; void pt2320_bass(void)
; {
	.dbline 96
;     unsigned char bass;
;     bass = bt_trans(Bassvol); 
	lds R16,_Bassvol
	xcall _bt_trans
	movw R2,R16
	mov R20,R2
	.dbline 97
; 	pt2320_write(PT_BASS|bass);
	mov R16,R20
	clr R17
	ori R16,144
	xcall _pt2320_write
	.dbline -2
	.dbline 99
; 	
; }
L15:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r bass 20 c
	.dbfunc s pt2320_treble _pt2320_treble fI
;         treble -> R20
	.even
_pt2320_treble::
	xcall push_gset1
	.dbline -1
	.dbline 102
; 
; void pt2320_treble(void)
; {
	.dbline 104
; 	unsigned char treble;
; 	treble = bt_trans(Treblevol);
	lds R16,_Treblevol
	xcall _bt_trans
	movw R2,R16
	mov R20,R2
	.dbline 105
; 	pt2320_write(PT_TREBLE|treble);	
	mov R16,R20
	clr R17
	ori R16,176
	xcall _pt2320_write
	.dbline -2
	.dbline 106
; }
L16:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r treble 20 c
	.dbfunc s pt2320_Cch _pt2320_Cch fI
	.even
_pt2320_Cch::
	.dbline -1
	.dbline 108
; void pt2320_Cch(void)
; {
	.dbline 109
;   pt2320_write(PT_MC|(15-Cchvol));
	lds R2,_Cchvol
	clr R3
	ldi R16,15
	ldi R17,0
	sub R16,R2
	sbc R17,R3
	ori R16,48
	xcall _pt2320_write
	.dbline -2
	.dbline 110
; }
L17:
	.dbline 0 ; func end
	ret
	.dbfunc s pt2320_SWch _pt2320_SWch fI
	.even
_pt2320_SWch::
	.dbline -1
	.dbline 112
; void pt2320_SWch(void)
; {
	.dbline 113
;  pt2320_write(PT_MSW|(15-SWchvol));
	lds R2,_SWchvol
	clr R3
	ldi R16,15
	ldi R17,0
	sub R16,R2
	sbc R17,R3
	ori R16,96
	xcall _pt2320_write
	.dbline -2
	.dbline 114
; }
L18:
	.dbline 0 ; func end
	ret
	.dbfunc s pt2320_Sch _pt2320_Sch fI
	.even
_pt2320_Sch::
	sbiw R28,2
	.dbline -1
	.dbline 116
; void pt2320_Sch(void)
; {
	.dbline 117
;  i2c_write(PT2320_ADD,PT_LMR|(15-Schvol),PT_RMR|(15-Schvol));
	lds R2,_Schvol
	clr R3
	ldi R24,15
	ldi R25,0
	sub R24,R2
	sbc R25,R3
	movw R2,R24
	ori R24,80
	std y+0,R24
	std y+1,R25
	movw R18,R2
	ori R18,64
	ldi R16,136
	ldi R17,0
	xcall _i2c_write
	.dbline -2
	.dbline 118
; }
L19:
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbfunc s pt2320_init _pt2320_init fI
	.even
_pt2320_init::
	.dbline -1
	.dbline 120
; void pt2320_init(void)
; {
	.dbline 121
;   pt2320_vol();  //vol
	xcall _pt2320_vol
	.dbline 122
;   set_balance();
	xcall _set_balance
	.dbline 123
;   pt2320_bass(); //BASS
	xcall _pt2320_bass
	.dbline 124
;   pt2320_treble(); //treble
	xcall _pt2320_treble
	.dbline 125
;   pt2320_3d();
	xcall _pt2320_3d
	.dbline 127
;   #ifndef NO_SIX_CHANNEL_OUTPUT
;   pt2320_Cch();
	xcall _pt2320_Cch
	.dbline 128
;   pt2320_SWch();
	xcall _pt2320_SWch
	.dbline 129
;   pt2320_Sch();
	xcall _pt2320_Sch
	.dbline -2
	.dbline 131
;   #endif
; }
L20:
	.dbline 0 ; func end
	ret
	.dbfunc s work_mode_convert _work_mode_convert fI
	.area func_lit(rom, con, rel)
L34:
	.word `L28
	.word `L25
	.word `L27
	.word `L26
	.area text(rom, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
;              i -> R20
	.even
_work_mode_convert::
	xcall push_gset1
	sbiw R28,2
	.dbline -1
	.dbline 134
; 
; void work_mode_convert(void)
; {
	.dbline 137
;   unsigned char i;
;   #ifdef SGJM_RDS
;   rds_display_type = DIS_FREQUENCY;
	clr R2
	sts _rds_display_type,R2
	.dbline 140
;   #endif
;  
;   muted = 1;
	ldi R24,1
	sts _muted,R24
	.dbline 141
;   MCU_mute();
	xcall _MCU_mute
	.dbline 142
;   delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 143
;   i2c_write(PT2320_ADD,PT_MVOL_TEN|7,PT_MVOL_ONE|9);
	ldi R24,217
	ldi R25,0
	std y+0,R24
	std y+1,R25
	ldi R18,231
	ldi R19,0
	ldi R16,136
	ldi R17,0
	xcall _i2c_write
	.dbline 144
;   delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 145
;   decoder_power_off();
	clr R16
	clr R17
	xcall _DEC_power
	.dbline 146
;   SPCR = 0x00;
	clr R2
	out 0xd,R2
	.dbline 147
;   Set_FS1_L(); 
	CBI 0x15,3
	.dbline 148
;   switch(work_mode)
	lds R20,_work_mode
	clr R21
	cpi R20,0
	ldi R30,0
	cpc R21,R30
	brge X1
	xjmp L22
X1:
	ldi R24,3
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brge X2
	xjmp L22
X2:
	ldi R24,<L34
	ldi R25,>L34
	movw R30,R20
	lsl R30
	rol R31
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X0:
	.dbline 149
;   	{
L25:
	.dbline 153
;      
;   	 case TUNER_MODE:               //Radio Mode
;   	 	//decoder_power_off();
; 		Set_FS1_H();
	SBI 0x15,3
	.dbline 155
; 		#ifdef SGJM_RDS
; 		rds_display_type = 0;
	clr R2
	sts _rds_display_type,R2
	.dbline 157
; 		#endif
;   	 	pt2320_switch(TUNER_CH);
	ldi R16,195
	ldi R17,0
	xcall _pt2320_write
	.dbline 158
;   	 	init_radio();
	xcall _init_radio
	.dbline 159
; 		break;
	xjmp L23
L26:
	.dbline 163
; 
;   	 case AV2_MODE:               //AV Mode
;   	 	//decoder_power_off();
; 		pt2320_switch(AV2_CH);
	ldi R16,197
	ldi R17,0
	xcall _pt2320_write
	.dbline 164
;   	 	break;
	xjmp L23
L27:
	.dbline 167
; 	 case AV1_MODE:
; 	     //decoder_power_off();
; 		 pt2320_switch(AV1_CH);
	ldi R16,196
	ldi R17,0
	xcall _pt2320_write
	.dbline 168
; 		 break;
	xjmp L23
L28:
	.dbline 170
;   	 case DVD_MODE:
; 	    decoder_power_on();
	ldi R16,1
	ldi R17,0
	xcall _DEC_power
	.dbline 171
; 		delay_ms(200);
	ldi R16,200
	ldi R17,0
	xcall _delay_ms
	.dbline 172
; 		for(i=0;i<12;i++)
	clr R20
	xjmp L32
L29:
	.dbline 173
	ldi R24,<_g_vfd_grid_buffer
	ldi R25,>_g_vfd_grid_buffer
	mov R30,R20
	clr R31
	lsl R30
	rol R31
	add R30,R24
	adc R31,R25
	clr R2
	clr R3
	std z+0,R2
	std z+1,R3
L30:
	.dbline 172
	inc R20
L32:
	.dbline 172
	cpi R20,12
	brlo L29
	.dbline 174
;  		   g_vfd_grid_buffer[i] = 0;
; 		Set_String("  DVD");
	ldi R16,<L33
	ldi R17,>L33
	xcall _Set_String
	.dbline 175
; 		SPCR = 0xec;
	ldi R24,236
	out 0xd,R24
	.dbline 176
; 		pt2320_switch(DVD_CH);
	ldi R16,199
	ldi R17,0
	xcall _pt2320_write
	.dbline 177
; 		break;
	xjmp L23
L22:
	.dbline 179
; 	 default:
; 	 	decoder_power_off();               //Standby Mode	
	clr R16
	clr R17
	xcall _DEC_power
	.dbline 180
;   	 	pt2320_switch(DVD_CH);
	ldi R16,199
	ldi R17,0
	xcall _pt2320_write
	.dbline 181
; 		g_avtv = 1;
	ldi R24,1
	sts _g_avtv,R24
	.dbline 182
; 		Set_AVTV();
	xcall _Set_AVTV
	.dbline 183
; 		break;
L23:
	.dbline 185
;   	}
; 	delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 186
; 	pt2320_init();
	xcall _pt2320_init
	.dbline 187
; 	delay_ms(100);
	ldi R16,100
	ldi R17,0
	xcall _delay_ms
	.dbline 188
; 	if(work_mode!=POWER_OFF_MODE)
	lds R24,_work_mode
	cpi R24,5
	breq L35
	.dbline 189
; 	{
	.dbline 190
; 	  muted = 0;
	clr R2
	sts _muted,R2
	.dbline 191
; 	  MCU_mute();
	xcall _MCU_mute
	.dbline 192
L35:
	.dbline 192
; 	};
	.dbline 193
; 	display_type = DISPLAY_WELCOME;
	ldi R24,18
	sts _display_type,R24
	.dbline 194
; 	g_ui_tmp_msg_cnt = 10;
	ldi R24,10
	sts _g_ui_tmp_msg_cnt,R24
	.dbline -2
	.dbline 195
; }
L21:
	adiw R28,2
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c
L33:
	.blkb 6
	.area idata
	.byte 32,32,'D,'V,'D,0
	.area data(ram, con, rel)
	.dbfile D:\avrmcu\AT980\pt2320\pt2320.c

⌨️ 快捷键说明

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