;******************************************************** ;使用1602_LCD AT89S52 18B20实现的温度报警,时间可调显示, ;一天可设三个闹钟,八首音乐,一个秒表, ;全汇编实现,程序差不多写满8K BYTES 了 ;硬件电路比较简单,主要靠程序上的实现 ;完成时间____2006\09\27\sml ;********系统初始化*********************** T2CON EQU 0C8H CP_RL2 BIT 0C8H.0 C_T2 BIT 0C8H.1 TR2 BIT 0C8H.2 EXEN2 BIT 0C8H.3 TCLK BIT 0C8H.4 RCLK BIT 0C8H.5 EXF2 BIT 0C8H.6 TF2 BIT 0C8H.7 RCAP2H EQU 0CBH RCAP2L EQU 0CAH TH2 EQU 0CDH TL2 EQU 0CCH ET2 BIT IE.5 ORG 00H JMP INPORT ORG 0BH LJMP TM0 ORG 001BH LJMP INTT0 ORG 002BH LJMP TIME_T2 ORG 30H INPORT: TMP_H EQU 29H ;温度高字节 TMP_L EQU 28H TEMPHEAD EQU 6BH DI_DA DATA 21H SEC DATA 22H MIN DATA 23H HOUR DATA 24H RS EQU P3.5;确定具体硬件的连接方式 RW EQU P3.4 ;确定具体硬件的连接方式 E EQU P3.3 ;确定具体硬件的连接方式 ;秒表暂RAM单元定义 WATCH_H EQU 4DH WATCH_M EQU 4EH WATCH_S EQU 4FH WATCH_MS EQU 50H WATCH_H_H EQU 51H WATCH_H_L EQU 52H WATCH_M_H EQU 53H WATCH_M_L EQU 54H WATCH_S_H EQU 55H WATCH_S_L EQU 56H WATCH_MS_H EQU 57H WATCH_MS_L EQU 58H ALARM1_H EQU 59H ALARM1_M EQU 5AH ALARM2_H EQU 5BH ALARM2_M EQU 5CH ALARM3_H EQU 5DH ALARM3_M EQU 5EH ALARM1_H_H EQU 5FH ALARM1_H_L EQU 60H ALARM2_H_H EQU 61H ALARM2_H_L EQU 62H ALARM3_H_H EQU 63H ALARM3_H_L EQU 64H ALARM1_M_H EQU 65H ALARM1_M_L EQU 66H ALARM2_M_H EQU 67H ALARM2_M_L EQU 68H ALARM3_M_H EQU 69H ALARM3_M_L EQU 6AH STOPWATCH_FLAG1 EQU 04H CLR 04H ALARM1_ON_OR_OFF EQU 07H ALARM2_ON_OR_OFF EQU 06H ALARM3_ON_OR_OFF EQU 05H ;TEMPERATURE_ALARM_BEEP_FLAG EQU 04H;在温度CONTROL时,要考虑到这条件进去 KEY_SET EQU P0.3 KEY_UP EQU P0.4 KEY_DOWN EQU P0.5 DS18B20_FLAG EQU PSW.0;开始时要查18B20存在否 SET_FLAG EQU 01H FLASH_FLAG EQU 02H K_ON EQU 03H;是个位标志哦 SETB K_ON SETB FLASH_FLAG SETB SET_FLAG CLR 07H CLR 06H CLR 05H MOV A,#0 MOV 25H,A MOV 26H,A MOV 32H,A MOV 33H,A MOV R4,#14; MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH SETB ET0 SETB TR0 SETB ET1 MOV DI_DA,#00H CLR C_T2 ; CLR CP_RL2;允许重载 ;T2MOD的TO2是T2输出允许 MOV RCAP2H,#0D9H ;预先值高 10ms 12MHZ MOV RCAP2L,#0B8H MOV TH2,#0D9H MOV TL2,#0B8H SETB ET2 SETB EA LCD_INIT://lcd的初化配置 ;15MS MOV R6,#30 LCALL DELAY_BY_R6 ;15ms MOV P1,#38H ;写38h LCALL WRITE_NOT_CHECK_BUSY MOV R6,#10 LCALL DELAY_BY_R6 ;5ms MOV P1,#38H LCALL WRITE_NOT_CHECK_BUSY MOV R6,#10 LCALL DELAY_BY_R6 ;5ms ;-----设转初始值 SETB E MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 MOV P1,#00111000B ;8位2行5x7点阵 LCALL ENABLE ;调用写入命令子程序 MOV P1,#00001100B ;显示器开、光标开、光标允许闪烁 LCALL ENABLE ;调用写入命令子程序 MOV P1,#00000110B;文字不动,光标自动右移 LCALL ENABLE ;调用写入命令子程序 STORE_DEFINE_DATA: ;把自定义字符存入CGRAM MOV P1,#40H ;CGRAM起始地址 LCALL ENABLE MOV R2,#8 MOV DPTR,#DEFINE_DATA MOV R3,#0 NEXTP: MOV A,R3 MOVC A,@A+DPTR MOV P1,A LCALL WRITE_DATA_TO_LCD INC R3 DJNZ R2,NEXTP ;****************主程序******************* START: LCALL RESET JNB 70h,MAIN1 MOV P1,#0C0H ;写入显示起始地址(第二行第一个位置) LCALL ENABLE ;调用写入命令子程序(写入字符串前要查忙) DS18B20_NOT_READY: LCALL DISPLAY_18B20_ERROR LOOP1: LCALL RESET JNB 70h,MAIN1 JMP LOOP1 ;如果栓测不到18b20程序下面不执行 MAIN1: MOV R1,#4 ;清单元数据 MOV R0,#21H CLEAR:MOV A,#0 MOV @R0,A INC R0 DJNZ R1,CLEAR MOV R1,#30 MOV R0,#4DH CLEAR1:MOV A,#0 MOV @R0,A INC R0 DJNZ R1,CLEAR1 MOV R1,#9 MOV R0,#6BH CLEAR2:MOV A,#0 MOV @R0,A INC R0 DJNZ R1,CLEAR2 MOV R1,#6 MOV R0,#40H CLEAR3:MOV A,#0 MOV @R0,A INC R0 DJNZ R1,CLEAR3 BACKK: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAY_WATING ;等待第一次结果. LCALL SKIP_ROM LCALL TEMP_CONV LCALL DELAY_600MS MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 MAIN : LCALL RESET LCALL SKIP_ROM LCALL RELCALL_EPROM ;调入温度限值 MAIN_MAIN: LCALL READ_TEMP ;读18b20的内部温度 JB 70h,DS18B20_NOT_READY ;中途失败! LCALL DATA_CONV ; 数据转换,同时有温度比较和报警动作标志K_ON=1则对应开机器 LCALL DISPLAY_18B20_TEMP LCALL DISPLAY_TIME LCALL CONTROL LCALL ALARM_COMPARE JNB KEY_SET,S1;KEY_SET是设定上下限的标志按钮P0.3。。。 LCALL TIME_ADJ LCALL MUSIC JMP MAIN_MAIN S1:LCALL DELAY_2MS ;延时消抖 JB KEY_SET,MAIN JNB KEY_SET,$;等待按键放开 LCALL KEY ;有键输入 AJMP MAIN MUSIC:MOV A,#0F0H MOV P2,A MOV A,P2 CJNE A,#0F0H,KEYIN1 RET KEYIN1:MOV R3,#0F7H;令第四行为0 MOV R1,#00H SCAN: MOV A,R3 MOV P2,A MOV A,P2 MOV R4,A;读回的值暂放R4中 SETB C MOV R5,#04H;四列要扫描 K: RLC A JNC DONE INC R1 INC R1 DJNZ R5,K MOV A,R3 SETB C RRC A MOV R3,A JC SCAN RET DONE:MOV A,P2 XRL A,R4 JZ DONE MOV A,R1 MOV DPTR,#FUNCTION_TAB JMP @A+DPTR FUNCTION_TAB: AJMP FU0 AJMP FU1 AJMP FU2 AJMP FU3 AJMP FU4 AJMP FU5 AJMP FU6 AJMP FU7 AJMP FU8 AJMP FU9 AJMP FU10 AJMP FU11 AJMP FU12 AJMP FU13 AJMP FU14 AJMP FU15 FU0: RET FU1: RET FU2: RET FU3: RET FU4: RET FU5:;SETB P0.1 ;CLR TEMPERATURE_ALARM_BEEP_FLAG RET FU6: ;MOV P1,#00000001B ;清屏并光标复位 ;LCALL ENABLE;调用写入命令子程序 LCALL DISPLAY_ALARM_CLOCK_1;程序在后面加,只显示"ALARM_CLOCK_1" ALARM_K:JB ALARM1_ON_OR_OFF,DISPLAY__ON LCALL DISPLAY_ALARM_OFF LJMP ALARM_DATACON_DIS DISPLAY__ON:LCALL DISPLAY_ALARM_ON ;下面是转换 ALARM_DATACON_DIS: MOV A,ALARM1_H SWAP A ANL A,#0FH MOV ALARM1_H_H,A MOV A,ALARM1_H ANL A,#0FH MOV ALARM1_H_L,A MOV A,ALARM1_M SWAP A ANL A,#0FH MOV ALARM1_M_H,A MOV A,ALARM1_M ANL A,#0FH MOV ALARM1_M_L,A ;下面是显示闹钟值 MOV P1,#11000101B LCALL ENABLE MOV DPTR,#LED_DATA MOV R1,ALARM1_H_H //已经是压缩型BCD码了, MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM1_H_L //已经是压缩型BCD码了, MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0;从字串中的第一个开始显示 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM1_M_H //已经是压缩型BCD码了, MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM1_M_L //已经是压缩型BCD码了 MOV R0,#1 LCALL DISPLAY ;再下面就是判P0.30.40.5了 LOOPP: JB P0.4,PANP05;转判P0.5;;;;;;;;; LCALL DELAY2S JB P0.4,ADJ_ALARM_H ;如果一S之后为放开了,其实是在1S前就放开了的,则知道是调闹钟的小时值的 JNB P0.4,$;1S后还未放开,则等,1S后已经放开,则早就放开,所以进行不同操作 CPL ALARM1_ON_OR_OFF;如果一S后还为0则取反ALARM1_ON_OR_OFF标志,关掉闹钟 LJMP ALARM_K ADJ_ALARM_H:MOV A,ALARM1_H ADD A,#1 DA A MOV ALARM1_H,A CJNE A,#24H,ALARM_NEXT MOV A,#0 MOV ALARM1_H,A ALARM_NEXT:LJMP ALARM_DATACON_DIS;跳到先转换数据,再显示 PANP05:JB P0.5,PAN03; 如果此时P0.5也为1,则转判P0.3 LCALL DELAY2S JNB P0.5,$;等放开 MOV A,ALARM1_M ADD A,#1 DA A MOV ALARM1_M,A CJNE A,#60H,ALARM_NEXT MOV A,#0 MOV ALARM1_M,A LJMP ALARM_DATACON_DIS PAN03: JB P0.3,LOOPP LCALL DELAY2S JB P0.3,DISPLAY_ALARM2 ;如果一S之后为放开了,其实是在1S前就放开了的,则知道是设闹钟2 JNB P0.3,$; LJMP BACKK;如果长久按P0.3则跳出到主程序中去 ;下面是设置第二个闹钟 DISPLAY_ALARM2: LCALL DISPLAY_ALARM_CLOCK_2 ALARM_K1:JB ALARM2_ON_OR_OFF,DISPLAY__ON_2 LCALL DISPLAY_ALARM_OFF LJMP ALARM_DATACON_DIS_2 DISPLAY__ON_2:LCALL DISPLAY_ALARM_ON ALARM_DATACON_DIS_2: MOV A,ALARM2_H SWAP A ANL A,#0FH MOV ALARM2_H_H,A MOV A,ALARM2_H ANL A,#0FH MOV ALARM2_H_L,A MOV A,ALARM2_M SWAP A ANL A,#0FH MOV ALARM2_M_H,A MOV A,ALARM2_M ANL A,#0FH MOV ALARM2_M_L,A ;下面是显示闹钟值 MOV P1,#11000101B LCALL ENABLE MOV DPTR,#LED_DATA MOV R1,ALARM2_H_H //已经是压缩型BCD码了,, MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM2_H_L //已经是压缩型BCD码了,, MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0;从字串中的第一个开始显示 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM2_M_H //已经是压缩型BCD码了, MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM2_M_L //已经是压缩型BCD码了,, MOV R0,#1 LCALL DISPLAY ;顺序执行下面的 LOOPPP: JB P0.4,PANP05_2;转判P0.5;;;;;;;;;还没有写此句程序呢后面 LCALL DELAY2S JB P0.4,ADJ_ALARM_2_H ;如果一S之后为放开了,其实是在1S前就放开了的,则知道是调闹钟的小时值的 JNB P0.4,$;1S后还未放开,则等,1S后已经放开,则早就放开,所以进行不同操作 CPL ALARM2_ON_OR_OFF;如果一S后还为0则取反ALARM1_ON_OR_OFF标志,关掉闹钟 LJMP ALARM_K1 ADJ_ALARM_2_H: MOV A,ALARM2_H ADD A,#1 DA A MOV ALARM2_H,A CJNE A,#24H,ALARM_NEXT_2 MOV A,#0 MOV ALARM2_H,A ALARM_NEXT_2:LJMP ALARM_DATACON_DIS_2;跳到先转换数据,再显示 PANP05_2:JB P0.5,PAN03_2; 如果此时P0.5也为1,则转判P0.3 LCALL DELAY2S JNB P0.5,$;等放开 MOV A,ALARM2_M ADD A,#1 DA A MOV ALARM2_M,A CJNE A,#60H,ALARM_NEXT_2 MOV A,#0 MOV ALARM2_M,A LJMP ALARM_DATACON_DIS_2 PAN03_2: JB P0.3,LOOPPP LCALL DELAY2S JB P0.3,DISPLAY_ALARM3 ;如果一S之后为放开了,其实是在1S前就放开了的,则知道是设闹钟2 JNB P0.3,$; LJMP BACKK;如果长久按P0.3则跳出到主程序中去 ;下面是设置第三个闹钟 DISPLAY_ALARM3: LCALL DISPLAY_ALARM_CLOCK_3 ALARM_K2:JB ALARM3_ON_OR_OFF,DISPLAY__ON_3 LCALL DISPLAY_ALARM_OFF LJMP ALARM_DATACON_DIS_3 DISPLAY__ON_3:LCALL DISPLAY_ALARM_ON ALARM_DATACON_DIS_3: MOV A,ALARM3_H SWAP A ANL A,#0FH MOV ALARM3_H_H,A MOV A,ALARM3_H ANL A,#0FH MOV ALARM3_H_L,A MOV A,ALARM3_M SWAP A ANL A,#0FH MOV ALARM3_M_H,A MOV A,ALARM3_M ANL A,#0FH MOV ALARM3_M_L,A ;下面是显示闹钟值 MOV P1,#11000101B LCALL ENABLE MOV DPTR,#LED_DATA MOV R1,ALARM3_H_H //已经是压缩型BCD码了 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM3_H_L //已经是压缩型BCD码了,, MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0;从字串中的第一个开始显示 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM3_M_H //已经是压缩型BCD码了, MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,ALARM3_M_L //已经是压缩型BCD码了 MOV R0,#1 LCALL DISPLAY ;顺序执行下面的 LOOPPPP: JB P0.4,PANP05_3;转判P0.5;;;;;;;;;还没有写此句程序呢后面 LCALL DELAY2S JB P0.4,ADJ_ALARM_3_H ;如果一S之后为放开了,其实是在1S前就放开了的,则知道是调闹钟的小时值的 JNB P0.4,$;1S后还未放开,则等,1S后已经放开,则早就放开,所以进行不同操作 CPL ALARM3_ON_OR_OFF;如果一S后还为0则取反ALARM1_ON_OR_OFF标志,关掉闹钟 LJMP ALARM_K2 ADJ_ALARM_3_H: MOV A,ALARM3_H ADD A,#1 DA A MOV ALARM3_H,A CJNE A,#24H,ALARM_NEXT_3 MOV A,#0 MOV ALARM3_H,A ALARM_NEXT_3:LJMP ALARM_DATACON_DIS_3;跳到先转换数据,再显示 PANP05_3:JB P0.5,PAN03_3; 如果此时P0.5也为1,则转判P0.3 LCALL DELAY2S JNB P0.5,$;等放开 MOV A,ALARM3_M ADD A,#1 DA A MOV ALARM3_M,A CJNE A,#60H,ALARM_NEXT_3 MOV A,#0 MOV ALARM3_M,A LJMP ALARM_DATACON_DIS_3 PAN03_3: JB P0.3,LOOPPPP LCALL DELAY2S JB P0.3,TO_FU6 ;如果一S之后为放开了,其实是在1S前就放开了的,则知道是设闹钟2 JNB P0.3,$; LJMP BACKK;如果长久按P0.3则跳出到主程序中去 TO_FU6:LJMP FU6 ;下面是主程序要调用的比较当前时钟与闹钟值 ALARM_COMPARE: JNB ALARM1_ON_OR_OFF,ALARM2_COMPARE MOV A,ALARM1_H CJNE A,HOUR,ALARM2_COMPARE MOV A,ALARM1_M CJNE A,MIN,ALARM2_COMPARE ;CLR P0.1 ;SETB TEMPERATURE_ALARM_BEEP_FLAG;置位此标志,为1时在后面的CONTROL中SETB P0.1时要考虑此标志为1则不要SETB P0.1了 CLR ALARM1_ON_OR_OFF MOV A,#0 MOV ALARM1_H,A;响应闹钟后要清0 MOV ALARM1_M,A LCALL FU12 LCALL DELAY2S MOV A,#0F0H MOV P2,A ALARM2_COMPARE: JNB ALARM2_ON_OR_OFF,ALARM3_COMPARE MOV A,ALARM2_H CJNE A,HOUR,ALARM3_COMPARE MOV A,ALARM2_M CJNE A,MIN,ALARM3_COMPARE ;CLR P0.1 ;SETB TEMPERATURE_ALARM_BEEP_FLAG CLR ALARM2_ON_OR_OFF MOV A,#0 MOV ALARM2_H,A;响应闹钟后要清0 MOV ALARM2_M,A ;此句是后加的,还有下面 LCALL FU12 LCALL DELAY2S MOV A,#0F0H MOV P2,A ALARM3_COMPARE: JNB ALARM3_ON_OR_OFF,COMPARE_BACK MOV A,ALARM3_H CJNE A,HOUR,COMPARE_BACK MOV A,ALARM3_M CJNE A,MIN,COMPARE_BACK ;CLR P0.1 ;SETB TEMPERATURE_ALARM_BEEP_FLAG CLR ALARM3_ON_OR_OFF MOV A,#0 MOV ALARM3_H,A;响应闹钟后要清0 MOV ALARM3_M,A LCALL FU12 LCALL DELAY2S MOV A,#0F0H MOV P2,A COMPARE_BACK: RET FU7: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_STOPWATCH_000000;显示STOPWATCH及----00:00:00---- SETB STOPWATCH_FLAG1;注意在返回主程序前要清0此标志啊;此标志用于开始及暂停 LCALL STOPWATCH_CONTROL;调用判P0.345有无按下 RET;一般是不会自动返回的,只在STOPWATCH_CONTROL中用LJMP 跳回到主程序中继续其它时间温度 RET FU8:MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_8 LCALL DISPLAY_NAME MOV DPTR,#MUSIC_TAB8_ZHOUXIANGCHUN LCALL PLAYINGSONG RET FU9:MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_9 LCALL DISPLAY_NAME MOV DPTR,#MUSIC_TAB9_SHUIZAIWOSHANG LCALL PLAYINGSONG RET FU10: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_10 LCALL DISPLAY_NAME MOV DPTR, #MUSIC_TAB10_SHANGAITANG LCALL PLAYINGSONG RET FU11: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_11 LCALL DISPLAY_NAME MOV DPTR,#MUSIC_TAB11_GUDANBEI LCALL PLAYINGSONG RET FU12: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_12 LCALL DISPLAY_NAME MOV DPTR,#MUSIC_TAB12_TAOHUADUODUOKAI LCALL PLAYINGSONG RET FU13: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_13 LCALL DISPLAY_NAME MOV DPTR,#MUSIC_TAB13_DACHENXIAAI LCALL PLAYINGSONG RET FU14:MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_14 LCALL DISPLAY_NAME MOV DPTR,#MUSIC_TAB14_QIUFU LCALL PLAYINGSONG RET FU15: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAYINT_MUSIC MOV DPTR,#MUSIC_NAME_15 LCALL DISPLAY_NAME MOV DPTR,#MUSIC_TAB15_JUSTLOVEYOU LCALL PLAYINGSONG RET CONTROL: ;如果28H值在上限值与90度之关,则报警 JB K_ON,CONTROL1; K_ON的值在数据转换比较下上限温子程序设定 CLR P0.1;超上限温,,则报警,,,而 SETB P3.7;关显示器 ;只是在LCD上显示OFF或ON表示机器状态其实在哪可让温报警呢,,在比较的地方可以吧? AJMP CONTROL_END CONTROL1:;JB TEMPERATURE_ALARM_BEEP_FLAG,CONTROL2 SETB P0.1 CLR P3.7 ;CONTROL2: CLR P3.7 ;显示器开时是正常工作的 CONTROL_END: RET PLAYINGSONG: LOOP8:CLR A MOVC A,@A+DPTR MOV R1,A INC DPTR CLR A MOVC A,@A+DPTR MOV R0,A CLR A INC DPTR MOVC A,@A+DPTR MOV R2,A MOV A,R0 ORL A,R1 JZ STOP8 MOV A,R0 ANL A,R1 CJNE A,#0FFH,NEXT8 EXIT8: CLR TR1 MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 RET STOP8:CLR TR1 LCALL DELAY AJMP STOP18 NEXT8: MOV A,#0F0H MOV P2,A MOV A,P2 CJNE A,#0F0H,EXIT8 MOV TH1,R1 MOV TL1,R0 SETB TR1 LCALL DELAY STOP18:INC DPTR AJMP LOOP8 //**********下面是时间按键及调整程序**************** TIME_ADJ:JNB P0.4,TIME_HOUR JNB P0.5,TIME_MIN RET TIME_HOUR:LCALL DELAY2S JNB P0.4,$ MOV A,HOUR ADD A,#1 DA A CJNE A,#24H,TT1 MOV A,#0 TT1:MOV HOUR,A LCALL DATA_CONV1 LCALL DISPLAY_TIME JNB P0.4,TIME_HOUR AJMP TIME_ADJ TIME_MIN:LCALL DELAY2S JNB P0.5,$ MOV A,MIN ADD A,#1 DA A CJNE A,#60H,TT2 MOV A,#0 TT2: MOV MIN,A LCALL DATA_CONV1 LCALL DISPLAY_TIME JNB P0.5,TIME_MIN AJMP TIME_ADJ //***********/ ;***************键处理程序****************** KEY: SETB 01H;01H是高低温设定标志位 (01H)=1设高限否则设低限 KEY_IN: ;有键输入的程序 MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 JNB 01H,DSP_SET_L ;01如果是0,则显示L: DSP_SET_H: ;显示高温的限值 MOV P1,#10000000B LCALL DISPLAY_SETING_TEMP_H ;显示SETING_TEMP:H .. MOV DPTR,#LED_DATA MOV R1,42H ;码表初值 42H存的是限值哦 MOV R0,#1;字数 LCALL DISPLAY ;---------------显示温度限值低位 MOV DPTR,#LED_DATA MOV R1,41H ;码表初值 MOV R0,#1;字数 LCALL DISPLAY ;---------------显示温度限值低位 MOV DPTR,#LED_DATA MOV R1,40H ;码表初值 MOV R0,#1;字数 LCALL DISPLAY AJMP KEY_SELECT DSP_SET_L:;显示低温的限值 MOV P1,#10000000B LCALL DISPLAY_SETING_TEMP_L ;显示SETING_TEMP:L .. MOV DPTR,#LED_DATA MOV R1,45H ;码表初值 MOV R0,#1;字数 LCALL DISPLAY ;---------------显示温度限值低位 MOV DPTR,#LED_DATA MOV R1,44H ;码表初值 MOV R0,#1;字数 LCALL DISPLAY ;---------------显示温度限值低位 MOV DPTR,#LED_DATA MOV R1,43H ;码表初值 MOV R0,#1;字数 LCALL DISPLAY AJMP KEY_SELECT STOPWATCH_CONTROL:JB P0.3,W1;P0.3是控制秒表开始暂停的 JNB P0.3,$;等放开 JNB STOPWATCH_FLAG1,C1;标志为0则开始秒表 CPL STOPWATCH_FLAG1 SETB TR2 LJMP STOPWATCH_CONTROL W2:JB P0.5,STOPWATCH_CONTROL JNB P0.5,$ CLR TR2 CLR STOPWATCH_FLAG1;此句重要 LJMP BACKK;跳出之前要跳到有清屏的地方 C1:CLR TR2 CPL STOPWATCH_FLAG1 LJMP STOPWATCH_CONTROL W1:JB P0.4,W2;P0.4用于将各单元归0,P0.5 则用于跳回到主程序中但退出前要清屏哦 JNB P0.4,$ CLR TR2 MOV A,#0 MOV WATCH_H,A MOV WATCH_M,A MOV WATCH_S,A MOV WATCH_MS,A;清0后应该要调用显示一次吧,,让000000显示出来 试试启动TR2看(不行),否则紧接下写显示程序 ;下面还要调用数据转换哦 MOV A,WATCH_H SWAP A ;先存的是十位 ANL A,#0FH MOV WATCH_H_H,A MOV A,WATCH_H ANL A,#0FH MOV WATCH_H_L,A MOV A,WATCH_M SWAP A ANL A,#0FH MOV WATCH_M_H,A MOV A,WATCH_M ANL A,#0FH MOV WATCH_M_L,A MOV A,WATCH_S SWAP A ANL A,#0FH MOV WATCH_S_H,A MOV A,WATCH_S ANL A,#0FH MOV WATCH_S_L,A MOV A,WATCH_MS MOV B,#10 DIV AB MOV WATCH_MS_H,A MOV WATCH_MS_L,B ;下面是显示 MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 ;紧接着显示STOPWATCH在上行 MOV P1,#10000000B LCALL ENABLE MOV DPTR,#STOPWATCH MOV R1,#0 MOV R0,#16 LCALL DISPLAY MOV P1,#11000000B;先显示---- ---- 不能显示空格的,,否则之后显示数据时又要重新清屏,所以分开两次写吧 LCALL ENABLE MOV DPTR,#STRII_1 MOV R1,#0 MOV R0,#2 LCALL DISPLAY /***************/ MOV P1,#11000010B;再由第二行第四列开始显示STOPWATCH 的时,占两位后是:号 MOV DPTR,#LED_DATA;这方法可一位一位的显示 MOV R1,WATCH_H_H//已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_H_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_M_H //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_M_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_S_H //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_S_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_MS_H //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_MS_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV P1,#11001101B;先显示---- ---- 不能显示空格的,,否则之后显示数据时又要重新清屏,所以分开两次写吧 LCALL ENABLE MOV DPTR,#STRII_1 MOV R1,#0 MOV R0,#3 LCALL DISPLAY CLR TR2 LJMP STOPWATCH_CONTROL ;---------选择加 或 减 两个按键 KEY_SELECT: JNB KEY_SET,K_SET;第二次按下P0.3则等它放开后使01H取反,,,表示对低限设置 JNB KEY_UP,K_UP JNB KEY_DOWN,K_DOWN AJMP KEY_SELECT DELAY:MOV R3,#2 D1:MOV R4,#125 D2:MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 DJNZ R2,DELAY RET K_SET: LCALL DELAY_2MS LCALL delay_2ms LCALL delay_2ms JB KEY_SET,KEY_SELECT MOV R5,#250 KSET_LOOP: JB KEY_SET,KEY_CPL LCALL DELAY_2MS LCALL DELAY_2MS DJNZ R5,KSET_LOOP AJMP EXT_KEY K_UP: LCALL DELAY_2MS LCALL delay_2ms JB KEY_UP,KEY_SELECT JNB 01H,K_UP_LOW K_UP_HIGH: JNB KEY_UP,$ MOV A,2AH ADD A,#1 MOV 2AH,A JMP K_UP_DOWN_END K_UP_LOW: JNB KEY_UP,$ MOV A,2BH ADD A,#1 MOV 2BH,A JMP K_UP_DOWN_END ;********************* K_DOWN: LCALL DELAY_2MS JB KEY_DOWN,KEY_SELECT JNB 01H,K_DOWN_LOW K_DOWN_HIGH: JNB KEY_DOWN,$ MOV A,2AH DEC A MOV 2AH,A JMP K_UP_DOWN_END K_DOWN_LOW: JNB KEY_DOWN,$ MOV A,2BH DEC A MOV 2BH,A K_UP_DOWN_END: MOV A,2AH MOV B,#10 DIV AB MOV 40H,B ;高温限值个位 MOV B,#10 DIV AB MOV 41H,B;十位 MOV 42H,A;百位 ;---------------------------- MOV A,2BH MOV B,#10 DIV AB MOV 43H,B ;低温限值位个位 MOV B,#10 DIV AB MOV 44H,B ;十位 MOV 45H,A ;百位 AJMP KEY_IN KEY_CPL: CPL 01H AJMP KEY_IN EXT_KEY: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 LCALL DISPLAY_SAVE LCALL RESET LCALL SKIP_ROM MOV A,#4EH LCALL WRITE MOV A,2AH ;2A数据送高温限值寄存器. LCALL WRITE MOV A,2BH ;2B数据送低温限什寄存器. LCALL WRITE LCALL RESET LCALL SKIP_ROM MOV A,#48H ;将高低温限值寄存器数据送18B20-EPROM保存. LCALL WRITE A_END: RET ;***************18b20指令子程序********************** READ_TEMP: ;读1820内部温度子程序. LCALL RESET JB 70h,EXT1 LCALL SKIP_ROM LCALL TEMP_CONV ;温度AD变换 LCALL DELAY_600MS ;时........ LCALL RESET LCALL SKIP_ROM LCALL TEMP_GET ;发取温度的命令 LCALL READ ;接收... EXT1: RET SKIP_ROM:;跳过ROM检测 MOV A,#0CCH ;#0CCH为跳过rom命令 LCALL WRITE RET RELCALL_EPROM:;重调Eprom的值到18B20的暂存RAM中去,,这样一上电18B20中RAM就有数据了 MOV A,#0B8H;在重调之前有配置或设定好下上限温度值吗?看看按键程序处有什么? LCALL WRITE RET TEMP_CONV: MOV A,#44H ;AD变换 LCALL WRITE RET TEMP_GET: MOV A ,#0BEH;读18b20命令 LCALL WRITE RET ;****************************18B20基本时序子程序********************************* RESET: ;初始化子程序 同时也检测18B20是否存在,,, SETB P0.0 NOP CLR P0.0 ;拉低 MOV R3,#150 ; *4=600US LCALL DELAY_BY_R3 SETB P0.0 ;拉高 MOV R3,#15 ; 60US LCALL DELAY_BY_R3 MOV R3,#60 ;4个周期*60=240US内检测 A1: JNB P0.0,A2 ;检测到低平信号 DJNZ R3,A1 ;如果没有应答的低电平信号,返回A1重新检测,超时后下一行, SETB 70h ;DS1820不存在. JMP A3 A2: CLR 70h MOV R3,120;240US;等恢复时间2*120=240us DJNZ R3, $ A3: RET ;------------------------ WRITE: MOV R2,#8;一个字节为8位 CLR C ;C位清0 C位用来放A的一位数据,用移位的方法放入C B1: SETB P0.0 NOP CLR P0.0 MOV R3,#4 ;16US LCALL DELAY_BY_R3 RRC A ;把A中的数送入C MOV P0.0,C ;把C送入总线 MOV R3,#12 ;48US(一位数据的发送:60us' MUSIC_NAME_8: DB 'ZHOU_ZAI_XIANG_X' MUSIC_NAME_9: DB 'SHUI_SHANG_PU_DE' MUSIC_NAME_10: DB ' SHANG-HAI-TAN ' MUSIC_NAME_11: DB 'GU-DAN-BEI-P-QIU' MUSIC_NAME_12: DB 'TAO-HUA-DUO.-KAI' MUSIC_NAME_13: DB 'DA-CHENG-XIAO_AI' MUSIC_NAME_14: DB '-----QIU_FU-----' DISPLAY_SAVE: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 MOV P1,#10000000B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#TAB_SAVE MOV R1,#0 ;码表初值 MOV R0,#10;字数 LCALL DISPLAy RET DISPLAY_SETING_TEMP_H: MOV P1,#00000001B ;清屏并光标复位#00000001H是命令哦 LCALL ENABLE;调用写入命令子程序 MOV P1,#10000000B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#TAB_SETING_TEMP_H MOV R1,#0 ;码表初值 MOV R0,#13;字数 LCALL DISPLAy RET DISPLAY_SETING_TEMP_L: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 MOV P1,#10000000B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#TAB_SETING_TEMP_L MOV R1,#0 ;码表初值 MOV R0,#13;字数 LCALL DISPLAy RET DISPLAY_ALARM_CLOCK_1: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 MOV P1,#10000000B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#ALARM_CLOCK_1 MOV R1,#0 ;码表初值 MOV R0,#10;字数 LCALL DISPLAy RET DISPLAY_ALARM_CLOCK_2: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 MOV P1,#10000000B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#ALARM_CLOCK_2 MOV R1,#0 ;码表初值 MOV R0,#10;字数 LCALL DISPLAy RET DISPLAY_ALARM_CLOCK_3: MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 MOV P1,#10000000B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#ALARM_CLOCK_3 MOV R1,#0 ;码表初值 MOV R0,#10;字数 LCALL DISPLAy RET ALARM_CLOCK_1:DB 'AL.CLOCK_1' ALARM_CLOCK_2:DB 'AL.CLOCK_2' ALARM_CLOCK_3:DB 'AL.CLOCK_3' ALARM_ON:DB ' ON ' ALARM_OFF:DB 'OFF' DISPLAY_ALARM_ON: MOV P1,#10001100B LCALL ENABLE MOV DPTR,#ALARM_ON MOV R1,#0 ;码表初值 MOV R0,#3;字数 LCALL DISPLAy RET DISPLAY_ALARM_OFF: MOV P1,#10001100B LCALL ENABLE MOV DPTR,#ALARM_OFF MOV R1,#0 ;码表初值 MOV R0,#3;字数 LCALL DISPLAy RET DISPLAY_ON: MOV P1,#11001101B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#TAB_ON MOV R1,#0 ;码表初值 MOV R0,#3;字数 LCALL DISPLAy RET DISPLAY_OFF: MOV P1,#11001101B; 显示位置 LCALL ENABLE ;执行指令 MOV DPTR,#TAB_OFF MOV R1,#0 ;码表初值 MOV R0,#3;字母数 LCALL DISPLAy RET /* ADJ_FLASH: JB FLASH_FLAG, MOV P1,#1 ;在显示数字的位置用三个空格.. LCALL ENABLE; */ ;*****************提示语********************** TM0:PUSH 28H PUSH ACC PUSH PSW MOV TL0,#0B0H MOV TH0,#3CH INC DI_DA MOV A,DI_DA CJNE A,#14H,DDONE MOV DI_DA,#00H MOV A,SEC ADD A,#01H DA A MOV SEC,A CJNE A,#60H,DDONE MOV SEC,#00H MOV A,MIN ADD A,#01H DA A MOV MIN,A CJNE A,#60H,DDONE MOV MIN,#00H MOV A,HOUR ADD A,#01H DA A MOV HOUR,A CJNE A,#24H,DDONE MOV HOUR,#00H DDONE:POP PSW POP ACC POP 28H RETI INTT0:PUSH 28H PUSH ACC MOV TH1,R1 MOV TL1,R0 CPL P0.2 POP ACC POP 28H RETI TIME_T2:PUSH 28H PUSH PSW PUSH ACC CLR TF2 ;TF2需要软件清0,与T1 T0的不一样 MOV A,WATCH_MS ADD A,#1 MOV WATCH_MS,A CJNE A,#100,T2_NEXT ;最大值才255的一字节是不能存#100H的,所以 MOV A,#0 MOV WATCH_MS,A MOV A,WATCH_S ADD A,#1 ;注意不要用INC DA A MOV WATCH_S,A CJNE A,#60H,T2_NEXT MOV A,#0 MOV WATCH_S,A MOV A,WATCH_M ADD A,#1 DA A MOV WATCH_M,A CJNE A,#60H,T2_NEXT MOV A,#0 MOV WATCH_M,A MOV A,WATCH_H ADD A,#1 DA A MOV WATCH_H,A CJNE A,#24H,T2_NEXT MOV A,#0 MOV WATCH_H,A MOV WATCH_M,A MOV WATCH_S,A MOV WATCH_MS,A ; T2_NEXT: ;是秒表数据转换程序,把各单元值的十个位分别存到两个单元中 但MS单元是三位的,,所以不可能DA MOV A,WATCH_H SWAP A ;先存的是十位 ANL A,#0FH MOV WATCH_H_H,A MOV A,WATCH_H ANL A,#0FH MOV WATCH_H_L,A MOV A,WATCH_M SWAP A ANL A,#0FH MOV WATCH_M_H,A MOV A,WATCH_M ANL A,#0FH MOV WATCH_M_L,A MOV A,WATCH_S SWAP A ANL A,#0FH MOV WATCH_S_H,A MOV A,WATCH_S ANL A,#0FH MOV WATCH_S_L,A MOV A,WATCH_MS MOV B,#10 DIV AB MOV WATCH_MS_H,A MOV WATCH_MS_L,B ;下面所需要的字串 STRII_1:DB '----';执行到了这个地方 ;下面是显示秒表值程序要先清屏啊 MOV P1,#00000001B ;清屏并光标复位 LCALL ENABLE;调用写入命令子程序 ;紧接着显示STOPWATCH在上行 MOV P1,#10000000B LCALL ENABLE MOV DPTR,#STOPWATCH MOV R1,#0 MOV R0,#16 LCALL DISPLAY MOV P1,#11000000B;先显示---- ---- 不能显示空格的,,否则之后显示数据时又要重新清屏,所以分开两次写吧 LCALL ENABLE MOV DPTR,#STRII_1 MOV R1,#0 MOV R0,#2 LCALL DISPLAY /***************/ MOV P1,#11000010B;再由第二行第3列开始显示STOPWATCH 的时,占两位后是:号 MOV DPTR,#LED_DATA;这方法可一位一位的显示 MOV R1,WATCH_H_H//已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_H_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_M_H //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_M_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_S_H //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_S_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#MAO MOV R1,#0 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_MS_H //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV DPTR,#LED_DATA MOV R1,WATCH_MS_L //已经是压缩型BCD码了,,但还不是ASCII码 MOV R0,#1 LCALL DISPLAY MOV P1,#11001101B;先显示---- ---- 不能显示空格的,,否则之后显示数据时又要重新清屏,所以分开两次写吧 LCALL ENABLE MOV DPTR,#STRII_1 MOV R1,#0 MOV R0,#3 LCALL DISPLAY ;注意要补偿中断中产生的延时,在定时初值里补偿 POP ACC POP PSW POP 28H RETI ;**************廷时程序************************ DELAY_BY_R3: NOP NOP DJNZ R3,DELAY_BY_R3 RET DELAY_BY_R6: D11: MOV R7,#0 DJNZ R7,$ DJNZ R6,D11 RET DELAY_2MS: MOV R6,#2 F2: MOV R7,#75 F1: NOP NOP DJNZ R7,F1 DJNZ R6,F2 RET DELAY_600MS: MOV R6,#0 G2: MOV R7,#0 G1: NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R7,G1 DJNZ R6,G2 RET DELAY_1M: MOV R6,#0 MOV R7,#0 E1: NOP NOP DJNZ R7,E1 DJNZ R6,E1 RET DELAY20MS: MOV R7,#200 DEL1:MOV R6,#50 DJNZ R6,$ DJNZ R7,DEL1 RET DELAY2S:MOV R7,#250 DELAY2S1:MOV R6,#100 DELAY2S2:MOV R5,#10 DJNZ R5,$ DJNZ R6,DELAY2S2 DJNZ R7,DELAY2S1 RET DEFINE_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H;度 ;DB 04H,0CH,12H,0DH,1EH,04H,08H,00H; ;DB 0EH,04H,1FH,04H,04H,0AH,11H,00H; ;DB 0EH,0EH,0EH,1FH,04H,0EH,17H,00H; ;DB 10H,1FH,02H,0FH,0AH,1FH,02H,00H; ;DB 0FH,09H,0FH,09H,0FH,09H,13H,00H; ;DB 0FH,09H,09H,0FH,09H,09H,0FH,00H; LED_DATA: DB '0123456789' TAB_HELLO: DB 'Hello!' ;6 DB 0H,1H,2H,3H,4H,5H,6H TAB_TESTING: DB 'TEXTING...' ;10 TAB1: DB '18B20 NO CONNECT' TAB2: DB 'Waiting......' TAB3: DB 'Temper ' DOT: DB "." SIGN: DB 00H,'C' TAB_L: DB 'L:' TAB_H: DB 'H:' TAB_SETING_TEMP_H: DB 'SETING_TMP:H ' TAB_SETING_TEMP_L: DB 'SETING_TMP:L ' TAB_SAVE: DB 'SAVEING...' TAB_ON: DB 'ON ' TAB_OFF: DB 'OFF' TIME:DB 'TIME ' MAO:DB ':' MUSIC_TAB15_JUSTLOVEYOU:DB 0FBH,4,2,0FAH,15H,2,0FCH,44H,6,0FDH,09H,2,0FCH,0ACH,2,0FCH,44H,2,0FBH,90H,1,0FBH,04H,1,0FAH,15H,2 DB 0FBH,4H,6,0FBH,90H,2,0FBH,04H,4,0FBH,90H,2,0FBH,04H,2,0FDH,82H,6,0FEH,22H,2,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,1 DB 0FCH,0ACH,1,0FCH,44H,2,0FCH,0ACH,16,0FCH,0ACH DB 2,0FCH,0CH,2,0FDH,82H,6,0FDH,0C8H,2,0FDH,82H,4,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,3,0F9H,5BH,1 DB 0FCH,44H,8,0FCH,44H,2,0FCH,0ACH,2,0FBH,90H,6,0FBH,04H,2,0FDH,82H,2 DB 0FDH,09H,2,0FCH,0ACH,1,0FCH,44H,1,0FBH,90H,2,0FBH,04H,8,00H,00H,4,0FBH,04H,2,0FAH,15H,2,0FBH,90H DB 6,0FBH,04H,2,0FDH,82H,2 DB 0FDH,09H,2,0FCH,0ACH,2,0FCH,0ACH,2,0FCH,44H,16,0FCH,44H,2,0FCH,44H,2,0FCH,0CH,6,0FCH,0CH,2,0FCH,0CH DB 4,0FCH,0ACH,2,0FCH,44H,2,0FCH,0CH,2 DB 0FBH,90H,2,0FBH,90H,8,00H,00H,2,0FDH,09H,2,0FCH,0ACH,6,0FBH,90H,2,0FCH,0ACH,4,0FDH,82H,2,0FDH,0C8H,2 DB 0FDH,09H,16,0FDH,09H,2,0FCH,0ACH,6,0FCH,0ACH,2,0FDH,82H,4,0FCH,0ACH,2 DB 0FCH,44H,2,0FCH,44H,6,0FCH,0ACH,2,0FDH,09H,8,0FDH,0C8H,2,0FDH,82H,2 DB 0FDH,34H,2,0FDH,09H,2,0FCH,0ACH,4,00,00,2,0FCH,44H,2,0FCH,44H,16 DB 0FBH,04H,2,0FAH,15H,2,0FCH,44H,6,0FDH,09H,2,0FCH,0ACH,2,0FCH,44H,2 DB 0FBH,90H,1,0FBH,04H,1,0FAH,15H,2,0FBH,04H,6,0FBH,90H,2,0FCH,44H,2 DB 0FBH,90H,2,0FBH,04H,2,0FDH,82H,6,0FEH,22H,2,0FDH,0C8H,2,0FDH,82H,2 DB 0FAH,15H,1,0FCH,0ACH,1,0FCH,44H,2,0FCH,0ACH,8,00,00,2,0FCH,0ACH,2 DB 0FDH,09H,2,0FDH,34H,2,0FDH,82H,6,0FDH,0C8H,2,0FDH,82H,4,0FDH,0C8H,2 DB 0FDH,82H,2,0FDH,09H,3,0F9H,5BH,1,0FCH,44H,8,0FCH,44H,2,0FCH,0CH,2 DB 0FBH,90H,6,0FBH,04H,2,0FDH,82H,2,0FDH,09H,2,0FCH,0ACH,2,0FCH,0ACH,2,0FCH,44H,2,0FFH,0FFH,8 MUSIC_TAB14_QIUFU: DB 0FDH,0C8H,16,0FDH,09H,2,0FDH,82H,2,0FDH,82H,3,0FCH,0ACH,1,0FCH,0ACH,8,0FDH,09H,2,0FDH,82H,2,0FCH,44H,8,0FCH,44H,2,0FCH,0ACH,2,0FDH,09H,2,0FDH,0C8H,2,0FDH,82H,3,0FCH,0ACH,1,0FCH,0ACH,4,00H,00H,3,0FDH,82H,1 DB 0FEH,22H,1,0FEH,06H,4,00H,00H,2,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FDH,09H,1,0FDH,82H,1,0FDH,82H,2,0FDH,09H,1,0FCH,0ACH,1,0FCH,44H,1,0FCH,44H,2,0FBH,90H,1,0FDH,0C8H,1,0FDH,82H,1,0FCH,0ACH,1,0FDH,09H,1,0FDH,09H,4,00H,00H,4 DB 00H,00H,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FDH,09H,1,0FDH,82H,1,0FDH,09H,1,0FDH,82H,1,0FDH,82H,4,0FDH,0C8H,1,0FDH,0C8H,1,0FDH,0C8H,1,0FEH,22H,1,0FEH,06H,1,0FDH,0C8H,1,0FDH,82H,1,0FEH,06H,1,0FEH,06H,1,0FDH,0C8H,4,00H,00H,4 DB 00H,00H,2,0FEH,22H,1,0FEH,22H,1,0FEH,22H,3,0FEH,06H,1,0FEH,06H,1,0FDH,82H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,82H,2,0FDH,09H,1,0FCH,0ACH,1,0FCH,44H,1,0FCH,44H,2,0FBH,90H,1,0FDH,0C8H,1,0FDH,82H,1,0FCH,0ACH,1,0FDH,09H,1,0FDH,09H,4,00H,00H,4 DB 00H,00H,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,2,0FCH,44H,1,0FDH,09H,1,0FDH,82H,1,0FDH,09H,1,0FDH,82H,1,0FDH,82H,4,0FDH,0C8H,1,0FDH,0C8H,1,0FDH,0C8H,1,0FEH,22H,1,0FEH,06H,1,0FDH,0C8H,1,0FDH,82H,1,0FEH,06H,1,0FEH,06H,1,0FDH,0C8H,4,00H,00H,2,0FEH,85H,1,0FEH,85H,1 DB 0FEH,56H,4,00H,00H,1,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,1,0FEH,06H,1,0FEH,06H,1,0FEH,06H,1,0FEH,06H,1,00H,00H,2,0FEH,85H,1,0FEH,85H,1,0FEH,56H,4,00H,00H,1,0FEH,56H,1,0FEH,0C1H,1,0FEH,0E4H,1,0FEH,0C1H,1,0FEH,85H,4,00H,00H,2,0FEH,85H,1,0FEH,85H,1 DB 0FEH,56H,4,00H,00H,1,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,1,0FEH,06H,1,0FEH,06H,1,0FEH,06H,1,0FEH,06H,1,00H,00H,2,0FEH,85H,1,0FEH,85H,1,0FEH,56H,4,00H,00H,1,0FEH,22H,1,0FDH,0C8H,1,0FEH,22H,1,0FDH,0C8H,4,00H,00H,4,00H,00H,1,0FEH,0E4H,1,0FEH,0E4H,1,0FEH,0C1H,1,0FEH,0E4H,2,0FEH,56H,1,0FEH,22H,1,0FEH,56H,1,0FEH,0C1H,2,0FEH,0C1H,1,0FEH,0C1H,1,0FEH,56H,2,0FEH,85H,1 DB 0FEH,0C1H,1,0FEH,0C1H,1,0FEH,0C1H,1,0FEH,0C1H,1,0FEH,0C1H,2,0FEH,85H,1,0FEH,56H,1,0FEH,56H,1,0FEH,85H,2,0FEH,85H,1,0FEH,85H,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FDH,0C8H,1,0FEH,22H,2,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,1,0FEH,0C1H,1,0FEH,0C1H,1,0FEH,0E4H,1,0FEH,85H,1,0FEH,85H,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1 DB 0FEH,22H,2,0FEH,22H,1,0FEH,22H,1,0FEH,22H,3,0FEH,0C1H,1,0FEH,0C1H,4,00H,00H,1,0FEH,0C1H,1,0FEH,0E4H,1,0FEH,0C1H,1,0FEH,0E4H,2,0FEH,85H,1,0FEH,85H,1,0FEH,85H,2,0FEH,56H,2,0FEH,22H,2,0FEH,56H,1,0FEH,0C1H,2,0FEH,0C1H,1,0FEH,0C1H,1,0FEH,56H,2,0FEH,85H,1 DB 0FEH,0C1H,1,0FEH,0C1H,1,0FEH,0C1H,1,0FEH,0C1H,1,0FEH,0C1H,2,0FEH,85H,1,0FEH,56H,1,0FEH,56H,1,0FEH,85H,2,0FEH,85H,1,0FEH,85H,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,1,0FEH,0C1H,2,0FEH,0E4H,2,0FEH,85H,2,00H,00H,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1 DB 0FEH,22H,2,0FEH,22H,1,0FEH,22H,1,0FEH,06H,2,0FEH,22H,1,0FDH,0C8H,1,0FDH,0C8H,4,00H,00H,4,00H,00H,4,00H,00H,4,00H,00H,4,00H,00H,4,0FEH,22H,2,0FEH,22H,1,0FEH,22H,1,0FEH,06H,2,0FEH,22H,1,0FDH,0C8H,1,0FDH,0C8H,4,00H,00H,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1 DB 0FEH,22H,2,0FEH,22H,1,0FEH,22H,1,0FEH,06H,2,0FEH,22H,1,0FDH,0C8H,1,0FDH,0C8H,4,00H,00H,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FEH,22H,2,0FEH,22H,1,0FEH,22H,1,0FEH,06H,2,0FEH,22H,2,0FDH,0C8H,4,00H,00H,4,0FFH,0FFH,8 MUSIC_TAB13_DACHENXIAAI: DB 00H,00H,2,0FDH,09H,1,0FCH,0ACH,1,0FCH,44H,2,0FCH,44H,2,0FCH,44H,2,0FCH,0ACH,1,0FDH,09H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FDH,0C8H,1,0FEH,06H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,06H,1,0FEH,06H,1,0FDH,82H,1,0FDH,0C8H,2,0FDH,82H,4,00H,00H,1,0FDH,82H,1,0FDH,0C8H,1,0FEH,06H,1 DB 0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,06H,1,0FEH,06H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,2,0FDH,0C8H,1,0FDH,09H,2,0FCH,0ACH,1,0FCH,44H,1,0FCH,0ACH,3,0FCH,0ACH,1,0FCH,44H,1,0FCH,0ACH,1,0FDH,09H,1,0FCH,0ACH,1,0FCH,0ACH,4,00H,00H,1,0FDH,82H,1,0FDH,09H,1,0FCH,0ACH,1 DB 0FCH,44H,2,0FCH,44H,2,0FCH,44H,2,0FCH,0ACH,1,0FDH,09H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,82H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,82H,1,0FDH,0C8H,1,0FEH,06H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,56H,1,0FEH,56H,1,0FEH,85H,2,0FDH,82H,1,0FDH,82H,4,00H,00H,1,0FDH,82H,1,0FDH,0C8H,1,0FEH,06H,1 DB 0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,56H,1,0FEH,56H,1,0FEH,85H,2,0FEH,56H,2,0FEH,22H,2,0FEH,22H,2,0FEH,22H,2,00H,00H,1,0FDH,09H,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,0ACH,1,0FDH,82H,2,0FDH,09H,1,0FCH,0ACH,1,0FCH,44H,8,0FCH,44H,4,00H,00H,1,0FDH,09H,1,0FDH,0C8H,1,0FEH,06H,1 DB 0FEH,22H,2,0FEH,22H,2,0FDH,0C8H,2,0FDH,09H,1,0FDH,0C8H,1,0FDH,0C8H,1,0FDH,82H,1,00H,00H,2,00H,00H,1,0FDH,34H,1,0FDH,09H,1,0FCH,0ACH,1,0FCH,44H,2,0FCH,44H,1,0FCH,0ACH,1,0FCH,0ACH,1,0FCH,44H,1,0FDH,82H,1,0FDH,82H,1,0FCH,0ACH,1,0FDH,09H,4,00H,00H,1,0FDH,09H,1,0FDH,0C8H,1,0FEH,06H,1 DB 0FEH,22H,2,0FEH,22H,2,0FEH,56H,2,0FEH,85H,1,0FEH,56H,1,0FEH,56H,1,0FEH,22H,2,0FEH,22H,1,00H,00H,3,0FDH,82H,1,0FDH,0C8H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,1,0FEH,85H,1,0FEH,56H,1,0FEH,56H,4,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FDH,0C8H,1 DB 0FEH,22H,3,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,09H,1,0FDH,82H,4,0FDH,82H,1,0FDH,0C8H,1,0FEH,22H,1,0FEH,85H,1,0FEH,56H,1,0FEH,56H,1,0FEH,56H,1,0FEH,56H,1,0FEH,56H,2,0FEH,22H,2,0FEH,56H,4,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FDH,0C8H,1 DB 0FEH,22H,3,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,09H,1,0FDH,82H,4,0FDH,82H,1,0FDH,0C8H,1,0FEH,22H,1,0FEH,85H,1,0FEH,56H,1,0FEH,56H,1,0FEH,56H,1,0FEH,22H,1,0FEH,56H,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FEH,22H,6,00H,00H,1,0FEH,22H,1 DB 0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,1,0FEH,22H,2,0FEH,56H,1,0FEH,56H,1,0FEH,56H,1,0FEH,56H,1,0FEH,56H,1,0FEH,56H,3,0FEH,56H,1,0FEH,56H,1,0FEH,85H,1,0FEH,85H,1,0FEH,9AH,1,0FEH,85H,2,0FEH,56H,1,0FEH,56H,1,0FEH,56H,1,0FEH,22H,2,0FDH,82H,1,0FDH,0C8H,1,0FEH,22H,2,0FEH,22H,1 DB 0FFH,0FFH,8 MUSIC_TAB12_TAOHUADUODUOKAI:DB 0FCH,44H,4,00H,00H,2,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FDH,0C8H,1,0FDH,0C8H,2,0FDH,0C8H,2,0FDH,82H,4,0FCH,0ACH,2,0FCH,44H,2 DB 0FDH,09H,4,0FCH,0ACH,2,0FDH,09H,2,0FCH,0ACH,8,0FCH,44H,4,00H,00H,2,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,4,0FDH,82H,4 DB 0FDH,0C8H,3,0FDH,0C8H,1,0FDH,0C8H,2,0FDH,0C8H,2,0FDH,82H,4,0FCH,0ACH,2,0FCH,44H,2,0FDH,09H,4,0FCH,0ACH,4,0FCH,44H,8,00H,00H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,22H,2,0FDH,82H,2,0FDH,0C8H,2,0FDH,09H,4,00H,00H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,22H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,85H,4 DB 00H,00H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,22H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,85H,2,0FEH,56H,2,0FEH,22H,24,0FEH,22H,24,0FCH,44H,4,0FCH,44H,2,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4 DB 0FDH,0C8H,4,0FDH,0C8H,4,0FDH,82H,8,0FDH,0C8H,4,0FDH,0C8H,4,0FDH,82H,4,0FDH,34H,2,0FDH,82H,2,0FDH,82H,8,00H,00H,4,00H,00H,4,0FCH,44H,6,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4 DB 0FDH,0C8H,4,0FEH,22H,2,0FDH,0C8H,2,0FDH,82H,8,0FDH,0C8H,4,0FDH,82H,2,0FDH,09H,2,0FCH,0ACH,4,0FDH,09H,2,0FCH,0ACH,2,0FCH,44H,8,00H,00H,4,00H,00H,4,0FEH,22H,4,0FDH,0C8H,2,0FEH,22H,4,0FDH,0C8H,4,0FDH,0C8H,2 DB 0FDH,82H,2,0FDH,82H,2,0FDH,82H,2,0FDH,82H,2,0FDH,09H,2,0FDH,82H,6,0FEH,22H,4,0FDH,0C8H,2,0FEH,22H,4,0FDH,0C8H,4,0FDH,82H,2,0FDH,82H,24,0FEH,22H,4,0FDH,0C8H,2,0FEH,22H,4,0FDH,0C8H,4,0FDH,0C8H,2 DB 0FDH,82H,2,0FDH,82H,4,0FDH,82H,2,0FDH,09H,1,0FCH,0ACH,1,0FCH,44H,6,0FCH,0ACH,4,0FCH,44H,2,0FDH,09H,4,0FDH,09H,4,0FDH,09H,2,0FEH,06H,24,0FCH,44H,8,0FCH,0ACH,8 DB 0FEH,22H,4,0FDH,0C8H,2,0FEH,22H,4,0FEH,56H,4,0FDH,0C8H,2,0FDH,0C8H,6,0FEH,06H,1,0FDH,0C8H,1,0FDH,82H,8 DB 0FCH,44H,4,00H,00H,2,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FDH,0C8H,1,0FDH,0C8H,2,0FDH,0C8H,2,0FDH,82H,4,0FCH,0ACH,2,0FCH,44H,2 DB 0FDH,09H,4,0FCH,0ACH,2,0FDH,09H,2,0FCH,0ACH,8,0FCH,44H,4,00H,00H,2,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,4,0FDH,82H,4 DB 0FDH,0C8H,3,0FDH,0C8H,1,0FDH,0C8H,2,0FDH,0C8H,2,0FDH,82H,4,0FCH,0ACH,2,0FCH,44H,2,0FDH,09H,4,0FEH,56H,4,0FCH,44H,8,0FCH,44H,4,00H,00H,2,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4 DB 0FDH,0C8H,3,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FDH,0C8H,1,0FDH,0C8H,2,0FDH,0C8H,2,0FDH,82H,4,0FCH,0ACH,2,0FCH,44H,2,0FDH,09H,4,0FCH,0ACH,2,0FDH,09H,2,0FCH,0ACH,8 DB 0FCH,44H,4,00H,00H,2,0FCH,0ACH,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FEH,22H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,09H,4,0FDH,82H,4,0FDH,0C8H,3,0FDH,0C8H,1,0FDH,0C8H,2,0FDH,0C8H,2,0FDH,82H,4,0FCH,0ACH,2,0FCH,44H,2 DB 0FDH,09H,4,0FEH,56H,4,0FCH,44H,8,0FDH,0C8H,3,0FDH,0C8H,1,0FDH,0C8H,2,0FDH,0C8H,2,0FDH,82H,4,0FDH,0C8H,2,0FDH,82H,2,0FEH,85H,4,0FEH,85H,2,0FEH,56H,2,0FEH,22H,8,0FDH,82H,2,0FDH,0C8H,2,0FDH,09H,4 DB 00H,00H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,22H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,85H,2,0FEH,56H,2,0FEH,22H,24,00H,00H,4,00H,00H,4,00H,00H,24 DB 0FFH,0FFH,8 MUSIC_TAB11_GUDANBEI: DB 00H,00H,1,0FDH,09H,1,0FDH,09H,1,0FDH,09H,1,0FDH,09H,1,0FDH,34H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,2,0FDH,0C8H,1,0FCH,44H,1,0FCH,44H,1,0FCH,0ACH,3,00H,00H,1,0FDH,09H,1,0FDH,09H,1,0FDH,09H,1,0FDH,34H,1,0FDH,82H,2,0FDH,82H,2,0FEH,22H,1,0FEH,06H,1,0FEH,06H,1,0FDH,82H,3 DB 0FDH,0C8H,4,0FDH,34H,1,0FDH,09H,1,0FCH,0ACH,1,0FCH,0ACH,1,0FDH,82H,3,0FDH,0C8H,1,0FCH,44H,2,00H,00H,1,0FDH,82H,1,0FDH,82H,1,0FDH,34H,1,0FDH,34H,1,0FDH,09H,1,0FDH,34H,1,0FEH,22H,1,0FEH,22H,2,0FDH,09H,1,0FCH,0ACH,3,00H,00H,4 DB 00H,00H,1,0FDH,09H,1,0FDH,09H,1,0FDH,09H,1,0FDH,09H,1,0FDH,34H,1,0FDH,82H,1,0FDH,82H,1,00H,00H,2,0FDH,0C8H,1,0FCH,44H,1,0FCH,44H,1,0FCH,0ACH,3,00H,00H,2,0FDH,09H,1,0FDH,09H,1,0FDH,09H,1,0FDH,34H,1,0FDH,82H,2,0FDH,82H,2,0FEH,22H,1,0FEH,06H,1,0FEH,06H,1,0FDH,82H,3 DB 0FDH,0C8H,4,0FDH,34H,1,0FDH,09H,1,0FCH,0ACH,1,0FDH,0C8H,1,0FDH,82H,2,0FDH,82H,1,0FEH,56H,1,0FEH,22H,1,0FEH,22H,2,0FDH,34H,1,0FDH,82H,1,0FDH,34H,1,0FDH,34H,1,0FDH,09H,1,0FDH,34H,1,0FDH,82H,1,0FDH,82H,1,0FDH,0C8H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,0C8H,1,0FEH,56H,1,0FEH,56H,1,00H,00H,1,0FEH,22H,1,0FEH,56H,1 DB 0FEH,85H,1,0FEH,0C1H,1,0FEH,22H,1,0FEH,85H,1,0FEH,56H,1,0FDH,82H,1,0FEH,06H,1,0FEH,56H,1,0FEH,22H,1,0FEH,06H,2,0FEH,22H,1,0FEH,22H,1,00H,00H,1,0FEH,22H,1,0FDH,82H,1 DB 0FDH,0C8H,1,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,82H,1,0FEH,22H,1,0FEH,85H,1,0FEH,9AH,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FEH,56H,1,00H,00H,1,0FEH,22H,1,0FEH,56H,1 DB 0FEH,85H,1,0FEH,85H,1,0FEH,85H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FEH,06H,1,0FEH,22H,1,0FEH,56H,1,0FEH,85H,2,0FEH,56H,1,0FEH,22H,1,0FEH,22H,1,00H,00H,1,0FEH,22H,1,0FEH,0C1H,1 DB 0FEH,0C1H,1,0FEH,9AH,2,0FEH,85H,1,0FEH,22H,1,00H,00H,1,0FDH,0C8H,1,0FEH,85H,1,0FEH,9AH,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FEH,56H,1,00H,00H,1,0FEH,22H,1,0FEH,56H,1,0FEH,85H,1,0FDH,82H,1,0FEH,22H,1,0FEH,85H,1,0FEH,56H,1,0FDH,82H,1,0FEH,06H,1,0FEH,56H,1,0FEH,22H,1,0FEH,06H,2,0FEH,22H,1,0FEH,22H,1,00H,00H,1,0FEH,22H,1,0FDH,82H,1 DB 0FDH,0C8H,1,0FEH,22H,1,0FEH,22H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,82H,1,0FEH,22H,1,0FEH,85H,1,0FEH,9AH,1,0FEH,85H,1,0FEH,56H,1,0FEH,22H,1,0FEH,56H,1,00H,00H,1,0FEH,22H,1,0FEH,56H,1 DB 0FEH,85H,1,0FEH,85H,1,0FEH,85H,1,0FDH,82H,1,0FDH,82H,1,0FDH,82H,1,0FEH,06H,1,0FEH,22H,1,0FEH,56H,1,0FEH,85H,2,0FEH,56H,1,0FEH,22H,1,0FEH,22H,1,00H,00H,1,0FEH,22H,1,0FDH,82H,1,0FEH,0C1H,1,0FEH,9AH,2,0FEH,85H,1,0FEH,22H,2,00H,00H,1,0FDH,0C8H,1,0FEH,0C1H,1,0FEH,9AH,1,0FEH,9AH,1,0FEH,85H,1,0FEH,22H,3,0FDH,82H,1 DB 0FEH,56H,1,0FEH,22H,1,0FEH,22H,2,0FEH,22H,4,00H,00H,4,00H,00H,4,0FEH,56H,3,0FEH,22H,1,0FEH,22H,4,00H,00H,4,00H,00H,4,00H,00H,4,00H,00H,4,00H,00H,4,00H,00H,2,0FEH,22H,1,0FEH,56H,1,0FFH,0FFH,8 DB 0FFH,0FFH,8 MUSIC_TAB10_SHANGAITANG: DB 0FDH,09H,2,0FDH,82H,2,0FDH,0C8H,4,0FDH,0C8H,3,0FDH,0C8H,1,0FDH,09H,2,0FDH,82H,2,0FCH,0ACH,4,0FCH,0ACH,3,0FCH,0ACH,1,0FCH,0ACH,4,0FDH,09H,2,0FDH,82H,2,0FDH,0C8H,4,0FDH,0C8H,1,0FEH,22H,1,0FDH,0C8H,1,0FDH,82H,1,0FDH,09H,1,0FDH,0C8H,1,0FDH,82H,1,0FCH,0ACH,1,0FDH,09H,1,0FCH,0ACH,1,0FCH,44H,1,0FDH,09H,1 DB 0FCH,0ACH,8,0FCH,0ACH,2,0FCH,0CH,2,0FBH,90H,2,0FBH,04H,2,0FCH,44H,24,0FCH,44H,16,0FDH,09H,2,0FDH,82H,2,0FDH,0C8H,16,0FDH,09H,2,0FDH,82H,2 DB 0FCH,0ACH,16,0FDH,09H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,22H,4,0FDH,0C8H,2,0FDH,82H,4,0FBH,90H,1,0FCH,44H,1,0FDH,09H,2,0FCH,0ACH,16,0FCH,0ACH,2,0FDH,09H,2,0FDH,82H,16,0FCH,0ACH,2,0FDH,09H,2 DB 0FCH,0ACH,2,0FBH,90H,2,0FDH,0C8H,16,0FBH,90H,2,0FCH,44H,2,0FCH,0ACH,6,0FDH,09H,2,0FCH,0ACH,2,0FCH,0CH,2,0FBH,90H,2,0FCH,44H,2,0FBH,04H,16,0FDH,09H,2,0FDH,82H,2 DB 0FDH,0C8H,16,0FDH,09H,2,0FDH,82H,2,0FCH,0ACH,16,0FDH,09H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,22H,4,0FDH,0C8H,2,0FDH,82H,4,0FBH,90H,1,0FCH,44H,1,0FDH,09H,2,0FCH,0ACH,16,0FCH,0ACH,2,0FDH,09H,2,0FDH,82H,16,0FCH,0ACH,2,0FDH,09H,2 DB 0FCH,0ACH,2,0FBH,90H,2,0FDH,0C8H,16,0FBH,90H,2,0FCH,44H,2,0FCH,0ACH,6,0FDH,09H,2,0FCH,0ACH,2,0FCH,0CH,2,0FBH,90H,2,0FBH,04H,2,0FCH,44H,8,00H,00H,2,0FEH,22H,2,0FEH,22H,2,0FDH,0C8H,2,0FEH,22H,8,00H,00H,2,0FDH,0C8H,2,0FEH,22H,2,0FDH,0C8H,2,0FDH,82H,16,0FDH,82H,2,0FDH,09H,2 DB 0FDH,0C8H,6,0FDH,82H,2,0FCH,44H,4,0FCH,0ACH,1,0FCH,44H,1,0FCH,0ACH,2,0FDH,09H,8,00H,00H,2,0FDH,09H,2,0FDH,09H,2,0FCH,0ACH,2,0FDH,09H,8,00H,00H,2,0FEH,22H,2,0FEH,22H,2,0FFH,03H,2,0FDH,0C8H,16,0FDH,09H,2,0FDH,09H,2 DB 0FCH,0ACH,6,0FDH,09H,2,0FEH,22H,2,0FEH,06H,2,0FDH,0C8H,2,0FDH,09H,2,0FDH,82H,16,0FDH,09H,2,0FDH,82H,2 DB 0FDH,0C8H,16,0FDH,09H,2,0FDH,82H,2,0FCH,0ACH,16,0FDH,09H,2,0FDH,82H,2,0FDH,0C8H,2,0FEH,22H,4,0FDH,0C8H,2,0FDH,82H,4,0FBH,90H,1,0FCH,44H,1,0FDH,09H,2,0FCH,0ACH,16,0FCH,0ACH,2,0FDH,09H,2,0FDH,82H,16,0FCH,0ACH,2,0FDH,09H,2 DB 0FCH,0ACH,2,0FBH,90H,2,0FDH,0C8H,16,0FBH,90H,2,0FCH,44H,2,0FCH,0ACH,6,0FDH,09H,2,0FCH,0ACH,2,0FCH,0CH,2,0FBH,90H,2,0FBH,04H,2,0FCH,44H,16 DB 0FFH,0FFH,8 MUSIC_TAB9_SHUIZAIWOSHANG: DB 0FCH,0ACH,6,0FFH,0FFH,8 MUSIC_TAB8_ZHOUXIANGCHUN: DB 00H,00H,4,00H,00H,4,0FDH,09H,6,0FDH,09H,2,0FDH,09H,4,0FBH,90H,2,0FBH,90H,2,0FCH,44H,4,0FBH,90H,2,0FBH,04H,2,0FBH,90H,8 DB 0FBH,90H,4,0FBH,90H,2,0FBH,90H,2,0FBH,90H,4,0FBH,90H,2,0FCH,44H,2,0FCH,0ACH,4,0FCH,0ACH,2,0FDH,09H,2,0FCH,0ACH,8,0FDH,09H,2,0FDH,09H,2,0FDH,09H,2,0FDH,82H,2,0FDH,34H,4,0FDH,34H,4,0FDH,09H,4,0FDH,09H,2,0FCH,0ACH,2,0FCH,44H,2,0FCH,0ACH,8 DB 0FCH,0CH,2,0FCH,0CH,2,0FCH,0CH,2,0FBH,90H,2,0FBH,04H,2,0FBH,04H,2,0FBH,04H,2,0FBH,90H,2,0FCH,0CH,2,0FCH,0CH,2,0FBH,90H,2,0FBH,04H,2,0FBH,90H,24,0FBH,90H,24 DB 0FDH,0C8H,6,0FDH,09H,2,0FDH,0C8H,2,0FEH,06H,2,0FDH,0C8H,2,0FDH,82H,2,0FDH,82H,3,0FDH,0C8H,1,0FDH,82H,1,0FCH,0ACH,1,0FDH,82H,2,0FDH,0C8H,2,0FDH,82H,2,0FDH,34H,2,0FDH,34H,4,0FDH,34H,2,0FDH,09H,2,0FCH,0ACH,4,0FCH,44H,2,0FCH,0ACH,2,0FDH,09H,2,0FCH,0ACH,2,0FCH,44H,2,0FCH,0ACH,1,0FDH,09H,1,0FDH,09H,8 DB 0FDH,0C8H,6,0FDH,09H,2,0FDH,0C8H,2,0FDH,0C8H,1,0FEH,06H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,82H,6,0FCH,0ACH,2,0FDH,82H,2,0FDH,82H,1,0FDH,0C8H,1,0FDH,82H,2,0FDH,34H,2,0FDH,34H,4,0FDH,34H,2,0FDH,82H,2,0FDH,0C8H,2,0FDH,82H,2,0FDH,34H,2,0FDH,09H,2,0FCH,0ACH,4,0FCH,0ACH,4,0FDH,82H,8 DB 0FBH,90H,24,00H,00H,4,00H,00H,4,00H,00H,4,00H,00H,4,0FEH,06H,24 DB 0FDH,09H,6,0FDH,09H,2,0FDH,09H,4,0FBH,90H,2,0FBH,90H,2,0FCH,44H,4,0FBH,90H,2,0FBH,04H,2,0FBH,90H,8 DB 0FBH,90H,4,0FBH,90H,2,0FBH,90H,2,0FBH,90H,4,0FBH,90H,2,0FCH,44H,2,0FCH,0ACH,4,0FCH,0ACH,2,0FDH,09H,2,0FCH,0ACH,8,0FDH,09H,2,0FDH,09H,2,0FDH,09H,2,0FDH,82H,2,0FDH,34H,4,0FDH,34H,4,0FDH,09H,4,0FDH,09H,2,0FCH,0ACH,2,0FCH,44H,2,0FCH,0ACH,8 DB 0FCH,0CH,2,0FCH,0CH,2,0FCH,0CH,2,0FBH,90H,2,0FBH,04H,2,0FBH,04H,2,0FBH,04H,2,0FBH,90H,2,0FCH,0CH,2,0FCH,0CH,2,0FBH,90H,2 DB 0FDH,0C8H,6,0FDH,09H,2,0FDH,0C8H,2,0FDH,0C8H,1,0FEH,06H,1,0FDH,0C8H,2,0FDH,82H,2,0FDH,82H,6,0FCH,0ACH,2,0FDH,82H,2,0FDH,82H,1,0FDH,0C8H,1,0FDH,82H,2,0FDH,34H,2,0FDH,34H,4,0FDH,34H,2,0FDH,82H,2,0FDH,0C8H,2,0FDH,82H,2,0FDH,34H,2,0FDH,09H,2,0FCH,0ACH,4,0FCH,0ACH,4,0FDH,82H,8 DB 0FBH,90H,24,00H,00H,4,00H,00H,4,00H,00H,4,00H,00H,4,0FEH,06H,24 DB 0FFH,0FFH,8 END