;===========================================================; ; ; ; DTS4 CAR AUDIO TEST ; ; ; ; MagnaChip Semiconductor Ldt. ; ; ; ; Project name : DTS4 ; ; Oscilator clock : 4.5MHz/7.2 MHz ; ; Target micom : HMS9XC8232 ; ; Start date : JANUARY. 15. 2003. ; ; by : CDJin ; ; Upgrade date : 2004. ; ; ; ;===========================================================; ;============================================== ; DEFINE ;============================================== ;----- SFR Define ----- ; DTS4.0(HMS9XC8232) LCR EQU 0E5H ;0xE5; /* Lcd Control Register */ SGE0 EQU 0E6H ;0xE6; /* SEG0~SEG21 Enable Register */ SGE1 EQU 0E7H ;0xE7; /* SEg22~SEG28 Enable Register */ POPEN EQU 0C6H ;0xC6; /* Open-drain Port Enable Register */ ;******* Page 6 ********************************************** SEG0 EQU 060H ;0x2E0 SEG1 EQU 061H ;0x2E1 SEG2 EQU 062H ;0x2E2 SEG3 EQU 063H ;0x2E3 SEG4 EQU 064H ;0x2E4 SEG5 EQU 065H ;0x2E5 SEG6 EQU 066H ;0x2E6 SEG7 EQU 067H ;0x2E7 SEG8 EQU 068H ;0x2E8 SEG9 EQU 069H ;0x2E9 SEG10 EQU 06AH ;0x2EA SEG11 EQU 06BH ;0x2EB SEG12 EQU 06CH ;0x2EC SEG13 EQU 06DH ;0x2ED SEG14 EQU 06EH ;0x2EE SEG15 EQU 06FH ;0x2EF SEG16 EQU 070H ;0x2F0 SEG17 EQU 071H ;0x2F1 SEG18 EQU 072H ;0x2F2 SEG19 EQU 073H ;0x2F3 SEG20 EQU 074H ;0x2F4 SEG21 EQU 075H ;0x2F5 SEG22 EQU 076H ;0x2F6 SEG23 EQU 077H ;0x2F7 SEG24 EQU 078H ;0x2F8 SEG25 EQU 079H ;0x2F9 SEG26 EQU 07AH ;0x2FA SEG27 EQU 07BH ;0x2FB SEG28 EQU 07CH ;0x2FC SEG29 EQU 07DH ;0x2FD SEG30 EQU 07EH ;0x2FE SEG31 EQU 07FH ;0x2FF ;*************** DISPLAY FONT DEFINITION **************** LCD1_ST EQU 00000010B LCD1_DB EQU 00000001B LCD2_A EQU 00001100B LCD2_F EQU 00001000B LCD3_M EQU 01100000B LCD_RPT EQU 2 LCD_COL EQU 1 LCD_DISC EQU 2 LCD_P EQU 1 LCD_TRACK EQU 2 ;*********************************************************** ADCCON EQU 84H ADCDR EQU 85H T01MOD EQU 89H D_TL0 EQU 8AH D_TL1 EQU 8BH D_TH0 EQU 8CH D_TH1 EQU 8DH T34MOD EQU 91H TL3 EQU 92H TL4 EQU 93H TH3 EQU 94H TH4 EQU 95H SBUF0 EQU 99H SBUF1 EQU 0A1H SBUF2 EQU 0A2H P0CON EQU 0A4H P1CON EQU 0A5H P2CON EQU 0A6H P3CON EQU 0A7H P4CON EQU 0ACH P5CON EQU 0ADH P6CON EQU 0AEH P7CON EQU 0AFH P0MOD EQU 0B4H P1MOD EQU 0B5H P2MOD EQU 0B6H P3MOD EQU 0B7H P4MOD EQU 0BCH P5MOD EQU 0BDH P6MOD EQU 0BEH P7MOD EQU 0BFH D_IP2 EQU 0B1H D_IP3 EQU 0C1H D_RCAP2L EQU 0CAH D_RCAP2H EQU 0CBH D_TL2 EQU 0CCH D_TH2 EQU 0CDH D_IT2 EQU 0D9H PLLMOD EQU 0F1H PLLDRH EQU 0F2H PLLDRL EQU 0F3H IFCMOD EQU 0F4H IFCDR2 EQU 0F5H IFCDR1 EQU 0F6H IFCDR0 EQU 0F7H WDTDR EQU 0F9H RDPG EQU 0FCH WRPG EQU 0FDH SFRPG EQU 0FFH ;SFRG0 ***** SCMODE EQU 80H T01CON EQU 88H T34CON EQU 90H S0CON EQU 98H S12CON EQU 0A0H D_IE EQU 0A8H D_IE2 EQU 0B0H D_IE3 EQU 0C0H D_IP EQU 0B8H D_T2CON EQU 0C8H D_IR2 EQU 0D8H D_IR3 EQU 0E8H WDTCON EQU 0F8H ;SFRPG1 ***** P_0 EQU 88H P_1 EQU 98H P_2 EQU 0A8H P_3 EQU 0B8H P_4 EQU 0C8H P_5 EQU 0D8H P_6 EQU 0E8H P_7 EQU 0F8H ;SFR & Memory Page Define ****** SFRPG0 EQU 00H SFRPG1 EQU 01H RDPG0 EQU 00H ;Read page 0(Data Memory : 00H-7FH) RDPG1 EQU 01H ;Read page 1(Data Memory : 00H-7FH) RDPG2 EQU 02H ;Read page 2(Data Memory : 00H-7FH) RDPG3 EQU 03H ;Read page 3(Data Memory : 00H-7FH) RDPG4 EQU 04H ;Read page 4(Data Memory : 00H-7FH) RDPG5 EQU 05H ;Read page 5(Data Memory : 00H-7FH) RDPG6 EQU 06H ;Read page 6(Data Memory : 00H-7FH) WRPG0 EQU 00H ;Write page 0(Data Memory : 00H-7FH) WRPG1 EQU 01H ;Write page 1(Data Memory : 00H-7FH) WRPG2 EQU 02H ;Write page 2(Data Memory : 00H-7FH) WRPG3 EQU 03H ;Write page 3(Data Memory : 00H-7FH) WRPG4 EQU 04H ;Write page 4(Data Memory : 00H-7FH) WRPG5 EQU 05H ;Write page 5(Data Memory : 00H-7FH) WRPG6 EQU 06H ;Write page 6(Data Memory : 00H-7FH) ;----- Flag Define ----- TIME_FG BIT 20H.1 MUTEFG BIT 20H.2 ;Flag mute TAPE_FG BIT 20H.3 TMFG_8M BIT 20H.4 CLK_FG BIT 20H.5 KEY_BUF_FG DATA 21H KEYFG BIT 21H.0 ;Flag key KEY_ON_FG BIT 21H.1 ;Flag key ON KEY_LONG_FG BIT 21H.2 ;Flag long key KEY_ERR_FG BIT 21H.3 ;Flag error key KEYSEL_FG BIT 21H.4 FM_AM_FG BIT 22H.0 UPDN_FG BIT 22H.1 IF_OK_FG BIT 22H.2 MAXMIN_ING BIT 22H.3 SM_ON BIT 22H.4 CHK_FG BIT 22H.5 LODX_FG BIT 22H.6 IF_FG BIT 22H.7 CDC_FG BIT 23H.0 CDC_ERR_FG BIT 23H.1 CDC_TXRX_FG BIT 23H.2 CDC_DATA_BIT BIT 23H.3 CDC_COM1_FG BIT 23H.4 CDC_HI_CPL BIT 23H.5 CDC_T20M_FG BIT 23H.6 TREVERSE BIT 24H.0 TAPEFR_FG BIT 24H.1 TAPE_ERR BIT 24H.2 TEJECT_FG BIT 24H.3 REMOSTART_FG BIT 25H.1 REMO_FG BIT 25H.2 REMOAM_FG BIT 25H.3 REMORET_FG BIT 25H.4 REMOLEAD_FG BIT 25H.5 REMO_LONG_FG BIT 25H.6 REMO_LUP_FG BIT 25H.7 CDP_FG BIT 26H.0 REMO_LTIME_FG BIT 26H.1 REMO_VCR_FG BIT 26H.2 ;----- Port Define ----- P_AMON BIT P_0.0 ;P_0.0 P_FMON BIT P_0.1 ;P_0.1 P_LODX BIT P_0.2 ;P_0.2 P_IFREQ BIT P_0.3 ;P_0.3 P_LWON BIT P_0.4 ;P_0.4 P_REMOCON BIT P_0.5 ;P_4.2 P_CDCDI BIT P_0.6 ;P_4.0 P_BEEP BIT P_0.7 ;P_4.7 P_CDCON BIT P_4.6 ;P_4.3 P_CDCDO BIT P_1.0 ;P_4.1 P_SDIN BIT P_1.1 ;P_2.0 P_STIN BIT P_1.2 ;P_2.1 P_KSO0 BIT P_1.3 P_KSO1 BIT P_1.4 P_KSO2 BIT P_1.5 P_KSO3 BIT P_1.6 P_KSO4 BIT P_1.7 P_KSI0 BIT P_2.0 ;P_2.4 P_KSI1 BIT P_2.1 ;P_2.5 P_KSI2 BIT P_2.2 ;P_2.6 P_KSI3 BIT P_2.3 ;P_2.7 P_VOLDI BIT P_7.1 P_VOLCLK BIT P_7.2 P_VOLCE BIT P_7.3 P_MUTE BIT P_7.4 ;P_3.2 P_POWERON BIT P_7.5 ;P_3.0 P_RADIOON BIT P_7.6 ;P_3.1 P_SM BIT P_7.7 ;P_7.6 P_CDDATA BIT P_4.6 ;P_4.4 P_ATS BIT P_4.6 ;P_4.5 P_CD_C2 BIT P_4.6 ;P_4.6 P_CDRST BIT P_4.6 ;P_3.3 P_CDACC BIT P_4.6 ;P_3.4 P_CD_C1 BIT P_4.6 ;P_3.5 P_LCDINH BIT P_4.6 ;P_0.7 P_LCDDI BIT P_4.6 ;P_1.0 P_LCDCL BIT P_4.6 ;P_1.1 P_LCDCE BIT P_4.6 ;P_1.2 P_MP3TX BIT P_4.6 ;P_5.0 P_MP3RX BIT P_4.6 ;P_5.1 P_HOLD BIT P_4.6 ;P_5.5 P_PM1 BIT P_4.6 ;P_5.6 ;PM2 --> PM1 P_PM2 BIT P_4.6 ;P_5.7 ;PM1 --> PM2 P_STPIN BIT P_4.6 ;P_6.2 P_REWDET BIT P_4.6 ;P_6.3 P_FOWDET BIT P_4.6 ;P_6.4 P_FRSW BIT P_4.6 ;P_6.5 P_APS BIT P_4.6 ;P_6.7 P_SOL2 BIT P_4.6 ;P_7.1 P_SOL1 BIT P_4.6 ;P_7.2 P_CM BIT P_4.6 ;P_7.3 P_DB BIT P_4.6 ;P_7.4 P_MTL BIT P_4.6 ;P_7.5 P_LOWVDET BIT P_4.6 ;P_7.7 ;----- Memory Address Define ----- TIME_COUNT0 EQU 30H PLLFM_BUF0 EQU 31H PLLFM_BUF1 EQU 32H PLLAM_BUF0 EQU 33H PLLAM_BUF1 EQU 34H IFBUF0 EQU 36H IFBUF1 EQU 37H IFBUF2 EQU 38H STEP_FM EQU 39H STEP_AM EQU 3AH STEP_BUF0 DATA 3BH STEP_BUF1 DATA 3CH TEXT_NUM EQU 3DH CMP_ANL EQU 3EH LCDCLK_FG EQU 3FH KEY_OLD EQU 40H KEY_NEW EQU 41H KEY_COUNT EQU 43H ;Count key input : filter key chaterring MUTE500M EQU 44H ;Count MUTE KEY_LONG_COUNT EQU 45H ;Count Long key TAPE_MODE EQU 46H TEMP_BUF0 EQU 47H TEMP_BUF1 EQU 48H REMO_BUF0 EQU 4BH REMO_BUF1 EQU 4CH REMO_COUNT0 EQU 4DH REMO_BUF2 EQU 4EH REMO_LCOUNT0 EQU 4FH LCD_BUF0 EQU 27H LCD_BUF1 EQU 28H LCD_BUF2 EQU 29H ;LCD_BUF3 EQU 2AH ;LCD_BUF4 EQU 2BH ;LCD_BUF5 EQU 2CH ;LCD_BUF6 EQU 2DH ;LCD_BUF7 EQU 2EH LCD_BUF8 EQU 2FH CDC_COM0 EQU 50H CDC_COM1 EQU 51H CDC_TEXT EQU 52H CDC_TEXT0 EQU 53H CDC_TEXT1 EQU 54H CDC_TEXT2 EQU 55H CDC_TEXT3 EQU 56H CDC_TEXT4 EQU 57H CDC_TEXT5 EQU 58H CDC_TEXT6 EQU 59H CDC_TEXT7 EQU 5AH CDC_TEXT8 EQU 5BH CDC_CNT0 EQU 5CH CDC_CNT1 EQU 5DH CDC_BUF_TH1 EQU 5EH CDC_TX_CNT0 EQU 5FH OLD_TEXT0 EQU 0F0H OLD_TEXT1 EQU 0F1H OLD_TEXT2 EQU 0F2H OLD_TEXT3 EQU 0F3H OLD_TEXT4 EQU 0F4H SM_MAX1 EQU 060H SM_MAX2 EQU 061H SM_MAX3 EQU 062H SM_MAX4 EQU 063H SM_MAX5 EQU 064H SM_MAX6 EQU 065H FM_MEM1L EQU 066H FM_MEM1H EQU 067H FM_MEM2L EQU 068H FM_MEM2H EQU 069H FM_MEM3L EQU 06AH FM_MEM3H EQU 06BH FM_MEM4L EQU 06CH FM_MEM4H EQU 06DH FM_MEM5L EQU 06EH FM_MEM5H EQU 06FH FM_MEM6L EQU 070H FM_MEM6H EQU 071H AM_MEM1 EQU 072H AM_MEM1H EQU 073H AM_MEM2 EQU 074H AM_MEM2H EQU 075H AM_MEM3 EQU 076H AM_MEM3H EQU 077H AM_MEM4 EQU 078H AM_MEM4H EQU 079H AM_MEM5 EQU 07AH AM_MEM5H EQU 07BH AM_MEM6 EQU 07CH AM_MEM6H EQU 07DH CDC_T20_CNT EQU 07EH ;----- Memory Page1 Address Define -----; ; ; T1COUNT_P1 EQU 30H ; HSEC_P1 EQU 31H ; SEC_P1 EQU 32H ; MINUTE_P1 EQU 33H ; HDATE_P1 EQU 34H ; HOUR_P1 EQU 35H ; DATE_P1 EQU 36H ; MONTH_P1 EQU 37H ; YEAR0_P1 EQU 38H ; YEAR1_P1 EQU 39H ; ; ; ;---------------------------------------; ;----- LCD Transfer Data ----- LCDD_BLANK EQU 00000000B ;LCD Blank LCDD6_BLK EQU 00100000B LCDD0_DOLBY EQU 00000001B LCDD0_ST EQU 00000010B LCDD0_FM EQU 01101000B LCDD0_AM EQU 01101100B LCDD0_CD2 EQU 10110000B LCDD1_CD3 EQU 11011100B LCDD2_PRT EQU 10000000B LCDD4_COL EQU 00000001B LCDD4_DISC EQU 00000010B LCDD5_P EQU 00000001B LCDD6_TRACK EQU 00001000B LCDD7_CH EQU 00001000B LCDD8_PY EQU 00000001B ;Display Play LCD LCDD8_BPY EQU 00000010B LCDD8_ROCK EQU 00000100B LCDD8_JAZZ EQU 00001000B LCDD8_MTL EQU 00010000B LCDD8_CLAS EQU 00100000B LCDD6_1END EQU 00100000B LCDD13_END EQU 10000000B LCDND0_DO EQU 11111110B LCDND0_ST EQU 11111101B LCDND0_FM EQU 10010111B LCDND0_AM EQU 10010011B LCDND0_CD2 EQU 01001111B LCDND1_CD3 EQU 00100011B LCDND2_PRT EQU 01111111B LCDND4_COL EQU 11111110B LCDND4_DISC EQU 11111101B LCDND5_P EQU 11111110B LCDND6_TRACK EQU 00110111B LCDND7_CH EQU 11110111B LCDND8_PY EQU 11111110B ;Display Play LCD LCDND8_BPY EQU 11111101B LCDND8_ROCK EQU 11111011B LCDND8_JAZZ EQU 11110111B LCDND8_MTL EQU 11101111B LCDND8_CLAS EQU 11011111B LCDND6_1END EQU 00111111B LCDND13_END EQU 11111111B LCDD2_4L0 EQU 01110111B ;"0" 77H LCDD2_4L1 EQU 01100000B ;"1" 60H LCDD2_4L2 EQU 01011110B ;"2" 5EH LCDD2_4L3 EQU 01111010B ;"3" 7AH LCDD2_4L4 EQU 01101001B ;"4" 69H LCDD2_4L5 EQU 00111011B ;"5" 3BH LCDD2_4L6 EQU 00111111B ;"6" 3FH LCDD2_4L7 EQU 01100010B ;"7" 62H LCDD2_4L8 EQU 01111111B ;"8" 7FH LCDD2_4L9 EQU 01111011B ;"9" 7BH LCDD3_5L0 EQU 11010111B ;"0" D7H LCDD3_5L1 EQU 11000000B ;"1" C0H LCDD3_5L2 EQU 10011110B ;"2" 9EH LCDD3_5L3 EQU 11011010B ;"3" DAH LCDD3_5L4 EQU 11001001B ;"4" C9H LCDD3_5L5 EQU 01011011B ;"5" 5BH LCDD3_5L6 EQU 01011111B ;"6" 5FH LCDD3_5L7 EQU 11000011B ;"7" C3H LCDD3_5L8 EQU 11011111B ;"8" DFH LCDD3_5L9 EQU 11011011B ;"9" DBH LCDD4_6A0 EQU 11110100B ;A"0" F4H LCDD5_6B0 EQU 00000010B ;B"0" 02H LCDD4_6A1 EQU 10100000B ;A"1" A0H LCDD5_6B1 EQU 00000000B ;B"1" 00H LCDD4_6A2 EQU 10011100B ;A"2" 9CH LCDD5_6B2 EQU 00000010B ;B"2" 02H LCDD4_6A3 EQU 10111000B ;A"3" B8H LCDD5_6B3 EQU 00000010B ;B"3" 02H LCDD4_6A4 EQU 11101000B ;A"4" E8H LCDD5_6B4 EQU 00000000B ;B"4" 00H LCDD4_6A5 EQU 01111000B ;A"5" 78H LCDD5_6B5 EQU 00000010B ;B"5" 02H LCDD4_6A6 EQU 01111100B ;A"6" 7CH LCDD5_6B6 EQU 00000010B ;B"6" 02H LCDD4_6A7 EQU 11100000B ;A"7" E0H LCDD5_6B7 EQU 00000010B ;B"7" 02H LCDD4_6A8 EQU 11111100B ;A"8" FCH LCDD5_6B8 EQU 00000010B ;B"8" 02H LCDD4_6A9 EQU 11111000B ;A"9" F8H LCDD5_6B9 EQU 00000010B ;B"9" 02H LCDD5_7A0 EQU 11010100B ;A"0" D4H LCDD6_7B0 EQU 00100011B ;B"0" 23H LCDD5_7A1 EQU 11000000B ;A"1" C0H LCDD6_7B1 EQU 00100000B ;B"1" 20H LCDD5_7A2 EQU 10011100B ;A"2" 9CH LCDD6_7B2 EQU 00100010B ;B"2" 22H LCDD5_7A3 EQU 11011000B ;A"3" D8H LCDD6_7B3 EQU 00100010B ;B"3" 22H LCDD5_7A4 EQU 11001000B ;A"4" C8H LCDD6_7B4 EQU 00100001B ;B"4" 21H LCDD5_7A5 EQU 01011000B ;A"5" 58H LCDD6_7B5 EQU 00100011B ;B"5" 23H LCDD5_7A6 EQU 01011100B ;A"6" 5CH LCDD6_7B6 EQU 00100011B ;B"6" 23H LCDD5_7A7 EQU 11000000B ;A"7" C0H LCDD6_7B7 EQU 00100011B ;B"7" 23H LCDD5_7A8 EQU 11011100B ;A"8" DCH LCDD6_7B8 EQU 00100011B ;B"8" 23H LCDD5_7A9 EQU 11011000B ;A"9" D8H LCDD6_7B9 EQU 00100011B ;B"9" 23H LCDD7_8B0 EQU 11100111B ;B"0" E7H LCDD7_8B1 EQU 00000101B ;B"1" 05H LCDD7_8B2 EQU 10101110B ;B"2" AEH LCDD7_8B3 EQU 11101010B ;B"3" EAH LCDD7_8B4 EQU 11001001B ;B"4" C9H LCDD7_8B5 EQU 01101011B ;B"5" 6BH LCDD7_8B6 EQU 01101111B ;B"6" 6FH LCDD7_8B7 EQU 11000010B ;B"7" C2H LCDD7_8B8 EQU 11101111B ;B"8" EFH LCDD7_8B9 EQU 11101011B ;B"9" EBH ;----- LCD ROM Data Address ----- LCD_DA5 EQU 0100H ; MOVC A,@A+DPTR LCD_DA6L EQU 0110H LCD_DA6H EQU 0120H LCD_DA7L EQU 0130H LCD_DA7H EQU 0140H LCD_DA8L EQU 0150H LCD_DA8H EQU 0160H ;----- KEY Data Define ----- K_POWER EQU 01H K_AM EQU 02H K_FM EQU 03H K_BSM EQU 04H K_M_UP EQU 05H K_M1 EQU 06H K_M4 EQU 07H K_TAPE EQU 08H K_TAPE_EJ EQU 09H K_M_DN EQU 10H K_M2 EQU 11H K_M5 EQU 12H K_CDC EQU 13H K_EQ EQU 14H K_SK_UP EQU 15H K_M3 EQU 16H K_M6 EQU 17H K_B EQU 18H K_C EQU 19H K_SK_DN EQU 20H KEY_COUNT_VAL EQU 02H KEY_LONG_VAL EQU 0FFH ;Long key value MUTE_COUNT_VAL EQU 03CH ;MUTE TIME : 500ms LCD_AD_VAL EQU 0A2H DELAY150M_VAL EQU 016H ;Delay 150ms ;----- PLL Define Value ----- PLLRF9K EQU 01111110B ;PLLMOD : 9KHz,AM PLLRF9KM EQU 01111111B ;PLLMOD : 9KHz,AM PLLRF1KM EQU 00011111B ;PLLMOD : 1KHz,AM PLLRF50KM EQU 11011111B ;PLLMOD : 50KHz,AM PLLRF25K EQU 11001101B ;PLLMOD : 25KHz,FM PLLRF50K EQU 11011101B ;PLLMOD : 50KHz,FM ; PLLRF50KA EQU 11011111B ;PLLMOD : 50KHz,FM IFCST EQU 01000000B ;Counting Start (ORL Instruction) IFCCLR EQU 00100000B ;Counter is reset (ORL Instruction) IFC_FM EQU 00000010B ;IFCMOD : Gate 8ms, FMIFC IFC_AM EQU 00000111B ;IFCMOD : Gate 32ms, AMIFC ; IFC_FM EQU 00000110B ;IFCMOD : Gate 32ms, FMIFC ; IFC_AM EQU 00000111B ;IFCMOD : Gate 32ms, AMIFC FM_MIN_H EQU 03H ;FM MIN 87.5MHz High FM_MIN_L EQU 0D6H ;FM MIN 87.5MHz Low FM_MAX_H EQU 04H ;FM MAX 108MHz High FM_MAX_L EQU 0A3H ;FM MAX 108MHz Low AM_MIN_H EQU 06H ;AM MIN 531KHz High AM_MIN_L EQU 0D0H ;6DH ;AM MIN 531KHz Low AM_MAX_H EQU 0EH ;AM MAX 1602KHz High AM_MAX_L EQU 040H ;E4H ;AM MAX 1602KHz Low ;--- Gate Time 8ms Data --- ; IF_FM_MAX2 EQU 0F0H ;F1H ;Set IFCDR2 IF(10.7MHz + 25KHz) ; IF_FM_MAX1 EQU 054H ;50H ;51H ;Set IFCDR1 IF(10.7MHz + 25KHz) ; IF_FM_MAX0 EQU 050H ;A0H ;C0H ;Set IFCDR0 IF(10.7MHz + 25KHz) ; IF_FM_MIN2 EQU 0F0H ;F1H ;Set IFCDR2 IF(10.7MHz - 25KHz) ; IF_FM_MIN1 EQU 053H ;4DH ;4FH ;Set IFCDR1 IF(10.7MHz - 25KHz) ; IF_FM_MIN0 EQU 030H ;30H ;00H ;Set IFCDR0 IF(10.7MHz - 25KHz) ; ; IF_AM_MAX2 EQU 0F0H ;Set IFCDR2 IF(450KHz + 5KHz) ; IF_AM_MAX1 EQU 00EH ;38H ;Set IFCDR1 IF(450KHz + 5KHz) ; IF_AM_MAX0 EQU 040H ;C0H ;Set IFCDR0 IF(450KHz + 5KHz) ; IF_AM_MIN2 EQU 0F0H ;Set IFCDR2 IF(450KHz - 5KHz) ; IF_AM_MIN1 EQU 00DH ;38H ;Set IFCDR1 IF(450KHz - 5KHz) ; IF_AM_MIN0 EQU 0E0H ;20H ;Set IFCDR0 IF(450KHz - 5KHz) ;--- Gate Time 8ms Data --- ;--- Gate Time 32ms Data --- IF_FM_MAX2 EQU 0F1H ;Set IFCDR2 IF(10.7MHz + 25KHz) IF_FM_MAX1 EQU 050H ;51H ;Set IFCDR1 IF(10.7MHz + 25KHz) IF_FM_MAX0 EQU 0E0H ;C0H ;Set IFCDR0 IF(10.7MHz + 25KHz) IF_FM_MIN2 EQU 0F1H ;Set IFCDR2 IF(10.7MHz - 25KHz) IF_FM_MIN1 EQU 04DH ;4FH ;Set IFCDR1 IF(10.7MHz - 25KHz) IF_FM_MIN0 EQU 080H ;00H ;Set IFCDR0 IF(10.7MHz - 25KHz) IF_AM_MAX2 EQU 0F0H ;Set IFCDR2 IF(450KHz + 5KHz) IF_AM_MAX1 EQU 038H ;Set IFCDR1 IF(450KHz + 5KHz) IF_AM_MAX0 EQU 0C0H ;Set IFCDR0 IF(450KHz + 5KHz) IF_AM_MIN2 EQU 0F0H ;Set IFCDR2 IF(450KHz - 5KHz) IF_AM_MIN1 EQU 038H ;Set IFCDR1 IF(450KHz - 5KHz) IF_AM_MIN0 EQU 020H ;Set IFCDR0 IF(450KHz - 5KHz) ;--- Gate time 32ms Data --- STEP_FM_VAL EQU 0CDH STEP_AM_VAL EQU 77H ;----- VOLUME IC Define ----- VOL_AD EQU 82H VOL_BUF0 DATA 49H VOL_BUF1 DATA 4AH VOL_DATA2 EQU 00000011B VOL_VOLCON EQU 01011111B VOL_VOLCDC EQU 01001011B VOL_VOLRDO EQU 01011111B VOL_VOLTAP EQU 01000111B VOL_RADIO EQU 10000001B ;10000001B VOL_TAPE EQU 00100001B VOL_CDC EQU 01000001B ;----- CD CHANGER DATA ----- CDC_D0_MIN EQU 01H ;01H ;0.8ms -> 01E0H CDC_D0_MAX EQU 04H ;03H ;1.2ms -> 02CFH CDC_D1_MIN EQU 03H ;04H ;2.2ms -> 0528H CDC_D1_MAX EQU 09H ;07H ;2.8ms -> 0690H CDC_CNT_VAL EQU 02H TERM20M EQU 0F0H ;02EH ;----- TIME COUNT DATA ----- TIME_VAL100M EQU 00EH TIME_VAL150M EQU 014H TIME_VAL300M EQU 027H TIME_VAL400M EQU 033H TIME_VAL600M EQU 04CH TIME_VAL1270M EQU 0A0H TIME_VAL1800M EQU 0E2H TIME_VAL2040M EQU 0FFH ;----- TAPE MODE VALUE ----- TM_EJECT EQU 01H TM_STOP EQU 02H TM_PLAY EQU 03H TM_FFF EQU 04H ;FF or REW TM_RFF EQU 05H ;FF or REW TM_FAPS EQU 06H ;APS FF or APS REW TM_RAPS EQU 07H ;APS FF or APS REW ;----- REMOCON Value ----- REMO_FILTER EQU 01H ;0.5ms -> 012CH REMO_START EQU 018H ;10ms -> 01770H ;12.3ms -> 01CD4H REMO_DLOW EQU 03H ;1.8ms -> 0438H REMO_DHIGH EQU 0AH ;4ms -> 0960H REMO_MAX EQU 24H ;15Ms -> 2328H REMO_REPEAT EQU 18H ;10ms -> 1770H REMO_NT_MIN EQU 46H ;30ms -> 4650H REMO_NT_MAX EQU 75H ;50ms -> 7530H REMO_FLAME EQU 0D2H ;90ms -> 0D2F0H REMO_FLM_MAX EQU 019H ;120ms -> 11940H ;----- Remocon Data -------- REMO_D1 EQU 028H ;Power REMO_D2 EQU 0A8H ;AM/FM REMO_D3 EQU 00H ;Eject REMO_D4 EQU 0A2H ;"-" REMO_D5 EQU 022H ;"+" REMO_D6 EQU 0F5H ;Tape REMO_D7 EQU 0D0H ;Seek - REMO_D8 EQU 071H ;Seek + REMO_D9 EQU 068H ;CDC REMO_D10 EQU 0C1H ; REMO_D11 EQU 009H REMO_D12 EQU 010H REMO_D13 EQU 040H REMO_D14 EQU 080H REMO_D15 EQU 0C0H REMO_D16 EQU 090H REMO_D17 EQU 012H REMO_PD1 EQU 038H REMO_PD2 EQU 000H REMO_PD3 EQU 048H REMO_PD4 EQU 098H REMO_PD5 EQU 0A8H REMO_PD6 EQU 080H REMO_PD7 EQU 0F8H REMO_PD8 EQU 078H REMO_PD9 EQU 040H REMO_PD10 EQU 0A0H REMO_PD11 EQU 090H REMO_PD12 EQU 020H REMO_PD13 EQU 060H REMO_PD14 EQU 050H REMO_PD15 EQU 010H REMO_PD16 EQU 028H REMO_PD17 EQU 068H REMO_PD18 EQU 0B8H ;Mute REMO_PD19 EQU 058H ;Volume up REMO_PD20 EQU 018H ;Volume down ;*********** DISPLAY MEMORY BUFFER *********** MOV RDPG,#6 MOV WRPG,#6 LCD_BUF12 EQU 40H LCD_BUF3 EQU 41H LCD_BUF4 EQU 42H LCD_BUF5 EQU 43H LCD_BUF6 EQU 44H LCD_BUF7 EQU 45H MOV RDPG,#0 MOV WRPG,#0 ;============================================= ORG 00H LJMP START ; ORG 03H ;INTEX0 LJMP EXT0_INT ;RETI ; ORG 0BH ;INTT0 LJMP TIMER0 ; ORG 13H ;INTEX1 RETI ; ORG 1BH ;INTT1 LJMP TIMER1_INT ;RETI ; ORG 23H ;INTS0(RI&TI) RETI ; ORG 2BH ;INTT2(TF2&EXF2) RETI ;LJMP TIMER2 ; ORG 33H ;INTWDT RETI ; ORG 3BH ;INTIFC SETB IF_FG ;Flag IF count-end RETI ; ORG 43H ;INTAD RETI ; ORG 4BH ;INTEX2 LJMP REMOCON_INT RETI ; ORG 53H ;INTEX3 RETI ; ORG 5BH ;INTEX4 RETI ; ORG 63H ;INTS1 RETI ; ORG 6BH ;INTS2 RETI ; ORG 73H ;INTEX5 LJMP INTEX5 RETI ; ORG 7BH ;INTEX6 RETI ; ORG 83H ;INTT3 LJMP TIMER3 ;RETI ; ORG 8BH ;INTT4 LJMP TIMER4 RETI ; ; ============================ ; MUTE INITIAL ROUTINE ; ============================ MUTE: MOV MUTE500M,#MUTE_COUNT_VAL ; LOAD 500 msec SETB MUTEFG CLR P_MUTE ; ON MUTE PORT RET ;============================================== ; INITIAL ROUTINE ;============================================== ;----- CHANNEL DATA Table----- ORG 100H LCD_4: DB 77H,60H,5EH,7AH,69H,3BH,3FH,62H,7FH,7BH ;LCD 4 DATA ORG 110H LCD_5: DB 0D7H,0C0H,9EH,0DAH,0C9H,05BH,05FH,0C3H,0DFH,0DBH ;LCD 5 DATA ORG 120H LCD_6L: DB 0F4H,0A0H,9CH,0B8H,0E8H,78H,7CH,0E0H,0FCH,0F8H ;LCD 6 DATA ORG 130H LCD_6H: DB 02H,00H,02H,02H,00H,02H,02H,02H,02H,02H ;LCD 6 DATA ORG 140H LCD_7L: DB 0D4H,0C0H,9CH,0D8H,0C8H,58H,5CH,0C0H,0DCH,0D8H ;LCD 7 DATA ORG 150H LCD_7H: DB 23H,20H,22H,22H,21H,23H,23H,23H,23H,23H ;LCD 7 DATA ORG 160H LCD_8: DB 0E7H,05H,0AEH,0EAH,0C9H,6BH,6FH,0C2H,0EFH,0EBH ;LCD 8 DATA ;----- Port Initial ----- ORG 200H START: MOV SFRPG,#SFRPG0 ;SFR page 0 ; MOV SCMODE,#00000000B ;7.2MHz,Fxx ; MOV ADCCON,#00011001B ;START=1,ADC port ON=1,Select ch=1 MOV ADCCON,#01011000B MOV P0MOD,#60H ;00H ;Output mode port 0 ;00H MOV P1MOD,#06H ;00H ;Output mode port 1 ;00H MOV P2MOD,#0FFH ;Input mode port 2 ;0FFH MOV P3MOD,#00H ;Output/Input mode port 3 ;00H MOV P4MOD,#0 ;00110111B ;Output mode port 4 ; MOV P5MOD,#0 ;00100010B ;Output mode port 5 ; MOV P6MOD,#0 ;0FFH ;Input mode port 6 ;0FFH MOV P7MOD,#80H ;11000001B ;Input mode port 7 ; MOV P0CON,#0FFH ;00H ;Enable Pull-up Port 0 MOV P1CON,#0FFH ;11111000B ;Enable Pull-up Port 1 MOV P2CON,#00H ;Enable Pull-up Port 2 MOV P3CON,#0 ;FFH ;Enable Pull-up Port 3 ;Disable 3.0,3.1 MOV P4CON,#0 ;00010101B ;Enable Pull-up Port 4 MOV P5CON,#0 ;00100010B ; MOV P6CON,#0 ;00000000B ;Enable/Disable Pull-up Port 6 MOV P7CON,#0 ;00H ;Disable Pull-up Port 7 MOV SFRPG,#SFRPG1 ;SFR page 1 MOV P_0,#00H ;Initial P_0 MOV P_1,#00H MOV P_2,#00H MOV P_3,#00H MOV P_4,#00H MOV P_5,#0C0H MOV P_6,#0FFH MOV P_7,#00H CLR P_MUTE ;AUDIO OFF ;----- RAM CLEAR ----- MOV R0,#7FH MOV @R0,#00H RAMCLR: DJNZ R0,RAMCLR MOV KEY_COUNT,#KEY_COUNT_VAL MOV MUTE500M,#MUTE_COUNT_VAL MOV KEY_LONG_COUNT,#KEY_LONG_VAL ;----- FLAG SETUP ---- CLR CDC_FG CLR TAPE_FG CLR TAPEFR_FG CLR CLK_FG CLR KEYFG ;Clear key flag CLR KEY_ON_FG SETB FM_AM_FG CLR KEY_ERR_FG ;Clear key error flag CLR KEY_LONG_FG MOV TAPE_MODE,#TM_STOP ;----- SFR Initial ----- MOV SFRPG,#SFRPG0 MOV SP,#80H MOV TH0,#0F0H MOV TL0,#5FH ; 4 msec MOV TH1,#00H MOV TL1,#00H ; 4 msec MOV TL3,#00H MOV TH3,#00H MOV TL4,#00H MOV TH4,#00H MOV T01MOD,#00010001B MOV T01CON,#00000001B MOV T34MOD,#00010001B MOV T34CON,#01010000B MOV IE,#10001011B ; ENABLE EXT0,T1 MOV D_IE2,#00001001B ;Enable External Interrupt 5 MOV D_IE3,#00010011B ;Enable IFC, Timer4 and Timer3 MOV IP,#00000000B MOV D_IP2,#00000000B MOV D_IP3,#00000000B MOV D_IT2,#01000010B ;Rising external interrupt 5 mode CLR IE.0H ;Disable CDC CLR KEYFG SETB TR1 ;Off Timer 1 (Disable long key) SETB TR0 MOV LCR,#01111010B MOV SGE0,#0FFH MOV SGE1,#07FH MOV SFRPG,#SFRPG1 ;----- PLL Initial ----- CLR P_CDCON SETB P_RADIOON CLR P_AMON SETB P_FMON CLR P_LWON SETB LODX_FG CLR P_LODX MOV PLLFM_BUF0,#FM_MIN_L ;Set PLLDRL 87.5MHz Low MOV PLLDRL,PLLFM_BUF0 MOV PLLFM_BUF1,#FM_MIN_H ;Set PLLDRH 87.5MHz High MOV PLLDRH,PLLFM_BUF1 MOV PLLMOD,#PLLRF50K ; KWONHK MOV IFCMOD,#IFC_FM ;Set IFCMOD 32ms & FM MOV A,IFCMOD ;Clrea only Unlock bit MOV PLLAM_BUF0,#AM_MIN_L ;Set AM Low MOV PLLAM_BUF1,#AM_MIN_H ;Set AM High MOV STEP_FM,#STEP_FM_VAL MOV STEP_AM,#STEP_AM_VAL MOV R0,#FM_MEM1L MOV @R0,#0D6H MOV R0,#FM_MEM1H MOV @R0,#03H MOV R0,#FM_MEM2L MOV @R0,#0F2H MOV R0,#FM_MEM2H MOV @R0,#03H MOV R0,#FM_MEM3L MOV @R0,#05EH MOV R0,#FM_MEM3H MOV @R0,#04H MOV R0,#FM_MEM4L MOV @R0,#0E2H MOV R0,#FM_MEM4H MOV @R0,#03H MOV R0,#FM_MEM5L MOV @R0,#05CH MOV R0,#FM_MEM5H MOV @R0,#04H MOV R0,#FM_MEM6L MOV @R0,#0A3H MOV R0,#FM_MEM6H MOV @R0,#04H MOV AM_MEM1,#0D0H MOV AM_MEM1H,#06H MOV AM_MEM2,#060H MOV AM_MEM2H,#08H MOV AM_MEM3,#0E0H MOV AM_MEM3H,#09H MOV AM_MEM4,#0A0H MOV AM_MEM4H,#0CH MOV AM_MEM5,#040H MOV AM_MEM5H,#0EH MOV AM_MEM6,#AM_MAX_L MOV AM_MEM6H,#AM_MAX_H LCALL FM_SET CLR P_IFREQ ;----- LCD Initial ----- CLR P_LCDDI CLR P_LCDCL CLR P_LCDCE MOV LCD_BUF0,#LCDD0_FM ;FM MOV LCD_BUF1,#LCDD_BLANK ; MOV LCD_BUF2,#LCDD_BLANK MOV LCD_BUF3,#LCDD3