diff --git a/12864time.c b/12864time.c index 4466a11..4084a52 100644 --- a/12864time.c +++ b/12864time.c @@ -117,7 +117,7 @@ void ds1302_write_time(void) ds1302_write_byte(ds1302_hr_add,time_buf[4]); //时 ds1302_write_byte(ds1302_min_add,time_buf[5]); //分 ds1302_write_byte(ds1302_sec_add,time_buf[6]); //秒 - ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 + //ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 ds1302_write_byte(ds1302_control_add,0x80); //打开写保护 } @@ -249,3 +249,31 @@ void displayDateTime(void) LCD_write_data(temp); delay_nms(2); } + +//读取时间,保存到字符串数组中 +unsigned char* Timetostr(void) +{ + unsigned char str[21]="\0"; //时间字符串数组 + ds1302_read_time(); //读DS1302数据 + str[0] = (time_buf[0] >> 4) + '0'; + str[1] = (time_buf[0] & 0x0f) + '0'; + str[2] = (time_buf[1] >> 4) + '0'; + str[3] = (time_buf[1] & 0x0f) + '0'; + str[4] = '-'; + str[5] = (time_buf[2] >> 4) + '0'; + str[6] = (time_buf[2] & 0x0f) + '0'; + str[7] = '-'; + str[8]= (time_buf[3] >> 4) + '0'; + str[9] = (time_buf[3] & 0x0f) + '0'; + str[10] = ' '; str[11] = ' '; + str[12]= (time_buf[4] >> 4) + '0'; + str[13] = (time_buf[4] & 0x0f) + '0'; + str[14] = ':'; + str[15] = (time_buf[5] >> 4) + '0'; + str[16] = (time_buf[5] & 0x0f) + '0'; + str[17] = ':'; + str[18] = (time_buf[6] >> 4) + '0'; + str[19] = (time_buf[6] & 0x0f) + '0'; + str[20] = 0; + return str; +} \ No newline at end of file diff --git a/12864time.h b/12864time.h index 02b1475..217002a 100644 --- a/12864time.h +++ b/12864time.h @@ -42,3 +42,4 @@ void ds1302_read_time(void); void ds1302_init(void); void dayToChina(unsigned char day); void displayDateTime(void); +unsigned char * Timetostr(void); \ No newline at end of file diff --git a/12864time.lis b/12864time.lis index 807b08e..c52ace1 100644 --- a/12864time.lis +++ b/12864time.lis @@ -24,10 +24,10 @@ 0006 5905 .byte 'Y,5 .area data(ram, con, rel) 0008 .dbfile 12864time.c - 0008 .dbfile E:\git\AVR\OldManAlarm\12864time.c + 0008 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c 0008 .dbsym e time_buf _time_buf A[8:8]c .area text(rom, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\12864time.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c 0000 .dbfunc e ds1302_write_byte _ds1302_write_byte fV 0000 ; i -> R20 0000 ; d -> R18 @@ -388,587 +388,753 @@ 00CA 20910600 lds R18,_time_buf+6 00CE 00E8 ldi R16,128 00D0 97DF xcall _ds1302_write_byte - 00D2 .dbline 120 - 00D2 ; ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 - 00D2 20910700 lds R18,_time_buf+7 - 00D6 0AE8 ldi R16,138 - 00D8 93DF xcall _ds1302_write_byte - 00DA .dbline 121 - 00DA ; ds1302_write_byte(ds1302_control_add,0x80); //打开写保护 - 00DA 20E8 ldi R18,128 - 00DC 0EE8 ldi R16,142 - 00DE .dbline -2 - 00DE L27: - 00DE .dbline 0 ; func end - 00DE 90CF xjmp _ds1302_write_byte - 00E0 .dbend - 00E0 .dbfunc e ds1302_read_time _ds1302_read_time fV + 00D2 .dbline 121 + 00D2 ; //ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 + 00D2 ; ds1302_write_byte(ds1302_control_add,0x80); //打开写保护 + 00D2 20E8 ldi R18,128 + 00D4 0EE8 ldi R16,142 + 00D6 .dbline -2 + 00D6 L27: + 00D6 .dbline 0 ; func end + 00D6 94CF xjmp _ds1302_write_byte + 00D8 .dbend + 00D8 .dbfunc e ds1302_read_time _ds1302_read_time fV .even - 00E0 _ds1302_read_time:: - 00E0 AA92 st -y,R10 - 00E2 4A93 st -y,R20 - 00E4 .dbline -1 - 00E4 .dbline 129 - 00E4 ; } - 00E4 ; - 00E4 ; //*********************************************************************** - 00E4 ; // 从DS302读出时钟数据 - 00E4 ; //*********************************************************************** - 00E4 ; - 00E4 ; void ds1302_read_time(void) - 00E4 ; { - 00E4 .dbline 131 - 00E4 ; - 00E4 ; time_buf[1]=ds1302_read_byte(ds1302_year_add); //年 - 00E4 0CE8 ldi R16,140 + 00D8 _ds1302_read_time:: + 00D8 AA92 st -y,R10 + 00DA 4A93 st -y,R20 + 00DC .dbline -1 + 00DC .dbline 129 + 00DC ; } + 00DC ; + 00DC ; //*********************************************************************** + 00DC ; // 从DS302读出时钟数据 + 00DC ; //*********************************************************************** + 00DC ; + 00DC ; void ds1302_read_time(void) + 00DC ; { + 00DC .dbline 131 + 00DC ; + 00DC ; time_buf[1]=ds1302_read_byte(ds1302_year_add); //年 + 00DC 0CE8 ldi R16,140 + 00DE B2DF xcall _ds1302_read_byte + 00E0 00930100 sts _time_buf+1,R16 + 00E4 .dbline 132 + 00E4 ; time_buf[2]=ds1302_read_byte(ds1302_month_add); //月 + 00E4 08E8 ldi R16,136 00E6 AEDF xcall _ds1302_read_byte - 00E8 00930100 sts _time_buf+1,R16 - 00EC .dbline 132 - 00EC ; time_buf[2]=ds1302_read_byte(ds1302_month_add); //月 - 00EC 08E8 ldi R16,136 + 00E8 00930200 sts _time_buf+2,R16 + 00EC .dbline 133 + 00EC ; time_buf[3]=ds1302_read_byte(ds1302_date_add); //日 + 00EC 06E8 ldi R16,134 00EE AADF xcall _ds1302_read_byte - 00F0 00930200 sts _time_buf+2,R16 - 00F4 .dbline 133 - 00F4 ; time_buf[3]=ds1302_read_byte(ds1302_date_add); //日 - 00F4 06E8 ldi R16,134 - 00F6 A6DF xcall _ds1302_read_byte - 00F8 A02E mov R10,R16 - 00FA A0920300 sts _time_buf+3,R10 - 00FE .dbline 134 - 00FE ; time_buf[4]=ds1302_read_byte(ds1302_hr_add); //时 - 00FE 04E8 ldi R16,132 - 0100 A1DF xcall _ds1302_read_byte - 0102 A02E mov R10,R16 - 0104 A0920400 sts _time_buf+4,R10 - 0108 .dbline 135 - 0108 ; time_buf[5]=ds1302_read_byte(ds1302_min_add); //分 - 0108 02E8 ldi R16,130 - 010A 9CDF xcall _ds1302_read_byte - 010C A02E mov R10,R16 - 010E A0920500 sts _time_buf+5,R10 - 0112 .dbline 136 - 0112 ; time_buf[6]=(ds1302_read_byte(ds1302_sec_add))&0x7F;//秒 - 0112 00E8 ldi R16,128 - 0114 97DF xcall _ds1302_read_byte - 0116 402F mov R20,R16 - 0118 842F mov R24,R20 - 011A 8F77 andi R24,127 - 011C 80930600 sts _time_buf+6,R24 - 0120 .dbline 137 - 0120 ; time_buf[7]=ds1302_read_byte(ds1302_day_add); //周 - 0120 0AE8 ldi R16,138 - 0122 90DF xcall _ds1302_read_byte - 0124 A02E mov R10,R16 - 0126 A0920700 sts _time_buf+7,R10 - 012A .dbline -2 - 012A L36: - 012A .dbline 0 ; func end - 012A 4991 ld R20,y+ - 012C A990 ld R10,y+ - 012E 0895 ret - 0130 .dbend - 0130 .dbfunc e ds1302_init _ds1302_init fV + 00F0 A02E mov R10,R16 + 00F2 A0920300 sts _time_buf+3,R10 + 00F6 .dbline 134 + 00F6 ; time_buf[4]=ds1302_read_byte(ds1302_hr_add); //时 + 00F6 04E8 ldi R16,132 + 00F8 A5DF xcall _ds1302_read_byte + 00FA A02E mov R10,R16 + 00FC A0920400 sts _time_buf+4,R10 + 0100 .dbline 135 + 0100 ; time_buf[5]=ds1302_read_byte(ds1302_min_add); //分 + 0100 02E8 ldi R16,130 + 0102 A0DF xcall _ds1302_read_byte + 0104 A02E mov R10,R16 + 0106 A0920500 sts _time_buf+5,R10 + 010A .dbline 136 + 010A ; time_buf[6]=(ds1302_read_byte(ds1302_sec_add))&0x7F;//秒 + 010A 00E8 ldi R16,128 + 010C 9BDF xcall _ds1302_read_byte + 010E 402F mov R20,R16 + 0110 842F mov R24,R20 + 0112 8F77 andi R24,127 + 0114 80930600 sts _time_buf+6,R24 + 0118 .dbline 137 + 0118 ; time_buf[7]=ds1302_read_byte(ds1302_day_add); //周 + 0118 0AE8 ldi R16,138 + 011A 94DF xcall _ds1302_read_byte + 011C A02E mov R10,R16 + 011E A0920700 sts _time_buf+7,R10 + 0122 .dbline -2 + 0122 L35: + 0122 .dbline 0 ; func end + 0122 4991 ld R20,y+ + 0124 A990 ld R10,y+ + 0126 0895 ret + 0128 .dbend + 0128 .dbfunc e ds1302_init _ds1302_init fV .even - 0130 _ds1302_init:: - 0130 .dbline -1 - 0130 .dbline 145 - 0130 ; } - 0130 ; - 0130 ; //*********************************************************************** - 0130 ; // DS302初始化函数 - 0130 ; //*********************************************************************** - 0130 ; - 0130 ; void ds1302_init(void) - 0130 ; { - 0130 .dbline 147 - 0130 ; - 0130 ; RST_CLR; //RST脚置低 - 0130 1F98 cbi 0x3,7 - 0132 .dbline 148 - 0132 ; SCK_CLR; //SCK脚置低 - 0132 1D98 cbi 0x3,5 - 0134 .dbline 149 - 0134 ; RST_OUT; //RST脚设置为输出 - 0134 179A sbi 0x2,7 - 0136 .dbline 150 - 0136 ; SCK_OUT; //SCK脚设置为输出 - 0136 159A sbi 0x2,5 - 0138 .dbline -2 - 0138 L44: - 0138 .dbline 0 ; func end - 0138 0895 ret - 013A .dbend - 013A .dbfunc e dayToChina _dayToChina fV - 013A ; day -> R20 + 0128 _ds1302_init:: + 0128 .dbline -1 + 0128 .dbline 145 + 0128 ; } + 0128 ; + 0128 ; //*********************************************************************** + 0128 ; // DS302初始化函数 + 0128 ; //*********************************************************************** + 0128 ; + 0128 ; void ds1302_init(void) + 0128 ; { + 0128 .dbline 147 + 0128 ; + 0128 ; RST_CLR; //RST脚置低 + 0128 1F98 cbi 0x3,7 + 012A .dbline 148 + 012A ; SCK_CLR; //SCK脚置低 + 012A 1D98 cbi 0x3,5 + 012C .dbline 149 + 012C ; RST_OUT; //RST脚设置为输出 + 012C 179A sbi 0x2,7 + 012E .dbline 150 + 012E ; SCK_OUT; //SCK脚设置为输出 + 012E 159A sbi 0x2,5 + 0130 .dbline -2 + 0130 L43: + 0130 .dbline 0 ; func end + 0130 0895 ret + 0132 .dbend + 0132 .dbfunc e dayToChina _dayToChina fV + 0132 ; day -> R20 .even - 013A _dayToChina:: - 013A 4A93 st -y,R20 - 013C 402F mov R20,R16 - 013E .dbline -1 - 013E .dbline 159 - 013E ; } - 013E ; - 013E ; - 013E ; - 013E ; //*********************************************************************** - 013E ; // 数字周转中文周 - 013E ; //*********************************************************************** - 013E ; void dayToChina(unsigned char day) - 013E ; { - 013E .dbline 160 - 013E ; if(day == 0x01) - 013E 4130 cpi R20,1 - 0140 29F4 brne L46 - 0142 X8: - 0142 .dbline 161 - 0142 ; DisplayCgrom(0x86,"周一"); - 0142 20E0 ldi R18,L48 - 0146 06E8 ldi R16,134 - 0148 0E940000 xcall _DisplayCgrom - 014C L46: - 014C .dbline 162 - 014C ; if(day == 0x02) - 014C 4230 cpi R20,2 - 014E 29F4 brne L49 - 0150 X9: - 0150 .dbline 163 - 0150 ; DisplayCgrom(0x86,"周二"); - 0150 20E0 ldi R18,L51 - 0154 06E8 ldi R16,134 - 0156 0E940000 xcall _DisplayCgrom - 015A L49: - 015A .dbline 164 - 015A ; if(day == 0x03) - 015A 4330 cpi R20,3 - 015C 29F4 brne L52 - 015E X10: - 015E .dbline 165 - 015E ; DisplayCgrom(0x86,"周三"); - 015E 20E0 ldi R18,L54 - 0162 06E8 ldi R16,134 - 0164 0E940000 xcall _DisplayCgrom - 0168 L52: - 0168 .dbline 166 - 0168 ; if(day == 0x04) - 0168 4430 cpi R20,4 - 016A 29F4 brne L55 - 016C X11: - 016C .dbline 167 - 016C ; DisplayCgrom(0x86,"周四"); - 016C 20E0 ldi R18,L57 - 0170 06E8 ldi R16,134 - 0172 0E940000 xcall _DisplayCgrom - 0176 L55: - 0176 .dbline 168 - 0176 ; if(day == 0x05) - 0176 4530 cpi R20,5 - 0178 29F4 brne L58 - 017A X12: - 017A .dbline 169 - 017A ; DisplayCgrom(0x86,"周五"); - 017A 20E0 ldi R18,L60 - 017E 06E8 ldi R16,134 - 0180 0E940000 xcall _DisplayCgrom - 0184 L58: - 0184 .dbline 170 - 0184 ; if(day == 0x06) - 0184 4630 cpi R20,6 - 0186 29F4 brne L61 - 0188 X13: - 0188 .dbline 171 - 0188 ; DisplayCgrom(0x86,"周六"); - 0188 20E0 ldi R18,L63 - 018C 06E8 ldi R16,134 - 018E 0E940000 xcall _DisplayCgrom - 0192 L61: - 0192 .dbline 172 - 0192 ; if(day == 0x07) - 0192 4730 cpi R20,7 - 0194 29F4 brne L64 - 0196 X14: - 0196 .dbline 173 - 0196 ; DisplayCgrom(0x86,"周日"); - 0196 20E0 ldi R18,L66 - 019A 06E8 ldi R16,134 - 019C 0E940000 xcall _DisplayCgrom - 01A0 L64: - 01A0 .dbline -2 - 01A0 L45: - 01A0 .dbline 0 ; func end - 01A0 4991 ld R20,y+ - 01A2 0895 ret - 01A4 .dbsym r day 20 c - 01A4 .dbend - 01A4 .dbfunc e displayDateTime _displayDateTime fV - 01A4 ; temp -> y+0 + 0132 _dayToChina:: + 0132 4A93 st -y,R20 + 0134 402F mov R20,R16 + 0136 .dbline -1 + 0136 .dbline 159 + 0136 ; } + 0136 ; + 0136 ; + 0136 ; + 0136 ; //*********************************************************************** + 0136 ; // 数字周转中文周 + 0136 ; //*********************************************************************** + 0136 ; void dayToChina(unsigned char day) + 0136 ; { + 0136 .dbline 160 + 0136 ; if(day == 0x01) + 0136 4130 cpi R20,1 + 0138 29F4 brne L45 + 013A X8: + 013A .dbline 161 + 013A ; DisplayCgrom(0x86,"周一"); + 013A 20E0 ldi R18,L47 + 013E 06E8 ldi R16,134 + 0140 0E940000 xcall _DisplayCgrom + 0144 L45: + 0144 .dbline 162 + 0144 ; if(day == 0x02) + 0144 4230 cpi R20,2 + 0146 29F4 brne L48 + 0148 X9: + 0148 .dbline 163 + 0148 ; DisplayCgrom(0x86,"周二"); + 0148 20E0 ldi R18,L50 + 014C 06E8 ldi R16,134 + 014E 0E940000 xcall _DisplayCgrom + 0152 L48: + 0152 .dbline 164 + 0152 ; if(day == 0x03) + 0152 4330 cpi R20,3 + 0154 29F4 brne L51 + 0156 X10: + 0156 .dbline 165 + 0156 ; DisplayCgrom(0x86,"周三"); + 0156 20E0 ldi R18,L53 + 015A 06E8 ldi R16,134 + 015C 0E940000 xcall _DisplayCgrom + 0160 L51: + 0160 .dbline 166 + 0160 ; if(day == 0x04) + 0160 4430 cpi R20,4 + 0162 29F4 brne L54 + 0164 X11: + 0164 .dbline 167 + 0164 ; DisplayCgrom(0x86,"周四"); + 0164 20E0 ldi R18,L56 + 0168 06E8 ldi R16,134 + 016A 0E940000 xcall _DisplayCgrom + 016E L54: + 016E .dbline 168 + 016E ; if(day == 0x05) + 016E 4530 cpi R20,5 + 0170 29F4 brne L57 + 0172 X12: + 0172 .dbline 169 + 0172 ; DisplayCgrom(0x86,"周五"); + 0172 20E0 ldi R18,L59 + 0176 06E8 ldi R16,134 + 0178 0E940000 xcall _DisplayCgrom + 017C L57: + 017C .dbline 170 + 017C ; if(day == 0x06) + 017C 4630 cpi R20,6 + 017E 29F4 brne L60 + 0180 X13: + 0180 .dbline 171 + 0180 ; DisplayCgrom(0x86,"周六"); + 0180 20E0 ldi R18,L62 + 0184 06E8 ldi R16,134 + 0186 0E940000 xcall _DisplayCgrom + 018A L60: + 018A .dbline 172 + 018A ; if(day == 0x07) + 018A 4730 cpi R20,7 + 018C 29F4 brne L63 + 018E X14: + 018E .dbline 173 + 018E ; DisplayCgrom(0x86,"周日"); + 018E 20E0 ldi R18,L65 + 0192 06E8 ldi R16,134 + 0194 0E940000 xcall _DisplayCgrom + 0198 L63: + 0198 .dbline -2 + 0198 L44: + 0198 .dbline 0 ; func end + 0198 4991 ld R20,y+ + 019A 0895 ret + 019C .dbsym r day 20 c + 019C .dbend + 019C .dbfunc e displayDateTime _displayDateTime fV + 019C ; temp -> y+0 .even - 01A4 _displayDateTime:: - 01A4 2197 sbiw R28,1 - 01A6 .dbline -1 - 01A6 .dbline 180 - 01A6 ; } - 01A6 ; - 01A6 ; //*********************************************************************** - 01A6 ; // 显示系统时间 年月日、星期 - 01A6 ; //*********************************************************************** - 01A6 ; void displayDateTime(void) - 01A6 ; { - 01A6 .dbline 182 - 01A6 ; volatile unsigned char temp; - 01A6 ; delay_nms(200); - 01A6 08EC ldi R16,200 - 01A8 10E0 ldi R17,0 - 01AA 0E940000 xcall _delay_nms - 01AE .dbline 183 - 01AE ; ds1302_read_time(); //读DS1302数据 - 01AE 98DF xcall _ds1302_read_time - 01B0 .dbline 185 - 01B0 ; - 01B0 ; LCD_write_com(0x80); - 01B0 00E8 ldi R16,128 - 01B2 0E940000 xcall _LCD_write_com - 01B6 .dbline 186 - 01B6 ; delay_nms(2); - 01B6 02E0 ldi R16,2 - 01B8 10E0 ldi R17,0 - 01BA 0E940000 xcall _delay_nms - 01BE .dbline 187 - 01BE ; temp = (time_buf[0] >> 4) + '0'; //在LCD上写要显示的数据 - 01BE 80910000 lds R24,_time_buf - 01C2 8295 swap R24 - 01C4 8F70 andi R24,#0x0F - 01C6 805D subi R24,208 ; addi 48 - 01C8 8883 std y+0,R24 - 01CA .dbline 188 - 01CA ; LCD_write_data(temp); - 01CA 082F mov R16,R24 - 01CC 0E940000 xcall _LCD_write_data - 01D0 .dbline 189 - 01D0 ; delay_nms(2); - 01D0 02E0 ldi R16,2 - 01D2 10E0 ldi R17,0 - 01D4 0E940000 xcall _delay_nms - 01D8 .dbline 190 - 01D8 ; temp = (time_buf[0] & 0x0F) + '0'; - 01D8 80910000 lds R24,_time_buf - 01DC 8F70 andi R24,15 - 01DE 805D subi R24,208 ; addi 48 - 01E0 8883 std y+0,R24 - 01E2 .dbline 191 - 01E2 ; LCD_write_data(temp); - 01E2 082F mov R16,R24 - 01E4 0E940000 xcall _LCD_write_data - 01E8 .dbline 192 - 01E8 ; delay_nms(2); - 01E8 02E0 ldi R16,2 - 01EA 10E0 ldi R17,0 - 01EC 0E940000 xcall _delay_nms - 01F0 .dbline 193 - 01F0 ; temp = (time_buf[1] >> 4) + '0'; - 01F0 80910100 lds R24,_time_buf+1 - 01F4 8295 swap R24 - 01F6 8F70 andi R24,#0x0F - 01F8 805D subi R24,208 ; addi 48 - 01FA 8883 std y+0,R24 - 01FC .dbline 194 - 01FC ; LCD_write_data(temp); - 01FC 082F mov R16,R24 - 01FE 0E940000 xcall _LCD_write_data - 0202 .dbline 195 - 0202 ; delay_nms(2); - 0202 02E0 ldi R16,2 - 0204 10E0 ldi R17,0 - 0206 0E940000 xcall _delay_nms - 020A .dbline 197 - 020A ; - 020A ; temp = (time_buf[1] & 0x0F) + '0'; - 020A 80910100 lds R24,_time_buf+1 - 020E 8F70 andi R24,15 - 0210 805D subi R24,208 ; addi 48 - 0212 8883 std y+0,R24 - 0214 .dbline 198 - 0214 ; LCD_write_data(temp); - 0214 082F mov R16,R24 - 0216 0E940000 xcall _LCD_write_data - 021A .dbline 199 - 021A ; delay_nms(2); - 021A 02E0 ldi R16,2 - 021C 10E0 ldi R17,0 - 021E 0E940000 xcall _delay_nms - 0222 .dbline 200 - 0222 ; LCD_write_data('-'); - 0222 0DE2 ldi R16,45 - 0224 0E940000 xcall _LCD_write_data - 0228 .dbline 201 - 0228 ; delay_nms(2); - 0228 02E0 ldi R16,2 - 022A 10E0 ldi R17,0 - 022C 0E940000 xcall _delay_nms - 0230 .dbline 203 - 0230 ; - 0230 ; temp = (time_buf[2] >> 4) + '0'; - 0230 80910200 lds R24,_time_buf+2 - 0234 8295 swap R24 - 0236 8F70 andi R24,#0x0F - 0238 805D subi R24,208 ; addi 48 - 023A 8883 std y+0,R24 - 023C .dbline 204 - 023C ; LCD_write_data(temp); - 023C 082F mov R16,R24 - 023E 0E940000 xcall _LCD_write_data - 0242 .dbline 205 - 0242 ; delay_nms(2); - 0242 02E0 ldi R16,2 - 0244 10E0 ldi R17,0 - 0246 0E940000 xcall _delay_nms - 024A .dbline 206 - 024A ; temp = (time_buf[2] & 0x0F) + '0'; - 024A 80910200 lds R24,_time_buf+2 - 024E 8F70 andi R24,15 - 0250 805D subi R24,208 ; addi 48 - 0252 8883 std y+0,R24 - 0254 .dbline 207 - 0254 ; LCD_write_data(temp); - 0254 082F mov R16,R24 - 0256 0E940000 xcall _LCD_write_data - 025A .dbline 208 - 025A ; delay_nms(2); - 025A 02E0 ldi R16,2 - 025C 10E0 ldi R17,0 - 025E 0E940000 xcall _delay_nms - 0262 .dbline 209 - 0262 ; LCD_write_data('-'); - 0262 0DE2 ldi R16,45 - 0264 0E940000 xcall _LCD_write_data - 0268 .dbline 210 - 0268 ; delay_nms(2); - 0268 02E0 ldi R16,2 - 026A 10E0 ldi R17,0 - 026C 0E940000 xcall _delay_nms - 0270 .dbline 212 - 0270 ; - 0270 ; temp = (time_buf[3] >> 4) + '0'; - 0270 80910300 lds R24,_time_buf+3 - 0274 8295 swap R24 - 0276 8F70 andi R24,#0x0F - 0278 805D subi R24,208 ; addi 48 - 027A 8883 std y+0,R24 - 027C .dbline 213 - 027C ; LCD_write_data(temp); - 027C 082F mov R16,R24 - 027E 0E940000 xcall _LCD_write_data - 0282 .dbline 214 - 0282 ; delay_nms(2); - 0282 02E0 ldi R16,2 - 0284 10E0 ldi R17,0 - 0286 0E940000 xcall _delay_nms - 028A .dbline 215 - 028A ; temp = (time_buf[3] & 0x0F) + '0'; - 028A 80910300 lds R24,_time_buf+3 - 028E 8F70 andi R24,15 - 0290 805D subi R24,208 ; addi 48 - 0292 8883 std y+0,R24 - 0294 .dbline 216 - 0294 ; LCD_write_data(temp); - 0294 082F mov R16,R24 - 0296 0E940000 xcall _LCD_write_data - 029A .dbline 217 - 029A ; delay_nms(2); - 029A 02E0 ldi R16,2 - 029C 10E0 ldi R17,0 - 029E 0E940000 xcall _delay_nms - 02A2 .dbline 220 - 02A2 ; - 02A2 ; //显示星期 - 02A2 ; dayToChina(time_buf[7]); - 02A2 00910700 lds R16,_time_buf+7 - 02A6 49DF xcall _dayToChina - 02A8 .dbline 221 - 02A8 ; delay_nms(2); - 02A8 02E0 ldi R16,2 - 02AA 10E0 ldi R17,0 - 02AC 0E940000 xcall _delay_nms - 02B0 .dbline 224 - 02B0 ; - 02B0 ; - 02B0 ; LCD_write_com(0x90); - 02B0 00E9 ldi R16,144 - 02B2 0E940000 xcall _LCD_write_com - 02B6 .dbline 225 - 02B6 ; delay_nms(5); - 02B6 05E0 ldi R16,5 - 02B8 10E0 ldi R17,0 - 02BA 0E940000 xcall _delay_nms - 02BE .dbline 227 - 02BE ; - 02BE ; temp = (time_buf[4] >> 4) + '0'; - 02BE 80910400 lds R24,_time_buf+4 - 02C2 8295 swap R24 - 02C4 8F70 andi R24,#0x0F - 02C6 805D subi R24,208 ; addi 48 - 02C8 8883 std y+0,R24 - 02CA .dbline 228 - 02CA ; LCD_write_data(temp); - 02CA 082F mov R16,R24 - 02CC 0E940000 xcall _LCD_write_data - 02D0 .dbline 229 - 02D0 ; delay_nms(2); - 02D0 02E0 ldi R16,2 - 02D2 10E0 ldi R17,0 - 02D4 0E940000 xcall _delay_nms - 02D8 .dbline 230 - 02D8 ; temp = (time_buf[4] & 0x0F) + '0'; - 02D8 80910400 lds R24,_time_buf+4 - 02DC 8F70 andi R24,15 - 02DE 805D subi R24,208 ; addi 48 - 02E0 8883 std y+0,R24 - 02E2 .dbline 231 - 02E2 ; LCD_write_data(temp); - 02E2 082F mov R16,R24 - 02E4 0E940000 xcall _LCD_write_data - 02E8 .dbline 232 - 02E8 ; delay_nms(2); - 02E8 02E0 ldi R16,2 - 02EA 10E0 ldi R17,0 - 02EC 0E940000 xcall _delay_nms - 02F0 .dbline 233 - 02F0 ; LCD_write_data(':'); - 02F0 0AE3 ldi R16,58 - 02F2 0E940000 xcall _LCD_write_data - 02F6 .dbline 234 - 02F6 ; delay_nms(2); - 02F6 02E0 ldi R16,2 - 02F8 10E0 ldi R17,0 - 02FA 0E940000 xcall _delay_nms - 02FE .dbline 236 - 02FE ; - 02FE ; temp = (time_buf[5] >> 4) + '0'; - 02FE 80910500 lds R24,_time_buf+5 - 0302 8295 swap R24 - 0304 8F70 andi R24,#0x0F - 0306 805D subi R24,208 ; addi 48 - 0308 8883 std y+0,R24 - 030A .dbline 237 - 030A ; LCD_write_data(temp); - 030A 082F mov R16,R24 - 030C 0E940000 xcall _LCD_write_data - 0310 .dbline 238 - 0310 ; delay_nms(2); - 0310 02E0 ldi R16,2 - 0312 10E0 ldi R17,0 - 0314 0E940000 xcall _delay_nms - 0318 .dbline 239 - 0318 ; temp = (time_buf[5] & 0x0F) + '0'; - 0318 80910500 lds R24,_time_buf+5 - 031C 8F70 andi R24,15 - 031E 805D subi R24,208 ; addi 48 - 0320 8883 std y+0,R24 - 0322 .dbline 240 - 0322 ; LCD_write_data(temp); - 0322 082F mov R16,R24 - 0324 0E940000 xcall _LCD_write_data - 0328 .dbline 241 - 0328 ; delay_nms(2); - 0328 02E0 ldi R16,2 - 032A 10E0 ldi R17,0 - 032C 0E940000 xcall _delay_nms - 0330 .dbline 242 - 0330 ; LCD_write_data(':'); - 0330 0AE3 ldi R16,58 - 0332 0E940000 xcall _LCD_write_data - 0336 .dbline 243 - 0336 ; delay_nms(2); - 0336 02E0 ldi R16,2 - 0338 10E0 ldi R17,0 - 033A 0E940000 xcall _delay_nms - 033E .dbline 245 - 033E ; - 033E ; temp = (time_buf[6] >> 4) + '0'; - 033E 80910600 lds R24,_time_buf+6 - 0342 8295 swap R24 - 0344 8F70 andi R24,#0x0F - 0346 805D subi R24,208 ; addi 48 - 0348 8883 std y+0,R24 - 034A .dbline 246 - 034A ; LCD_write_data(temp); - 034A 082F mov R16,R24 - 034C 0E940000 xcall _LCD_write_data - 0350 .dbline 247 - 0350 ; delay_nms(2); - 0350 02E0 ldi R16,2 - 0352 10E0 ldi R17,0 - 0354 0E940000 xcall _delay_nms - 0358 .dbline 248 - 0358 ; temp = (time_buf[6] & 0x0F) + '0'; - 0358 80910600 lds R24,_time_buf+6 - 035C 8F70 andi R24,15 - 035E 805D subi R24,208 ; addi 48 - 0360 8883 std y+0,R24 - 0362 .dbline 249 - 0362 ; LCD_write_data(temp); - 0362 082F mov R16,R24 - 0364 0E940000 xcall _LCD_write_data - 0368 .dbline 250 - 0368 ; delay_nms(2); - 0368 02E0 ldi R16,2 - 036A 10E0 ldi R17,0 - 036C 0E940000 xcall _delay_nms - 0370 .dbline -2 - 0370 L67: - 0370 .dbline 0 ; func end - 0370 2196 adiw R28,1 - 0372 0895 ret - 0374 .dbsym l temp 0 c - 0374 .dbend + 019C _displayDateTime:: + 019C 2197 sbiw R28,1 + 019E .dbline -1 + 019E .dbline 180 + 019E ; } + 019E ; + 019E ; //*********************************************************************** + 019E ; // 显示系统时间 年月日、星期 + 019E ; //*********************************************************************** + 019E ; void displayDateTime(void) + 019E ; { + 019E .dbline 182 + 019E ; volatile unsigned char temp; + 019E ; delay_nms(200); + 019E 08EC ldi R16,200 + 01A0 10E0 ldi R17,0 + 01A2 0E940000 xcall _delay_nms + 01A6 .dbline 183 + 01A6 ; ds1302_read_time(); //读DS1302数据 + 01A6 98DF xcall _ds1302_read_time + 01A8 .dbline 185 + 01A8 ; + 01A8 ; LCD_write_com(0x80); + 01A8 00E8 ldi R16,128 + 01AA 0E940000 xcall _LCD_write_com + 01AE .dbline 186 + 01AE ; delay_nms(2); + 01AE 02E0 ldi R16,2 + 01B0 10E0 ldi R17,0 + 01B2 0E940000 xcall _delay_nms + 01B6 .dbline 187 + 01B6 ; temp = (time_buf[0] >> 4) + '0'; //在LCD上写要显示的数据 + 01B6 80910000 lds R24,_time_buf + 01BA 8295 swap R24 + 01BC 8F70 andi R24,#0x0F + 01BE 805D subi R24,208 ; addi 48 + 01C0 8883 std y+0,R24 + 01C2 .dbline 188 + 01C2 ; LCD_write_data(temp); + 01C2 082F mov R16,R24 + 01C4 0E940000 xcall _LCD_write_data + 01C8 .dbline 189 + 01C8 ; delay_nms(2); + 01C8 02E0 ldi R16,2 + 01CA 10E0 ldi R17,0 + 01CC 0E940000 xcall _delay_nms + 01D0 .dbline 190 + 01D0 ; temp = (time_buf[0] & 0x0F) + '0'; + 01D0 80910000 lds R24,_time_buf + 01D4 8F70 andi R24,15 + 01D6 805D subi R24,208 ; addi 48 + 01D8 8883 std y+0,R24 + 01DA .dbline 191 + 01DA ; LCD_write_data(temp); + 01DA 082F mov R16,R24 + 01DC 0E940000 xcall _LCD_write_data + 01E0 .dbline 192 + 01E0 ; delay_nms(2); + 01E0 02E0 ldi R16,2 + 01E2 10E0 ldi R17,0 + 01E4 0E940000 xcall _delay_nms + 01E8 .dbline 193 + 01E8 ; temp = (time_buf[1] >> 4) + '0'; + 01E8 80910100 lds R24,_time_buf+1 + 01EC 8295 swap R24 + 01EE 8F70 andi R24,#0x0F + 01F0 805D subi R24,208 ; addi 48 + 01F2 8883 std y+0,R24 + 01F4 .dbline 194 + 01F4 ; LCD_write_data(temp); + 01F4 082F mov R16,R24 + 01F6 0E940000 xcall _LCD_write_data + 01FA .dbline 195 + 01FA ; delay_nms(2); + 01FA 02E0 ldi R16,2 + 01FC 10E0 ldi R17,0 + 01FE 0E940000 xcall _delay_nms + 0202 .dbline 197 + 0202 ; + 0202 ; temp = (time_buf[1] & 0x0F) + '0'; + 0202 80910100 lds R24,_time_buf+1 + 0206 8F70 andi R24,15 + 0208 805D subi R24,208 ; addi 48 + 020A 8883 std y+0,R24 + 020C .dbline 198 + 020C ; LCD_write_data(temp); + 020C 082F mov R16,R24 + 020E 0E940000 xcall _LCD_write_data + 0212 .dbline 199 + 0212 ; delay_nms(2); + 0212 02E0 ldi R16,2 + 0214 10E0 ldi R17,0 + 0216 0E940000 xcall _delay_nms + 021A .dbline 200 + 021A ; LCD_write_data('-'); + 021A 0DE2 ldi R16,45 + 021C 0E940000 xcall _LCD_write_data + 0220 .dbline 201 + 0220 ; delay_nms(2); + 0220 02E0 ldi R16,2 + 0222 10E0 ldi R17,0 + 0224 0E940000 xcall _delay_nms + 0228 .dbline 203 + 0228 ; + 0228 ; temp = (time_buf[2] >> 4) + '0'; + 0228 80910200 lds R24,_time_buf+2 + 022C 8295 swap R24 + 022E 8F70 andi R24,#0x0F + 0230 805D subi R24,208 ; addi 48 + 0232 8883 std y+0,R24 + 0234 .dbline 204 + 0234 ; LCD_write_data(temp); + 0234 082F mov R16,R24 + 0236 0E940000 xcall _LCD_write_data + 023A .dbline 205 + 023A ; delay_nms(2); + 023A 02E0 ldi R16,2 + 023C 10E0 ldi R17,0 + 023E 0E940000 xcall _delay_nms + 0242 .dbline 206 + 0242 ; temp = (time_buf[2] & 0x0F) + '0'; + 0242 80910200 lds R24,_time_buf+2 + 0246 8F70 andi R24,15 + 0248 805D subi R24,208 ; addi 48 + 024A 8883 std y+0,R24 + 024C .dbline 207 + 024C ; LCD_write_data(temp); + 024C 082F mov R16,R24 + 024E 0E940000 xcall _LCD_write_data + 0252 .dbline 208 + 0252 ; delay_nms(2); + 0252 02E0 ldi R16,2 + 0254 10E0 ldi R17,0 + 0256 0E940000 xcall _delay_nms + 025A .dbline 209 + 025A ; LCD_write_data('-'); + 025A 0DE2 ldi R16,45 + 025C 0E940000 xcall _LCD_write_data + 0260 .dbline 210 + 0260 ; delay_nms(2); + 0260 02E0 ldi R16,2 + 0262 10E0 ldi R17,0 + 0264 0E940000 xcall _delay_nms + 0268 .dbline 212 + 0268 ; + 0268 ; temp = (time_buf[3] >> 4) + '0'; + 0268 80910300 lds R24,_time_buf+3 + 026C 8295 swap R24 + 026E 8F70 andi R24,#0x0F + 0270 805D subi R24,208 ; addi 48 + 0272 8883 std y+0,R24 + 0274 .dbline 213 + 0274 ; LCD_write_data(temp); + 0274 082F mov R16,R24 + 0276 0E940000 xcall _LCD_write_data + 027A .dbline 214 + 027A ; delay_nms(2); + 027A 02E0 ldi R16,2 + 027C 10E0 ldi R17,0 + 027E 0E940000 xcall _delay_nms + 0282 .dbline 215 + 0282 ; temp = (time_buf[3] & 0x0F) + '0'; + 0282 80910300 lds R24,_time_buf+3 + 0286 8F70 andi R24,15 + 0288 805D subi R24,208 ; addi 48 + 028A 8883 std y+0,R24 + 028C .dbline 216 + 028C ; LCD_write_data(temp); + 028C 082F mov R16,R24 + 028E 0E940000 xcall _LCD_write_data + 0292 .dbline 217 + 0292 ; delay_nms(2); + 0292 02E0 ldi R16,2 + 0294 10E0 ldi R17,0 + 0296 0E940000 xcall _delay_nms + 029A .dbline 220 + 029A ; + 029A ; //显示星期 + 029A ; dayToChina(time_buf[7]); + 029A 00910700 lds R16,_time_buf+7 + 029E 49DF xcall _dayToChina + 02A0 .dbline 221 + 02A0 ; delay_nms(2); + 02A0 02E0 ldi R16,2 + 02A2 10E0 ldi R17,0 + 02A4 0E940000 xcall _delay_nms + 02A8 .dbline 224 + 02A8 ; + 02A8 ; + 02A8 ; LCD_write_com(0x90); + 02A8 00E9 ldi R16,144 + 02AA 0E940000 xcall _LCD_write_com + 02AE .dbline 225 + 02AE ; delay_nms(5); + 02AE 05E0 ldi R16,5 + 02B0 10E0 ldi R17,0 + 02B2 0E940000 xcall _delay_nms + 02B6 .dbline 227 + 02B6 ; + 02B6 ; temp = (time_buf[4] >> 4) + '0'; + 02B6 80910400 lds R24,_time_buf+4 + 02BA 8295 swap R24 + 02BC 8F70 andi R24,#0x0F + 02BE 805D subi R24,208 ; addi 48 + 02C0 8883 std y+0,R24 + 02C2 .dbline 228 + 02C2 ; LCD_write_data(temp); + 02C2 082F mov R16,R24 + 02C4 0E940000 xcall _LCD_write_data + 02C8 .dbline 229 + 02C8 ; delay_nms(2); + 02C8 02E0 ldi R16,2 + 02CA 10E0 ldi R17,0 + 02CC 0E940000 xcall _delay_nms + 02D0 .dbline 230 + 02D0 ; temp = (time_buf[4] & 0x0F) + '0'; + 02D0 80910400 lds R24,_time_buf+4 + 02D4 8F70 andi R24,15 + 02D6 805D subi R24,208 ; addi 48 + 02D8 8883 std y+0,R24 + 02DA .dbline 231 + 02DA ; LCD_write_data(temp); + 02DA 082F mov R16,R24 + 02DC 0E940000 xcall _LCD_write_data + 02E0 .dbline 232 + 02E0 ; delay_nms(2); + 02E0 02E0 ldi R16,2 + 02E2 10E0 ldi R17,0 + 02E4 0E940000 xcall _delay_nms + 02E8 .dbline 233 + 02E8 ; LCD_write_data(':'); + 02E8 0AE3 ldi R16,58 + 02EA 0E940000 xcall _LCD_write_data + 02EE .dbline 234 + 02EE ; delay_nms(2); + 02EE 02E0 ldi R16,2 + 02F0 10E0 ldi R17,0 + 02F2 0E940000 xcall _delay_nms + 02F6 .dbline 236 + 02F6 ; + 02F6 ; temp = (time_buf[5] >> 4) + '0'; + 02F6 80910500 lds R24,_time_buf+5 + 02FA 8295 swap R24 + 02FC 8F70 andi R24,#0x0F + 02FE 805D subi R24,208 ; addi 48 + 0300 8883 std y+0,R24 + 0302 .dbline 237 + 0302 ; LCD_write_data(temp); + 0302 082F mov R16,R24 + 0304 0E940000 xcall _LCD_write_data + 0308 .dbline 238 + 0308 ; delay_nms(2); + 0308 02E0 ldi R16,2 + 030A 10E0 ldi R17,0 + 030C 0E940000 xcall _delay_nms + 0310 .dbline 239 + 0310 ; temp = (time_buf[5] & 0x0F) + '0'; + 0310 80910500 lds R24,_time_buf+5 + 0314 8F70 andi R24,15 + 0316 805D subi R24,208 ; addi 48 + 0318 8883 std y+0,R24 + 031A .dbline 240 + 031A ; LCD_write_data(temp); + 031A 082F mov R16,R24 + 031C 0E940000 xcall _LCD_write_data + 0320 .dbline 241 + 0320 ; delay_nms(2); + 0320 02E0 ldi R16,2 + 0322 10E0 ldi R17,0 + 0324 0E940000 xcall _delay_nms + 0328 .dbline 242 + 0328 ; LCD_write_data(':'); + 0328 0AE3 ldi R16,58 + 032A 0E940000 xcall _LCD_write_data + 032E .dbline 243 + 032E ; delay_nms(2); + 032E 02E0 ldi R16,2 + 0330 10E0 ldi R17,0 + 0332 0E940000 xcall _delay_nms + 0336 .dbline 245 + 0336 ; + 0336 ; temp = (time_buf[6] >> 4) + '0'; + 0336 80910600 lds R24,_time_buf+6 + 033A 8295 swap R24 + 033C 8F70 andi R24,#0x0F + 033E 805D subi R24,208 ; addi 48 + 0340 8883 std y+0,R24 + 0342 .dbline 246 + 0342 ; LCD_write_data(temp); + 0342 082F mov R16,R24 + 0344 0E940000 xcall _LCD_write_data + 0348 .dbline 247 + 0348 ; delay_nms(2); + 0348 02E0 ldi R16,2 + 034A 10E0 ldi R17,0 + 034C 0E940000 xcall _delay_nms + 0350 .dbline 248 + 0350 ; temp = (time_buf[6] & 0x0F) + '0'; + 0350 80910600 lds R24,_time_buf+6 + 0354 8F70 andi R24,15 + 0356 805D subi R24,208 ; addi 48 + 0358 8883 std y+0,R24 + 035A .dbline 249 + 035A ; LCD_write_data(temp); + 035A 082F mov R16,R24 + 035C 0E940000 xcall _LCD_write_data + 0360 .dbline 250 + 0360 ; delay_nms(2); + 0360 02E0 ldi R16,2 + 0362 10E0 ldi R17,0 + 0364 0E940000 xcall _delay_nms + 0368 .dbline -2 + 0368 L66: + 0368 .dbline 0 ; func end + 0368 2196 adiw R28,1 + 036A 0895 ret + 036C .dbsym l temp 0 c + 036C .dbend .area data(ram, con, rel) - 0008 .dbfile E:\git\AVR\OldManAlarm\12864time.c - 0008 L66: - 0008 .blkb 5 + 0008 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 0008 L81: + 0008 .blkb 2 .area idata - 0008 D6DCC8D500 .byte 214,220,200,213,0 + 0008 0000 .byte 0,0 .area data(ram, con, rel) - 000D .dbfile E:\git\AVR\OldManAlarm\12864time.c - 000D L63: - 000D .blkb 5 + 000A .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 000A .blkb 19 .area idata - 000D D6DCC1F900 .byte 214,220,193,249,0 + 000A 00000000000000000000 .word 0,0,0,0,0 + 0014 000000000000000000 .byte 0,0,0,0,0,0,0,0,0 .area data(ram, con, rel) - 0012 .dbfile E:\git\AVR\OldManAlarm\12864time.c - 0012 L60: - 0012 .blkb 5 + 001D .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + .area text(rom, con, rel) + 036C .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 036C .dbfunc e Timetostr _Timetostr fpc + 036C ; str -> y+0 + .even + 036C _Timetostr:: + 036C 6597 sbiw R28,21 + 036E .dbline -1 + 036E .dbline 255 + 036E ; } + 036E ; + 036E ; //读取时间,保存到字符串数组中 + 036E ; unsigned char* Timetostr(void) + 036E ; { + 036E .dbline 256 + 036E ; unsigned char str[21]="\0"; //时间字符串数组 + 036E 80E0 ldi R24,L81 + 0372 FE01 movw R30,R28 + 0374 05E1 ldi R16,21 + 0376 10E0 ldi R17,0 + 0378 FA93 st -y,R31 + 037A EA93 st -y,R30 + 037C 9A93 st -y,R25 + 037E 8A93 st -y,R24 + 0380 0E940000 xcall asgnblk + 0384 .dbline 257 + 0384 ; ds1302_read_time(); //读DS1302数据 + 0384 A9DE xcall _ds1302_read_time + 0386 .dbline 258 + 0386 ; str[0] = (time_buf[0] >> 4) + '0'; + 0386 80910000 lds R24,_time_buf + 038A 8295 swap R24 + 038C 8F70 andi R24,#0x0F + 038E 805D subi R24,208 ; addi 48 + 0390 8883 std y+0,R24 + 0392 .dbline 259 + 0392 ; str[1] = (time_buf[0] & 0x0f) + '0'; + 0392 80910000 lds R24,_time_buf + 0396 8F70 andi R24,15 + 0398 805D subi R24,208 ; addi 48 + 039A 8983 std y+1,R24 + 039C .dbline 260 + 039C ; str[2] = (time_buf[1] >> 4) + '0'; + 039C 80910100 lds R24,_time_buf+1 + 03A0 8295 swap R24 + 03A2 8F70 andi R24,#0x0F + 03A4 805D subi R24,208 ; addi 48 + 03A6 8A83 std y+2,R24 + 03A8 .dbline 261 + 03A8 ; str[3] = (time_buf[1] & 0x0f) + '0'; + 03A8 80910100 lds R24,_time_buf+1 + 03AC 8F70 andi R24,15 + 03AE 805D subi R24,208 ; addi 48 + 03B0 8B83 std y+3,R24 + 03B2 .dbline 262 + 03B2 ; str[4] = '-'; + 03B2 8DE2 ldi R24,45 + 03B4 8C83 std y+4,R24 + 03B6 .dbline 263 + 03B6 ; str[5] = (time_buf[2] >> 4) + '0'; + 03B6 80910200 lds R24,_time_buf+2 + 03BA 8295 swap R24 + 03BC 8F70 andi R24,#0x0F + 03BE 805D subi R24,208 ; addi 48 + 03C0 8D83 std y+5,R24 + 03C2 .dbline 264 + 03C2 ; str[6] = (time_buf[2] & 0x0f) + '0'; + 03C2 80910200 lds R24,_time_buf+2 + 03C6 8F70 andi R24,15 + 03C8 805D subi R24,208 ; addi 48 + 03CA 8E83 std y+6,R24 + 03CC .dbline 265 + 03CC ; str[7] = '-'; + 03CC 8DE2 ldi R24,45 + 03CE 8F83 std y+7,R24 + 03D0 .dbline 266 + 03D0 ; str[8]= (time_buf[3] >> 4) + '0'; + 03D0 80910300 lds R24,_time_buf+3 + 03D4 8295 swap R24 + 03D6 8F70 andi R24,#0x0F + 03D8 805D subi R24,208 ; addi 48 + 03DA 8887 std y+8,R24 + 03DC .dbline 267 + 03DC ; str[9] = (time_buf[3] & 0x0f) + '0'; + 03DC 80910300 lds R24,_time_buf+3 + 03E0 8F70 andi R24,15 + 03E2 805D subi R24,208 ; addi 48 + 03E4 8987 std y+9,R24 + 03E6 .dbline 268 + 03E6 ; str[10] = ' '; str[11] = ' '; + 03E6 80E2 ldi R24,32 + 03E8 8A87 std y+10,R24 + 03EA .dbline 268 + 03EA 8B87 std y+11,R24 + 03EC .dbline 269 + 03EC ; str[12]= (time_buf[4] >> 4) + '0'; + 03EC 80910400 lds R24,_time_buf+4 + 03F0 8295 swap R24 + 03F2 8F70 andi R24,#0x0F + 03F4 805D subi R24,208 ; addi 48 + 03F6 8C87 std y+12,R24 + 03F8 .dbline 270 + 03F8 ; str[13] = (time_buf[4] & 0x0f) + '0'; + 03F8 80910400 lds R24,_time_buf+4 + 03FC 8F70 andi R24,15 + 03FE 805D subi R24,208 ; addi 48 + 0400 8D87 std y+13,R24 + 0402 .dbline 271 + 0402 ; str[14] = ':'; + 0402 8AE3 ldi R24,58 + 0404 8E87 std y+14,R24 + 0406 .dbline 272 + 0406 ; str[15] = (time_buf[5] >> 4) + '0'; + 0406 80910500 lds R24,_time_buf+5 + 040A 8295 swap R24 + 040C 8F70 andi R24,#0x0F + 040E 805D subi R24,208 ; addi 48 + 0410 8F87 std y+15,R24 + 0412 .dbline 273 + 0412 ; str[16] = (time_buf[5] & 0x0f) + '0'; + 0412 80910500 lds R24,_time_buf+5 + 0416 8F70 andi R24,15 + 0418 805D subi R24,208 ; addi 48 + 041A 888B std y+16,R24 + 041C .dbline 274 + 041C ; str[17] = ':'; + 041C 8AE3 ldi R24,58 + 041E 898B std y+17,R24 + 0420 .dbline 275 + 0420 ; str[18] = (time_buf[6] >> 4) + '0'; + 0420 80910600 lds R24,_time_buf+6 + 0424 8295 swap R24 + 0426 8F70 andi R24,#0x0F + 0428 805D subi R24,208 ; addi 48 + 042A 8A8B std y+18,R24 + 042C .dbline 276 + 042C ; str[19] = (time_buf[6] & 0x0f) + '0'; + 042C 80910600 lds R24,_time_buf+6 + 0430 8F70 andi R24,15 + 0432 805D subi R24,208 ; addi 48 + 0434 8B8B std y+19,R24 + 0436 .dbline 277 + 0436 ; str[20] = 0; + 0436 2224 clr R2 + 0438 2C8A std y+20,R2 + 043A .dbline 278 + 043A ; return str; + 043A 8E01 movw R16,R28 + 043C .dbline -2 + 043C L80: + 043C .dbline 0 ; func end + 043C 6596 adiw R28,21 + 043E 0895 ret + 0440 .dbsym l str 0 A[21:21]c + 0440 .dbend + .area data(ram, con, rel) + 001D .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 001D L65: + 001D .blkb 5 + .area idata + 001D D6DCC8D500 .byte 214,220,200,213,0 + .area data(ram, con, rel) + 0022 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 0022 L62: + 0022 .blkb 5 + .area idata + 0022 D6DCC1F900 .byte 214,220,193,249,0 + .area data(ram, con, rel) + 0027 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 0027 L59: + 0027 .blkb 5 .area idata - 0012 D6DCCEE500 .byte 214,220,206,229,0 + 0027 D6DCCEE500 .byte 214,220,206,229,0 .area data(ram, con, rel) - 0017 .dbfile E:\git\AVR\OldManAlarm\12864time.c - 0017 L57: - 0017 .blkb 5 + 002C .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 002C L56: + 002C .blkb 5 .area idata - 0017 D6DCCBC400 .byte 214,220,203,196,0 + 002C D6DCCBC400 .byte 214,220,203,196,0 .area data(ram, con, rel) - 001C .dbfile E:\git\AVR\OldManAlarm\12864time.c - 001C L54: - 001C .blkb 5 + 0031 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 0031 L53: + 0031 .blkb 5 .area idata - 001C D6DCC8FD00 .byte 214,220,200,253,0 + 0031 D6DCC8FD00 .byte 214,220,200,253,0 .area data(ram, con, rel) - 0021 .dbfile E:\git\AVR\OldManAlarm\12864time.c - 0021 L51: - 0021 .blkb 5 + 0036 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 0036 L50: + 0036 .blkb 5 .area idata - 0021 D6DCB6FE00 .byte 214,220,182,254,0 + 0036 D6DCB6FE00 .byte 214,220,182,254,0 .area data(ram, con, rel) - 0026 .dbfile E:\git\AVR\OldManAlarm\12864time.c - 0026 L48: - 0026 .blkb 5 + 003B .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 003B L47: + 003B .blkb 5 .area idata - 0026 D6DCD2BB00 .byte 214,220,210,187,0 + 003B D6DCD2BB00 .byte 214,220,210,187,0 .area data(ram, con, rel) - 002B .dbfile E:\git\AVR\OldManAlarm\12864time.c - 002B ; } + 0040 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c + 0040 ; } diff --git a/12864time.o b/12864time.o index e67e306..9f5932a 100644 --- a/12864time.o +++ b/12864time.o @@ -1,13 +1,14 @@ XL -H 3 areas C global symbols +H 3 areas E global symbols M _12864time.c S _delay_nms Ref0000 S _DisplayCgrom Ref0000 S _LCD_write_com Ref0000 S _LCD_write_data Ref0000 -A text size 374 flags 0 +S asgnblk Ref0000 +A text size 440 flags 0 dbfile 12864time.c -dbfile E:\git\AVR\OldManAlarm\12864time.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c dbfunc e ds1302_write_byte 0 fV dbsym r i 14 c dbsym r d 12 c @@ -107,128 +108,158 @@ dbline 74 B2 dbline 75 BA dbline 76 C2 dbline 77 CA -dbline 78 D2 -dbline 79 DA -dbline FFFFFFFE DE -dbline 0 DE -dbfunc e ds1302_read_time E0 fV -dbline FFFFFFFF E4 -dbline 81 E4 -dbline 83 E4 -dbline 84 EC -dbline 85 F4 -dbline 86 FE -dbline 87 108 -dbline 88 112 -dbline 89 120 -dbline FFFFFFFE 12A -dbline 0 12A -dbfunc e ds1302_init 130 fV -dbline FFFFFFFF 130 -dbline 91 130 -dbline 93 130 -dbline 94 132 -dbline 95 134 -dbline 96 136 -dbline FFFFFFFE 138 -dbline 0 138 -dbfunc e dayToChina 13A fV +dbline 79 D2 +dbline FFFFFFFE D6 +dbline 0 D6 +dbfunc e ds1302_read_time D8 fV +dbline FFFFFFFF DC +dbline 81 DC +dbline 83 DC +dbline 84 E4 +dbline 85 EC +dbline 86 F6 +dbline 87 100 +dbline 88 10A +dbline 89 118 +dbline FFFFFFFE 122 +dbline 0 122 +dbfunc e ds1302_init 128 fV +dbline FFFFFFFF 128 +dbline 91 128 +dbline 93 128 +dbline 94 12A +dbline 95 12C +dbline 96 12E +dbline FFFFFFFE 130 +dbline 0 130 +dbfunc e dayToChina 132 fV dbsym r day 14 c -dbline FFFFFFFF 13E -dbline 9F 13E -dbline A0 13E -dbline A1 142 -dbline A2 14C -dbline A3 150 -dbline A4 15A -dbline A5 15E -dbline A6 168 -dbline A7 16C -dbline A8 176 -dbline A9 17A -dbline AA 184 -dbline AB 188 -dbline AC 192 -dbline AD 196 -dbline FFFFFFFE 1A0 -dbline 0 1A0 -dbfunc e displayDateTime 1A4 fV +dbline FFFFFFFF 136 +dbline 9F 136 +dbline A0 136 +dbline A1 13A +dbline A2 144 +dbline A3 148 +dbline A4 152 +dbline A5 156 +dbline A6 160 +dbline A7 164 +dbline A8 16E +dbline A9 172 +dbline AA 17C +dbline AB 180 +dbline AC 18A +dbline AD 18E +dbline FFFFFFFE 198 +dbline 0 198 +dbfunc e displayDateTime 19C fV dbsym l temp 0 c -dbline FFFFFFFF 1A6 -dbline B4 1A6 -dbline B6 1A6 -dbline B7 1AE -dbline B9 1B0 -dbline BA 1B6 -dbline BB 1BE -dbline BC 1CA -dbline BD 1D0 -dbline BE 1D8 -dbline BF 1E2 -dbline C0 1E8 -dbline C1 1F0 -dbline C2 1FC -dbline C3 202 -dbline C5 20A -dbline C6 214 -dbline C7 21A -dbline C8 222 -dbline C9 228 -dbline CB 230 -dbline CC 23C -dbline CD 242 -dbline CE 24A -dbline CF 254 -dbline D0 25A -dbline D1 262 -dbline D2 268 -dbline D4 270 -dbline D5 27C -dbline D6 282 -dbline D7 28A -dbline D8 294 -dbline D9 29A -dbline DC 2A2 -dbline DD 2A8 -dbline E0 2B0 -dbline E1 2B6 -dbline E3 2BE -dbline E4 2CA -dbline E5 2D0 -dbline E6 2D8 -dbline E7 2E2 -dbline E8 2E8 -dbline E9 2F0 -dbline EA 2F6 -dbline EC 2FE -dbline ED 30A -dbline EE 310 -dbline EF 318 -dbline F0 322 -dbline F1 328 -dbline F2 330 -dbline F3 336 -dbline F5 33E -dbline F6 34A -dbline F7 350 -dbline F8 358 -dbline F9 362 -dbline FA 368 -dbline FFFFFFFE 370 -dbline 0 370 -S _ds1302_read_time Def00E0 +dbline FFFFFFFF 19E +dbline B4 19E +dbline B6 19E +dbline B7 1A6 +dbline B9 1A8 +dbline BA 1AE +dbline BB 1B6 +dbline BC 1C2 +dbline BD 1C8 +dbline BE 1D0 +dbline BF 1DA +dbline C0 1E0 +dbline C1 1E8 +dbline C2 1F4 +dbline C3 1FA +dbline C5 202 +dbline C6 20C +dbline C7 212 +dbline C8 21A +dbline C9 220 +dbline CB 228 +dbline CC 234 +dbline CD 23A +dbline CE 242 +dbline CF 24C +dbline D0 252 +dbline D1 25A +dbline D2 260 +dbline D4 268 +dbline D5 274 +dbline D6 27A +dbline D7 282 +dbline D8 28C +dbline D9 292 +dbline DC 29A +dbline DD 2A0 +dbline E0 2A8 +dbline E1 2AE +dbline E3 2B6 +dbline E4 2C2 +dbline E5 2C8 +dbline E6 2D0 +dbline E7 2DA +dbline E8 2E0 +dbline E9 2E8 +dbline EA 2EE +dbline EC 2F6 +dbline ED 302 +dbline EE 308 +dbline EF 310 +dbline F0 31A +dbline F1 320 +dbline F2 328 +dbline F3 32E +dbline F5 336 +dbline F6 342 +dbline F7 348 +dbline F8 350 +dbline F9 35A +dbline FA 360 +dbline FFFFFFFE 368 +dbline 0 368 +dbfunc e Timetostr 36C fpc +dbsym l str 0 A[21:21]c +dbline FFFFFFFF 36E +dbline FF 36E +dbline 100 36E +dbline 101 384 +dbline 102 386 +dbline 103 392 +dbline 104 39C +dbline 105 3A8 +dbline 106 3B2 +dbline 107 3B6 +dbline 108 3C2 +dbline 109 3CC +dbline 10A 3D0 +dbline 10B 3DC +dbline 10C 3E6 +dbline 10C 3EA +dbline 10D 3EC +dbline 10E 3F8 +dbline 10F 402 +dbline 110 406 +dbline 111 412 +dbline 112 41C +dbline 113 420 +dbline 114 42C +dbline 115 436 +dbline 116 43A +dbline FFFFFFFE 43C +dbline 0 43C +S _ds1302_read_time Def00D8 S _ds1302_read_byte Def0044 -S _ds1302_init Def0130 -S _dayToChina Def013A -S _displayDateTime Def01A4 +S _ds1302_init Def0128 +S _Timetostr Def036C +S _dayToChina Def0132 +S _displayDateTime Def019C S _ds1302_write_time Def008E S _ds1302_write_byte Def0000 -A data size 2B flags 20 +A data size 40 flags 20 dbfile 12864time.c -dbfile E:\git\AVR\OldManAlarm\12864time.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c dbsym e time_buf 0 A[8:8]c S _time_buf Def0000 -A idata size 2B flags 0 +A idata size 40 flags 0 T 00 00 20 14 R 00 00 02 00 T 02 00 10 14 @@ -267,125 +298,163 @@ T AA 00 20 91 03 00 06 E8 A7 DF 20 91 07 00 0A E8 R 00 00 00 00 00 04 01 00 00 0C 01 00 T B8 00 A3 DF 20 91 04 00 04 E8 9F DF 20 91 05 00 R 00 00 00 00 00 06 01 00 00 0E 01 00 -T C6 00 02 E8 9B DF 20 91 06 00 00 E8 97 DF 20 91 +T C6 00 02 E8 9B DF 20 91 06 00 00 E8 97 DF 20 E8 R 00 00 00 00 00 08 01 00 -T D4 00 07 00 0A E8 93 DF 20 E8 0E E8 90 CF -R 00 00 00 00 00 02 01 00 -T E0 00 AA 92 4A 93 0C E8 AE DF 00 93 01 00 08 E8 +T D4 00 0E E8 94 CF +R 00 00 00 00 +T D8 00 AA 92 4A 93 0C E8 B2 DF 00 93 01 00 08 E8 R 00 00 00 00 00 0C 01 00 -T EE 00 AA DF 00 93 02 00 06 E8 A6 DF A0 2E A0 92 +T E6 00 AE DF 00 93 02 00 06 E8 AA DF A0 2E A0 92 R 00 00 00 00 00 06 01 00 -T FC 00 03 00 04 E8 A1 DF A0 2E A0 92 04 00 02 E8 +T F4 00 03 00 04 E8 A5 DF A0 2E A0 92 04 00 02 E8 R 00 00 00 00 00 02 01 00 00 0C 01 00 -T 0A 01 9C DF A0 2E A0 92 05 00 00 E8 97 DF 40 2F +T 02 01 A0 DF A0 2E A0 92 05 00 00 E8 9B DF 40 2F R 00 00 00 00 00 08 01 00 -T 18 01 84 2F 8F 77 80 93 06 00 0A E8 90 DF A0 2E +T 10 01 84 2F 8F 77 80 93 06 00 0A E8 94 DF A0 2E R 00 00 00 00 00 08 01 00 -T 26 01 A0 92 07 00 49 91 A9 90 08 95 +T 1E 01 A0 92 07 00 49 91 A9 90 08 95 R 00 00 00 00 00 04 01 00 -T 30 01 1F 98 1D 98 17 9A 15 9A 08 95 +T 28 01 1F 98 1D 98 17 9A 15 9A 08 95 R 00 00 00 00 -T 3A 01 4A 93 40 2F 41 30 29 F4 20 E0 30 E0 06 E8 -R 00 00 00 00 20 0A 01 00 26 00 40 0C 01 00 26 00 -T 48 01 0E 94 00 00 42 30 29 F4 20 E0 -R 00 00 00 00 12 04 01 00 20 0A 01 00 21 00 -T 52 01 30 E0 06 E8 0E 94 00 00 43 30 29 F4 -R 00 00 00 00 40 02 01 00 21 00 12 08 01 00 -T 5E 01 20 E0 30 E0 06 E8 -R 00 00 00 00 20 02 01 00 1C 00 40 04 01 00 1C 00 -T 64 01 0E 94 00 00 44 30 29 F4 20 E0 -R 00 00 00 00 12 04 01 00 20 0A 01 00 17 00 -T 6E 01 30 E0 06 E8 0E 94 00 00 45 30 29 F4 -R 00 00 00 00 40 02 01 00 17 00 12 08 01 00 -T 7A 01 20 E0 30 E0 06 E8 -R 00 00 00 00 20 02 01 00 12 00 40 04 01 00 12 00 -T 80 01 0E 94 00 00 46 30 29 F4 20 E0 -R 00 00 00 00 12 04 01 00 20 0A 01 00 0D 00 -T 8A 01 30 E0 06 E8 0E 94 00 00 47 30 29 F4 -R 00 00 00 00 40 02 01 00 0D 00 12 08 01 00 -T 96 01 20 E0 30 E0 06 E8 -R 00 00 00 00 20 02 01 00 08 00 40 04 01 00 08 00 -T 9C 01 0E 94 00 00 49 91 08 95 +T 32 01 4A 93 40 2F 41 30 29 F4 20 E0 30 E0 06 E8 +R 00 00 00 00 20 0A 01 00 3B 00 40 0C 01 00 3B 00 +T 40 01 0E 94 00 00 42 30 29 F4 20 E0 +R 00 00 00 00 12 04 01 00 20 0A 01 00 36 00 +T 4A 01 30 E0 06 E8 0E 94 00 00 43 30 29 F4 +R 00 00 00 00 40 02 01 00 36 00 12 08 01 00 +T 56 01 20 E0 30 E0 06 E8 +R 00 00 00 00 20 02 01 00 31 00 40 04 01 00 31 00 +T 5C 01 0E 94 00 00 44 30 29 F4 20 E0 +R 00 00 00 00 12 04 01 00 20 0A 01 00 2C 00 +T 66 01 30 E0 06 E8 0E 94 00 00 45 30 29 F4 +R 00 00 00 00 40 02 01 00 2C 00 12 08 01 00 +T 72 01 20 E0 30 E0 06 E8 +R 00 00 00 00 20 02 01 00 27 00 40 04 01 00 27 00 +T 78 01 0E 94 00 00 46 30 29 F4 20 E0 +R 00 00 00 00 12 04 01 00 20 0A 01 00 22 00 +T 82 01 30 E0 06 E8 0E 94 00 00 47 30 29 F4 +R 00 00 00 00 40 02 01 00 22 00 12 08 01 00 +T 8E 01 20 E0 30 E0 06 E8 +R 00 00 00 00 20 02 01 00 1D 00 40 04 01 00 1D 00 +T 94 01 0E 94 00 00 49 91 08 95 R 00 00 00 00 12 04 01 00 -T A4 01 21 97 08 EC 10 E0 0E 94 00 00 98 DF 00 E8 +T 9C 01 21 97 08 EC 10 E0 0E 94 00 00 98 DF 00 E8 R 00 00 00 00 12 0A 00 00 -T B2 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 +T AA 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 R 00 00 00 00 12 04 02 00 12 0C 00 00 -T C0 01 00 00 82 95 8F 70 80 5D 88 83 08 2F +T B8 01 00 00 82 95 8F 70 80 5D 88 83 08 2F R 00 00 00 00 00 02 01 00 -T CC 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 +T C4 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 R 00 00 00 00 12 04 03 00 12 0C 00 00 -T DA 01 00 00 8F 70 80 5D 88 83 08 2F 0E 94 00 00 +T D2 01 00 00 8F 70 80 5D 88 83 08 2F 0E 94 00 00 R 00 00 00 00 00 02 01 00 12 0E 03 00 -T E8 01 02 E0 10 E0 0E 94 00 00 80 91 01 00 82 95 +T E0 01 02 E0 10 E0 0E 94 00 00 80 91 01 00 82 95 R 00 00 00 00 12 08 00 00 00 0C 01 00 -T F6 01 8F 70 80 5D 88 83 08 2F 0E 94 00 00 02 E0 +T EE 01 8F 70 80 5D 88 83 08 2F 0E 94 00 00 02 E0 R 00 00 00 00 12 0C 03 00 -T 04 02 10 E0 0E 94 00 00 80 91 01 00 8F 70 80 5D +T FC 01 10 E0 0E 94 00 00 80 91 01 00 8F 70 80 5D R 00 00 00 00 12 06 00 00 00 0A 01 00 -T 12 02 88 83 08 2F 0E 94 00 00 02 E0 10 E0 +T 0A 02 88 83 08 2F 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 08 03 00 -T 1E 02 0E 94 00 00 0D E2 0E 94 00 00 02 E0 10 E0 +T 16 02 0E 94 00 00 0D E2 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 04 00 00 12 0A 03 00 -T 2C 02 0E 94 00 00 80 91 02 00 82 95 8F 70 80 5D +T 24 02 0E 94 00 00 80 91 02 00 82 95 8F 70 80 5D R 00 00 00 00 12 04 00 00 00 08 01 00 -T 3A 02 88 83 08 2F 0E 94 00 00 02 E0 10 E0 +T 32 02 88 83 08 2F 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 08 03 00 -T 46 02 0E 94 00 00 80 91 02 00 8F 70 80 5D 88 83 +T 3E 02 0E 94 00 00 80 91 02 00 8F 70 80 5D 88 83 R 00 00 00 00 12 04 00 00 00 08 01 00 -T 54 02 08 2F 0E 94 00 00 02 E0 10 E0 0E 94 00 00 +T 4C 02 08 2F 0E 94 00 00 02 E0 10 E0 0E 94 00 00 R 00 00 00 00 12 06 03 00 12 0E 00 00 -T 62 02 0D E2 0E 94 00 00 02 E0 10 E0 0E 94 00 00 +T 5A 02 0D E2 0E 94 00 00 02 E0 10 E0 0E 94 00 00 R 00 00 00 00 12 06 03 00 12 0E 00 00 -T 70 02 80 91 03 00 82 95 8F 70 80 5D 88 83 08 2F +T 68 02 80 91 03 00 82 95 8F 70 80 5D 88 83 08 2F R 00 00 00 00 00 04 01 00 -T 7E 02 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 +T 76 02 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 R 00 00 00 00 12 04 03 00 12 0C 00 00 -T 8C 02 03 00 8F 70 80 5D 88 83 08 2F 0E 94 00 00 +T 84 02 03 00 8F 70 80 5D 88 83 08 2F 0E 94 00 00 R 00 00 00 00 00 02 01 00 12 0E 03 00 -T 9A 02 02 E0 10 E0 0E 94 00 00 00 91 07 00 49 DF +T 92 02 02 E0 10 E0 0E 94 00 00 00 91 07 00 49 DF R 00 00 00 00 12 08 00 00 00 0C 01 00 -T A8 02 02 E0 10 E0 0E 94 00 00 00 E9 0E 94 00 00 +T A0 02 02 E0 10 E0 0E 94 00 00 00 E9 0E 94 00 00 R 00 00 00 00 12 08 00 00 12 0E 02 00 -T B6 02 05 E0 10 E0 0E 94 00 00 80 91 04 00 82 95 +T AE 02 05 E0 10 E0 0E 94 00 00 80 91 04 00 82 95 R 00 00 00 00 12 08 00 00 00 0C 01 00 -T C4 02 8F 70 80 5D 88 83 08 2F 0E 94 00 00 02 E0 +T BC 02 8F 70 80 5D 88 83 08 2F 0E 94 00 00 02 E0 R 00 00 00 00 12 0C 03 00 -T D2 02 10 E0 0E 94 00 00 80 91 04 00 8F 70 80 5D +T CA 02 10 E0 0E 94 00 00 80 91 04 00 8F 70 80 5D R 00 00 00 00 12 06 00 00 00 0A 01 00 -T E0 02 88 83 08 2F 0E 94 00 00 02 E0 10 E0 +T D8 02 88 83 08 2F 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 08 03 00 -T EC 02 0E 94 00 00 0A E3 0E 94 00 00 02 E0 10 E0 +T E4 02 0E 94 00 00 0A E3 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 04 00 00 12 0A 03 00 -T FA 02 0E 94 00 00 80 91 05 00 82 95 8F 70 80 5D +T F2 02 0E 94 00 00 80 91 05 00 82 95 8F 70 80 5D R 00 00 00 00 12 04 00 00 00 08 01 00 -T 08 03 88 83 08 2F 0E 94 00 00 02 E0 10 E0 +T 00 03 88 83 08 2F 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 08 03 00 -T 14 03 0E 94 00 00 80 91 05 00 8F 70 80 5D 88 83 +T 0C 03 0E 94 00 00 80 91 05 00 8F 70 80 5D 88 83 R 00 00 00 00 12 04 00 00 00 08 01 00 -T 22 03 08 2F 0E 94 00 00 02 E0 10 E0 0E 94 00 00 +T 1A 03 08 2F 0E 94 00 00 02 E0 10 E0 0E 94 00 00 R 00 00 00 00 12 06 03 00 12 0E 00 00 -T 30 03 0A E3 0E 94 00 00 02 E0 10 E0 0E 94 00 00 +T 28 03 0A E3 0E 94 00 00 02 E0 10 E0 0E 94 00 00 R 00 00 00 00 12 06 03 00 12 0E 00 00 -T 3E 03 80 91 06 00 82 95 8F 70 80 5D 88 83 08 2F +T 36 03 80 91 06 00 82 95 8F 70 80 5D 88 83 08 2F R 00 00 00 00 00 04 01 00 -T 4C 03 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 +T 44 03 0E 94 00 00 02 E0 10 E0 0E 94 00 00 80 91 R 00 00 00 00 12 04 03 00 12 0C 00 00 -T 5A 03 06 00 8F 70 80 5D 88 83 08 2F 0E 94 00 00 +T 52 03 06 00 8F 70 80 5D 88 83 08 2F 0E 94 00 00 R 00 00 00 00 00 02 01 00 12 0E 03 00 -T 68 03 02 E0 10 E0 0E 94 00 00 21 96 08 95 +T 60 03 02 E0 10 E0 0E 94 00 00 21 96 08 95 R 00 00 00 00 12 08 00 00 -T 08 00 D6 DC C8 D5 00 +T 08 00 00 00 +R 00 00 02 00 +T 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +R 00 00 02 00 +T 18 00 00 00 00 00 00 +R 00 00 02 00 +T 6C 03 65 97 80 E0 90 E0 FE 01 05 E1 10 E0 FA 93 +R 00 00 00 00 20 04 01 00 08 00 40 06 01 00 08 00 +T 7A 03 EA 93 9A 93 8A 93 0E 94 00 00 A9 DE 80 91 +R 00 00 00 00 12 0A 04 00 +T 88 03 00 00 82 95 8F 70 80 5D 88 83 80 91 00 00 +R 00 00 00 00 00 02 01 00 00 0E 01 00 +T 96 03 8F 70 80 5D 89 83 80 91 01 00 82 95 8F 70 +R 00 00 00 00 00 0A 01 00 +T A4 03 80 5D 8A 83 80 91 01 00 8F 70 80 5D 8B 83 +R 00 00 00 00 00 08 01 00 +T B2 03 8D E2 8C 83 80 91 02 00 82 95 8F 70 80 5D +R 00 00 00 00 00 08 01 00 +T C0 03 8D 83 80 91 02 00 8F 70 80 5D 8E 83 8D E2 +R 00 00 00 00 00 06 01 00 +T CE 03 8F 83 80 91 03 00 82 95 8F 70 80 5D 88 87 +R 00 00 00 00 00 06 01 00 +T DC 03 80 91 03 00 8F 70 80 5D 89 87 80 E2 8A 87 +R 00 00 00 00 00 04 01 00 +T EA 03 8B 87 80 91 04 00 82 95 8F 70 80 5D 8C 87 +R 00 00 00 00 00 06 01 00 +T F8 03 80 91 04 00 8F 70 80 5D 8D 87 8A E3 8E 87 +R 00 00 00 00 00 04 01 00 +T 06 04 80 91 05 00 82 95 8F 70 80 5D 8F 87 80 91 +R 00 00 00 00 00 04 01 00 +T 14 04 05 00 8F 70 80 5D 88 8B 8A E3 89 8B 80 91 +R 00 00 00 00 00 02 01 00 +T 22 04 06 00 82 95 8F 70 80 5D 8A 8B 80 91 06 00 +R 00 00 00 00 00 02 01 00 00 0E 01 00 +T 30 04 8F 70 80 5D 8B 8B 22 24 2C 8A 8E 01 65 96 +R 00 00 00 00 +T 3E 04 08 95 +R 00 00 00 00 +T 1D 00 D6 DC C8 D5 00 R 00 00 02 00 -T 0D 00 D6 DC C1 F9 00 +T 22 00 D6 DC C1 F9 00 R 00 00 02 00 -T 12 00 D6 DC CE E5 00 +T 27 00 D6 DC CE E5 00 R 00 00 02 00 -T 17 00 D6 DC CB C4 00 +T 2C 00 D6 DC CB C4 00 R 00 00 02 00 -T 1C 00 D6 DC C8 FD 00 +T 31 00 D6 DC C8 FD 00 R 00 00 02 00 -T 21 00 D6 DC B6 FE 00 +T 36 00 D6 DC B6 FE 00 R 00 00 02 00 -T 26 00 D6 DC D2 BB 00 +T 3B 00 D6 DC D2 BB 00 R 00 00 02 00 diff --git a/BACKUP/12864time._c b/BACKUP/12864time._c new file mode 100644 index 0000000..0036dbe --- /dev/null +++ b/BACKUP/12864time._c @@ -0,0 +1,279 @@ +//DMAVR-128开发板12864型液晶显示实时时钟驱动程序 +//编译环境 编译环境 ICCAVR 7.16A +//系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms +//作者:阿迪 www.avrgcc.com +//日期:2010.12.112 + +//*********************************************************************** +// 包含文件 +//*********************************************************************** + + + +#include +#include "12864time.h" +#include "basic.h" +#include "LCD.h" + +volatile unsigned char time_buf[8] = {0x20,0x14,0x10,0x14,0x22,0x54,0x59,0x05}; + +//*********************************************************************** +//向DS1302写入一字节数据 +//*********************************************************************** +void ds1302_write_byte(unsigned char addr, unsigned char d) +{ + + unsigned char i; + RST_SET; //启动DS1302总线 + + //写入目标地址:addr + IO_OUT; + addr = addr & 0xFE; //最低位置零 + for (i = 0; i < 8; i ++) { + if (addr & 0x01) { + IO_SET; + } + else { + IO_CLR; + } + SCK_SET; + SCK_CLR; + addr = addr >> 1; + } + + //写入数据:d + IO_OUT; + for (i = 0; i < 8; i ++) { + if (d & 0x01) { + IO_SET; + } + else { + IO_CLR; + } + SCK_SET; + SCK_CLR; + d = d >> 1; + } + RST_CLR; //停止DS1302总线 +} + +//*********************************************************************** +// 从DS1302读出一字节数据 +//*********************************************************************** +unsigned char ds1302_read_byte(unsigned char addr) + { + + unsigned char i; + unsigned char temp; + RST_SET; //启动DS1302总线 + + //写入目标地址:addr + IO_OUT; + addr = addr | 0x01; //最低位置高 + for (i = 0; i < 8; i ++) { + if (addr & 0x01) { + IO_SET; + } + else { + IO_CLR; + } + SCK_SET; + SCK_CLR; + addr = addr >> 1; + } + + /*输出数据:temp*/ + IO_IN; + for (i = 0; i < 8; i ++) { + temp = temp >> 1; + if (IO_R) { + temp |= 0x80; + } + else { + temp &= 0x7F; + } + SCK_SET; + SCK_CLR; + } + + RST_CLR; //停止DS1302总线 + return temp; +} + +//*********************************************************************** +// 向DS302写入时钟数据 +//*********************************************************************** + +void ds1302_write_time(void) + { + + ds1302_write_byte(ds1302_control_add,0x00); //关闭写保护 + ds1302_write_byte(ds1302_sec_add,0x80); //暂停 + //ds1302_write_byte(ds1302_charger_add,0xa9); //涓流充电 + ds1302_write_byte(ds1302_year_add,time_buf[1]); //年 + ds1302_write_byte(ds1302_month_add,time_buf[2]); //月 + ds1302_write_byte(ds1302_date_add,time_buf[3]); //日 + ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 + ds1302_write_byte(ds1302_hr_add,time_buf[4]); //时 + ds1302_write_byte(ds1302_min_add,time_buf[5]); //分 + ds1302_write_byte(ds1302_sec_add,time_buf[6]); //秒 + //ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 + ds1302_write_byte(ds1302_control_add,0x80); //打开写保护 +} + +//*********************************************************************** +// 从DS302读出时钟数据 +//*********************************************************************** + +void ds1302_read_time(void) +{ + + time_buf[1]=ds1302_read_byte(ds1302_year_add); //年 + time_buf[2]=ds1302_read_byte(ds1302_month_add); //月 + time_buf[3]=ds1302_read_byte(ds1302_date_add); //日 + time_buf[4]=ds1302_read_byte(ds1302_hr_add); //时 + time_buf[5]=ds1302_read_byte(ds1302_min_add); //分 + time_buf[6]=(ds1302_read_byte(ds1302_sec_add))&0x7F;//秒 + time_buf[7]=ds1302_read_byte(ds1302_day_add); //周 +} + +//*********************************************************************** +// DS302初始化函数 +//*********************************************************************** + +void ds1302_init(void) +{ + + RST_CLR; //RST脚置低 + SCK_CLR; //SCK脚置低 + RST_OUT; //RST脚设置为输出 + SCK_OUT; //SCK脚设置为输出 +} + + + +//*********************************************************************** +// 数字周转中文周 +//*********************************************************************** +void dayToChina(unsigned char day) +{ + if(day == 0x01) + DisplayCgrom(0x86,"周一"); + if(day == 0x02) + DisplayCgrom(0x86,"周二"); + if(day == 0x03) + DisplayCgrom(0x86,"周三"); + if(day == 0x04) + DisplayCgrom(0x86,"周四"); + if(day == 0x05) + DisplayCgrom(0x86,"周五"); + if(day == 0x06) + DisplayCgrom(0x86,"周六"); + if(day == 0x07) + DisplayCgrom(0x86,"周日"); +} + +//*********************************************************************** +// 显示系统时间 年月日、星期 +//*********************************************************************** +void displayDateTime(void) +{ + volatile unsigned char temp; + delay_nms(200); + ds1302_read_time(); //读DS1302数据 + + LCD_write_com(0x80); + delay_nms(2); + temp = (time_buf[0] >> 4) + '0'; //在LCD上写要显示的数据 + LCD_write_data(temp); + delay_nms(2); + temp = (time_buf[0] & 0x0F) + '0'; + LCD_write_data(temp); + delay_nms(2); + temp = (time_buf[1] >> 4) + '0'; + LCD_write_data(temp); + delay_nms(2); + + temp = (time_buf[1] & 0x0F) + '0'; + LCD_write_data(temp); + delay_nms(2); + LCD_write_data('-'); + delay_nms(2); + + temp = (time_buf[2] >> 4) + '0'; + LCD_write_data(temp); + delay_nms(2); + temp = (time_buf[2] & 0x0F) + '0'; + LCD_write_data(temp); + delay_nms(2); + LCD_write_data('-'); + delay_nms(2); + + temp = (time_buf[3] >> 4) + '0'; + LCD_write_data(temp); + delay_nms(2); + temp = (time_buf[3] & 0x0F) + '0'; + LCD_write_data(temp); + delay_nms(2); + + //显示星期 + dayToChina(time_buf[7]); + delay_nms(2); + + + LCD_write_com(0x90); + delay_nms(5); + + temp = (time_buf[4] >> 4) + '0'; + LCD_write_data(temp); + delay_nms(2); + temp = (time_buf[4] & 0x0F) + '0'; + LCD_write_data(temp); + delay_nms(2); + LCD_write_data(':'); + delay_nms(2); + + temp = (time_buf[5] >> 4) + '0'; + LCD_write_data(temp); + delay_nms(2); + temp = (time_buf[5] & 0x0F) + '0'; + LCD_write_data(temp); + delay_nms(2); + LCD_write_data(':'); + delay_nms(2); + + temp = (time_buf[6] >> 4) + '0'; + LCD_write_data(temp); + delay_nms(2); + temp = (time_buf[6] & 0x0F) + '0'; + LCD_write_data(temp); + delay_nms(2); +} + +//读取时间,保存到数组中 +uchar* Timetostr(void) +{ + uchar str[21]="\0"; //时间字符串数组 + ds1302_read_time(); //读DS1302数据 + str[0] = (time_buf[0] >> 4) + '0'; + str[1] = (time_buf[0] & 0x0f) + '0'; + str[2] = (time_buf[1] >> 4) + '0'; + str[3] = (time_buf[1] & 0x0f) + '0'; + str[4] = '-'; + str[5] = (time_buf[2] >> 4) + '0'; + str[6] = (time_buf[2] & 0x0f) + '0'; + str[7] = '-'; + str[8]= (time_buf[3] >> 4) + '0'; + str[9] = (time_buf[3] & 0x0f) + '0'; + str[10] = ' '; str[11] = ' '; + str[12]= (time_buf[4] >> 4) + '0'; + str[13] = (time_buf[4] & 0x0f) + '0'; + str[14] = ':'; + str[15] = (time_buf[5] >> 4) + '0'; + str[16] = (time_buf[5] & 0x0f) + '0'; + str[17] = ':'; + str[18] = (time_buf[6] >> 4) + '0'; + str[19] = (time_buf[6] & 0x0f) + '0'; + str[20] = 0; + return str; +} \ No newline at end of file diff --git a/BACKUP/12864time._h b/BACKUP/12864time._h index c07386a..06f5ffc 100644 --- a/BACKUP/12864time._h +++ b/BACKUP/12864time._h @@ -1,4 +1,4 @@ -0//*********************************************************************** +//*********************************************************************** // 定义变量区 //*********************************************************************** #define LOW 0 @@ -42,3 +42,4 @@ void ds1302_read_time(void); void ds1302_init(void); void dayToChina(unsigned char day); void displayDateTime(void); +uchar * Timetostr(void); \ No newline at end of file diff --git a/BACKUP/12864time.h.161112150200 b/BACKUP/12864time.h.161112150200 new file mode 100644 index 0000000..c07386a --- /dev/null +++ b/BACKUP/12864time.h.161112150200 @@ -0,0 +1,44 @@ +0//*********************************************************************** +// 定义变量区 +//*********************************************************************** +#define LOW 0 +#define HIGH 1 + + +/*复位脚*/ +#define RST_CLR PORTE &= ~(1 << PE7) //电平置低 +#define RST_SET PORTE |= (1 << PE7) //电平置高 +#define RST_IN DDRE &= ~(1 << PE7) //方向输入 +#define RST_OUT DDRE |= (1 << PE7) //方向输出 + +/*双向数据*/ +#define IO_CLR PORTE &= ~(1 << PE6) //电平置低 +#define IO_SET PORTE |= (1 << PE6) //电平置高 +#define IO_R PINE & (1 << PE6) //电平读取 +#define IO_IN DDRE &= ~(1 << PE6) //方向输入 +#define IO_OUT DDRE |= (1 << PE6) //方向输出 +/*时钟信号*/ +#define SCK_CLR PORTE &= ~(1 << PE5) //时钟信号 +#define SCK_SET PORTE |= (1 << PE5) //电平置高 +#define SCK_IN DDRE &= ~(1 << PE5) //方向输入 +#define SCK_OUT DDRE |= (1 << PE5) //方向输出 + +/*ds1302命令与相关地址*/ +#define ds1302_sec_add 0x80 //秒数据地址 +#define ds1302_min_add 0x82 //分数据地址 +#define ds1302_hr_add 0x84 //时数据地址 +#define ds1302_date_add 0x86 //日数据地址 +#define ds1302_month_add 0x88 //月数据地址 +#define ds1302_day_add 0x8a //星期数据地址 +#define ds1302_year_add 0x8c //年数据地址 +#define ds1302_control_add 0x8e //控制数据地址 +#define ds1302_charger_add 0x90 +#define ds1302_clkburst_add 0xbe + +void ds1302_write_byte(unsigned char addr, unsigned char d); +unsigned char ds1302_read_byte(unsigned char addr); +void ds1302_write_time(void); +void ds1302_read_time(void); +void ds1302_init(void); +void dayToChina(unsigned char day); +void displayDateTime(void); diff --git a/BACKUP/12864time.h.161113234012 b/BACKUP/12864time.h.161113234012 new file mode 100644 index 0000000..e27dcaf --- /dev/null +++ b/BACKUP/12864time.h.161113234012 @@ -0,0 +1,45 @@ +//*********************************************************************** +// 定义变量区 +//*********************************************************************** +#define LOW 0 +#define HIGH 1 + + +/*复位脚*/ +#define RST_CLR PORTE &= ~(1 << PE7) //电平置低 +#define RST_SET PORTE |= (1 << PE7) //电平置高 +#define RST_IN DDRE &= ~(1 << PE7) //方向输入 +#define RST_OUT DDRE |= (1 << PE7) //方向输出 + +/*双向数据*/ +#define IO_CLR PORTE &= ~(1 << PE6) //电平置低 +#define IO_SET PORTE |= (1 << PE6) //电平置高 +#define IO_R PINE & (1 << PE6) //电平读取 +#define IO_IN DDRE &= ~(1 << PE6) //方向输入 +#define IO_OUT DDRE |= (1 << PE6) //方向输出 +/*时钟信号*/ +#define SCK_CLR PORTE &= ~(1 << PE5) //时钟信号 +#define SCK_SET PORTE |= (1 << PE5) //电平置高 +#define SCK_IN DDRE &= ~(1 << PE5) //方向输入 +#define SCK_OUT DDRE |= (1 << PE5) //方向输出 + +/*ds1302命令与相关地址*/ +#define ds1302_sec_add 0x80 //秒数据地址 +#define ds1302_min_add 0x82 //分数据地址 +#define ds1302_hr_add 0x84 //时数据地址 +#define ds1302_date_add 0x86 //日数据地址 +#define ds1302_month_add 0x88 //月数据地址 +#define ds1302_day_add 0x8a //星期数据地址 +#define ds1302_year_add 0x8c //年数据地址 +#define ds1302_control_add 0x8e //控制数据地址 +#define ds1302_charger_add 0x90 +#define ds1302_clkburst_add 0xbe + +void ds1302_write_byte(unsigned char addr, unsigned char d); +unsigned char ds1302_read_byte(unsigned char addr); +void ds1302_write_time(void); +void ds1302_read_time(void); +void ds1302_init(void); +void dayToChina(unsigned char day); +void displayDateTime(void); +uchar* Timetostr(void); \ No newline at end of file diff --git a/BACKUP/main._c b/BACKUP/main._c index f56f3d9..e24bcae 100644 --- a/BACKUP/main._c +++ b/BACKUP/main._c @@ -84,7 +84,9 @@ void main(void) // volatile unsigned char temp; uchar u8temp; uchar command; - uchar temp; + uchar temp; + uchar timestr[21]; //时间字符串数组 + uchar tempstr[7]; //温度字符串数组 system_init(); //系统初始化,设置IO口属性 delay_nms(100); //延时100ms @@ -111,6 +113,21 @@ void main(void) displayDateTime(); LCD_write_temperature(); + + //wifi + while(RxBufWr_wifi != RxBufRd_wifi) { + LCD_write_com(0x98); + delay_nms(2); + u8temp = RxCharBuf_wifi[RxBufRd_wifi]; + RxBufRd_wifi++; + RxBufRd_wifi &= 0x0f; + if(u8temp == 0x0d) break; + LCD_write_data(u8temp); + delay_nms(2); + //DisplayCgrom(0x98, &u8temp); + } + + startRecognition(); command = checkSendReturn(); @@ -150,7 +167,15 @@ void main(void) case 100 : DisplayCgrom(0x8C,"温度"); delay_nms(2); + strcpy((char*)tempstr,(char*)Tempratostr()); + voicePlayer(tempstr); break; + case 101: + DisplayCgrom(0x8C,"时间"); + delay_nms(2); + strcpy((char*)timestr,(char*)Timetostr()); + voicePlayer(timestr); + break; default : DisplayCgrom(0x8C,"识别成功"); delay_nms(2); @@ -163,18 +188,6 @@ void main(void) } //if(command == ) - //wifi - while(RxBufWr_wifi != RxBufRd_wifi) { - LCD_write_com(0x98); - delay_nms(2); - u8temp = RxCharBuf_wifi[RxBufRd_wifi]; - RxBufRd_wifi++; - RxBufRd_wifi &= 0x0f; - if(u8temp == 0x0d) break; - LCD_write_data(u8temp); - delay_nms(2); - //DisplayCgrom(0x98, &u8temp); - } } } diff --git a/BACKUP/main.c.161112150200 b/BACKUP/main.c.161112150200 new file mode 100644 index 0000000..f56f3d9 --- /dev/null +++ b/BACKUP/main.c.161112150200 @@ -0,0 +1,180 @@ +//DMAVR-128开发板12864型液晶显示实时时钟驱动程序 +//编译环境 编译环境 ICCAVR 7.16A +//系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms +//作者:阿迪 www.avrgcc.com +//日期:2010.12.112 + +//*********************************************************************** +// 包含文件 +//*********************************************************************** + +#include +#include +#include +#include +#include +#include "DS18B20.h" //温度传感器 +#include "basic.h" //基础函数 +#include "12864time.h" //DS1302时钟 +#include "LCD.h" //12864LCD显示屏 +#include "USART.h" +#include "SYN7318.h" +#include "ESP8266.h" + +extern uchar RxCharBuf[16]; +extern uchar RxCharNum, RxBufWr, RxBufRd; +extern uchar TxCharBuf[128]; +extern uchar TxCharNum,TxStrLen; + +extern uchar RxCharBuf_wifi[16]; +extern uchar RxCharNum_wifi, RxBufWr_wifi, RxBufRd_wifi; +extern uchar TxCharBuf_wifi[128]; +extern uchar TxCharNum_wifi,TxStrLen_wifi; + + +//**************************************************************** +// 显示欢迎信息 +//**************************************************************** +void welcomeDisplay(void) +{ + DisplayCgrom(0x90,"欢迎使用独居老人"); + delay_nms(100); + DisplayCgrom(0x8a,"预警系统"); + delay_nms(3000); + LCD_clear(); //清屏 +} + +//**************************************************************** +// 显示语音模块初始化信息 +//**************************************************************** +void syn7318InitDisplay(void) +{ + DisplayCgrom(0x90,"语音模块"); + delay_nms(100); + DisplayCgrom(0x8a,"初始化中"); + delay_nms(3000); + LCD_clear(); //清屏 +} + + +//call this routine to initialize all peripherals +void init_devices(void) +{ + //stop errant interrupts until set up + CLI(); //disable all interrupts + XDIV = 0x00; //xtal divider + XMCRA = 0x00; //external memory + UART0_Init(); + //UART1_Init(); + MCUCR = 0x00; + EICRA = 0x00; //extended ext ints + EICRB = 0x00; //extended ext ints + EIMSK = 0x00; + TIMSK = 0x00; //timer interrupt sources + ETIMSK = 0x00; //extended timer interrupt sources + SEI(); //re-enable interrupts + //all peripherals are now initialized +} + +//*********************************************************************** +// 主程序 +//*********************************************************************** +void main(void) +{ + // volatile unsigned char temp; + uchar u8temp; + uchar command; + uchar temp; + + system_init(); //系统初始化,设置IO口属性 + delay_nms(100); //延时100ms + LCD_init(); //液晶参数初始化设置 + LCD_clear(); //清屏 + + ds1302_init(); //DS1302初始化 + DS18B20_Reset(); //复位D18B20 + delay_nms(10); + //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 + welcomeDisplay(); + init_devices(); + + SYN7318_init(); //SYN7318语音识别模块 初始化 + syn7318InitDisplay(); + + + //updateWords(); //SYN7318语音识别模块 词典更新 + //SYN7318_welcome(); + + updateWords(); + + while(1) { + + displayDateTime(); + LCD_write_temperature(); + startRecognition(); + command = checkSendReturn(); + + switch(command){ + case OVER_TIME : + break; + case 0x04 : + //SYN7318_Error(); + DisplayCgrom(0x88,"语音超时"); + delay_nms(2); + break; + case 0x05 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识"); + delay_nms(2); + break; + case 0x07 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识一"); + delay_nms(2); + break; + case 0x06 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别内部错误"); + delay_nms(2); + break; + case 1 : + DisplayCgrom(0x8C,"救命"); + delay_nms(2); + //wifi_SENDMSG(); + wifi_Restart(); + break; + case 2 : + DisplayCgrom(0x8C,"哎呦"); + delay_nms(2); + break; + case 100 : + DisplayCgrom(0x8C,"温度"); + delay_nms(2); + break; + default : + DisplayCgrom(0x8C,"识别成功"); + delay_nms(2); + LCD_write_com(0x8C); + delay_nms(2); + temp = (command >> 4) + '0'; //在LCD上写要显示的数据 + LCD_write_data(temp); + delay_nms(2); + break; + } + + //if(command == ) + //wifi + while(RxBufWr_wifi != RxBufRd_wifi) { + LCD_write_com(0x98); + delay_nms(2); + u8temp = RxCharBuf_wifi[RxBufRd_wifi]; + RxBufRd_wifi++; + RxBufRd_wifi &= 0x0f; + if(u8temp == 0x0d) break; + LCD_write_data(u8temp); + delay_nms(2); + //DisplayCgrom(0x98, &u8temp); + } + } +} + diff --git a/BACKUP/main.c.161113234426 b/BACKUP/main.c.161113234426 new file mode 100644 index 0000000..2853818 --- /dev/null +++ b/BACKUP/main.c.161113234426 @@ -0,0 +1,190 @@ +//DMAVR-128开发板12864型液晶显示实时时钟驱动程序 +//编译环境 编译环境 ICCAVR 7.16A +//系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms +//作者:阿迪 www.avrgcc.com +//日期:2010.12.112 + +//*********************************************************************** +// 包含文件 +//*********************************************************************** + +#include +#include +#include +#include +#include +#include "DS18B20.h" //温度传感器 +#include "basic.h" //基础函数 +#include "12864time.h" //DS1302时钟 +#include "LCD.h" //12864LCD显示屏 +#include "USART.h" +#include "SYN7318.h" +#include "ESP8266.h" + +extern uchar RxCharBuf[16]; +extern uchar RxCharNum, RxBufWr, RxBufRd; +extern uchar TxCharBuf[128]; +extern uchar TxCharNum,TxStrLen; + +extern uchar RxCharBuf_wifi[16]; +extern uchar RxCharNum_wifi, RxBufWr_wifi, RxBufRd_wifi; +extern uchar TxCharBuf_wifi[128]; +extern uchar TxCharNum_wifi,TxStrLen_wifi; + + +//**************************************************************** +// 显示欢迎信息 +//**************************************************************** +void welcomeDisplay(void) +{ + DisplayCgrom(0x90,"欢迎使用独居老人"); + delay_nms(100); + DisplayCgrom(0x8a,"预警系统"); + delay_nms(3000); + LCD_clear(); //清屏 +} + +//**************************************************************** +// 显示语音模块初始化信息 +//**************************************************************** +void syn7318InitDisplay(void) +{ + DisplayCgrom(0x90,"语音模块"); + delay_nms(100); + DisplayCgrom(0x8a,"初始化中"); + delay_nms(3000); + LCD_clear(); //清屏 +} + + +//call this routine to initialize all peripherals +void init_devices(void) +{ + //stop errant interrupts until set up + CLI(); //disable all interrupts + XDIV = 0x00; //xtal divider + XMCRA = 0x00; //external memory + UART0_Init(); + //UART1_Init(); + MCUCR = 0x00; + EICRA = 0x00; //extended ext ints + EICRB = 0x00; //extended ext ints + EIMSK = 0x00; + TIMSK = 0x00; //timer interrupt sources + ETIMSK = 0x00; //extended timer interrupt sources + SEI(); //re-enable interrupts + //all peripherals are now initialized +} + +//*********************************************************************** +// 主程序 +//*********************************************************************** +void main(void) +{ + // volatile unsigned char temp; + uchar u8temp; + uchar command; + uchar temp; + uchar timestr[21]; //时间字符串数组 + + system_init(); //系统初始化,设置IO口属性 + delay_nms(100); //延时100ms + LCD_init(); //液晶参数初始化设置 + LCD_clear(); //清屏 + + ds1302_init(); //DS1302初始化 + DS18B20_Reset(); //复位D18B20 + delay_nms(10); + //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 + welcomeDisplay(); + init_devices(); + + SYN7318_init(); //SYN7318语音识别模块 初始化 + syn7318InitDisplay(); + + + //updateWords(); //SYN7318语音识别模块 词典更新 + //SYN7318_welcome(); + + updateWords(); + + while(1) { + + displayDateTime(); + LCD_write_temperature(); + + //wifi + while(RxBufWr_wifi != RxBufRd_wifi) { + LCD_write_com(0x98); + delay_nms(2); + u8temp = RxCharBuf_wifi[RxBufRd_wifi]; + RxBufRd_wifi++; + RxBufRd_wifi &= 0x0f; + if(u8temp == 0x0d) break; + LCD_write_data(u8temp); + delay_nms(2); + //DisplayCgrom(0x98, &u8temp); + } + + + startRecognition(); + command = checkSendReturn(); + + switch(command){ + case OVER_TIME : + break; + case 0x04 : + //SYN7318_Error(); + DisplayCgrom(0x88,"语音超时"); + delay_nms(2); + break; + case 0x05 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识"); + delay_nms(2); + break; + case 0x07 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识一"); + delay_nms(2); + break; + case 0x06 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别内部错误"); + delay_nms(2); + break; + case 1 : + DisplayCgrom(0x8C,"救命"); + delay_nms(2); + //wifi_SENDMSG(); + wifi_Restart(); + break; + case 2 : + DisplayCgrom(0x8C,"哎呦"); + delay_nms(2); + break; + case 100 : + DisplayCgrom(0x8C,"温度"); + delay_nms(2); + break; + case 101: + DisplayCgrom(0x8C,"时间"); + delay_nms(2); + timestr=Timetostr(); + voicePlayer(timestr); + break; + default : + DisplayCgrom(0x8C,"识别成功"); + delay_nms(2); + LCD_write_com(0x8C); + delay_nms(2); + temp = (command >> 4) + '0'; //在LCD上写要显示的数据 + LCD_write_data(temp); + delay_nms(2); + break; + } + + //if(command == ) + } +} + diff --git a/BACKUP/main.c.161114191316 b/BACKUP/main.c.161114191316 new file mode 100644 index 0000000..fe86e74 --- /dev/null +++ b/BACKUP/main.c.161114191316 @@ -0,0 +1,193 @@ +//DMAVR-128开发板12864型液晶显示实时时钟驱动程序 +//编译环境 编译环境 ICCAVR 7.16A +//系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms +//作者:阿迪 www.avrgcc.com +//日期:2010.12.112 + +//*********************************************************************** +// 包含文件 +//*********************************************************************** + +#include +#include +#include +#include +#include +#include "DS18B20.h" //温度传感器 +#include "basic.h" //基础函数 +#include "12864time.h" //DS1302时钟 +#include "LCD.h" //12864LCD显示屏 +#include "USART.h" +#include "SYN7318.h" +#include "ESP8266.h" + +extern uchar RxCharBuf[16]; +extern uchar RxCharNum, RxBufWr, RxBufRd; +extern uchar TxCharBuf[128]; +extern uchar TxCharNum,TxStrLen; + +extern uchar RxCharBuf_wifi[16]; +extern uchar RxCharNum_wifi, RxBufWr_wifi, RxBufRd_wifi; +extern uchar TxCharBuf_wifi[128]; +extern uchar TxCharNum_wifi,TxStrLen_wifi; + + +//**************************************************************** +// 显示欢迎信息 +//**************************************************************** +void welcomeDisplay(void) +{ + DisplayCgrom(0x90,"欢迎使用独居老人"); + delay_nms(100); + DisplayCgrom(0x8a,"预警系统"); + delay_nms(3000); + LCD_clear(); //清屏 +} + +//**************************************************************** +// 显示语音模块初始化信息 +//**************************************************************** +void syn7318InitDisplay(void) +{ + DisplayCgrom(0x90,"语音模块"); + delay_nms(100); + DisplayCgrom(0x8a,"初始化中"); + delay_nms(3000); + LCD_clear(); //清屏 +} + + +//call this routine to initialize all peripherals +void init_devices(void) +{ + //stop errant interrupts until set up + CLI(); //disable all interrupts + XDIV = 0x00; //xtal divider + XMCRA = 0x00; //external memory + UART0_Init(); + //UART1_Init(); + MCUCR = 0x00; + EICRA = 0x00; //extended ext ints + EICRB = 0x00; //extended ext ints + EIMSK = 0x00; + TIMSK = 0x00; //timer interrupt sources + ETIMSK = 0x00; //extended timer interrupt sources + SEI(); //re-enable interrupts + //all peripherals are now initialized +} + +//*********************************************************************** +// 主程序 +//*********************************************************************** +void main(void) +{ + // volatile unsigned char temp; + uchar u8temp; + uchar command; + uchar temp; + uchar timestr[21]; //时间字符串数组 + uchar tempstr[7]; //温度字符串数组 + + system_init(); //系统初始化,设置IO口属性 + delay_nms(100); //延时100ms + LCD_init(); //液晶参数初始化设置 + LCD_clear(); //清屏 + + ds1302_init(); //DS1302初始化 + DS18B20_Reset(); //复位D18B20 + delay_nms(10); + //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 + welcomeDisplay(); + init_devices(); + + SYN7318_init(); //SYN7318语音识别模块 初始化 + syn7318InitDisplay(); + + + //updateWords(); //SYN7318语音识别模块 词典更新 + //SYN7318_welcome(); + + updateWords(); + + while(1) { + + displayDateTime(); + LCD_write_temperature(); + + //wifi + while(RxBufWr_wifi != RxBufRd_wifi) { + LCD_write_com(0x98); + delay_nms(2); + u8temp = RxCharBuf_wifi[RxBufRd_wifi]; + RxBufRd_wifi++; + RxBufRd_wifi &= 0x0f; + if(u8temp == 0x0d) break; + LCD_write_data(u8temp); + delay_nms(2); + //DisplayCgrom(0x98, &u8temp); + } + + + startRecognition(); + command = checkSendReturn(); + + switch(command){ + case OVER_TIME : + break; + case 0x04 : + //SYN7318_Error(); + DisplayCgrom(0x88,"语音超时"); + delay_nms(2); + break; + case 0x05 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识"); + delay_nms(2); + break; + case 0x07 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识一"); + delay_nms(2); + break; + case 0x06 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别内部错误"); + delay_nms(2); + break; + case 1 : + DisplayCgrom(0x8C,"救命"); + delay_nms(2); + //wifi_SENDMSG(); + wifi_Restart(); + break; + case 2 : + DisplayCgrom(0x8C,"哎呦"); + delay_nms(2); + break; + case 100 : + DisplayCgrom(0x8C,"温度"); + delay_nms(2); + stpcpy((char*)tempstr,(char*)tempratostr()); + voicePlayer(tempstr); + break; + case 101: + DisplayCgrom(0x8C,"时间"); + delay_nms(2); + strcpy((char*)timestr,(char*)Timetostr()); + voicePlayer(timestr); + break; + default : + DisplayCgrom(0x8C,"识别成功"); + delay_nms(2); + LCD_write_com(0x8C); + delay_nms(2); + temp = (command >> 4) + '0'; //在LCD上写要显示的数据 + LCD_write_data(temp); + delay_nms(2); + break; + } + + //if(command == ) + } +} + diff --git a/BACKUP/main.c.161114191428 b/BACKUP/main.c.161114191428 new file mode 100644 index 0000000..5f63bbe --- /dev/null +++ b/BACKUP/main.c.161114191428 @@ -0,0 +1,193 @@ +//DMAVR-128开发板12864型液晶显示实时时钟驱动程序 +//编译环境 编译环境 ICCAVR 7.16A +//系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms +//作者:阿迪 www.avrgcc.com +//日期:2010.12.112 + +//*********************************************************************** +// 包含文件 +//*********************************************************************** + +#include +#include +#include +#include +#include +#include "DS18B20.h" //温度传感器 +#include "basic.h" //基础函数 +#include "12864time.h" //DS1302时钟 +#include "LCD.h" //12864LCD显示屏 +#include "USART.h" +#include "SYN7318.h" +#include "ESP8266.h" + +extern uchar RxCharBuf[16]; +extern uchar RxCharNum, RxBufWr, RxBufRd; +extern uchar TxCharBuf[128]; +extern uchar TxCharNum,TxStrLen; + +extern uchar RxCharBuf_wifi[16]; +extern uchar RxCharNum_wifi, RxBufWr_wifi, RxBufRd_wifi; +extern uchar TxCharBuf_wifi[128]; +extern uchar TxCharNum_wifi,TxStrLen_wifi; + + +//**************************************************************** +// 显示欢迎信息 +//**************************************************************** +void welcomeDisplay(void) +{ + DisplayCgrom(0x90,"欢迎使用独居老人"); + delay_nms(100); + DisplayCgrom(0x8a,"预警系统"); + delay_nms(3000); + LCD_clear(); //清屏 +} + +//**************************************************************** +// 显示语音模块初始化信息 +//**************************************************************** +void syn7318InitDisplay(void) +{ + DisplayCgrom(0x90,"语音模块"); + delay_nms(100); + DisplayCgrom(0x8a,"初始化中"); + delay_nms(3000); + LCD_clear(); //清屏 +} + + +//call this routine to initialize all peripherals +void init_devices(void) +{ + //stop errant interrupts until set up + CLI(); //disable all interrupts + XDIV = 0x00; //xtal divider + XMCRA = 0x00; //external memory + UART0_Init(); + //UART1_Init(); + MCUCR = 0x00; + EICRA = 0x00; //extended ext ints + EICRB = 0x00; //extended ext ints + EIMSK = 0x00; + TIMSK = 0x00; //timer interrupt sources + ETIMSK = 0x00; //extended timer interrupt sources + SEI(); //re-enable interrupts + //all peripherals are now initialized +} + +//*********************************************************************** +// 主程序 +//*********************************************************************** +void main(void) +{ + // volatile unsigned char temp; + uchar u8temp; + uchar command; + uchar temp; + uchar timestr[21]; //时间字符串数组 + uchar tempstr[7]; //温度字符串数组 + + system_init(); //系统初始化,设置IO口属性 + delay_nms(100); //延时100ms + LCD_init(); //液晶参数初始化设置 + LCD_clear(); //清屏 + + ds1302_init(); //DS1302初始化 + DS18B20_Reset(); //复位D18B20 + delay_nms(10); + //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 + welcomeDisplay(); + init_devices(); + + SYN7318_init(); //SYN7318语音识别模块 初始化 + syn7318InitDisplay(); + + + //updateWords(); //SYN7318语音识别模块 词典更新 + //SYN7318_welcome(); + + updateWords(); + + while(1) { + + displayDateTime(); + LCD_write_temperature(); + + //wifi + while(RxBufWr_wifi != RxBufRd_wifi) { + LCD_write_com(0x98); + delay_nms(2); + u8temp = RxCharBuf_wifi[RxBufRd_wifi]; + RxBufRd_wifi++; + RxBufRd_wifi &= 0x0f; + if(u8temp == 0x0d) break; + LCD_write_data(u8temp); + delay_nms(2); + //DisplayCgrom(0x98, &u8temp); + } + + + startRecognition(); + command = checkSendReturn(); + + switch(command){ + case OVER_TIME : + break; + case 0x04 : + //SYN7318_Error(); + DisplayCgrom(0x88,"语音超时"); + delay_nms(2); + break; + case 0x05 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识"); + delay_nms(2); + break; + case 0x07 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别拒识一"); + delay_nms(2); + break; + case 0x06 : + //SYN7318_Error(); + DisplayCgrom(0x88,"识别内部错误"); + delay_nms(2); + break; + case 1 : + DisplayCgrom(0x8C,"救命"); + delay_nms(2); + //wifi_SENDMSG(); + wifi_Restart(); + break; + case 2 : + DisplayCgrom(0x8C,"哎呦"); + delay_nms(2); + break; + case 100 : + DisplayCgrom(0x8C,"温度"); + delay_nms(2); + strcpy((char*)tempstr,(char*)tempratostr()); + voicePlayer(tempstr); + break; + case 101: + DisplayCgrom(0x8C,"时间"); + delay_nms(2); + strcpy((char*)timestr,(char*)Timetostr()); + voicePlayer(timestr); + break; + default : + DisplayCgrom(0x8C,"识别成功"); + delay_nms(2); + LCD_write_com(0x8C); + delay_nms(2); + temp = (command >> 4) + '0'; //在LCD上写要显示的数据 + LCD_write_data(temp); + delay_nms(2); + break; + } + + //if(command == ) + } +} + diff --git a/DS18B20.C b/DS18B20.C index 02c36c6..9dca8ec 100644 --- a/DS18B20.C +++ b/DS18B20.C @@ -4,7 +4,7 @@ uint temp_value; -uint temp,A1,A2,A3; +uint A1,A2,A3; //************************************************************************* // DS18B20初始化 @@ -123,7 +123,7 @@ unsigned int DS18B20_Read_temp(void) { buf[i] = DS18B20_Read_byte(); } - i = buf[1]; + i = buf[1]; i <<= 8; i |= buf[0]; temp_value=i; @@ -172,4 +172,20 @@ void LCD_write_temperature(void) delay_nms(2); DisplayCgrom(0x97,"℃"); //在LCD上写温度单位 +} + +//读取温度,保存到字符串数组中 +unsigned char* Temperaturetostr(void) +{ + unsigned char str[7]="\0"; //温度字符串数组 + ds1820_start(); //启动一次转换 + DS18B20_Read_temp(); //读取温度数值 + data_do(temp_value); //处理数据,得到要显示的值 + str[0] = A1 + '0'; + str[1] = A2 + '0'; + str[2]='.'; + str[3] = A3 + '0'; + strcat((char*)str, "℃"); + str[6] = 0; + return str; } \ No newline at end of file diff --git a/DS18B20.h b/DS18B20.h index a358f45..d1f96d3 100644 --- a/DS18B20.h +++ b/DS18B20.h @@ -16,3 +16,4 @@ void ds1820_start(void); unsigned int DS18B20_Read_temp(void); void data_do(uint temp_d); void LCD_write_temperature(void); +unsigned char* Temperaturetostr(void); \ No newline at end of file diff --git a/DS18B20.lis b/DS18B20.lis index 4fa7c7e..6b97405 100644 --- a/DS18B20.lis +++ b/DS18B20.lis @@ -1,7 +1,7 @@ .module DS18B20.C .area text(rom, con, rel) 0000 .dbfile DS18B20.C - 0000 .dbfile E:\git\AVR\OldManAlarm\DS18B20.C + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C 0000 .dbfunc e DS18B20_Reset _DS18B20_Reset fc 0000 ; i -> R20 .even @@ -15,7 +15,7 @@ 0002 ; 0002 ; 0002 ; uint temp_value; - 0002 ; uint temp,A1,A2,A3; + 0002 ; uint A1,A2,A3; 0002 ; 0002 ; //************************************************************************* 0002 ; // DS18B20初始化 @@ -354,7 +354,7 @@ 00CE A0F3 brlo L20 00D0 X5: 00D0 .dbline 126 - 00D0 ; i = buf[1]; + 00D0 ; i = buf[1]; 00D0 4981 ldd R20,y+1 00D2 5527 clr R21 00D4 .dbline 127 @@ -369,8 +369,8 @@ 00DE 5329 or R21,R3 00E0 .dbline 129 00E0 ; temp_value=i; - 00E0 50930900 sts _temp_value+1,R21 - 00E4 40930800 sts _temp_value,R20 + 00E0 50930700 sts _temp_value+1,R21 + 00E4 40930600 sts _temp_value,R20 00E8 .dbline 130 00E8 ; temp_value=temp_value*0.625; //不是乘以0.0625的原因是为了把小数点后一位数据也转化为可以显示的数据 00E8 00E0 ldi R16, y+0 + .even + 0206 _Temperaturetostr:: + 0206 2797 sbiw R28,7 + 0208 .dbline -1 + 0208 .dbline 179 + 0208 ; + 0208 ; } + 0208 ; + 0208 ; //读取温度,保存到字符串数组中 + 0208 ; unsigned char* Temperaturetostr(void) + 0208 ; { + 0208 .dbline 180 + 0208 ; unsigned char str[7]="\0"; //温度字符串数组 + 0208 80E0 ldi R24,L30 + 020C FE01 movw R30,R28 + 020E 07E0 ldi R16,7 + 0210 10E0 ldi R17,0 + 0212 FA93 st -y,R31 + 0214 EA93 st -y,R30 + 0216 9A93 st -y,R25 + 0218 8A93 st -y,R24 + 021A 0E940000 xcall asgnblk + 021E .dbline 181 + 021E ; ds1820_start(); //启动一次转换 + 021E 3CDF xcall _ds1820_start + 0220 .dbline 182 + 0220 ; DS18B20_Read_temp(); //读取温度数值 + 0220 40DF xcall _DS18B20_Read_temp + 0222 .dbline 183 + 0222 ; data_do(temp_value); //处理数据,得到要显示的值 + 0222 00910600 lds R16,_temp_value + 0226 10910700 lds R17,_temp_value+1 + 022A 7DDF xcall _data_do + 022C .dbline 184 + 022C ; str[0] = A1 + '0'; + 022C 80910400 lds R24,_A1 + 0230 90910500 lds R25,_A1+1 + 0234 C096 adiw R24,48 + 0236 8883 std y+0,R24 + 0238 .dbline 185 + 0238 ; str[1] = A2 + '0'; + 0238 80910200 lds R24,_A2 + 023C 90910300 lds R25,_A2+1 + 0240 C096 adiw R24,48 + 0242 8983 std y+1,R24 + 0244 .dbline 186 + 0244 ; str[2]='.'; + 0244 8EE2 ldi R24,46 + 0246 8A83 std y+2,R24 + 0248 .dbline 187 + 0248 ; str[3] = A3 + '0'; + 0248 80910000 lds R24,_A3 + 024C 90910100 lds R25,_A3+1 + 0250 C096 adiw R24,48 + 0252 8B83 std y+3,R24 + 0254 .dbline 188 + 0254 ; strcat((char*)str, "℃"); + 0254 20E0 ldi R18,L28 + 0258 8E01 movw R16,R28 + 025A 0E940000 xcall _strcat + 025E .dbline 189 + 025E ; str[6] = 0; + 025E 2224 clr R2 + 0260 2E82 std y+6,R2 + 0262 .dbline 190 + 0262 ; return str; + 0262 8E01 movw R16,R28 + 0264 .dbline -2 + 0264 L29: + 0264 .dbline 0 ; func end + 0264 2796 adiw R28,7 + 0266 0895 ret + 0268 .dbsym l str 0 A[7:7]c + 0268 .dbend .area bss(ram, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\DS18B20.C + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C 0000 _A3:: 0000 .blkb 2 0002 .dbsym e A3 _A3 i @@ -585,22 +678,18 @@ 0004 _A1:: 0004 .blkb 2 0006 .dbsym e A1 _A1 i - 0006 _temp:: + 0006 _temp_value:: 0006 .blkb 2 - 0008 .dbsym e temp _temp i - 0008 _temp_value:: - 0008 .blkb 2 - 000A .dbsym e temp_value _temp_value i + 0008 .dbsym e temp_value _temp_value i .area data(ram, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\DS18B20.C - 0000 L28: - 0000 .blkb 3 + 0007 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C + 0007 L28: + 0007 .blkb 3 .area idata - 0000 A1E600 .byte 161,230,0 + 0007 A1E600 .byte 161,230,0 .area data(ram, con, rel) - 0003 .dbfile E:\git\AVR\OldManAlarm\DS18B20.C + 000A .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C .area lit(rom, con, rel) 0000 L25: 0000 0000203F .word 0x0,0x3f20 - 0004 ; 0004 ; } diff --git a/DS18B20.o b/DS18B20.o index a7a3735..fbe46db 100644 --- a/DS18B20.o +++ b/DS18B20.o @@ -1,5 +1,5 @@ XL -H 5 areas 19 global symbols +H 5 areas 1B global symbols M DS18B20.C S elpm32 Ref0000 S _delay_10us Ref0000 @@ -14,9 +14,11 @@ S _delay_n100us Ref0000 S _LCD_write_data Ref0000 S fpmule2 Ref0000 S uint2fp Ref0000 -A text size 206 flags 0 +S asgnblk Ref0000 +S _strcat Ref0000 +A text size 268 flags 0 dbfile DS18B20.C -dbfile E:\git\AVR\OldManAlarm\DS18B20.C +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C dbfunc e DS18B20_Reset 0 fc dbsym r i 14 c dbline FFFFFFFF 2 @@ -148,6 +150,24 @@ dbline AC 1EE dbline AD 1F6 dbline FFFFFFFE 202 dbline 0 202 +dbfunc e Temperaturetostr 206 fpc +dbsym l str 0 A[7:7]c +dbline FFFFFFFF 208 +dbline B3 208 +dbline B4 208 +dbline B5 21E +dbline B6 220 +dbline B7 222 +dbline B8 22C +dbline B9 238 +dbline BA 244 +dbline BB 248 +dbline BC 254 +dbline BD 25E +dbline BE 262 +dbline FFFFFFFE 264 +dbline 0 264 +S _Temperaturetostr Def0206 S _data_do Def0126 S _DS18B20_Reset Def0000 S _ds1820_start Def0098 @@ -155,21 +175,19 @@ S _ds1820_write_byte Def0068 S _LCD_write_temperature Def0172 S _DS18B20_Read_byte Def0034 S _DS18B20_Read_temp Def00A2 -A bss size A flags 20 -dbfile E:\git\AVR\OldManAlarm\DS18B20.C +A data size A flags 20 +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C +A idata size A flags 0 +A bss size 8 flags 20 +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C dbsym e A3 0 i dbsym e A2 2 i dbsym e A1 4 i -dbsym e temp 6 i -dbsym e temp_value 8 i -S _temp Def0006 -S _temp_value Def0008 +dbsym e temp_value 6 i +S _temp_value Def0006 S _A1 Def0004 S _A2 Def0002 S _A3 Def0000 -A data size 3 flags 20 -dbfile E:\git\AVR\OldManAlarm\DS18B20.C -A idata size 3 flags 0 A lit size 4 flags 0 T 00 00 4A 93 14 9A 1C 98 05 E0 10 E0 0E 94 00 00 R 00 00 00 00 12 0E 09 00 @@ -205,55 +223,75 @@ T BE 00 E8 0F F9 1F 00 83 4F 5F 5F 4F 49 30 E0 E0 R 00 00 00 00 T CC 00 5E 07 A0 F3 49 81 55 27 54 2F 44 27 28 80 R 00 00 00 00 -T DA 00 33 24 42 29 53 29 50 93 09 00 40 93 08 00 -R 00 00 00 00 00 0A 01 00 00 0E 01 00 +T DA 00 33 24 42 29 53 29 50 93 07 00 40 93 06 00 +R 00 00 00 00 00 0A 03 00 00 0E 03 00 T E8 00 00 E0 10 E0 R 00 00 00 00 20 02 04 00 00 00 40 04 04 00 00 00 -T EC 00 0E 94 00 00 18 01 29 01 00 91 08 00 10 91 -R 00 00 00 00 12 04 00 00 00 0C 01 00 -T FA 00 09 00 0E 94 00 00 3A 93 2A 93 1A 93 0A 93 -R 00 00 00 00 00 02 01 00 12 06 0C 00 +T EC 00 0E 94 00 00 18 01 29 01 00 91 06 00 10 91 +R 00 00 00 00 12 04 00 00 00 0C 03 00 +T FA 00 07 00 0E 94 00 00 3A 93 2A 93 1A 93 0A 93 +R 00 00 00 00 00 02 03 00 12 06 0C 00 T 08 01 81 01 92 01 0E 94 00 00 0E 94 00 00 10 93 R 00 00 00 00 12 08 0B 00 12 0C 06 00 -T 16 01 09 00 00 93 08 00 8A 01 29 96 59 91 49 91 -R 00 00 00 00 00 02 01 00 00 06 01 00 +T 16 01 07 00 00 93 06 00 8A 01 29 96 59 91 49 91 +R 00 00 00 00 00 02 03 00 00 06 03 00 T 24 01 08 95 R 00 00 00 00 T 26 01 AA 92 BA 92 58 01 24 E6 30 E0 85 01 R 00 00 00 00 T 32 01 0E 94 00 00 10 93 05 00 00 93 04 00 24 E6 -R 00 00 00 00 12 04 05 00 00 08 01 00 00 0C 01 00 +R 00 00 00 00 12 04 05 00 00 08 03 00 00 0C 03 00 T 40 01 30 E0 85 01 0E 94 00 00 58 01 2A E0 30 E0 R 00 00 00 00 12 08 04 00 T 4E 01 0E 94 00 00 10 93 03 00 00 93 02 00 2A E0 -R 00 00 00 00 12 04 05 00 00 08 01 00 00 0C 01 00 +R 00 00 00 00 12 04 05 00 00 08 03 00 00 0C 03 00 T 5C 01 30 E0 85 01 0E 94 00 00 10 93 01 00 00 93 -R 00 00 00 00 12 08 04 00 00 0C 01 00 +R 00 00 00 00 12 08 04 00 00 0C 03 00 T 6A 01 00 00 B9 90 A9 90 08 95 -R 00 00 00 00 00 02 01 00 -T 72 01 21 97 91 DF 95 DF 00 91 08 00 10 91 09 00 -R 00 00 00 00 00 0A 01 00 00 0E 01 00 +R 00 00 00 00 00 02 03 00 +T 72 01 21 97 91 DF 95 DF 00 91 06 00 10 91 07 00 +R 00 00 00 00 00 0A 03 00 00 0E 03 00 T 80 01 D2 DF 05 E9 10 E0 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 0A 08 00 T 8E 01 0E 94 00 00 80 91 04 00 90 91 05 00 C0 96 -R 00 00 00 00 12 04 03 00 00 08 01 00 00 0C 01 00 +R 00 00 00 00 12 04 03 00 00 08 03 00 00 0C 03 00 T 9C 01 88 83 08 2F 11 27 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 0A 0A 00 T AA 01 0E 94 00 00 80 91 02 00 90 91 03 00 C0 96 -R 00 00 00 00 12 04 03 00 00 08 01 00 00 0C 01 00 +R 00 00 00 00 12 04 03 00 00 08 03 00 00 0C 03 00 T B8 01 88 83 08 2F 11 27 0E 94 00 00 02 E0 10 E0 R 00 00 00 00 12 0A 0A 00 T C6 01 0E 94 00 00 0E E2 10 E0 0E 94 00 00 02 E0 R 00 00 00 00 12 04 03 00 12 0C 0A 00 T D4 01 10 E0 0E 94 00 00 80 91 00 00 90 91 01 00 -R 00 00 00 00 12 06 03 00 00 0A 01 00 00 0E 01 00 +R 00 00 00 00 12 06 03 00 00 0A 03 00 00 0E 03 00 T E2 01 C0 96 88 83 08 2F 11 27 0E 94 00 00 02 E0 R 00 00 00 00 12 0C 0A 00 T F0 01 10 E0 0E 94 00 00 20 E0 -R 00 00 00 00 12 06 03 00 20 08 02 00 00 00 +R 00 00 00 00 12 06 03 00 20 08 01 00 07 00 T F8 01 30 E0 07 E9 10 E0 0E 94 00 00 21 96 08 95 -R 00 00 00 00 40 02 02 00 00 00 12 0A 07 00 -T 00 00 A1 E6 00 -R 00 00 03 00 +R 00 00 00 00 40 02 01 00 07 00 12 0A 07 00 +T 00 00 00 00 +R 00 00 02 00 +T 02 00 00 00 00 00 00 +R 00 00 02 00 +T 06 02 27 97 80 E0 90 E0 FE 01 07 E0 10 E0 FA 93 +R 00 00 00 00 20 04 01 00 00 00 40 06 01 00 00 00 +T 14 02 EA 93 9A 93 8A 93 0E 94 00 00 3C DF 40 DF +R 00 00 00 00 12 0A 0D 00 +T 22 02 00 91 06 00 10 91 07 00 7D DF 80 91 04 00 +R 00 00 00 00 00 04 03 00 00 08 03 00 00 0E 03 00 +T 30 02 90 91 05 00 C0 96 88 83 80 91 02 00 90 91 +R 00 00 00 00 00 04 03 00 00 0C 03 00 +T 3E 02 03 00 C0 96 89 83 8E E2 8A 83 80 91 00 00 +R 00 00 00 00 00 02 03 00 00 0E 03 00 +T 4C 02 90 91 01 00 C0 96 8B 83 20 E0 +R 00 00 00 00 00 04 03 00 20 0A 01 00 07 00 +T 56 02 30 E0 8E 01 0E 94 00 00 22 24 2E 82 8E 01 +R 00 00 00 00 40 02 01 00 07 00 12 08 0E 00 +T 64 02 27 96 08 95 +R 00 00 00 00 +T 07 00 A1 E6 00 +R 00 00 02 00 T 00 00 00 00 20 3F R 00 00 04 00 diff --git a/ESP8266.lis b/ESP8266.lis index 28ce88c..edf5e86 100644 --- a/ESP8266.lis +++ b/ESP8266.lis @@ -1,7 +1,7 @@ .module ESP8266.c .area text(rom, con, rel) 0000 .dbfile ESP8266.c - 0000 .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 0000 .dbfunc e wifi_Restart _wifi_Restart fV .even 0000 _wifi_Restart:: @@ -283,50 +283,50 @@ 00E2 E2CF xjmp _wifi_SendMsg 00E4 .dbend .area data(ram, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 0000 L14: 0000 .blkb 27 .area idata 0000 47455420687474703A2F2F616C61726D .byte 'G,'E,'T,32,'h,'t,'t,'p,58,47,47,'a,'l,'a,'r,'m 0010 2E69636861726D2E6D6500 .byte 46,'i,'c,'h,'a,'r,'m,46,'m,'e,0 .area data(ram, con, rel) - 001B .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 001B .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 001B L12: 001B .blkb 11 .area idata 001B 41542B43495053454E4400 .byte 'A,'T,43,'C,'I,'P,'S,'E,'N,'D,0 .area data(ram, con, rel) - 0026 .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 0026 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 0026 L10: 0026 .blkb 13 .area idata 0026 41542B4349504D4F44453D3100 .byte 'A,'T,43,'C,'I,'P,'M,'O,'D,'E,61,49,0 .area data(ram, con, rel) - 0033 .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 0033 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 0033 L8: 0033 .blkb 23 .area idata 0033 5443502C616C61726D2E69636861726D .byte 'T,'C,'P,44,'a,'l,'a,'r,'m,46,'i,'c,'h,'a,'r,'m 0043 2E6D652C383000 .byte 46,'m,'e,44,56,48,0 .area data(ram, con, rel) - 004A .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 004A .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 004A L6: 004A .blkb 12 .area idata 004A 41542B4349504D55583D3000 .byte 'A,'T,43,'C,'I,'P,'M,'U,'X,61,48,0 .area data(ram, con, rel) - 0056 .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 0056 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 0056 L4: 0056 .blkb 28 .area idata 0056 41542B43574A41503D49434841524D2C .byte 'A,'T,43,'C,'W,'J,'A,'P,61,'I,'C,'H,'A,'R,'M,44 0066 6D656979616E6C69616E6700 .byte 'm,'e,'i,'y,'a,'n,'l,'i,'a,'n,'g,0 .area data(ram, con, rel) - 0072 .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 0072 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 0072 L2: 0072 .blkb 7 .area idata 0072 41542B52535400 .byte 'A,'T,43,'R,'S,'T,0 .area data(ram, con, rel) - 0079 .dbfile E:\git\AVR\OldManAlarm\ESP8266.c + 0079 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c 0079 ; } diff --git a/ESP8266.o b/ESP8266.o index 7b6304a..3793277 100644 --- a/ESP8266.o +++ b/ESP8266.o @@ -9,7 +9,7 @@ S _TxCharBuf_wifi Ref0000 S _strlen Ref0000 A text size E4 flags 0 dbfile ESP8266.c -dbfile E:\git\AVR\OldManAlarm\ESP8266.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c dbfunc e wifi_Restart 0 fV dbline FFFFFFFF 0 dbline 13 0 @@ -87,7 +87,7 @@ S _wifi_CIPMODE Def0070 S _wifi_CIPSEND Def008C S _wifi_SENDMSG Def00C4 A data size 79 flags 20 -dbfile E:\git\AVR\OldManAlarm\ESP8266.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c A idata size 79 flags 0 T 00 00 20 E0 30 E0 R 00 00 00 00 20 02 01 00 72 00 40 04 01 00 72 00 diff --git a/LCD.lis b/LCD.lis index 3b483a3..8654a94 100644 --- a/LCD.lis +++ b/LCD.lis @@ -1,7 +1,7 @@ .module LCD.c .area text(rom, con, rel) 0000 .dbfile LCD.c - 0000 .dbfile E:\git\AVR\OldManAlarm\LCD.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\LCD.c 0000 .dbfunc e system_init _system_init fV .even 0000 _system_init:: diff --git a/LCD.o b/LCD.o index b40ed29..18a529f 100644 --- a/LCD.o +++ b/LCD.o @@ -8,7 +8,7 @@ S pop_xgset300C Ref0000 S pop_xgset303C Ref0000 A text size 14C flags 0 dbfile LCD.c -dbfile E:\git\AVR\OldManAlarm\LCD.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\LCD.c dbfunc e system_init 0 fV dbline FFFFFFFF 0 dbline 8 0 diff --git a/OLDMANALARM.cof b/OLDMANALARM.cof index 5269960..99f775b 100644 Binary files a/OLDMANALARM.cof and b/OLDMANALARM.cof differ diff --git a/OLDMANALARM.dbg b/OLDMANALARM.dbg index 2ce6840..54a7e94 100644 --- a/OLDMANALARM.dbg +++ b/OLDMANALARM.dbg @@ -2,1047 +2,1101 @@ IMAGECRAFT DEBUG FORMAT VERSION 1.2 CPU AVR FRAMEPOINTER Y -DIR E:\git\AVR\OldManAlarm\ +DIR G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ FILE main.c -FUNC welcomeDisplay 452 fV -BLOCK 39 452 -LINE 39 452 -LINE 40 452 -LINE 41 45C -LINE 42 464 -LINE 43 46E -LINE 44 476 -BLOCKEND 0 476 -FUNCEND 476 -FUNC syn7318InitDisplay 47A fV -BLOCK 51 47A -LINE 51 47A -LINE 52 47A -LINE 53 484 -LINE 54 48C -LINE 55 496 -LINE 56 49E -BLOCKEND 0 49E -FUNCEND 49E -FUNC init_devices 4A2 fV -BLOCK 62 4A2 -LINE 62 4A2 -LINE 64 4A2 -LINE 65 4A4 -LINE 66 4A8 -LINE 67 4AC -LINE 69 4B0 -LINE 70 4B4 -LINE 71 4B8 -LINE 72 4BA -LINE 73 4BC -LINE 74 4BE -LINE 75 4C2 -BLOCKEND 0 4C4 -FUNCEND 4C4 -FUNC main 4C6 fV -BLOCK 83 4C6 +FUNC welcomeDisplay 47C fV +BLOCK 39 47C +LINE 39 47C +LINE 40 47C +LINE 41 486 +LINE 42 48E +LINE 43 498 +LINE 44 4A0 +BLOCKEND 0 4A0 +FUNCEND 4A0 +FUNC syn7318InitDisplay 4A4 fV +BLOCK 51 4A4 +LINE 51 4A4 +LINE 52 4A4 +LINE 53 4AE +LINE 54 4B6 +LINE 55 4C0 +LINE 56 4C8 +BLOCKEND 0 4C8 +FUNCEND 4C8 +FUNC init_devices 4CC fV +BLOCK 62 4CC +LINE 62 4CC +LINE 64 4CC +LINE 65 4CE +LINE 66 4D2 +LINE 67 4D6 +LINE 69 4DA +LINE 70 4DE +LINE 71 4E2 +LINE 72 4E4 +LINE 73 4E6 +LINE 74 4E8 +LINE 75 4EC +BLOCKEND 0 4EE +FUNCEND 4EE +FUNC main 4F0 fV +BLOCK 83 4F2 +DEFLOCAL tempstr 21 A[7:7]c +DEFLOCAL timestr 0 A[21:21]c DEFREG temp 20 c DEFREG command 10 c DEFREG u8temp 20 c -LINE 83 4C6 -LINE 89 4C6 -LINE 90 4CA -LINE 91 4D2 -LINE 92 4D6 -LINE 94 4DA -LINE 95 4DE -LINE 96 4E2 -LINE 98 4EA -LINE 99 4EC -LINE 101 4EE -LINE 102 4F2 -LINE 108 4F4 -LINE 110 4FA -LINE 112 4FA -LINE 113 4FE -LINE 116 504 -LINE 117 504 -LINE 118 50A -LINE 119 512 -LINE 120 522 -LINE 121 52C -LINE 122 532 -LINE 122 536 -LINE 123 538 -LINE 124 53E -LINE 126 546 -LINE 116 546 -LINE 129 552 -LINE 130 556 -LINE 132 55C -LINE 137 5B4 -LINE 138 5BE -LINE 139 5C6 -LINE 142 5C8 -LINE 143 5D2 -LINE 144 5DA -LINE 147 5DC -LINE 148 5E6 -LINE 149 5EE -LINE 152 5F0 -LINE 153 5FA -LINE 154 602 -LINE 156 604 -LINE 157 60E -LINE 159 616 -LINE 160 61A -LINE 162 61C -LINE 163 626 -LINE 164 62E -LINE 166 630 -LINE 167 63A -LINE 168 642 -LINE 170 644 -LINE 171 64E -LINE 172 656 -LINE 173 65C -LINE 174 664 -LINE 175 66C -LINE 176 672 -LINE 177 67A -LINE 181 67A -LINE 110 67A -BLOCKEND 0 67C -FUNCEND 67C +LINE 83 4F2 +LINE 91 4F2 +LINE 92 4F6 +LINE 93 4FE +LINE 94 502 +LINE 96 506 +LINE 97 50A +LINE 98 50E +LINE 100 516 +LINE 101 518 +LINE 103 51A +LINE 104 51E +LINE 110 520 +LINE 112 526 +LINE 114 526 +LINE 115 52A +LINE 118 530 +LINE 119 530 +LINE 120 536 +LINE 121 53E +LINE 122 54E +LINE 123 558 +LINE 124 55E +LINE 124 562 +LINE 125 564 +LINE 126 56A +LINE 128 572 +LINE 118 572 +LINE 131 57E +LINE 132 582 +LINE 134 588 +LINE 139 5EA +LINE 140 5F4 +LINE 141 5FC +LINE 144 5FE +LINE 145 608 +LINE 146 610 +LINE 149 612 +LINE 150 61C +LINE 151 624 +LINE 154 626 +LINE 155 630 +LINE 156 638 +LINE 158 63A +LINE 159 644 +LINE 161 64C +LINE 162 650 +LINE 164 652 +LINE 165 65C +LINE 166 664 +LINE 168 666 +LINE 169 670 +LINE 170 678 +LINE 171 688 +LINE 172 692 +LINE 174 694 +LINE 175 69E +LINE 176 6A6 +LINE 177 6B4 +LINE 178 6BA +LINE 180 6BC +LINE 181 6C6 +LINE 182 6CE +LINE 183 6D4 +LINE 184 6DC +LINE 185 6E4 +LINE 186 6EA +LINE 187 6F2 +LINE 191 6F2 +LINE 112 6F2 +BLOCKEND 0 6F4 +FUNCEND 6F4 FILE 12864time.c -FUNC ds1302_write_byte 67E fV -BLOCK 24 680 +FUNC ds1302_write_byte 6F8 fV +BLOCK 24 6FA DEFREG i 20 c DEFREG d 18 c DEFREG addr 16 c -LINE 24 680 -LINE 27 680 -LINE 30 682 -LINE 31 684 -LINE 32 686 -LINE 32 68A -LINE 33 68A -LINE 33 68E -LINE 34 68E -LINE 35 690 -LINE 36 692 -LINE 37 692 -LINE 38 694 -LINE 39 694 -LINE 40 696 -LINE 41 698 -LINE 42 69A -LINE 32 69A -LINE 32 69C -LINE 45 6A0 -LINE 46 6A2 -LINE 46 6A6 -LINE 47 6A6 -LINE 47 6AA -LINE 48 6AA -LINE 49 6AC -LINE 50 6AE -LINE 51 6AE -LINE 52 6B0 -LINE 53 6B0 -LINE 54 6B2 -LINE 55 6B4 -LINE 56 6B6 -LINE 46 6B6 -LINE 46 6B8 -LINE 57 6BC -BLOCKEND 0 6BE -FUNCEND 6BE -FUNC ds1302_read_byte 6C2 fc -BLOCK 64 6C6 +LINE 24 6FA +LINE 27 6FA +LINE 30 6FC +LINE 31 6FE +LINE 32 700 +LINE 32 704 +LINE 33 704 +LINE 33 708 +LINE 34 708 +LINE 35 70A +LINE 36 70C +LINE 37 70C +LINE 38 70E +LINE 39 70E +LINE 40 710 +LINE 41 712 +LINE 42 714 +LINE 32 714 +LINE 32 716 +LINE 45 71A +LINE 46 71C +LINE 46 720 +LINE 47 720 +LINE 47 724 +LINE 48 724 +LINE 49 726 +LINE 50 728 +LINE 51 728 +LINE 52 72A +LINE 53 72A +LINE 54 72C +LINE 55 72E +LINE 56 730 +LINE 46 730 +LINE 46 732 +LINE 57 736 +BLOCKEND 0 738 +FUNCEND 738 +FUNC ds1302_read_byte 73C fc +BLOCK 64 740 DEFREG temp 20 c DEFREG i 22 c DEFREG addr 16 c -LINE 64 6C6 -LINE 68 6C6 -LINE 71 6C8 -LINE 72 6CA -LINE 73 6CC -LINE 73 6D0 -LINE 74 6D0 -LINE 74 6D4 -LINE 75 6D4 -LINE 76 6D6 -LINE 77 6D8 -LINE 78 6D8 -LINE 79 6DA -LINE 80 6DA -LINE 81 6DC -LINE 82 6DE -LINE 83 6E0 -LINE 73 6E0 -LINE 73 6E2 -LINE 86 6E6 -LINE 87 6E8 -LINE 87 6EC -LINE 88 6EC -LINE 89 6EE -LINE 89 6F2 -LINE 90 6F2 -LINE 91 6F4 -LINE 92 6F6 -LINE 93 6F6 -LINE 94 6F8 -LINE 95 6F8 -LINE 96 6FA -LINE 97 6FC -LINE 87 6FC -LINE 87 6FE -LINE 99 702 -LINE 100 704 -BLOCKEND 0 706 -FUNCEND 706 -FUNC ds1302_write_time 70C fV -BLOCK 108 70C -LINE 108 70C -LINE 110 70C -LINE 111 712 -LINE 113 718 -LINE 114 720 -LINE 115 728 -LINE 116 730 -LINE 117 738 -LINE 118 740 -LINE 119 748 -LINE 120 750 -LINE 121 758 -BLOCKEND 0 75C -FUNCEND 75C -FUNC ds1302_read_time 75E fV -BLOCK 129 762 -LINE 129 762 -LINE 131 762 -LINE 132 76A -LINE 133 772 -LINE 134 77C -LINE 135 786 -LINE 136 790 -LINE 137 79E -BLOCKEND 0 7A8 -FUNCEND 7A8 -FUNC ds1302_init 7AE fV -BLOCK 145 7AE -LINE 145 7AE -LINE 147 7AE -LINE 148 7B0 -LINE 149 7B2 -LINE 150 7B4 -BLOCKEND 0 7B6 -FUNCEND 7B6 -FUNC dayToChina 7B8 fV -BLOCK 159 7BC +LINE 64 740 +LINE 68 740 +LINE 71 742 +LINE 72 744 +LINE 73 746 +LINE 73 74A +LINE 74 74A +LINE 74 74E +LINE 75 74E +LINE 76 750 +LINE 77 752 +LINE 78 752 +LINE 79 754 +LINE 80 754 +LINE 81 756 +LINE 82 758 +LINE 83 75A +LINE 73 75A +LINE 73 75C +LINE 86 760 +LINE 87 762 +LINE 87 766 +LINE 88 766 +LINE 89 768 +LINE 89 76C +LINE 90 76C +LINE 91 76E +LINE 92 770 +LINE 93 770 +LINE 94 772 +LINE 95 772 +LINE 96 774 +LINE 97 776 +LINE 87 776 +LINE 87 778 +LINE 99 77C +LINE 100 77E +BLOCKEND 0 780 +FUNCEND 780 +FUNC ds1302_write_time 786 fV +BLOCK 108 786 +LINE 108 786 +LINE 110 786 +LINE 111 78C +LINE 113 792 +LINE 114 79A +LINE 115 7A2 +LINE 116 7AA +LINE 117 7B2 +LINE 118 7BA +LINE 119 7C2 +LINE 121 7CA +BLOCKEND 0 7CE +FUNCEND 7CE +FUNC ds1302_read_time 7D0 fV +BLOCK 129 7D4 +LINE 129 7D4 +LINE 131 7D4 +LINE 132 7DC +LINE 133 7E4 +LINE 134 7EE +LINE 135 7F8 +LINE 136 802 +LINE 137 810 +BLOCKEND 0 81A +FUNCEND 81A +FUNC ds1302_init 820 fV +BLOCK 145 820 +LINE 145 820 +LINE 147 820 +LINE 148 822 +LINE 149 824 +LINE 150 826 +BLOCKEND 0 828 +FUNCEND 828 +FUNC dayToChina 82A fV +BLOCK 159 82E DEFREG day 20 c -LINE 159 7BC -LINE 160 7BC -LINE 161 7C0 -LINE 162 7CA -LINE 163 7CE -LINE 164 7D8 -LINE 165 7DC -LINE 166 7E6 -LINE 167 7EA -LINE 168 7F4 -LINE 169 7F8 -LINE 170 802 -LINE 171 806 -LINE 172 810 -LINE 173 814 -BLOCKEND 0 81E -FUNCEND 81E -FUNC displayDateTime 822 fV -BLOCK 180 824 +LINE 159 82E +LINE 160 82E +LINE 161 832 +LINE 162 83C +LINE 163 840 +LINE 164 84A +LINE 165 84E +LINE 166 858 +LINE 167 85C +LINE 168 866 +LINE 169 86A +LINE 170 874 +LINE 171 878 +LINE 172 882 +LINE 173 886 +BLOCKEND 0 890 +FUNCEND 890 +FUNC displayDateTime 894 fV +BLOCK 180 896 DEFLOCAL temp 0 c -LINE 180 824 -LINE 182 824 -LINE 183 82C -LINE 185 82E -LINE 186 834 -LINE 187 83C -LINE 188 848 -LINE 189 84E -LINE 190 856 -LINE 191 860 -LINE 192 866 -LINE 193 86E -LINE 194 87A -LINE 195 880 -LINE 197 888 -LINE 198 892 -LINE 199 898 -LINE 200 8A0 -LINE 201 8A6 -LINE 203 8AE -LINE 204 8BA -LINE 205 8C0 -LINE 206 8C8 -LINE 207 8D2 -LINE 208 8D8 -LINE 209 8E0 -LINE 210 8E6 -LINE 212 8EE -LINE 213 8FA -LINE 214 900 -LINE 215 908 -LINE 216 912 -LINE 217 918 -LINE 220 920 -LINE 221 926 -LINE 224 92E -LINE 225 934 -LINE 227 93C -LINE 228 948 -LINE 229 94E -LINE 230 956 -LINE 231 960 -LINE 232 966 -LINE 233 96E -LINE 234 974 -LINE 236 97C -LINE 237 988 -LINE 238 98E -LINE 239 996 -LINE 240 9A0 -LINE 241 9A6 -LINE 242 9AE -LINE 243 9B4 -LINE 245 9BC -LINE 246 9C8 -LINE 247 9CE -LINE 248 9D6 -LINE 249 9E0 -LINE 250 9E6 -BLOCKEND 0 9EE -FUNCEND 9EE -DEFGLOBAL time_buf 16E A[8:8]c +LINE 180 896 +LINE 182 896 +LINE 183 89E +LINE 185 8A0 +LINE 186 8A6 +LINE 187 8AE +LINE 188 8BA +LINE 189 8C0 +LINE 190 8C8 +LINE 191 8D2 +LINE 192 8D8 +LINE 193 8E0 +LINE 194 8EC +LINE 195 8F2 +LINE 197 8FA +LINE 198 904 +LINE 199 90A +LINE 200 912 +LINE 201 918 +LINE 203 920 +LINE 204 92C +LINE 205 932 +LINE 206 93A +LINE 207 944 +LINE 208 94A +LINE 209 952 +LINE 210 958 +LINE 212 960 +LINE 213 96C +LINE 214 972 +LINE 215 97A +LINE 216 984 +LINE 217 98A +LINE 220 992 +LINE 221 998 +LINE 224 9A0 +LINE 225 9A6 +LINE 227 9AE +LINE 228 9BA +LINE 229 9C0 +LINE 230 9C8 +LINE 231 9D2 +LINE 232 9D8 +LINE 233 9E0 +LINE 234 9E6 +LINE 236 9EE +LINE 237 9FA +LINE 238 A00 +LINE 239 A08 +LINE 240 A12 +LINE 241 A18 +LINE 242 A20 +LINE 243 A26 +LINE 245 A2E +LINE 246 A3A +LINE 247 A40 +LINE 248 A48 +LINE 249 A52 +LINE 250 A58 +BLOCKEND 0 A60 +FUNCEND A60 +FUNC Timetostr A64 fpc +BLOCK 255 A66 +DEFLOCAL str 0 A[21:21]c +LINE 255 A66 +LINE 256 A66 +LINE 257 A7C +LINE 258 A7E +LINE 259 A8A +LINE 260 A94 +LINE 261 AA0 +LINE 262 AAA +LINE 263 AAE +LINE 264 ABA +LINE 265 AC4 +LINE 266 AC8 +LINE 267 AD4 +LINE 268 ADE +LINE 268 AE2 +LINE 269 AE4 +LINE 270 AF0 +LINE 271 AFA +LINE 272 AFE +LINE 273 B0A +LINE 274 B14 +LINE 275 B18 +LINE 276 B24 +LINE 277 B2E +LINE 278 B32 +BLOCKEND 0 B34 +FUNCEND B34 +DEFGLOBAL time_buf 173 A[8:8]c FILE DS18B20.C -FUNC DS18B20_Reset 9F2 fc -BLOCK 15 9F4 +FUNC DS18B20_Reset B38 fc +BLOCK 15 B3A DEFREG i 20 c -LINE 15 9F4 -LINE 17 9F4 -LINE 18 9F6 -LINE 19 9F8 -LINE 20 A00 -LINE 21 A02 -LINE 22 A04 -LINE 23 A0C -LINE 24 A10 -LINE 26 A18 -LINE 27 A1C -LINE 28 A1C -LINE 32 A20 -LINE 33 A20 -BLOCKEND 0 A22 -FUNCEND A22 -FUNC DS18B20_Read_byte A26 fc -BLOCK 45 A2A +LINE 15 B3A +LINE 17 B3A +LINE 18 B3C +LINE 19 B3E +LINE 20 B46 +LINE 21 B48 +LINE 22 B4A +LINE 23 B52 +LINE 24 B56 +LINE 26 B5E +LINE 27 B62 +LINE 28 B62 +LINE 32 B66 +LINE 33 B66 +BLOCKEND 0 B68 +FUNCEND B68 +FUNC DS18B20_Read_byte B6C fc +BLOCK 45 B70 DEFREG value 20 c DEFREG i 22 c -LINE 45 A2A -LINE 48 A2A -LINE 49 A2C -LINE 50 A30 -LINE 51 A30 -LINE 52 A32 -LINE 53 A34 -LINE 54 A36 -LINE 56 A3A -LINE 57 A3C -LINE 58 A3E -LINE 60 A42 -LINE 61 A46 -LINE 62 A46 -LINE 64 A48 -LINE 65 A48 -LINE 67 A4C -LINE 49 A4C -LINE 49 A4E -LINE 69 A52 -BLOCKEND 0 A54 -FUNCEND A54 -FUNC ds1820_write_byte A5A fV -BLOCK 77 A60 +LINE 45 B70 +LINE 48 B70 +LINE 49 B72 +LINE 50 B76 +LINE 51 B76 +LINE 52 B78 +LINE 53 B7A +LINE 54 B7C +LINE 56 B80 +LINE 57 B82 +LINE 58 B84 +LINE 60 B88 +LINE 61 B8C +LINE 62 B8C +LINE 64 B8E +LINE 65 B8E +LINE 67 B92 +LINE 49 B92 +LINE 49 B94 +LINE 69 B98 +BLOCKEND 0 B9A +FUNCEND B9A +FUNC ds1820_write_byte BA0 fV +BLOCK 77 BA6 DEFREG i 20 c DEFREG value 10 c -LINE 77 A60 -LINE 80 A60 -LINE 81 A64 -LINE 82 A64 -LINE 83 A66 -LINE 84 A68 -LINE 85 A6C -LINE 86 A70 -LINE 87 A70 -LINE 89 A72 -LINE 90 A72 -LINE 91 A7A -LINE 92 A7C -LINE 94 A7E -LINE 80 A7E -LINE 80 A80 -BLOCKEND 0 A84 -FUNCEND A84 -FUNC ds1820_start A8A fV -BLOCK 102 A8A -LINE 102 A8A -LINE 104 A8A -LINE 105 A8C -LINE 106 A90 -BLOCKEND 0 A92 -FUNCEND A92 -FUNC DS18B20_Read_temp A94 fi -BLOCK 114 A9A +LINE 77 BA6 +LINE 80 BA6 +LINE 81 BAA +LINE 82 BAA +LINE 83 BAC +LINE 84 BAE +LINE 85 BB2 +LINE 86 BB6 +LINE 87 BB6 +LINE 89 BB8 +LINE 90 BB8 +LINE 91 BC0 +LINE 92 BC2 +LINE 94 BC4 +LINE 80 BC4 +LINE 80 BC6 +BLOCKEND 0 BCA +FUNCEND BCA +FUNC ds1820_start BD0 fV +BLOCK 102 BD0 +LINE 102 BD0 +LINE 104 BD0 +LINE 105 BD2 +LINE 106 BD6 +BLOCKEND 0 BD8 +FUNCEND BD8 +FUNC DS18B20_Read_temp BDA fi +BLOCK 114 BE0 DEFLOCAL buf 0 A[9:9]c DEFREG i 20 i -LINE 114 A9A -LINE 119 A9A -LINE 120 A9C -LINE 121 AA0 -LINE 122 AA4 -LINE 123 AAA -LINE 124 AAA -LINE 125 AB6 -LINE 122 AB6 -LINE 122 ABA -LINE 126 AC2 -LINE 127 AC6 -LINE 128 ACA -LINE 129 AD2 -LINE 130 ADA -LINE 133 B0E -BLOCKEND 0 B10 -FUNCEND B10 -FUNC data_do B18 fV -BLOCK 142 B1E +LINE 114 BE0 +LINE 119 BE0 +LINE 120 BE2 +LINE 121 BE6 +LINE 122 BEA +LINE 123 BF0 +LINE 124 BF0 +LINE 125 BFC +LINE 122 BFC +LINE 122 C00 +LINE 126 C08 +LINE 127 C0C +LINE 128 C10 +LINE 129 C18 +LINE 130 C20 +LINE 133 C54 +BLOCKEND 0 C56 +FUNCEND C56 +FUNC data_do C5E fV +BLOCK 142 C64 DEFREG A2t 10 i DEFREG temp_d 10 i -LINE 142 B1E -LINE 144 B1E -LINE 145 B30 -LINE 146 B3C -LINE 147 B4C -BLOCKEND 0 B5E -FUNCEND B5E -FUNC LCD_write_temperature B64 fV -BLOCK 154 B66 +LINE 142 C64 +LINE 144 C64 +LINE 145 C76 +LINE 146 C82 +LINE 147 C92 +BLOCKEND 0 CA4 +FUNCEND CA4 +FUNC LCD_write_temperature CAA fV +BLOCK 154 CAC DEFLOCAL temp 0 c -LINE 154 B66 -LINE 156 B66 -LINE 157 B68 -LINE 158 B6A -LINE 160 B74 -LINE 161 B7C -LINE 162 B84 -LINE 163 B90 -LINE 164 B98 -LINE 165 BA0 -LINE 166 BAC -LINE 167 BB4 -LINE 168 BBC -LINE 169 BC4 -LINE 170 BCC -LINE 171 BD8 -LINE 172 BE0 -LINE 173 BE8 -BLOCKEND 0 BF4 -FUNCEND BF4 -DEFGLOBAL A3 305 i -DEFGLOBAL A2 307 i -DEFGLOBAL A1 309 i -DEFGLOBAL temp 30B i -DEFGLOBAL temp_value 30D i +LINE 154 CAC +LINE 156 CAC +LINE 157 CAE +LINE 158 CB0 +LINE 160 CBA +LINE 161 CC2 +LINE 162 CCA +LINE 163 CD6 +LINE 164 CDE +LINE 165 CE6 +LINE 166 CF2 +LINE 167 CFA +LINE 168 D02 +LINE 169 D0A +LINE 170 D12 +LINE 171 D1E +LINE 172 D26 +LINE 173 D2E +BLOCKEND 0 D3A +FUNCEND D3A +FUNC Temperaturetostr D3E fpc +BLOCK 179 D40 +DEFLOCAL str 0 A[7:7]c +LINE 179 D40 +LINE 180 D40 +LINE 181 D56 +LINE 182 D58 +LINE 183 D5A +LINE 184 D64 +LINE 185 D70 +LINE 186 D7C +LINE 187 D80 +LINE 188 D8C +LINE 189 D96 +LINE 190 D9A +BLOCKEND 0 D9C +FUNCEND D9C +DEFGLOBAL A3 32F i +DEFGLOBAL A2 331 i +DEFGLOBAL A1 333 i +DEFGLOBAL temp_value 335 i FILE basic.c -FUNC delay_1us BF8 fV -BLOCK 3 BF8 -LINE 3 BF8 -LINE 4 BF8 -LINE 5 BFA -LINE 6 BFC -LINE 7 BFE -LINE 8 C00 -LINE 9 C02 -BLOCKEND 0 C04 -FUNCEND C04 -FUNC delay_3us C06 fV -BLOCK 14 C06 -LINE 14 C06 -LINE 16 C06 -LINE 17 C08 -LINE 18 C0A -LINE 19 C0C -LINE 20 C0E -LINE 21 C10 -LINE 22 C12 -LINE 23 C14 -LINE 24 C16 -LINE 25 C18 -LINE 26 C1A -LINE 27 C1C -LINE 28 C1E -LINE 29 C20 -LINE 30 C22 -LINE 31 C24 -LINE 32 C26 -LINE 33 C28 -LINE 34 C2A -LINE 35 C2C -LINE 36 C2E -BLOCKEND 0 C30 -FUNCEND C30 -FUNC delay_10us C32 fV -BLOCK 40 C32 -LINE 40 C32 -LINE 41 C32 -LINE 42 C34 -LINE 43 C36 -BLOCKEND 0 C36 -FUNCEND C36 -FUNC delay_50us C38 fV -BLOCK 47 C38 -LINE 47 C38 -LINE 48 C38 -LINE 49 C3A -LINE 50 C3C -LINE 51 C3E -BLOCKEND 0 C3E -FUNCEND C3E -FUNC delay_100us C40 fV -BLOCK 54 C40 -LINE 54 C40 -LINE 55 C40 -LINE 56 C42 -BLOCKEND 0 C42 -FUNCEND C42 -FUNC delay_n100us C44 fV -BLOCK 60 C48 +FUNC delay_1us DA0 fV +BLOCK 3 DA0 +LINE 3 DA0 +LINE 4 DA0 +LINE 5 DA2 +LINE 6 DA4 +LINE 7 DA6 +LINE 8 DA8 +LINE 9 DAA +BLOCKEND 0 DAC +FUNCEND DAC +FUNC delay_3us DAE fV +BLOCK 14 DAE +LINE 14 DAE +LINE 16 DAE +LINE 17 DB0 +LINE 18 DB2 +LINE 19 DB4 +LINE 20 DB6 +LINE 21 DB8 +LINE 22 DBA +LINE 23 DBC +LINE 24 DBE +LINE 25 DC0 +LINE 26 DC2 +LINE 27 DC4 +LINE 28 DC6 +LINE 29 DC8 +LINE 30 DCA +LINE 31 DCC +LINE 32 DCE +LINE 33 DD0 +LINE 34 DD2 +LINE 35 DD4 +LINE 36 DD6 +BLOCKEND 0 DD8 +FUNCEND DD8 +FUNC delay_10us DDA fV +BLOCK 40 DDA +LINE 40 DDA +LINE 41 DDA +LINE 42 DDC +LINE 43 DDE +BLOCKEND 0 DDE +FUNCEND DDE +FUNC delay_50us DE0 fV +BLOCK 47 DE0 +LINE 47 DE0 +LINE 48 DE0 +LINE 49 DE2 +LINE 50 DE4 +LINE 51 DE6 +BLOCKEND 0 DE6 +FUNCEND DE6 +FUNC delay_100us DE8 fV +BLOCK 54 DE8 +LINE 54 DE8 +LINE 55 DE8 +LINE 56 DEA +BLOCKEND 0 DEA +FUNCEND DEA +FUNC delay_n100us DEC fV +BLOCK 60 DF0 DEFREG n100us 20 c -LINE 60 C48 -LINE 62 C4A -LINE 61 C4C -BLOCKEND 0 C56 -FUNCEND C56 -FUNC delay_1ms C5A fV -BLOCK 67 C5A -LINE 67 C5A -LINE 68 C5A -LINE 69 C5C -LINE 70 C5E -LINE 71 C60 -LINE 72 C62 -LINE 73 C64 -LINE 74 C66 -LINE 75 C68 -LINE 76 C6A -LINE 77 C6C -BLOCKEND 0 C6C -FUNCEND C6C -FUNC delay_nms C6E fV -BLOCK 81 C74 +LINE 60 DF0 +LINE 62 DF2 +LINE 61 DF4 +BLOCKEND 0 DFE +FUNCEND DFE +FUNC delay_1ms E02 fV +BLOCK 67 E02 +LINE 67 E02 +LINE 68 E02 +LINE 69 E04 +LINE 70 E06 +LINE 71 E08 +LINE 72 E0A +LINE 73 E0C +LINE 74 E0E +LINE 75 E10 +LINE 76 E12 +LINE 77 E14 +BLOCKEND 0 E14 +FUNCEND E14 +FUNC delay_nms E16 fV +BLOCK 81 E1C DEFREG nms 20 i -LINE 81 C74 -LINE 83 C76 -LINE 82 C78 -BLOCKEND 0 C86 -FUNCEND C86 +LINE 81 E1C +LINE 83 E1E +LINE 82 E20 +BLOCKEND 0 E2E +FUNCEND E2E FILE LCD.c -FUNC system_init C8C fV -BLOCK 8 C8C -LINE 8 C8C -LINE 10 C8C -LINE 11 C90 -LINE 13 C92 -LINE 14 C96 -LINE 15 C9A -LINE 16 C9C -LINE 17 C9E -LINE 18 CA0 -LINE 19 CA4 -LINE 20 CA6 -LINE 21 CA8 -LINE 22 CAC -LINE 24 CAE -LINE 25 CB0 -LINE 27 CB2 -BLOCKEND 0 CBC -FUNCEND CBC -FUNC LCD_write_com CBE fV -BLOCK 37 CC2 +FUNC system_init E34 fV +BLOCK 8 E34 +LINE 8 E34 +LINE 10 E34 +LINE 11 E38 +LINE 13 E3A +LINE 14 E3E +LINE 15 E42 +LINE 16 E44 +LINE 17 E46 +LINE 18 E48 +LINE 19 E4C +LINE 20 E4E +LINE 21 E50 +LINE 22 E54 +LINE 24 E56 +LINE 25 E58 +LINE 27 E5A +BLOCKEND 0 E64 +FUNCEND E64 +FUNC LCD_write_com E66 fV +BLOCK 37 E6A DEFREG com 10 c -LINE 37 CC2 -LINE 38 CC2 -LINE 39 CCC -LINE 40 CD6 -LINE 41 CE0 -LINE 42 CE2 -LINE 43 CEA -BLOCKEND 0 CF4 -FUNCEND CF4 -FUNC LCD_write_data CF8 fV -BLOCK 51 CFC +LINE 37 E6A +LINE 38 E6A +LINE 39 E74 +LINE 40 E7E +LINE 41 E88 +LINE 42 E8A +LINE 43 E92 +BLOCKEND 0 E9C +FUNCEND E9C +FUNC LCD_write_data EA0 fV +BLOCK 51 EA4 DEFREG data 10 c -LINE 51 CFC -LINE 52 CFC -LINE 53 D06 -LINE 54 D10 -LINE 55 D1A -LINE 56 D1C -LINE 57 D24 -BLOCKEND 0 D2E -FUNCEND D2E -FUNC LCD_write_char D32 fV -BLOCK 65 D3C +LINE 51 EA4 +LINE 52 EA4 +LINE 53 EAE +LINE 54 EB8 +LINE 55 EC2 +LINE 56 EC4 +LINE 57 ECC +BLOCKEND 0 ED6 +FUNCEND ED6 +FUNC LCD_write_char EDA fV +BLOCK 65 EE4 DEFREG data 10 c DEFREG y 12 c DEFREG x 20 c -LINE 65 D3C -LINE 67 D3C -LINE 68 D40 -LINE 69 D40 -LINE 70 D46 -LINE 72 D48 -LINE 73 D48 -LINE 74 D4E -LINE 75 D4E -LINE 76 D56 -BLOCKEND 0 D5A -FUNCEND D5A -FUNC LCD_clear D5E fV -BLOCK 84 D5E -LINE 84 D5E -LINE 85 D5E -LINE 86 D62 -BLOCKEND 0 D66 -FUNCEND D66 -FUNC DisplayCgrom D6A fV -BLOCK 93 D72 +LINE 65 EE4 +LINE 67 EE4 +LINE 68 EE8 +LINE 69 EE8 +LINE 70 EEE +LINE 72 EF0 +LINE 73 EF0 +LINE 74 EF6 +LINE 75 EF6 +LINE 76 EFE +BLOCKEND 0 F02 +FUNCEND F02 +FUNC LCD_clear F06 fV +BLOCK 84 F06 +LINE 84 F06 +LINE 85 F06 +LINE 86 F0A +BLOCKEND 0 F0E +FUNCEND F0E +FUNC DisplayCgrom F12 fV +BLOCK 93 F1A DEFREG hz 20 pc DEFREG addr 10 c -LINE 93 D72 -LINE 94 D72 -LINE 95 D76 -LINE 97 D80 -LINE 98 D80 -LINE 99 D86 -LINE 100 D8A -LINE 101 D92 -LINE 96 D92 -BLOCKEND 0 D9A -FUNCEND D9A -FUNC LCD_init D9E fV -BLOCK 110 D9E -LINE 110 D9E -LINE 111 D9E -LINE 112 DA2 -LINE 113 DA8 -LINE 114 DAC -LINE 115 DB4 -LINE 116 DB8 -LINE 117 DC0 -LINE 118 DC4 -LINE 119 DCC -LINE 120 DD0 -BLOCKEND 0 DD4 -FUNCEND DD4 +LINE 93 F1A +LINE 94 F1A +LINE 95 F1E +LINE 97 F28 +LINE 98 F28 +LINE 99 F2E +LINE 100 F32 +LINE 101 F3A +LINE 96 F3A +BLOCKEND 0 F42 +FUNCEND F42 +FUNC LCD_init F46 fV +BLOCK 110 F46 +LINE 110 F46 +LINE 111 F46 +LINE 112 F4A +LINE 113 F50 +LINE 114 F54 +LINE 115 F5C +LINE 116 F60 +LINE 117 F68 +LINE 118 F6C +LINE 119 F74 +LINE 120 F78 +BLOCKEND 0 F7C +FUNCEND F7C FILE USART.c -FUNC UART0_Init DD8 fV -BLOCK 25 DD8 -LINE 25 DD8 -LINE 26 DD8 -LINE 27 DDC -LINE 28 DE2 -LINE 29 DE4 -LINE 30 DE8 -LINE 31 DEC -LINE 33 DF0 -LINE 34 DF4 -BLOCKEND 0 DF8 -FUNCEND DF8 -FUNC puts0 DFA fV -BLOCK 41 DFA -LINE 41 DFA -LINE 42 DFA -LINE 42 E02 -LINE 43 E02 -LINE 44 E14 -LINE 44 E14 -LINE 45 E18 -LINE 46 E1A -LINE 42 E1A -LINE 42 E24 -BLOCKEND 0 E30 -FUNCEND E30 -FUNC uart0_rx_isr E32 fV -BLOCK 57 E40 -LINE 57 E40 -LINE 58 E40 -LINE 59 E52 -LINE 60 E5C -BLOCKEND 0 E62 -FUNCEND E62 -FUNC UART1_Init E72 fV -BLOCK 70 E72 -LINE 70 E72 -LINE 71 E72 -LINE 72 E78 -LINE 73 E7E -LINE 74 E82 -LINE 75 E86 -LINE 76 E8C -LINE 78 E92 -LINE 79 E96 -BLOCKEND 0 E9A -FUNCEND E9A -FUNC puts1 E9C fV -BLOCK 86 E9C -LINE 86 E9C -LINE 87 E9C -LINE 87 EA4 -LINE 88 EA4 -LINE 89 EB8 -LINE 89 EB8 -LINE 90 EC0 -LINE 91 ECA -LINE 87 ECA -LINE 87 ED4 -LINE 92 EE0 -LINE 93 EE6 -LINE 93 EE6 -LINE 94 EEE -BLOCKEND 0 EF8 -FUNCEND EF8 -FUNC uart1_rx_isr EFA fV -BLOCK 102 F08 -LINE 102 F08 -LINE 103 F08 -LINE 104 F1C -LINE 105 F26 -BLOCKEND 0 F2C -FUNCEND F2C -DEFGLOBAL RxBufRd_wifi 30F c -DEFGLOBAL RxBufWr_wifi 310 c -DEFGLOBAL RxCharNum_wifi 311 c -DEFGLOBAL RxCharBuf_wifi 312 A[16:16]c -DEFGLOBAL TxStrLen_wifi 322 c -DEFGLOBAL TxCharNum_wifi 323 c -DEFGLOBAL TxCharBuf_wifi 324 A[128:128]c -DEFGLOBAL RxBufRd 3A4 c -DEFGLOBAL RxBufWr 3A5 c -DEFGLOBAL RxCharNum 3A6 c -DEFGLOBAL RxCharBuf 3A7 A[16:16]c -DEFGLOBAL TxStrLen 3B7 c -DEFGLOBAL TxCharNum 3B8 c -DEFGLOBAL TxCharBuf 3B9 A[128:128]c +FUNC UART0_Init F80 fV +BLOCK 25 F80 +LINE 25 F80 +LINE 26 F80 +LINE 27 F84 +LINE 28 F8A +LINE 29 F8C +LINE 30 F90 +LINE 31 F94 +LINE 33 F98 +LINE 34 F9C +BLOCKEND 0 FA0 +FUNCEND FA0 +FUNC puts0 FA2 fV +BLOCK 41 FA2 +LINE 41 FA2 +LINE 42 FA2 +LINE 42 FAA +LINE 43 FAA +LINE 44 FBC +LINE 44 FBC +LINE 45 FC0 +LINE 46 FC2 +LINE 42 FC2 +LINE 42 FCC +BLOCKEND 0 FD8 +FUNCEND FD8 +FUNC uart0_rx_isr FDA fV +BLOCK 57 FE8 +LINE 57 FE8 +LINE 58 FE8 +LINE 59 FFA +LINE 60 1004 +BLOCKEND 0 100A +FUNCEND 100A +FUNC UART1_Init 101A fV +BLOCK 70 101A +LINE 70 101A +LINE 71 101A +LINE 72 1020 +LINE 73 1026 +LINE 74 102A +LINE 75 102E +LINE 76 1034 +LINE 78 103A +LINE 79 103E +BLOCKEND 0 1042 +FUNCEND 1042 +FUNC puts1 1044 fV +BLOCK 86 1044 +LINE 86 1044 +LINE 87 1044 +LINE 87 104C +LINE 88 104C +LINE 89 1060 +LINE 89 1060 +LINE 90 1068 +LINE 91 1072 +LINE 87 1072 +LINE 87 107C +LINE 92 1088 +LINE 93 108E +LINE 93 108E +LINE 94 1096 +BLOCKEND 0 10A0 +FUNCEND 10A0 +FUNC uart1_rx_isr 10A2 fV +BLOCK 102 10B0 +LINE 102 10B0 +LINE 103 10B0 +LINE 104 10C4 +LINE 105 10CE +BLOCKEND 0 10D4 +FUNCEND 10D4 +DEFGLOBAL RxBufRd_wifi 337 c +DEFGLOBAL RxBufWr_wifi 338 c +DEFGLOBAL RxCharNum_wifi 339 c +DEFGLOBAL RxCharBuf_wifi 33A A[16:16]c +DEFGLOBAL TxStrLen_wifi 34A c +DEFGLOBAL TxCharNum_wifi 34B c +DEFGLOBAL TxCharBuf_wifi 34C A[128:128]c +DEFGLOBAL RxBufRd 3CC c +DEFGLOBAL RxBufWr 3CD c +DEFGLOBAL RxCharNum 3CE c +DEFGLOBAL RxCharBuf 3CF A[16:16]c +DEFGLOBAL TxStrLen 3DF c +DEFGLOBAL TxCharNum 3E0 c +DEFGLOBAL TxCharBuf 3E1 A[128:128]c FILE SYN7318.c -FUNC SYN7318_init F3C fV -BLOCK 26 F3C -LINE 26 F3C -LINE 28 F3C -LINE 29 F3E -LINE 30 F40 -LINE 31 F42 -LINE 32 F44 -LINE 33 F4C -LINE 34 F4E -LINE 35 F56 -LINE 36 F58 -BLOCKEND 0 F5C -FUNCEND F5C -FUNC buildHead F60 fV -BLOCK 43 F60 +FUNC SYN7318_init 10E4 fV +BLOCK 26 10E4 +LINE 26 10E4 +LINE 28 10E4 +LINE 29 10E6 +LINE 30 10E8 +LINE 31 10EA +LINE 32 10EC +LINE 33 10F4 +LINE 34 10F6 +LINE 35 10FE +LINE 36 1100 +BLOCKEND 0 1104 +FUNCEND 1104 +FUNC buildHead 1108 fV +BLOCK 43 1108 DEFREG command 18 c DEFREG len 16 i -LINE 43 F60 -LINE 44 F60 -LINE 45 F66 -LINE 46 F70 -LINE 47 F78 -LINE 48 F7C -BLOCKEND 0 F82 -FUNCEND F82 -FUNC checkSendReturn F84 fi -BLOCK 55 F88 +LINE 43 1108 +LINE 44 1108 +LINE 45 110E +LINE 46 1118 +LINE 47 1120 +LINE 48 1124 +BLOCKEND 0 112A +FUNCEND 112A +FUNC checkSendReturn 112C fi +BLOCK 55 1130 DEFREG command 12 c DEFREG length 10 c DEFREG number 20 c DEFREG RxSt 22 c -LINE 55 F88 -LINE 56 F88 -LINE 57 F8A -LINE 58 F96 -LINE 59 F98 -LINE 59 FA0 -LINE 60 FAC -LINE 61 FBA -LINE 62 FC2 -LINE 63 FC8 -LINE 65 FF8 -LINE 65 FFE -LINE 66 FFE -LINE 67 1000 -LINE 68 1000 -LINE 70 1002 -LINE 71 1006 -LINE 72 100C -LINE 73 100E -LINE 75 1010 -LINE 76 1016 -LINE 77 101C -LINE 78 101E -LINE 79 1020 -LINE 81 1022 -LINE 82 1026 -LINE 83 102C -LINE 84 102E -LINE 85 1030 -LINE 86 1036 -LINE 87 1038 -LINE 88 103A -LINE 90 103C -LINE 91 1050 -LINE 93 1068 -LINE 94 106A -LINE 95 106C -LINE 98 1070 -LINE 98 1070 -BLOCKEND 0 1072 -FUNCEND 1072 -FUNC voicePlayer 1076 fV -BLOCK 107 107C +LINE 55 1130 +LINE 56 1130 +LINE 57 1132 +LINE 58 113E +LINE 59 1140 +LINE 59 1148 +LINE 60 1154 +LINE 61 1162 +LINE 62 116A +LINE 63 1170 +LINE 65 11A0 +LINE 65 11A6 +LINE 66 11A6 +LINE 67 11A8 +LINE 68 11A8 +LINE 70 11AA +LINE 71 11AE +LINE 72 11B4 +LINE 73 11B6 +LINE 75 11B8 +LINE 76 11BE +LINE 77 11C4 +LINE 78 11C6 +LINE 79 11C8 +LINE 81 11CA +LINE 82 11CE +LINE 83 11D4 +LINE 84 11D6 +LINE 85 11D8 +LINE 86 11DE +LINE 87 11E0 +LINE 88 11E2 +LINE 90 11E4 +LINE 91 11F8 +LINE 93 1210 +LINE 94 1212 +LINE 95 1214 +LINE 98 1218 +LINE 98 1218 +BLOCKEND 0 121A +FUNCEND 121A +FUNC voicePlayer 121E fV +BLOCK 107 1224 DEFLOCAL temp 1 c DEFREG length 20 i DEFREG i 22 I DEFREG content 10 pc -LINE 107 107C -LINE 110 107C -LINE 111 1084 -LINE 112 108C -LINE 113 1092 -LINE 113 1098 -LINE 114 1098 -LINE 115 10AC -LINE 113 10AC -LINE 113 10B0 -LINE 116 10B6 -LINE 118 10C4 -LINE 119 10CC -LINE 120 10CC -LINE 121 10D6 -LINE 122 10DA -LINE 123 10E4 -LINE 125 10EC -LINE 126 10EC -LINE 126 10EC -LINE 127 10EE -LINE 128 10FA -LINE 130 10FC -BLOCKEND 0 10FE -FUNCEND 10FE -FUNC SYN7318_welcome 1102 fV -BLOCK 137 1102 -LINE 137 1102 -LINE 138 1102 -LINE 139 110E -BLOCKEND 0 1112 -FUNCEND 1112 -FUNC SYN7318_Error 1114 fV -BLOCK 146 1114 -LINE 146 1114 -LINE 147 1114 -LINE 148 1120 -BLOCKEND 0 1124 -FUNCEND 1124 -FUNC setVoiceLevel 1126 fV -BLOCK 155 112A +LINE 107 1224 +LINE 110 1224 +LINE 111 122C +LINE 112 1234 +LINE 113 123A +LINE 113 1240 +LINE 114 1240 +LINE 115 1254 +LINE 113 1254 +LINE 113 1258 +LINE 116 125E +LINE 118 126C +LINE 119 1274 +LINE 120 1274 +LINE 121 127E +LINE 122 1282 +LINE 123 128C +LINE 125 1294 +LINE 126 1294 +LINE 126 1294 +LINE 127 1296 +LINE 128 12A2 +LINE 130 12A4 +BLOCKEND 0 12A6 +FUNCEND 12A6 +FUNC SYN7318_welcome 12AA fV +BLOCK 137 12AA +LINE 137 12AA +LINE 138 12AA +LINE 139 12B6 +BLOCKEND 0 12BA +FUNCEND 12BA +FUNC SYN7318_Error 12BC fV +BLOCK 146 12BC +LINE 146 12BC +LINE 147 12BC +LINE 148 12C8 +BLOCKEND 0 12CC +FUNCEND 12CC +FUNC setVoiceLevel 12CE fV +BLOCK 155 12D2 DEFREG level 10 c -LINE 155 112A -LINE 156 112A -LINE 157 1132 -LINE 158 1136 -LINE 159 1142 -LINE 160 1142 -LINE 161 114C -LINE 162 1150 -LINE 162 1150 -LINE 164 1158 -BLOCKEND 0 1160 -FUNCEND 1160 -FUNC setVoiceOption 1164 fV -BLOCK 172 1164 -LINE 172 1164 -LINE 173 1164 -LINE 174 116C -LINE 175 1172 -LINE 176 1178 -LINE 177 117E -LINE 178 1184 -LINE 179 118A -LINE 181 1190 -LINE 182 1196 -LINE 183 1196 -LINE 184 11A0 -LINE 185 11A4 -LINE 185 11AE -LINE 186 11AE -LINE 188 11B0 -LINE 188 11B0 -LINE 189 11B2 -BLOCKEND 0 11B6 -FUNCEND 11B6 -FUNC updateWords 11BA fV -BLOCK 196 11BE +LINE 155 12D2 +LINE 156 12D2 +LINE 157 12DA +LINE 158 12DE +LINE 159 12EA +LINE 160 12EA +LINE 161 12F4 +LINE 162 12F8 +LINE 162 12F8 +LINE 164 1300 +BLOCKEND 0 1308 +FUNCEND 1308 +FUNC setVoiceOption 130C fV +BLOCK 172 130C +LINE 172 130C +LINE 173 130C +LINE 174 1314 +LINE 175 131A +LINE 176 1320 +LINE 177 1326 +LINE 178 132C +LINE 179 1332 +LINE 181 1338 +LINE 182 133E +LINE 183 133E +LINE 184 1348 +LINE 185 134C +LINE 185 1356 +LINE 186 1356 +LINE 188 1358 +LINE 188 1358 +LINE 189 135A +BLOCKEND 0 135E +FUNCEND 135E +FUNC updateWords 1362 fV +BLOCK 196 1366 DEFREG length 20 c DEFREG i 22 I -LINE 196 11BE -LINE 198 11BE -LINE 199 11C8 -LINE 200 11D2 -LINE 201 11D8 -LINE 202 11DE -LINE 202 11E4 -LINE 203 11E4 -LINE 204 11FC -LINE 202 11FC -LINE 202 1200 -LINE 206 120A -LINE 207 1212 -LINE 208 1212 -LINE 209 121C -LINE 210 1220 -LINE 211 122A -LINE 212 1232 -LINE 212 123C -LINE 213 123C -LINE 215 123E -LINE 216 123E -LINE 217 1246 -LINE 218 1246 -LINE 218 1246 -LINE 219 1248 -LINE 219 1254 -LINE 220 1254 -LINE 221 1258 -LINE 222 1262 -LINE 223 126A -LINE 224 126E -LINE 224 1270 -LINE 225 1270 -LINE 226 1274 -LINE 227 127E -LINE 228 1286 -LINE 229 128A -BLOCKEND 0 128A -FUNCEND 128A -FUNC waitFree 128E fV -BLOCK 238 128E -LINE 238 128E -LINE 239 128E -LINE 240 1296 -LINE 241 129C -LINE 242 129C -LINE 243 12A6 -LINE 244 12AA -LINE 244 12B4 -LINE 245 12B4 -LINE 246 12BE -LINE 247 12C0 -LINE 248 12C0 -LINE 249 12C8 -LINE 249 12C8 -BLOCKEND 0 12CA -FUNCEND 12CA -FUNC startRecognition 12CC fV -BLOCK 256 12CC -LINE 256 12CC -LINE 257 12CC -LINE 258 12D4 -LINE 259 12DA -LINE 260 12E0 -LINE 261 12E0 -LINE 262 12EA -LINE 263 12EE -LINE 263 12F8 -LINE 264 12F8 -LINE 266 12FA -LINE 267 1302 -LINE 267 1302 -BLOCKEND 0 1304 -FUNCEND 1304 -DEFGLOBAL words 19C A[69:69]c -DEFGLOBAL wordID 1E1 i -DEFGLOBAL tmp_text 439 A[255:255]c +LINE 196 1366 +LINE 198 1366 +LINE 199 1370 +LINE 200 137A +LINE 201 1380 +LINE 202 1386 +LINE 202 138C +LINE 203 138C +LINE 204 13A4 +LINE 202 13A4 +LINE 202 13A8 +LINE 206 13B2 +LINE 207 13BA +LINE 208 13BA +LINE 209 13C4 +LINE 210 13C8 +LINE 211 13D2 +LINE 212 13DA +LINE 212 13E4 +LINE 213 13E4 +LINE 215 13E6 +LINE 216 13E6 +LINE 217 13EE +LINE 218 13EE +LINE 218 13EE +LINE 219 13F0 +LINE 219 13FC +LINE 220 13FC +LINE 221 1400 +LINE 222 140A +LINE 223 1412 +LINE 224 1416 +LINE 224 1418 +LINE 225 1418 +LINE 226 141C +LINE 227 1426 +LINE 228 142E +LINE 229 1432 +BLOCKEND 0 1432 +FUNCEND 1432 +FUNC waitFree 1436 fV +BLOCK 238 1436 +LINE 238 1436 +LINE 239 1436 +LINE 240 143E +LINE 241 1444 +LINE 242 1444 +LINE 243 144E +LINE 244 1452 +LINE 244 145C +LINE 245 145C +LINE 246 1466 +LINE 247 1468 +LINE 248 1468 +LINE 249 1470 +LINE 249 1470 +BLOCKEND 0 1472 +FUNCEND 1472 +FUNC startRecognition 1474 fV +BLOCK 256 1474 +LINE 256 1474 +LINE 257 1474 +LINE 258 147C +LINE 259 1482 +LINE 260 1488 +LINE 261 1488 +LINE 262 1492 +LINE 263 1496 +LINE 263 14A0 +LINE 264 14A0 +LINE 266 14A2 +LINE 267 14AA +LINE 267 14AA +BLOCKEND 0 14AC +FUNCEND 14AC +DEFGLOBAL words 1BD A[78:78]c +DEFGLOBAL wordID 20B i +DEFGLOBAL tmp_text 461 A[255:255]c FILE ESP8266.c -FUNC wifi_Restart 1306 fV -BLOCK 19 1306 -LINE 19 1306 -LINE 20 1306 -LINE 21 1312 -LINE 22 131E -BLOCKEND 0 131E -FUNCEND 131E -FUNC wifi_ConnectSTA 1322 fV -BLOCK 29 1322 -LINE 29 1322 -LINE 30 1322 -LINE 31 132E -LINE 32 133A -BLOCKEND 0 133A -FUNCEND 133A -FUNC wifi_CIPMUX 133E fV -BLOCK 39 133E -LINE 39 133E -LINE 40 133E -LINE 41 134A -LINE 42 1356 -BLOCKEND 0 1356 -FUNCEND 1356 -FUNC wifi_TCPConnect 135A fV -BLOCK 49 135A -LINE 49 135A -LINE 50 135A -LINE 51 1366 -LINE 52 1372 -BLOCKEND 0 1372 -FUNCEND 1372 -FUNC wifi_CIPMODE 1376 fV -BLOCK 59 1376 -LINE 59 1376 -LINE 60 1376 -LINE 61 1382 -LINE 62 138E -BLOCKEND 0 138E -FUNCEND 138E -FUNC wifi_CIPSEND 1392 fV -BLOCK 69 1392 -LINE 69 1392 -LINE 70 1392 -LINE 71 139E -LINE 72 13AA -BLOCKEND 0 13AA -FUNCEND 13AA -FUNC wifi_SendMsg 13AE fV -BLOCK 80 13AE -LINE 80 13AE -LINE 81 13AE -LINE 82 13BA -LINE 83 13C6 -BLOCKEND 0 13C6 -FUNCEND 13C6 -FUNC wifi_SENDMSG 13CA fV -BLOCK 90 13CA -LINE 90 13CA -LINE 91 13CA -LINE 92 13CC -LINE 93 13D4 -LINE 94 13D6 -LINE 95 13DE -LINE 96 13E0 -LINE 97 13E8 -BLOCKEND 0 13E8 -FUNCEND 13E8 -START 040C +FUNC wifi_Restart 14AE fV +BLOCK 19 14AE +LINE 19 14AE +LINE 20 14AE +LINE 21 14BA +LINE 22 14C6 +BLOCKEND 0 14C6 +FUNCEND 14C6 +FUNC wifi_ConnectSTA 14CA fV +BLOCK 29 14CA +LINE 29 14CA +LINE 30 14CA +LINE 31 14D6 +LINE 32 14E2 +BLOCKEND 0 14E2 +FUNCEND 14E2 +FUNC wifi_CIPMUX 14E6 fV +BLOCK 39 14E6 +LINE 39 14E6 +LINE 40 14E6 +LINE 41 14F2 +LINE 42 14FE +BLOCKEND 0 14FE +FUNCEND 14FE +FUNC wifi_TCPConnect 1502 fV +BLOCK 49 1502 +LINE 49 1502 +LINE 50 1502 +LINE 51 150E +LINE 52 151A +BLOCKEND 0 151A +FUNCEND 151A +FUNC wifi_CIPMODE 151E fV +BLOCK 59 151E +LINE 59 151E +LINE 60 151E +LINE 61 152A +LINE 62 1536 +BLOCKEND 0 1536 +FUNCEND 1536 +FUNC wifi_CIPSEND 153A fV +BLOCK 69 153A +LINE 69 153A +LINE 70 153A +LINE 71 1546 +LINE 72 1552 +BLOCKEND 0 1552 +FUNCEND 1552 +FUNC wifi_SendMsg 1556 fV +BLOCK 80 1556 +LINE 80 1556 +LINE 81 1556 +LINE 82 1562 +LINE 83 156E +BLOCKEND 0 156E +FUNCEND 156E +FUNC wifi_SENDMSG 1572 fV +BLOCK 90 1572 +LINE 90 1572 +LINE 91 1572 +LINE 92 1574 +LINE 93 157C +LINE 94 157E +LINE 95 1586 +LINE 96 1588 +LINE 97 1590 +BLOCKEND 0 1590 +FUNCEND 1590 +START 0436 diff --git a/OLDMANALARM.hex b/OLDMANALARM.hex index 908ae88..e5abf8f 100644 --- a/OLDMANALARM.hex +++ b/OLDMANALARM.hex @@ -1,7 +1,7 @@ -:040000000C94060254 -:040048000C941907F4 -:040078000C947D0760 -:14008C00F50D0000203F00202020202020202020303030301F +:040000000C941B023F +:040048000C94ED0720 +:040078000C9451088B +:14008C00F70E0000203F00202020202020202020303030301C :1400A00030202020202020202020202020202020202020904C :1400B4004040404040404040404040404040400C0C0C0C0C3C :1400C8000C0C0C0C0C404040404040400909090909090101F0 @@ -20,341 +20,367 @@ :1401CC0074696F6E732D3E5461726765742C2246502070723A :1401E000696E74662220746F207072696E7420666C6F6174B2 :1401F400696E6720706F696E74206E756D626572733E00CA4B -:14020800B6B1F0B3C9B9A600CEC2B6C800B0A5DFCF00BEC819 -:14021C00C3FC00CAB6B1F0C4DAB2BFB4EDCEF300CAB6B1F05C -:14023000BEDCCAB6D2BB00CAB6B1F0BEDCCAB600D3EFD2F450 -:14024400B3ACCAB100B3F5CABCBBAFD6D000D3EFD2F4C4A39F -:14025800BFE900D4A4BEAFCFB5CDB300BBB6D3ADCAB9D3C3F7 -:14026C00B6C0BED3C0CFC8CB002014101422545905D6DCC8AF -:14028000D500D6DCC1F900D6DCCEE500D6DCCBC400D6DCC809 -:14029400FD00D6DCB6FE00D6DCD2BB00A1E600BEC8C3FC20C8 -:1402A800317CBEC8C3FCB0A120317CB0A5DFCF20327CCFD6BC -:1402BC00D4DAB6E0C9D9B6C8203130307CCFD6D4DACEC2B604 -:1402D000C8B6E0C9D9203130307CCFD6D4DABCB8B5E320313D -:1402E40030317C000000B4CACCF5B8FCD0C2CAA7B0DC00B4F3 -:1402F800CACCF5B8FCD0C2B3C9B9A600D5FDD4DAB8FCD0C280 -:14030C00B4CACCF5A1A3A1A3005B6D335D5B73355D5B76335A -:140320005D5B66315D5B62305DB2BBBAC3D2E2CBBCA3ACCF90 -:14033400B5CDB3CEB4C0EDBDE2C4FAB5C4D2E2CBBCA3ACC72A -:14034800EBD6D8D0C2CBB5D2BBB1E95B6D335D5B645D005B00 -:14035C006D335D5B73355D5B76335D5B66315D5B62305DBB7B -:14037000B6D3ADCAB9D3C3B6C0BED3C0CFC8CBD3A6BCB1BA61 -:14038400F4BEC8CFB5CDB35B6D335D5B645D0047455420680B -:140398007474703A2F2F616C61726D2E69636861726D2E6D17 -:1403AC00650041542B43495053454E440041542B4349504D29 -:1403C0004F44453D31005443502C616C61726D2E6963686100 -:1403D400726D2E6D652C38300041542B4349504D55583D309F -:1403E8000041542B43574A41503D49434841524D2C6D656974 -:1403FC0079616E6C69616E670041542B52535400CFEFD0E172 -:14041000CDBFDEBFCE51D0400AEA08830024E5E0F3E015E050 -:14042400E335F10711F00192FBCF0083E7E0F2E0A0E0B1E029 -:1404380014E000E00BBFEC30F10721F0C89531960D92F9CF62 -:14044C000E946302FFCF2DE531E000E90E94B50604E610E084 -:140460000E94370624E531E00AE80E94B50608EB1BE00E94B0 -:1404740037060C94AF062BE431E000E90E94B50604E610E0A2 -:140488000E94370622E431E00AE80E94B50608EB1BE00E948B -:14049C0037060C94AF06F89422242CBE20926D000E94EC064B -:1404B000222425BE20926A002ABE29BE27BE20927D00789404 -:1404C40008950E94460604E610E00E9437060E94CF060E94C7 -:1404D800AF060E94D7030E94F9040AE010E00E943706B3DFF5 -:1404EC00DADF0E949E07C3DF0E94DD08C0C00E9411040E94FA -:14050000B20521C008E90E945F0602E010E00E94370682E143 -:1405140093E0E0910F03FF27E80FF91F408180910F038F5FD6 -:1405280080930F038F7080930F034D3009F40DC0042F0E945A -:14053C007C0602E010E00E94370620900F033090100332149D -:14055000C9F60E9466090E94C207A02E4A2D55274130E0E06A -:140564005E0709F44DC04230E0E05E0709F454C04330E0E039 -:140578005E0709F47EC04430E0E05E07B9F04530E0E05E07F3 -:14058C00E9F04630E0E05E0769F14730E0E05E07F9F0413097 -:1405A000E0E05E070CF44EC04436E0E05E0709F43FC048C071 -:1405B40029E331E008E80E94B50602E010E00E94370659C0FF -:1405C80020E331E008E80E94B50602E010E00E9437064FC0FE -:1405DC0025E231E008E80E94B50602E010E00E94370645C0F0 -:1405F00028E131E008E80E94B50602E010E00E9437063BC0E4 -:1406040023E131E00CE80E94B50602E010E00E9437060E9429 -:1406180083092FC02EE031E00CE80E94B50602E010E00E946F -:14062C00370625C029E031E00CE80E94B50602E010E00E94B9 -:1406400037061BC020E031E00CE80E94B50602E010E00E94B8 -:1406540037060CE80E945F0602E010E00E9437064A2D42955B -:140668004F70405D042F0E947C0602E010E00E9437063FCF0C -:14067C0008954A931F9A169A0E7F442709C000FF02C01E9A4D -:1406900001C01E981D9A1D98069543954830A8F3169A4427D2 -:1406A40009C020FF02C01E9A01C01E981D9A1D98269543956A -:1406B8004830A8F31F98499108954A936A931F9A169A016049 -:1406CC00662709C000FF02C01E9A01C01E981D9A1D980695CD -:1406E00063956830A8F31698662709C046950E9B02C04068E9 -:1406F40001C04F771D9A1D9863956830A8F31F98042F6991F0 -:140708004991089522270EE8B6DF20E800E8B3DF20916F01EF -:14071C000CE8AFDF2091700108E8ABDF2091710106E8A7DF14 -:14073000209175010AE8A3DF2091720104E89FDF2091730167 -:1407440002E89BDF2091740100E897DF209175010AE893DF2E -:1407580020E80EE890CFAA924A930CE8AEDF00936F0108E8A3 -:14076C00AADF0093700106E8A6DFA02EA092710104E8A1DF9B -:14078000A02EA092720102E89CDFA02EA092730100E897DFBB -:14079400402F842F8F77809374010AE890DFA02EA0927501CA -:1407A8004991A99008951F981D98179A159A08954A93402FD8 -:1407BC00413029F424E931E006E80E94B506423029F42FE88C -:1407D00031E006E80E94B506433029F42AE831E006E80E9476 -:1407E400B506443029F425E831E006E80E94B506453029F4BA -:1407F80020E831E006E80E94B506463029F42BE731E006E8E5 -:14080C000E94B506473029F426E731E006E80E94B5064991A4 -:140820000895219708EC10E00E94370698DF00E80E945F0646 -:1408340002E010E00E94370680916E0182958F70805D888381 -:14084800082F0E947C0602E010E00E94370680916E018F7011 -:14085C00805D8883082F0E947C0602E010E00E943706809183 -:140870006F0182958F70805D8883082F0E947C0602E010E0D9 -:140884000E94370680916F018F70805D8883082F0E947C06BE -:1408980002E010E00E9437060DE20E947C0602E010E00E9414 -:1408AC0037068091700182958F70805D8883082F0E947C0620 -:1408C00002E010E00E943706809170018F70805D8883082FD3 -:1408D4000E947C0602E010E00E9437060DE20E947C0602E046 -:1408E80010E00E9437068091710182958F70805D8883082F75 -:1408FC000E947C0602E010E00E943706809171018F70805DB4 -:140910008883082F0E947C0602E010E00E94370600917501B5 -:1409240049DF02E010E00E94370600E90E945F0605E010E021 -:140938000E9437068091720182958F70805D8883082F0E9471 -:14094C007C0602E010E00E943706809172018F70805D8883F9 -:14096000082F0E947C0602E010E00E9437060AE30E947C0666 -:1409740002E010E00E9437068091730182958F70805D88833B -:14098800082F0E947C0602E010E00E943706809173018F70CB -:14099C00805D8883082F0E947C0602E010E00E9437060AE366 -:1409B0000E947C0602E010E00E9437068091740182958F70C2 -:1409C400805D8883082F0E947C0602E010E00E94370680911A -:1409D80074018F70805D8883082F0E947C0602E010E00E94E0 -:1409EC003706219608954A93149A1C9805E010E00E94220688 -:140A00001C9A149801E010E00E94220641B1407105E010E06D -:140A14000E942206442311F0002701C001E0499108954A937F -:140A28006A93442768E00FC04695149A1C980E9419061C9A87 -:140A3C0014980E9419060C9B01C040680E941C066A956623DD -:140A500079F7042F699149910895AA924A93A02E48E00EC0A1 -:140A6400149A1C980E941906A0FE01C01C9A01E010E00E94D3 -:140A780022061C9AA6944A95442381F74991A9900895B3DF52 -:140A8C000CECE5DF04E4E3CF4A935A932997ABDF0CECDDDF38 -:140AA0000EEBDBDF4427552708C0BDDFCE01FA01E80FF91F6B -:140AB40000834F5F5F4F4930E0E05E07A0F349815527542F55 -:140AC8004427288033244229532950930E0340930D030EE8FC -:140ADC0010E00E94220A1801290100910D0310910E030E9410 -:140AF000D20A3A932A931A930A93810192010E94D50B0E9409 -:140B0400A00A10930E0300930D038A01299659914991089531 -:140B1800AA92BA92580124E630E085010E94080A10930A03E4 -:140B2C000093090324E630E085010E94060A58012AE030E051 -:140B40000E94080A10930803009307032AE030E085010E9460 -:140B5400060A1093060300930503B990A9900895219791DFEF -:140B680095DF00910D0310910E03D2DF05E910E00E945F061C -:140B7C0002E010E00E9437068091090390910A03C096888308 -:140B9000082F11270E947C0602E010E00E94370680910703F2 -:140BA40090910803C0968883082F11270E947C0602E010E04B -:140BB8000E9437060EE210E00E947C0602E010E00E94370695 -:140BCC008091050390910603C0968883082F11270E947C06DE -:140BE00002E010E00E94370629E931E007E910E00E94B506F0 -:140BF4002196089500000000000000000000000008950000FC -:140C08000000000000000000000000000000000000000000D8 -:140C1C000000000000000000000000000000000000000000C4 -:140C30000895E9DFE8DFE7CFFCDFFBDFFADFF9CFFBDFFACFD5 -:140C44004A93402F01C0FADF242E332441502220D1F7499198 -:140C58000895F2DFF1DFF0DFEFDFEEDFEDDFECDFEBDFEADFB6 -:140C6C00E9CF4A935A93A80101C0F1DF1A014150504022203A -:140C8000D1F73320C1F75991499108958FEF8BBB8ABB809310 -:140C940062008093610082BB81BB83B98EEF82B9949A959AAC -:140CA8008FEF8BBB959888BB87BB80916200846080936200F6 -:140CBC000895AA92A02E809162008D7F809362008091620016 -:140CD0008B7F8093620080916200886080936200ABBA05E077 -:140CE40010E00E94370680916200877F80936200A990089569 -:140CF800AA92A02E80916200826080936200809162008B7F97 -:140D0C008093620080916200886080936200ABBA05E010E054 -:140D20000E94370680916200877F80936200A99008950E947A -:140D34006E0AC22E402FAE80CC2021F4042F0058BCDF03C0BC -:140D4800042F0057B8DF02E010E00E9437060A2DCFDF0C9440 -:140D5C00750A01E0AEDF0AE010E00C9437060E944C0AA9013D -:140D7000A02E0A2DA4DF05E010E00E94370609C0FA010081EE -:140D8400B9DF4F5F5F4F05E010E00E943706FA0120802220D6 -:140D980099F70C94510A8FEF8ABB8AB3806E8ABB00E389DF3E -:140DAC0005E010E00E94370600E383DF05E010E00E94370686 -:140DC0000CE07DDF05E010E00E94370601E077DF05E010E017 -:140DD4000C94370622242AB886E0809395002BB820929000D3 -:140DE80083E089B988E98AB92092A5032092A4030895222408 -:140DFC002092B80311C089EB93E0E091B803FF27E80FF91F5D -:140E100020802CB85E9BFECF5E9A8091B8038F5F8093B80304 -:140E24002090B7033090B803321448F308952A928A939A93B1 -:140E3800EA93FA932FB62A9287EA93E0E091A503FF27E80FE1 -:140E4C00F91F2CB020828091A5038F5F8093A5038F70809388 -:140E6000A50329902FBEF991E991999189912990189522243C -:140E740020929A0086E080939D0020929B002092980083E00E -:140E88008093990088E980939A002092100320920F03089566 -:140E9C0022242092230318C084E293E0E0912303FF27E80FBF -:140EB000F91F208020929C0020909B0026FEFCCF80919B0042 -:140EC400806480939B00809123038F5F809323032090220355 -:140ED80030902303321410F38DE080939C0020909B0026FE4C -:140EEC00FCCF80919B00806480939B0008952A928A939A9346 -:140F0000EA93FA932FB62A9282E193E0E0911003FF27E80FBB -:140F1400F91F20909C002082809110038F5F809310038F708C -:140F28008093100329902FBEF991E99199918991299018953B -:140F3C00A69AA79AAE9AAF9A04E610E00E943706AF980AE0A5 -:140F500010E00E943706AF9A04E610E00C9437068DEF80932F -:140F6400B9031801232C33242092BA03C80190708093BB03F5 -:140F78002093BC0322242092BD0308950E947C0A44272224C5 -:140F8C0033243092E2012092E10104C001E010E00E9437064D -:140FA0002090A5033090A4033214B1F387EA93E0E32DFF277A -:140FB400E80FF91F6081832D8F5F8093A4038F708093A40328 -:140FC800C42EDD24CC2011F4DD2091F0C6018130E0E09E07D6 -:140FDC0091F08230E0E09E07A9F08330E0E09E07D1F0843043 -:140FF000E0E09E0719F13CC06C3F09F039C041E037C0662344 -:1410040019F00027112733C042E030C086E0861718F4002735 -:1410180011272BC0A62E43E027C0653419F40027112723C0DB -:14102C00AA9419F4062F11271EC0C62E44E01AC02090E10196 -:141040003090E201322C22243092E2012092E101262E332471 -:141054004090E1015090E201422853285092E2014092E101B5 -:14106800AA9411F4820101C097CF0C94850A0E94600A5801F3 -:14107C0085010E94F509A80121E00E5F1F4F6ADF2224209274 -:14109000BD03662777270CC0FB01EA0DFB1D20808EEB93E0FE -:1410A400FB01E80FF91F20826F5F7F4F6417750788F38EEB04 -:1410B80093E0FB01E80FF91F22242082CA0105968093B7038B -:1410CC0022242092A5032092A4030E94FD0654DF0134E0E04A -:1410E0001E0729F004E110E00E943706EFCF4ADFA8010F3437 -:1410F400E0E01E0709F401C0C8D00C94670A24E532E009E395 -:1411080014E00E94FF0D09E314E0B1CF2EE032E009E314E0D1 -:14111C000E94FF0D09E314E0A8CFAA92A02E25E002E010E0D9 -:1411300017DFA092BD0309EB13E00E94F5090093B7032224A9 -:141144002092A5032092A4030E94FD0619DF00300107A9F373 -:1411580004E110E00E943706A99008952EE107E010E0FADE3B -:14116C0082E08093BD038BE08093BE0388EB8093BF0383E14F -:141180008093C00388E88093C10384E08093C2038AE0809385 -:14119400B70322242092A5032092A4030E94FD06EFDE0134ED -:1411A800E0E01E0709F401C0F2CF04E110E00C9437060E947B -:1411BC00560A0CE911E00E94F509402F2FE111270D5F1F4FA8 -:1411D000C7DE22242092BD0380E28093BE03662777270EC07F -:1411E4008CE991E0FB01E80FF91F20808FEB93E0FB01E80F86 -:1411F800F91F20826F5F7F4F242E3324621573056CF3822DE7 -:14120C008A5F8093B70322242092A5032092A4030E94FD067A -:141220002DEF31E008E80E94B50602E010E00E943706A8DE09 -:141234000134E0E01E0709F405C004E110E00E943706E5CF62 -:141248009DDEA8010133E0E01E0771F40E94AF0620EF31E079 -:14125C0008E80E94B50608EE13E00E9437060E94AF060DC045 -:141270000E94AF0623EE31E008E80E94B50608EE13E00E9419 -:1412840037060E94AF060C945B0A21E201E010E065DE84E042 -:141298008093B70322242092A5032092A4030E94FD066CDE8D -:1412AC000134E0E01E0731F467DE0F34E0E01E0709F405C0C0 -:1412C00004E110E00E943706E9CF089520E102E010E046DE1A -:1412D40022242092BD0385E08093B70322242092A5032092CA -:1412E800A4030E94FD064ADE0134E0E01E0709F405C004E1BD -:1412FC0010E00E943706EECF08952EEF32E004E213E00E940B -:14131000FF0D04E213E00E94F509009322030C944E0722EE87 -:1413240032E004E213E00E94FF0D04E213E00E94F509009310 -:1413380022030C944E0726ED32E004E213E00E94FF0D04E2F5 -:14134C0013E00E94F509009322030C944E072FEB32E004E23B -:1413600013E00E94FF0D04E213E00E94F509009322030C9407 -:141374004E0722EB32E004E213E00E94FF0D04E213E00E94EF -:14138800F509009322030C944E0727EA32E004E213E00E9408 -:14139C00FF0D04E213E00E94F509009322030C944E072CE8F7 -:1413B00032E004E213E00E94FF0D04E213E00E94F509009384 -:1413C40022030C944E07C7DF08EC10E00E943706D0DF08ECEF -:1413D80010E00E943706D9DF02E310E00E943706E2CFE02F06 -:1413EC00F12FAA27BB270190002011F01196FBCF0A2F1B2F74 -:1414000008953A932A931A930A930895689401C0E894EA9215 -:14141400FA928A93EE24FF2480E1000F111FEE1CFF1CE21629 -:14142800F30618F0E21AF30A03958A95A1F716F40E2D1F2DD6 -:14143C008991F990E9900895EA93FA930A92E02FF12FD895A1 -:14145000002D3196D895102D3196D895202D3196D895302DD8 -:141464000990F991E9910895A990B990C990D990E990F990F4 -:14147800499159916991799108957A936A935A934A93FA929B -:14148C00EA92DA92CA92BA92AA9208955A934A93BA92AA9291 -:1414A0000895A990B9904991599108957A936A935A934A93E4 -:1414B4000895499159916991799108957A936A935A934A934E -:1414C800BA92AA920895A990B9904991599169917991089504 -:1414DC005A934A93DA92CA92BA92AA920895A990B990C9906A -:1414F000D9904991599108957A936A935A934A93DA92CA9282 -:14150400BA92AA920895A990B990C990D990499159916991AC -:14151800799108950A92D8950A923196D895F02DE99109900F -:14152C00099400951095209530950F5F1F4F2F4F3F4F0895D5 -:141540004A925A926A928A930E94060B11F15520E2F08FE14A -:141554004816C0F487E14816D1F058F4419489EE481A05C02B -:1415680035952795179507954A94D1F70EC087E1481A000F54 -:14157C00111F221F331F4A94D1F705C03FE7232F132F032F41 -:1415900004C0662011F00E94970A8991699059904990089547 -:1415A400689401C0E8942227332746F017FD209517FD30957F -:1415B80003C0689401C0E8944A925A926A928A9387E1482E64 -:1415CC005524662436F0332322F40E94970A80E8682E0E9493 -:1415E0001F0B899169905990499008950FD029F0662011F0DC -:1415F4000E94970A98940895002329F4112319F4222309F414 -:1416080033230895F7DF99F08A93632E80E86822220F331F59 -:14161C00432E8FE7481A55248827580A269530E8232B33276C -:141630008991989408954424552466240895DEDF09F4089564 -:14164400AA93BA93D2019A938A938EE790E0332349F03695AC -:14165800279517950795A817B907CCF41196F5CF8095909596 -:14166C0001962223BAF0000F111F221FA817B90714F0119739 -:14168000F6CF0027112722273327899199912D01B991A99199 -:14169400089533270FEF102F2FE7322F899199912D0102C063 -:1416A800AA93BA93A7DF49F0D201A158BF4F2D01342D220F4B -:1416BC00369527953629B991A99108954A925A926A927A9243 -:1416D0008A929A92AA92BA92CA92DA92EA92FA928A939A931C -:1416E400089599918991F990E990D990C990B990A9909990A2 -:1416F8008990799069905990499008950E94640BAA93BA93C9 -:14170C000E94060BE1F1E62CD52CC42CB32EA22E912E802E23 -:1417200000811181228133810E94060B71F16E244C0C5D1CD3 -:1417340080E84816530664F581E848168FEF58066CF1A29EE9 -:14174800B12DA02D919E912D802DA09E800D911DA31FB31F3B -:14175C00829E800D911DA31FB31F929E900DA11DB31FA19EEE -:14177000900DA11DB31F2B2F1A2F092F880F001F111F221F36 -:14178400331F0E941F0BB991A9910E94730B08950FEF102FB5 -:141798002FE78FE7482EF5CF0027102F202F302FF0CFFA9317 -:1417AC00EA93EC2FFD2F32960E94820BE991F9912496089513 -:1417C0000E94010A0E94410AA901EE84FF845A01AA2051F472 -:1417D400BB2041F480E3EA85FB858083222421828F0153C010 -:1417E8004030E0E05E076CF4C7018A30E0E09E0741F4CC24EC -:1417FC00C394C5018095909501965C0101C0CC246A857B85EE -:14181000970185010E94060AA80189E090E08017910734F01F -:14182400CA01C096FB018193BF0106C0CA01895A9F4FFB0161 -:141838008193BF01970185010E94080A5801AA2019F7BB20E8 -:14184C0009F7CC2021F08DE2FB018193BF012B0161507040BF -:141860002224F2012082AA84BB840CC0F501C080FB0120808E -:14187400F50121925F011B0161507040F101C082A616B7062D -:1418880088F30A851B850E94360A249608950E94410A690112 -:14189C005801EA84FB84A501970186010E94060AB80189E059 -:1418B00090E08017910734F0CB01C096FA018193AF0106C0BA -:1418C400CB01895A9F4FFA018193AF01970186010E94080AE1 -:1418D8006801CC2019F7DD2009F72A01415050402224F20115 -:1418EC00208265010CC0F601E080FA012080F60121926F0108 -:141900001A0141505040F101E082C416D50688F385010C94ED -:14191400360A83E990E0F801E80FF91F0691112702701070DA -:1419280008954A935A93A8018A010E948B0C0030010731F07E -:14193C008A01015610400F5B1F4F01C08A01599149910895E0 -:141950000E94010A0E94410A24976A897B894427552737C158 -:14196400E889F9898081853241F00081EE85FF850E948E0AE1 -:141978004F5F5F4F25C188E395E05C0180E2C82E8889998951 -:14198C000196998B888BFC01E080FF24C7018835E0E09E070F -:1419A00009F465C088E58E159F0594F0C7018534E0E09E07F3 -:1419B40009F404C18534E0E09E070CF43DC0C7018335E0E002 -:1419C8009E0709F4AFC036C0C7018336E0E09E0709F499C0C8 -:1419DC008436E0E09E0709F435C08536E0E09E0709F4E8C021 -:1419F0008636E0E09E0709F4E3C08936E0E09E0739F18F360F -:141A0400E0E09E0709F431C08037E0E09E0709F42CC08336BD -:141A1800E0E09E077CF0C7018337E0E09E0709F4A2C08537E7 -:141A2C00E0E09E07F1F08837E0E09E07D1F000C0E889F989C8 -:141A40000081EE85FF850E948E0A4F5F5F4FBCC06E5F7F4F6D -:141A5400FB013297E080F1808AE090E09983888397018501C9 -:141A68000E94E00B4CC06E5F7F4FFB013297E080F180E8892F -:141A7C00F9898081853749F48AE090E09983888397018501BB -:141A90000E944B0C38C0E889F98980818F3649F488E090E083 -:141AA40099838883970185010E944B0C2AC0E889F989808112 -:141AB800803731F480E3F501819388E781935F0180E190E01D -:141ACC0099838883970185010E944B0CE889F9898081883517 -:141AE00091F488E395E05C010AC0F501008111270E94950C74 -:141AF400F5010083C50101965C01F5012080222091F788E3E0 -:141B080095E05C013EC06E5F7F4FFB013297208031802A829C -:141B1C00022DEE85FF850E948E0A4F5F5F4F4EC06E5F7F4F50 -:141B3000FB013297E080F1808C2D8D3299F40DE2EE85FF8520 -:141B44000E948E0A4F5F5F4F0BC0F7010691EE85FF850E9404 -:141B58008E0A4F5F5F4FC70101967C01F7012690222089F739 -:141B6C002DC06E5F7F4FFB013297A080B180AA2031F4BB20FD -:141B800021F483E991E07C01D7CF8C2D8D3299F40DE2EE85D5 -:141B9400FF850E948E0A4F5F5F4F0BC0F5010081EE85FF85EA -:141BA8000E948E0A4F5F5F4FC50101965C01F5012080222001 -:141BBC0089F704C085EA91E07C01B8CF888999890196998BFF -:141BD000888BE889F9892080222009F0C3CE8A0124960E94A8 -:141BE400360A24960895E0915105F09152050193F093520549 -:141BF800E093510508950E94010AAA92BA9222972C803D801C -:141C0C003092520520925105CE0108965C01B982A8822E81C5 -:141C20003F810CE810E00E94A80C2224E0915105F0915205D1 -:141C340020822C803D800091510510915205021913092296C3 -:081C4800B990A99024960895BB +:14020800B6B1F0B3C9B9A600CAB1BCE400CEC2B6C800B0A532 +:14021C00DFCF00BEC8C3FC00CAB6B1F0C4DAB2BFB4EDCEF349 +:1402300000CAB6B1F0BEDCCAB6D2BB00CAB6B1F0BEDCCAB6B7 +:1402440000D3EFD2F4B3ACCAB100B3F5CABCBBAFD6D000D333 +:14025800EFD2F4C4A3BFE900D4A4BEAFCFB5CDB300BBB6D3A1 +:14026C00ADCAB9D3C3B6C0BED3C0CFC8CB00201410142254C1 +:1402800059050000000000000000000000000000000000000C +:14029400000000D6DCC8D500D6DCC1F900D6DCCEE500D6DC84 +:1402A800CBC400D6DCC8FD00D6DCB6FE00D6DCD2BB00000097 +:1402BC000000000000A1E600BEC8C3FC20317CBEC8C3FCB0A0 +:1402D000A120317CB0A5DFCF20327CCFD6D4DAB6E0C9D9B69A +:1402E400C8203130307CCFD6D4DACEC2B6C8B6E0C9D9203127 +:1402F80030307CCFD6D4DABCB8B5E3203130317CCAB1BCE46E +:14030C00203130317C000000B4CACCF5B8FCD0C2CAA7B0DC2D +:1403200000B4CACCF5B8FCD0C2B3C9B9A600D5FDD4DAB8FC35 +:14033400D0C2B4CACCF5A1A3A1A3005B6D335D5B73355D5B49 +:1403480076335D5B66315D5B62305DB2BBBAC3D2E2CBBCA33A +:14035C00ACCFB5CDB3CEB4C0EDBDE2C4FAB5C4D2E2CBBCA3FA +:14037000ACC7EBD6D8D0C2CBB5D2BBB1E95B6D335D5B645DC0 +:14038400005B6D335D5B73355D5B76335D5B66315D5B623010 +:140398005DBBB6D3ADCAB9D3C3B6C0BED3C0CFC8CBD3A6BC8C +:1403AC00B1BAF4BEC8CFB5CDB35B6D335D5B645D0047455400 +:1403C00020687474703A2F2F616C61726D2E69636861726D02 +:1403D4002E6D650041542B43495053454E440041542B434903 +:1403E800504D4F44453D31005443502C616C61726D2E696304 +:1403FC006861726D2E6D652C38300041542B4349504D55581B +:140410003D300041542B43574A41503D49434841524D2C6DAC +:14042400656979616E6C69616E670041542B52535400CFEF2C +:14043800D0E1CDBFDEBFCE51D0400AEA08830024EFE2F3E060 +:14044C0015E0EB37F10711F00192FBCF0083E7E0F2E0A0E093 +:14046000B1E014E000E00BBFE633F10721F0C89531960D9274 +:14047400F9CF0E947802FFCF22E631E000E90E94890704E6A4 +:1404880010E00E940B0729E531E00AE80E94890708EB1BE08B +:14049C000E940B070C94830720E531E000E90E94890704E653 +:1404B00010E00E940B0727E431E00AE80E94890708EB1BE066 +:1404C4000E940B070C948307F89422242CBE20926D000E94C9 +:1404D800C007222425BE20926A002ABE29BE27BE20927D0021 +:1404EC00789408956C970E941A0704E610E00E940B070E945D +:14050000A3070E9483070E9410040E949C050AE010E00E949C +:140514000B07B2DFD9DF0E947208C2DF0E94B109E6C00E9417 +:140528004A040E94550621C008E90E94330702E010E00E9452 +:14053C000B078AE393E0E0913703FF27E80FF91F4081809107 +:1405500037038F5F809337038F70809337034D3009F40DC08F +:14056400042F0E94500702E010E00E940B0720903703309027 +:1405780038033214C9F60E943A0A0E949608A02E4A2D552748 +:14058C004130E0E05E0709F452C04230E0E05E0709F459C009 +:1405A0004330E0E05E0709F4A4C04430E0E05E07E1F045306F +:1405B400E0E05E0711F14630E0E05E0791F14730E0E05E0753 +:1405C80021F14130E0E05E070CF474C04436E0E05E0709F4A7 +:1405DC0044C04536E0E05E0709F456C069C02EE331E008E819 +:1405F0000E94890702E010E00E940B077AC025E331E008E8FC +:140604000E94890702E010E00E940B0770C02AE231E008E8ED +:140618000E94890702E010E00E940B0766C02DE131E008E8E1 +:14062C000E94890702E010E00E940B075CC028E131E00CE8D8 +:140640000E94890702E010E00E940B070E94570A50C023E1D7 +:1406540031E00CE80E94890702E010E00E940B0746C02EE0C1 +:1406680031E00CE80E94890702E010E00E940B070E949F067A +:14067C0098018E010B5E1F4F0E94D60A8E010B5E1F4F0E94E1 +:140690000F092FC029E031E00CE80E94890702E010E00E949B +:1406A4000B070E943205680196018E010E94D60A8E010E9415 +:1406B8000F091BC020E031E00CE80E94890702E010E00E9490 +:1406CC000B070CE80E94330702E010E00E940B074A2D429564 +:1406E0004F70405D042F0E94500702E010E00E940B0719CF10 +:1406F4006C9608954A931F9A169A0E7F442709C000FF02C08B +:140708001E9A01C01E981D9A1D98069543954830A8F3169A0C +:14071C00442709C020FF02C01E9A01C01E981D9A1D9826955E +:1407300043954830A8F31F98499108954A936A931F9A169A59 +:140744000160662709C000FF02C01E9A01C01E981D9A1D988E +:14075800069563956830A8F31698662709C046950E9B02C07D +:14076C00406801C04F771D9A1D9863956830A8F31F98042FC9 +:1407800069914991089522270EE8B6DF20E800E8B3DF2091ED +:1407940074010CE8AFDF2091750108E8ABDF2091760106E8A3 +:1407A800A7DF20917A010AE8A3DF2091770104E89FDF2091D3 +:1407BC00780102E89BDF2091790100E897DF20E80EE894CF62 +:1407D000AA924A930CE8B2DF0093740108E8AEDF00937501E9 +:1407E40006E8AADFA02EA092760104E8A5DFA02EA09277012B +:1407F80002E8A0DFA02EA092780100E89BDF402F842F8F7781 +:14080C00809379010AE894DFA02EA0927A014991A9900895BB +:140820001F981D98179A159A08954A93402F413029F42EEA69 +:1408340031E006E80E948907423029F429EA31E006E80E943C +:140848008907433029F424EA31E006E80E948907443029F4AC +:14085C002FE931E006E80E948907453029F42AE931E006E89B +:140870000E948907463029F425E931E006E80E9489074730F9 +:1408840029F420E931E006E80E94890749910895219708ECE6 +:1408980010E00E940B0798DF00E80E94330702E010E00E94F9 +:1408AC000B078091730182958F70805D8883082F0E94500773 +:1408C00002E010E00E940B07809173018F70805D8883082FFB +:1408D4000E94500702E010E00E940B078091740182958F70F5 +:1408E800805D8883082F0E94500702E010E00E940B0780914D +:1408FC0074018F70805D8883082F0E94500702E010E00E94E8 +:140910000B070DE20E94500702E010E00E940B0780917501CC +:1409240082958F70805D8883082F0E94500702E010E00E941D +:140938000B07809175018F70805D8883082F0E94500702E019 +:14094C0010E00E940B070DE20E94500702E010E00E940B0785 +:140960008091760182958F70805D8883082F0E94500702E0EB +:1409740010E00E940B07809176018F70805D8883082F0E9483 +:14098800500702E010E00E940B0700917A0149DF02E010E078 +:14099C000E940B0700E90E94330705E010E00E940B07809134 +:1409B000770182958F70805D8883082F0E94500702E010E0BB +:1409C4000E940B07809177018F70805D8883082F0E945007CB +:1409D80002E010E00E940B070AE30E94500702E010E00E942B +:1409EC000B078091780182958F70805D8883082F0E9450072D +:140A000002E010E00E940B07809178018F70805D8883082FB4 +:140A14000E94500702E010E00E940B070AE30E94500702E087 +:140A280010E00E940B078091790182958F70805D8883082F56 +:140A3C000E94500702E010E00E940B07809179018F70805DC0 +:140A50008883082F0E94500702E010E00E940B07219608957D +:140A640065978BE791E0FE0105E110E0FA93EA939A938A9376 +:140A78000E948A0BA9DE8091730182958F70805D8883809118 +:140A8C0073018F70805D89838091740182958F70805D8A8374 +:140AA000809174018F70805D8B838DE28C83809175018295B6 +:140AB4008F70805D8D83809175018F70805D8E838DE28F834D +:140AC8008091760182958F70805D8887809176018F70805D2C +:140ADC00898780E28A878B878091770182958F70805D8C87E2 +:140AF000809177018F70805D8D878AE38E8780917801829556 +:140B04008F70805D8F87809178018F70805D888B8AE3898BF1 +:140B18008091790182958F70805D8A8B809179018F70805DCF +:140B2C008B8B22242C8A8E01659608954A93149A1C9805E058 +:140B400010E00E94F6061C9A149801E010E00E94F60641B150 +:140B5400407105E010E00E94F606442311F0002701C001E038 +:140B6800499108954A936A93442768E00FC04695149A1C9869 +:140B7C000E94ED061C9A14980E94ED060C9B01C040680E9427 +:140B9000F0066A95662379F7042F699149910895AA924A93A6 +:140BA400A02E48E00EC0149A1C980E94ED06A0FE01C01C9A6D +:140BB80001E010E00E94F6061C9AA6944A95442381F7499132 +:140BCC00A9900895B3DF0CECE5DF04E4E3CF4A935A932997CD +:140BE000ABDF0CECDDDF0EEBDBDF4427552708C0BDDFCE01F6 +:140BF400FA01E80FF91F00834F5F5F4F4930E0E05E07A0F3D3 +:140C080049815527542F4427288033244229532950933603A2 +:140C1C00409335030EE810E00E940C0B18012901009135030E +:140C3000109136030E94D40B3A932A931A930A93810192016C +:140C44000E94D70C0E94A20B10933603009335038A012996D7 +:140C5800599149910895AA92BA92580124E630E085010E9404 +:140C6C00F20A109334030093330324E630E085010E94F00A99 +:140C800058012AE030E00E94F20A10933203009331032AE0A6 +:140C940030E085010E94F00A1093300300932F03B990A990FD +:140CA8000895219791DF95DF0091350310913603D2DF05E9BD +:140CBC0010E00E94330702E010E00E940B078091330390916A +:140CD0003403C0968883082F11270E94500702E010E00E949C +:140CE4000B078091310390913203C0968883082F11270E94DD +:140CF800500702E010E00E940B070EE210E00E94500702E050 +:140D0C0010E00E940B0780912F0390913003C0968883082F00 +:140D200011270E94500702E010E00E940B072AEB31E007E9F2 +:140D340010E00E94890721960895279783EB91E0FE0107E0B2 +:140D480010E0FA93EA939A938A930E948A0B3CDF40DF009151 +:140D5C003503109136037DDF8091330390913403C096888315 +:140D70008091310390913203C09689838EE28A8380912F03B2 +:140D840090913003C0968B832AEB31E08E010E94C90A222433 +:140D98002E828E0127960895000000000000000000000000AE +:140DAC00089500000000000000000000000000000000000096 +:140DC00000000000000000000000000000000000000000001F +:140DD400000000000895E9DFE8DFE7CFFCDFFBDFFADFF9CFD3 +:140DE800FBDFFACF4A93402F01C0FADF242E332441502220F2 +:140DFC00D1F749910895F2DFF1DFF0DFEFDFEEDFEDDFECDF02 +:140E1000EBDFEADFE9CF4A935A93A80101C0F1DF1A014150D3 +:140E240050402220D1F73320C1F75991499108958FEF8BBBF0 +:140E38008ABB809362008093610082BB81BB83B98EEF82B90B +:140E4C00949A959A8FEF8BBB959888BB87BB80916200846068 +:140E6000809362000895AA92A02E809162008D7F809362006E +:140E7400809162008B7F8093620080916200886080936200A8 +:140E8800ABBA05E010E00E940B0780916200877F809362007A +:140E9C00A9900895AA92A02E80916200826080936200809187 +:140EB00062008B7F8093620080916200886080936200ABBA18 +:140EC40005E010E00E940B0780916200877F80936200A9906A +:140ED80008950E94580BC22E402FAE80CC2021F4042F00584B +:140EEC00BCDF03C0042F0057B8DF02E010E00E940B070A2DB6 +:140F0000CFDF0C945F0B01E0AEDF0AE010E00C940B070E9489 +:140F1400360BA901A02E0A2DA4DF05E010E00E940B0709C004 +:140F2800FA010081B9DF4F5F5F4F05E010E00E940B07FA01C1 +:140F3C002080222099F70C943B0B8FEF8ABB8AB3806E8ABB16 +:140F500000E389DF05E010E00E940B0700E383DF05E010E09F +:140F64000E940B070CE07DDF05E010E00E940B0701E077DFBD +:140F780005E010E00C940B0722242AB886E0809395002BB8C5 +:140F8C002092900083E089B988E98AB92092CD032092CC03B3 +:140FA000089522242092E00311C081EE93E0E091E003FF2798 +:140FB400E80FF91F20802CB85E9BFECF5E9A8091E0038F5FF6 +:140FC8008093E0032090DF033090E003321448F308952A9210 +:140FDC008A939A93EA93FA932FB62A928FEC93E0E091CD03DD +:140FF000FF27E80FF91F2CB020828091CD038F5F8093CD0388 +:141004008F708093CD0329902FBEF991E9919991899129904F +:141018001895222420929A0086E080939D0020929B00209270 +:14102C00980083E08093990088E980939A002092380320924C +:1410400037030895222420924B0318C08CE493E0E0914B0305 +:14105400FF27E80FF91F208020929C0020909B0026FEFCCF2B +:1410680080919B00806480939B0080914B038F5F80934B0388 +:14107C0020904A0330904B03321410F38DE080939C00209040 +:141090009B0026FEFCCF80919B00806480939B0008952A922B +:1410A4008A939A93EA93FA932FB62A928AE393E0E0913803B7 +:1410B800FF27E80FF91F20909C002082809138038F5F8093B4 +:1410CC0038038F708093380329902FBEF991E991999189919A +:1410E00029901895A69AA79AAE9AAF9A04E610E00E940B07F6 +:1410F400AF980AE010E00E940B07AF9A04E610E00C940B073E +:141108008DEF8093E1031801232C33242092E203C801907041 +:14111C008093E3032093E40322242092E50308950E94660B9C +:1411300044272224332430920C0220920B0204C001E010E07F +:141144000E940B072090CD033090CC033214B1F38FEC93E0FC +:14115800E32DFF27E80FF91F6081832D8F5F8093CC038F70DE +:14116C008093CC03C42EDD24CC2011F4DD2091F0C6018130B3 +:14118000E0E09E0791F08230E0E09E07A9F08330E0E09E07AD +:14119400D1F08430E0E09E0719F13CC06C3F09F039C041E0A9 +:1411A80037C0662319F00027112733C042E030C086E0861743 +:1411BC0018F4002711272BC0A62E43E027C0653419F400271E +:1411D000112723C0AA9419F4062F11271EC0C62E44E01AC068 +:1411E40020900B0230900C02322C222430920C0220920B0239 +:1411F800262E332440900B0250900C024228532850920C0298 +:14120C0040920B02AA9411F4820101C097CF0C946F0B0E9446 +:141220004A0B580185010E94DF0AA80121E00E5F1F4F6ADF2D +:1412340022242092E503662777270CC0FB01EA0DFB1D208024 +:1412480086EE93E0FB01E80FF91F20826F5F7F4F641775076B +:14125C0088F386EE93E0FB01E80FF91F22242082CA010596C3 +:141270008093DF0322242092CD032092CC030E94D10754DF7F +:141284000134E0E01E0729F004E110E00E940B07EFCF4ADFB3 +:14129800A8010F34E0E01E0709F401C0C8D00C94510B2EE70A +:1412AC0032E001E614E00E94010F01E614E0B1CF28E332E017 +:1412C00001E614E00E94010F01E614E0A8CFAA92A02E25E02C +:1412D40002E010E017DFA092E50301EE13E00E94DF0A009324 +:1412E800DF0322242092CD032092CC030E94D10719DF003025 +:1412FC000107A9F304E110E00E940B07A99008952EE107E0E5 +:1413100010E0FADE82E08093E5038BE08093E60388EB8093B7 +:14132400E70383E18093E80388E88093E90384E08093EA0396 +:141338008AE08093DF0322242092CD032092CC030E94D1077F +:14134C00EFDE0134E0E01E0709F401C0F2CF04E110E00C94B2 +:141360000B070E94400B0DEB11E00E94DF0A402F2FE111274F +:141374000D5F1F4FC7DE22242092E50380E28093E60366271B +:1413880077270EC08DEB91E0FB01E80FF91F208087EE93E069 +:14139C00FB01E80FF91F20826F5F7F4F242E3324621573055C +:1413B0006CF3822D8A5F8093DF0322242092CD032092CC03F4 +:1413C4000E94D10727E232E008E80E94890702E010E00E94EA +:1413D8000B07A8DE0134E0E01E0709F405C004E110E00E9416 +:1413EC000B07E5CF9DDEA8010133E0E01E0771F40E94830759 +:141400002AE132E008E80E94890708EE13E00E940B070E945A +:1414140083070DC00E9483072DE032E008E80E94890708EE0A +:1414280013E00E940B070E9483070C94450B21E201E010E019 +:14143C0065DE84E08093DF0322242092CD032092CC030E9415 +:14145000D1076CDE0134E0E01E0731F467DE0F34E0E01E07BA +:1414640009F405C004E110E00E940B07E9CF089520E102E0F1 +:1414780010E046DE22242092E50385E08093DF03222420921A +:14148C00CD032092CC030E94D1074ADE0134E0E01E0709F442 +:1414A00005C004E110E00E940B07EECF089528E233E00CE483 +:1414B40013E00E94010F0CE413E00E94DF0A00934A030C9491 +:1414C80022082CE033E00CE413E00E94010F0CE413E00E94AD +:1414DC00DF0A00934A030C94220820E033E00CE413E00E94D1 +:1414F000010F0CE413E00E94DF0A00934A030C94220829EEA9 +:1415040032E00CE413E00E94010F0CE413E00E94DF0A00932B +:141518004A030C9422082CED32E00CE413E00E94010F0CE4F8 +:14152C0013E00E94DF0A00934A030C94220821ED32E00CE473 +:1415400013E00E94010F0CE413E00E94DF0A00934A030C9404 +:14155400220826EB32E00CE413E00E94010F0CE413E00E941C +:14156800DF0A00934A030C942208C7DF08EC10E00E940B079E +:14157C00D0DF08EC10E00E940B07D9DF02E310E00E940B07D3 +:14159000E2CFA02FB12FE22FF32F2D912223E9F71197219177 +:1415A4002D932223E1F70895A02FB12FE22FF32F01900D92A7 +:1415B8000020E1F70895E02FF12FAA27BB270190002011F0F6 +:1415CC001196FBCF0A2F1B2F08953A932A931A930A93089509 +:1415E000689401C0E894EA92FA928A93EE24FF2480E1000FF4 +:1415F400111FEE1CFF1CE216F30618F0E21AF30A03958A95E5 +:14160800A1F716F40E2D1F2D8991F990E9900895EA93FA93E2 +:14161C000A92E02FF12FD895002D3196D895102D3196D895B0 +:14163000202D3196D895302D0990F991E9910895A990B9900C +:14164400C990D990E990F990499159916991799108957A935C +:141658006A935A934A93FA92EA92DA92CA92BA92AA920895C2 +:14166C005A934A93BA92AA920895A990B99049915991089598 +:141680007A936A935A934A9308954991599169917991089580 +:141694007A936A935A934A93BA92AA920895A990B9904991ED +:1416A80059916991799108955A934A93DA92CA92BA92AA9289 +:1416BC000895A990B990C990D9904991599108957A936A93CE +:1416D0005A934A93DA92CA92BA92AA920895A990B990C99074 +:1416E400D990499159916991799108950A92D8950A923196B8 +:1416F800D895F02DE9910990099400951095209530950F5F82 +:14170C001F4F2F4F3F4F0895AA93BA93EA93FA930A92AF8152 +:14172000B885ED81FE810030010729F001900D920150104069 +:14173400F8CF0990F991E991B991A991249608954A925A929A +:141748006A928A930E94080C11F15520E2F08FE14816C0F4F3 +:14175C0087E14816D1F058F4419489EE481A05C035952795AD +:14177000179507954A94D1F70EC087E1481A000F111F221F5F +:14178400331F4A94D1F705C03FE7232F132F032F04C066205E +:1417980011F00E94810B89916990599049900895689401C0DF +:1417AC00E8942227332746F017FD209517FD309503C0689473 +:1417C00001C0E8944A925A926A928A9387E1482E5524662416 +:1417D40036F0332322F40E94810B80E8682E0E94210C89915A +:1417E80069905990499008950FD029F0662011F00E94810BE8 +:1417FC0098940895002329F4112319F4222309F4332308955A +:14181000F7DF99F08A93632E80E86822220F331F432E8FE75B +:14182400481A55248827580A269530E8232B33278991989403 +:1418380008954424552466240895DEDF09F40895AA93BA9316 +:14184C00D2019A938A938EE790E0332349F0369527951795C4 +:141860000795A817B907CCF41196F5CF809590950196222318 +:14187400BAF0000F111F221FA817B90714F01197F6CF00271F +:14188800112722273327899199912D01B991A9910895332784 +:14189C000FEF102F2FE7322F899199912D0102C0AA93BA93C6 +:1418B000A7DF49F0D201A158BF4F2D01342D220F3695279544 +:1418C4003629B991A99108954A925A926A927A928A929A9278 +:1418D800AA92BA92CA92DA92EA92FA928A939A930895999193 +:1418EC008991F990E990D990C990B990A9909990899079903D +:1419000069905990499008950E94660CAA93BA930E94080C27 +:14191400E1F1E62CD52CC42CB32EA22E912E802E00811181B9 +:14192800228133810E94080C71F16E244C0C5D1C80E8481613 +:14193C00530664F581E848168FEF58066CF1A29EB12DA02DFA +:14195000919E912D802DA09E800D911DA31FB31F829E800D2F +:14196400911DA31FB31F929E900DA11DB31FA19E900DA11D36 +:14197800B31F2B2F1A2F092F880F001F111F221F331F0E9493 +:14198C00210CB991A9910E94750C08950FEF102F2FE78FE70D +:1419A000482EF5CF0027102F202F302FF0CFFA93EA93EC2F01 +:1419B400FD2F32960E94840CE991F991249608950E94EB0A07 +:1419C8000E942B0BA901EE84FF845A01AA2051F4BB2041F41A +:1419DC0080E3EA85FB858083222421828F0153C04030E0E0E6 +:1419F0005E076CF4C7018A30E0E09E0741F4CC24C394C501F5 +:141A04008095909501965C0101C0CC246A857B8597018501E2 +:141A18000E94F00AA80189E090E08017910734F0CA01C09628 +:141A2C00FB018193BF0106C0CA01895A9F4FFB018193BF01A4 +:141A4000970185010E94F20A5801AA2019F7BB2009F7CC20DC +:141A540021F08DE2FB018193BF012B01615070402224F20168 +:141A68002082AA84BB840CC0F501C080FB012080F501219214 +:141A7C005F011B0161507040F101C082A616B70688F30A85C2 +:141A90001B850E94200B249608950E942B0B69015801EA8475 +:141AA400FB84A501970186010E94F00AB80189E090E0801725 +:141AB800910734F0CB01C096FA018193AF0106C0CB01895A08 +:141ACC009F4FFA018193AF01970186010E94F20A6801CC2047 +:141AE00019F7DD2009F72A01415050402224F2012082650158 +:141AF4000CC0F601E080FA012080F60121926F011A0141505A +:141B08005040F101E082C416D50688F385010C94200B83E9F8 +:141B1C0090E0F801E80FF91F069111270270107008954A9302 +:141B30005A93A8018A010E948D0D0030010731F08A01015609 +:141B440010400F5B1F4F01C08A015991499108950E94EB0A21 +:141B58000E942B0B24976A897B894427552737C1E889F9891D +:141B6C008081853241F00081EE85FF850E94780B4F5F5F4F83 +:141B800025C180E695E05C0180E2C82E888999890196998BED +:141B9400888BFC01E080FF24C7018835E0E09E0709F465C09E +:141BA80088E58E159F0594F0C7018534E0E09E0709F404C149 +:141BBC008534E0E09E070CF43DC0C7018335E0E09E0709F418 +:141BD000AFC036C0C7018336E0E09E0709F499C08436E0E0E6 +:141BE4009E0709F435C08536E0E09E0709F4E8C08636E0E015 +:141BF8009E0709F4E3C08936E0E09E0739F18F36E0E09E071C +:141C0C0009F431C08037E0E09E0709F42CC08336E0E09E07B3 +:141C20007CF0C7018337E0E09E0709F4A2C08537E0E09E07DD +:141C3400F1F08837E0E09E07D1F000C0E889F9890081EE852F +:141C4800FF850E94780B4F5F5F4FBCC06E5F7F4FFB013297A7 +:141C5C00E080F1808AE090E099838883970185010E94E20CF4 +:141C70004CC06E5F7F4FFB013297E080F180E889F98980812F +:141C8400853749F48AE090E099838883970185010E944D0D38 +:141C980038C0E889F98980818F3649F488E090E0998388834B +:141CAC00970185010E944D0D2AC0E889F9898081803731F450 +:141CC00080E3F501819388E781935F0180E190E099838883C8 +:141CD400970185010E944D0DE889F9898081883591F480E646 +:141CE80095E05C010AC0F501008111270E94970DF5010083DE +:141CFC00C50101965C01F5012080222091F780E695E05C0182 +:141D10003EC06E5F7F4FFB013297208031802A82022DEE85C2 +:141D2400FF850E94780B4F5F5F4F4EC06E5F7F4FFB01329738 +:141D3800E080F1808C2D8D3299F40DE2EE85FF850E94780BB6 +:141D4C004F5F5F4F0BC0F7010691EE85FF850E94780B4F5F03 +:141D60005F4FC70101967C01F7012690222089F72DC06E5FBB +:141D74007F4FFB013297A080B180AA2031F4BB2021F483E92C +:141D880091E07C01D7CF8C2D8D3299F40DE2EE85FF850E9426 +:141D9C00780B4F5F5F4F0BC0F5010081EE85FF850E94780BF6 +:141DB0004F5F5F4FC50101965C01F5012080222089F704C0ED +:141DC40085EA91E07C01B8CF888999890196998B888BE889B5 +:141DD800F9892080222009F0C3CE8A0124960E94200B24963D +:141DEC000895E0917905F0917A050193F0937A05E0937905D0 +:141E000008950E94EB0AAA92BA9222972C803D8030927A05AF +:141E140020927905CE0108965C01B982A8822E813F810CE8F8 +:141E280010E00E94AA0D2224E0917905F0917A0520822C80DA +:141E3C003D800091790510917A05021913092296B990A99035 +:041E50002496089537 :00000001FF diff --git a/OLDMANALARM.lst b/OLDMANALARM.lst index 1444810..9bf5dea 100644 --- a/OLDMANALARM.lst +++ b/OLDMANALARM.lst @@ -1,46 +1,46 @@ Interrupt Vectors - 00000 940C 0206 JMP __start|__text_start - 00024 940C 0719 JMP _uart0_rx_isr - 0003C 940C 077D JMP _uart1_rx_isr + 00000 940C 021B JMP __text_start|__start + 00024 940C 07ED JMP _uart0_rx_isr + 0003C 940C 0851 JMP _uart1_rx_isr Program Code (text area) -__start|__text_start: - 00206 EFCF LDI R28,0xFF - 00207 E1D0 LDI R29,0x10 - 00208 BFCD OUT 0x3D,R28 - 00209 BFDE OUT 0x3E,R29 - 0020A 51CE SUBI R28,0x1E - 0020B 40D0 SBCI R29,0 - 0020C EA0A LDI R16,0xAA - 0020D 8308 ST Y,R16 - 0020E 2400 CLR R0 - 0020F E0E5 LDI R30,5 - 00210 E0F3 LDI R31,3 - 00211 E015 LDI R17,5 - 00212 35E3 CPI R30,0x53 - 00213 07F1 CPC R31,R17 - 00214 F011 BEQ 0x0217 - 00215 9201 ST Z+,R0 - 00216 CFFB RJMP 0x0212 - 00217 8300 ST Z,R16 - 00218 E0E7 LDI R30,7 - 00219 E0F2 LDI R31,2 - 0021A E0A0 LDI R26,0 - 0021B E0B1 LDI R27,1 - 0021C E014 LDI R17,4 - 0021D E000 LDI R16,0 - 0021E BF0B OUT 0x3B,R16 - 0021F 30EC CPI R30,0xC - 00220 07F1 CPC R31,R17 - 00221 F021 BEQ 0x0226 - 00222 95C8 LPM - 00223 9631 ADIW R30,1 - 00224 920D ST X+,R0 - 00225 CFF9 RJMP 0x021F - 00226 940E 0263 CALL _main +__text_start|__start: + 0021B EFCF LDI R28,0xFF + 0021C E1D0 LDI R29,0x10 + 0021D BFCD OUT 0x3D,R28 + 0021E BFDE OUT 0x3E,R29 + 0021F 51CE SUBI R28,0x1E + 00220 40D0 SBCI R29,0 + 00221 EA0A LDI R16,0xAA + 00222 8308 ST Y,R16 + 00223 2400 CLR R0 + 00224 E2EF LDI R30,0x2F + 00225 E0F3 LDI R31,3 + 00226 E015 LDI R17,5 + 00227 37EB CPI R30,0x7B + 00228 07F1 CPC R31,R17 + 00229 F011 BEQ 0x022C + 0022A 9201 ST Z+,R0 + 0022B CFFB RJMP 0x0227 + 0022C 8300 ST Z,R16 + 0022D E0E7 LDI R30,7 + 0022E E0F2 LDI R31,2 + 0022F E0A0 LDI R26,0 + 00230 E0B1 LDI R27,1 + 00231 E014 LDI R17,4 + 00232 E000 LDI R16,0 + 00233 BF0B OUT 0x3B,R16 + 00234 33E6 CPI R30,0x36 + 00235 07F1 CPC R31,R17 + 00236 F021 BEQ 0x023B + 00237 95C8 LPM + 00238 9631 ADIW R30,1 + 00239 920D ST X+,R0 + 0023A CFF9 RJMP 0x0234 + 0023B 940E 0278 CALL _main _exit: - 00228 CFFF RJMP _exit -FILE: E:\git\AVR\OldManAlarm\main.c + 0023D CFFF RJMP _exit +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c (0001) //DMAVR-128开发板12864型液晶显示实时时钟驱动程序 (0002) //编译环境 编译环境 ICCAVR 7.16A (0003) //系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms @@ -82,25 +82,25 @@ FILE: E:\git\AVR\OldManAlarm\main.c (0039) { (0040) DisplayCgrom(0x90,"欢迎使用独居老人"); _welcomeDisplay: - 00229 E52D LDI R18,0x5D - 0022A E031 LDI R19,1 - 0022B E900 LDI R16,0x90 - 0022C 940E 06B5 CALL _DisplayCgrom + 0023E E622 LDI R18,0x62 + 0023F E031 LDI R19,1 + 00240 E900 LDI R16,0x90 + 00241 940E 0789 CALL _DisplayCgrom (0041) delay_nms(100); - 0022E E604 LDI R16,0x64 - 0022F E010 LDI R17,0 - 00230 940E 0637 CALL _delay_nms + 00243 E604 LDI R16,0x64 + 00244 E010 LDI R17,0 + 00245 940E 070B CALL _delay_nms (0042) DisplayCgrom(0x8a,"预警系统"); - 00232 E524 LDI R18,0x54 - 00233 E031 LDI R19,1 - 00234 E80A LDI R16,0x8A - 00235 940E 06B5 CALL _DisplayCgrom + 00247 E529 LDI R18,0x59 + 00248 E031 LDI R19,1 + 00249 E80A LDI R16,0x8A + 0024A 940E 0789 CALL _DisplayCgrom (0043) delay_nms(3000); - 00237 EB08 LDI R16,0xB8 - 00238 E01B LDI R17,0xB - 00239 940E 0637 CALL _delay_nms + 0024C EB08 LDI R16,0xB8 + 0024D E01B LDI R17,0xB + 0024E 940E 070B CALL _delay_nms (0044) LCD_clear(); //清屏 - 0023B 940C 06AF JMP _LCD_clear + 00250 940C 0783 JMP _LCD_clear (0045) } (0046) (0047) //**************************************************************** @@ -110,25 +110,25 @@ _welcomeDisplay: (0051) { (0052) DisplayCgrom(0x90,"语音模块"); _syn7318InitDisplay: - 0023D E42B LDI R18,0x4B - 0023E E031 LDI R19,1 - 0023F E900 LDI R16,0x90 - 00240 940E 06B5 CALL _DisplayCgrom + 00252 E520 LDI R18,0x50 + 00253 E031 LDI R19,1 + 00254 E900 LDI R16,0x90 + 00255 940E 0789 CALL _DisplayCgrom (0053) delay_nms(100); - 00242 E604 LDI R16,0x64 - 00243 E010 LDI R17,0 - 00244 940E 0637 CALL _delay_nms + 00257 E604 LDI R16,0x64 + 00258 E010 LDI R17,0 + 00259 940E 070B CALL _delay_nms (0054) DisplayCgrom(0x8a,"初始化中"); - 00246 E422 LDI R18,0x42 - 00247 E031 LDI R19,1 - 00248 E80A LDI R16,0x8A - 00249 940E 06B5 CALL _DisplayCgrom + 0025B E427 LDI R18,0x47 + 0025C E031 LDI R19,1 + 0025D E80A LDI R16,0x8A + 0025E 940E 0789 CALL _DisplayCgrom (0055) delay_nms(3000); - 0024B EB08 LDI R16,0xB8 - 0024C E01B LDI R17,0xB - 0024D 940E 0637 CALL _delay_nms + 00260 EB08 LDI R16,0xB8 + 00261 E01B LDI R17,0xB + 00262 940E 070B CALL _delay_nms (0056) LCD_clear(); //清屏 - 0024F 940C 06AF JMP _LCD_clear + 00264 940C 0783 JMP _LCD_clear (0057) } (0058) (0059) @@ -138,31 +138,38 @@ _syn7318InitDisplay: (0063) //stop errant interrupts until set up (0064) CLI(); //disable all interrupts _init_devices: - 00251 94F8 BCLR 7 + 00266 94F8 BCLR 7 (0065) XDIV = 0x00; //xtal divider - 00252 2422 CLR R2 - 00253 BE2C OUT 0x3C,R2 + 00267 2422 CLR R2 + 00268 BE2C OUT 0x3C,R2 (0066) XMCRA = 0x00; //external memory - 00254 9220 006D STS 0x6D,R2 + 00269 9220 006D STS 0x6D,R2 (0067) UART0_Init(); - 00256 940E 06EC CALL _UART0_Init + 0026B 940E 07C0 CALL _UART0_Init (0068) //UART1_Init(); (0069) MCUCR = 0x00; - 00258 2422 CLR R2 - 00259 BE25 OUT 0x35,R2 + 0026D 2422 CLR R2 + 0026E BE25 OUT 0x35,R2 (0070) EICRA = 0x00; //extended ext ints - 0025A 9220 006A STS 0x6A,R2 + 0026F 9220 006A STS 0x6A,R2 (0071) EICRB = 0x00; //extended ext ints - 0025C BE2A OUT 0x3A,R2 + 00271 BE2A OUT 0x3A,R2 (0072) EIMSK = 0x00; - 0025D BE29 OUT 0x39,R2 + 00272 BE29 OUT 0x39,R2 (0073) TIMSK = 0x00; //timer interrupt sources - 0025E BE27 OUT 0x37,R2 + 00273 BE27 OUT 0x37,R2 (0074) ETIMSK = 0x00; //extended timer interrupt sources - 0025F 9220 007D STS 0x7D,R2 + 00274 9220 007D STS 0x7D,R2 (0075) SEI(); //re-enable interrupts - 00261 9478 BSET 7 - 00262 9508 RET + 00276 9478 BSET 7 + 00277 9508 RET +_main: + tempstr --> Y,+21 + timestr --> Y,+0 + temp --> R20 + command --> R10 + u8temp --> R20 + 00278 976C SBIW R28,0x1C (0076) //all peripherals are now initialized (0077) } (0078) @@ -174,282 +181,319 @@ _init_devices: (0084) // volatile unsigned char temp; (0085) uchar u8temp; (0086) uchar command; -(0087) uchar temp; -(0088) -(0089) system_init(); //系统初始化,设置IO口属性 -_main: - temp --> R20 - command --> R10 - u8temp --> R20 - 00263 940E 0646 CALL _system_init -(0090) delay_nms(100); //延时100ms - 00265 E604 LDI R16,0x64 - 00266 E010 LDI R17,0 - 00267 940E 0637 CALL _delay_nms -(0091) LCD_init(); //液晶参数初始化设置 - 00269 940E 06CF CALL _LCD_init -(0092) LCD_clear(); //清屏 - 0026B 940E 06AF CALL _LCD_clear -(0093) -(0094) ds1302_init(); //DS1302初始化 - 0026D 940E 03D7 CALL _ds1302_init -(0095) DS18B20_Reset(); //复位D18B20 - 0026F 940E 04F9 CALL _DS18B20_Reset -(0096) delay_nms(10); - 00271 E00A LDI R16,0xA - 00272 E010 LDI R17,0 - 00273 940E 0637 CALL _delay_nms -(0097) //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 -(0098) welcomeDisplay(); - 00275 DFB3 RCALL _welcomeDisplay -(0099) init_devices(); - 00276 DFDA RCALL _init_devices -(0100) -(0101) SYN7318_init(); //SYN7318语音识别模块 初始化 - 00277 940E 079E CALL _SYN7318_init -(0102) syn7318InitDisplay(); - 00279 DFC3 RCALL _syn7318InitDisplay -(0103) -(0104) -(0105) //updateWords(); //SYN7318语音识别模块 词典更新 -(0106) //SYN7318_welcome(); -(0107) -(0108) updateWords(); - 0027A 940E 08DD CALL _updateWords - 0027C C0C0 RJMP 0x033D +(0087) uchar temp; +(0088) uchar timestr[21]; //时间字符串数组 +(0089) uchar tempstr[7]; //温度字符串数组 +(0090) +(0091) system_init(); //系统初始化,设置IO口属性 + 00279 940E 071A CALL _system_init +(0092) delay_nms(100); //延时100ms + 0027B E604 LDI R16,0x64 + 0027C E010 LDI R17,0 + 0027D 940E 070B CALL _delay_nms +(0093) LCD_init(); //液晶参数初始化设置 + 0027F 940E 07A3 CALL _LCD_init +(0094) LCD_clear(); //清屏 + 00281 940E 0783 CALL _LCD_clear +(0095) +(0096) ds1302_init(); //DS1302初始化 + 00283 940E 0410 CALL _ds1302_init +(0097) DS18B20_Reset(); //复位D18B20 + 00285 940E 059C CALL _DS18B20_Reset +(0098) delay_nms(10); + 00287 E00A LDI R16,0xA + 00288 E010 LDI R17,0 + 00289 940E 070B CALL _delay_nms +(0099) //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 +(0100) welcomeDisplay(); + 0028B DFB2 RCALL _welcomeDisplay +(0101) init_devices(); + 0028C DFD9 RCALL _init_devices +(0102) +(0103) SYN7318_init(); //SYN7318语音识别模块 初始化 + 0028D 940E 0872 CALL _SYN7318_init +(0104) syn7318InitDisplay(); + 0028F DFC2 RCALL _syn7318InitDisplay +(0105) +(0106) +(0107) //updateWords(); //SYN7318语音识别模块 词典更新 +(0108) //SYN7318_welcome(); (0109) -(0110) while(1) { +(0110) updateWords(); + 00290 940E 09B1 CALL _updateWords + 00292 C0E6 RJMP 0x0379 (0111) -(0112) displayDateTime(); - 0027D 940E 0411 CALL _displayDateTime -(0113) LCD_write_temperature(); - 0027F 940E 05B2 CALL _LCD_write_temperature - 00281 C021 RJMP 0x02A3 -(0114) -(0115) //wifi -(0116) while(RxBufWr_wifi != RxBufRd_wifi) { -(0117) LCD_write_com(0x98); - 00282 E908 LDI R16,0x98 - 00283 940E 065F CALL _LCD_write_com -(0118) delay_nms(2); - 00285 E002 LDI R16,2 - 00286 E010 LDI R17,0 - 00287 940E 0637 CALL _delay_nms -(0119) u8temp = RxCharBuf_wifi[RxBufRd_wifi]; - 00289 E182 LDI R24,0x12 - 0028A E093 LDI R25,3 - 0028B 91E0 030F LDS R30,RxBufRd_wifi - 0028D 27FF CLR R31 - 0028E 0FE8 ADD R30,R24 - 0028F 1FF9 ADC R31,R25 - 00290 8140 LD R20,Z -(0120) RxBufRd_wifi++; - 00291 9180 030F LDS R24,RxBufRd_wifi - 00293 5F8F SUBI R24,0xFF - 00294 9380 030F STS RxBufRd_wifi,R24 -(0121) RxBufRd_wifi &= 0x0f; - 00296 708F ANDI R24,0xF - 00297 9380 030F STS RxBufRd_wifi,R24 -(0122) if(u8temp == 0x0d) break; - 00299 304D CPI R20,0xD - 0029A F409 BNE 0x029C - 0029B C00D RJMP 0x02A9 -(0123) LCD_write_data(u8temp); - 0029C 2F04 MOV R16,R20 - 0029D 940E 067C CALL _LCD_write_data -(0124) delay_nms(2); - 0029F E002 LDI R16,2 - 002A0 E010 LDI R17,0 - 002A1 940E 0637 CALL _delay_nms - 002A3 9020 030F LDS R2,RxBufRd_wifi - 002A5 9030 0310 LDS R3,RxBufWr_wifi - 002A7 1432 CP R3,R2 - 002A8 F6C9 BNE 0x0282 -(0125) //DisplayCgrom(0x98, &u8temp); -(0126) } -(0127) -(0128) -(0129) startRecognition(); - 002A9 940E 0966 CALL _startRecognition -(0130) command = checkSendReturn(); - 002AB 940E 07C2 CALL _checkSendReturn - 002AD 2EA0 MOV R10,R16 -(0131) -(0132) switch(command){ - 002AE 2D4A MOV R20,R10 - 002AF 2755 CLR R21 - 002B0 3041 CPI R20,1 - 002B1 E0E0 LDI R30,0 - 002B2 075E CPC R21,R30 - 002B3 F409 BNE 0x02B5 - 002B4 C04D RJMP 0x0302 - 002B5 3042 CPI R20,2 - 002B6 E0E0 LDI R30,0 - 002B7 075E CPC R21,R30 - 002B8 F409 BNE 0x02BA - 002B9 C054 RJMP 0x030E - 002BA 3043 CPI R20,3 - 002BB E0E0 LDI R30,0 - 002BC 075E CPC R21,R30 - 002BD F409 BNE 0x02BF - 002BE C07E RJMP 0x033D - 002BF 3044 CPI R20,4 - 002C0 E0E0 LDI R30,0 - 002C1 075E CPC R21,R30 - 002C2 F0B9 BEQ 0x02DA - 002C3 3045 CPI R20,5 - 002C4 E0E0 LDI R30,0 - 002C5 075E CPC R21,R30 - 002C6 F0E9 BEQ 0x02E4 - 002C7 3046 CPI R20,6 - 002C8 E0E0 LDI R30,0 - 002C9 075E CPC R21,R30 - 002CA F169 BEQ 0x02F8 - 002CB 3047 CPI R20,7 +(0112) while(1) { +(0113) +(0114) displayDateTime(); + 00293 940E 044A CALL _displayDateTime +(0115) LCD_write_temperature(); + 00295 940E 0655 CALL _LCD_write_temperature + 00297 C021 RJMP 0x02B9 +(0116) +(0117) //wifi +(0118) while(RxBufWr_wifi != RxBufRd_wifi) { +(0119) LCD_write_com(0x98); + 00298 E908 LDI R16,0x98 + 00299 940E 0733 CALL _LCD_write_com +(0120) delay_nms(2); + 0029B E002 LDI R16,2 + 0029C E010 LDI R17,0 + 0029D 940E 070B CALL _delay_nms +(0121) u8temp = RxCharBuf_wifi[RxBufRd_wifi]; + 0029F E38A LDI R24,0x3A + 002A0 E093 LDI R25,3 + 002A1 91E0 0337 LDS R30,RxBufRd_wifi + 002A3 27FF CLR R31 + 002A4 0FE8 ADD R30,R24 + 002A5 1FF9 ADC R31,R25 + 002A6 8140 LD R20,Z +(0122) RxBufRd_wifi++; + 002A7 9180 0337 LDS R24,RxBufRd_wifi + 002A9 5F8F SUBI R24,0xFF + 002AA 9380 0337 STS RxBufRd_wifi,R24 +(0123) RxBufRd_wifi &= 0x0f; + 002AC 708F ANDI R24,0xF + 002AD 9380 0337 STS RxBufRd_wifi,R24 +(0124) if(u8temp == 0x0d) break; + 002AF 304D CPI R20,0xD + 002B0 F409 BNE 0x02B2 + 002B1 C00D RJMP 0x02BF +(0125) LCD_write_data(u8temp); + 002B2 2F04 MOV R16,R20 + 002B3 940E 0750 CALL _LCD_write_data +(0126) delay_nms(2); + 002B5 E002 LDI R16,2 + 002B6 E010 LDI R17,0 + 002B7 940E 070B CALL _delay_nms + 002B9 9020 0337 LDS R2,RxBufRd_wifi + 002BB 9030 0338 LDS R3,RxBufWr_wifi + 002BD 1432 CP R3,R2 + 002BE F6C9 BNE 0x0298 +(0127) //DisplayCgrom(0x98, &u8temp); +(0128) } +(0129) +(0130) +(0131) startRecognition(); + 002BF 940E 0A3A CALL _startRecognition +(0132) command = checkSendReturn(); + 002C1 940E 0896 CALL _checkSendReturn + 002C3 2EA0 MOV R10,R16 +(0133) +(0134) switch(command){ + 002C4 2D4A MOV R20,R10 + 002C5 2755 CLR R21 + 002C6 3041 CPI R20,1 + 002C7 E0E0 LDI R30,0 + 002C8 075E CPC R21,R30 + 002C9 F409 BNE 0x02CB + 002CA C052 RJMP 0x031D + 002CB 3042 CPI R20,2 002CC E0E0 LDI R30,0 002CD 075E CPC R21,R30 - 002CE F0F9 BEQ 0x02EE - 002CF 3041 CPI R20,1 - 002D0 E0E0 LDI R30,0 - 002D1 075E CPC R21,R30 - 002D2 F40C BGE 0x02D4 - 002D3 C04E RJMP 0x0322 - 002D4 3644 CPI R20,0x64 - 002D5 E0E0 LDI R30,0 - 002D6 075E CPC R21,R30 - 002D7 F409 BNE 0x02D9 - 002D8 C03F RJMP 0x0318 - 002D9 C048 RJMP 0x0322 -(0133) case OVER_TIME : -(0134) break; -(0135) case 0x04 : -(0136) //SYN7318_Error(); -(0137) DisplayCgrom(0x88,"语音超时"); - 002DA E329 LDI R18,0x39 - 002DB E031 LDI R19,1 - 002DC E808 LDI R16,0x88 - 002DD 940E 06B5 CALL _DisplayCgrom -(0138) delay_nms(2); - 002DF E002 LDI R16,2 - 002E0 E010 LDI R17,0 - 002E1 940E 0637 CALL _delay_nms -(0139) break; - 002E3 C059 RJMP 0x033D -(0140) case 0x05 : -(0141) //SYN7318_Error(); -(0142) DisplayCgrom(0x88,"识别拒识"); - 002E4 E320 LDI R18,0x30 - 002E5 E031 LDI R19,1 - 002E6 E808 LDI R16,0x88 - 002E7 940E 06B5 CALL _DisplayCgrom -(0143) delay_nms(2); - 002E9 E002 LDI R16,2 - 002EA E010 LDI R17,0 - 002EB 940E 0637 CALL _delay_nms -(0144) break; - 002ED C04F RJMP 0x033D -(0145) case 0x07 : -(0146) //SYN7318_Error(); -(0147) DisplayCgrom(0x88,"识别拒识一"); - 002EE E225 LDI R18,0x25 - 002EF E031 LDI R19,1 - 002F0 E808 LDI R16,0x88 - 002F1 940E 06B5 CALL _DisplayCgrom -(0148) delay_nms(2); - 002F3 E002 LDI R16,2 - 002F4 E010 LDI R17,0 - 002F5 940E 0637 CALL _delay_nms -(0149) break; - 002F7 C045 RJMP 0x033D -(0150) case 0x06 : -(0151) //SYN7318_Error(); -(0152) DisplayCgrom(0x88,"识别内部错误"); - 002F8 E128 LDI R18,0x18 - 002F9 E031 LDI R19,1 - 002FA E808 LDI R16,0x88 - 002FB 940E 06B5 CALL _DisplayCgrom -(0153) delay_nms(2); - 002FD E002 LDI R16,2 - 002FE E010 LDI R17,0 - 002FF 940E 0637 CALL _delay_nms -(0154) break; - 00301 C03B RJMP 0x033D -(0155) case 1 : -(0156) DisplayCgrom(0x8C,"救命"); - 00302 E123 LDI R18,0x13 - 00303 E031 LDI R19,1 - 00304 E80C LDI R16,0x8C - 00305 940E 06B5 CALL _DisplayCgrom -(0157) delay_nms(2); - 00307 E002 LDI R16,2 - 00308 E010 LDI R17,0 - 00309 940E 0637 CALL _delay_nms -(0158) //wifi_SENDMSG(); -(0159) wifi_Restart(); - 0030B 940E 0983 CALL _wifi_Restart -(0160) break; - 0030D C02F RJMP 0x033D -(0161) case 2 : -(0162) DisplayCgrom(0x8C,"哎呦"); - 0030E E02E LDI R18,0xE - 0030F E031 LDI R19,1 - 00310 E80C LDI R16,0x8C - 00311 940E 06B5 CALL _DisplayCgrom -(0163) delay_nms(2); - 00313 E002 LDI R16,2 - 00314 E010 LDI R17,0 - 00315 940E 0637 CALL _delay_nms -(0164) break; - 00317 C025 RJMP 0x033D -(0165) case 100 : -(0166) DisplayCgrom(0x8C,"温度"); - 00318 E029 LDI R18,0x9 - 00319 E031 LDI R19,1 - 0031A E80C LDI R16,0x8C - 0031B 940E 06B5 CALL _DisplayCgrom -(0167) delay_nms(2); - 0031D E002 LDI R16,2 - 0031E E010 LDI R17,0 - 0031F 940E 0637 CALL _delay_nms -(0168) break; - 00321 C01B RJMP 0x033D -(0169) default : -(0170) DisplayCgrom(0x8C,"识别成功"); - 00322 E020 LDI R18,0 - 00323 E031 LDI R19,1 - 00324 E80C LDI R16,0x8C - 00325 940E 06B5 CALL _DisplayCgrom -(0171) delay_nms(2); - 00327 E002 LDI R16,2 - 00328 E010 LDI R17,0 - 00329 940E 0637 CALL _delay_nms -(0172) LCD_write_com(0x8C); + 002CE F409 BNE 0x02D0 + 002CF C059 RJMP 0x0329 + 002D0 3043 CPI R20,3 + 002D1 E0E0 LDI R30,0 + 002D2 075E CPC R21,R30 + 002D3 F409 BNE 0x02D5 + 002D4 C0A4 RJMP 0x0379 + 002D5 3044 CPI R20,4 + 002D6 E0E0 LDI R30,0 + 002D7 075E CPC R21,R30 + 002D8 F0E1 BEQ 0x02F5 + 002D9 3045 CPI R20,5 + 002DA E0E0 LDI R30,0 + 002DB 075E CPC R21,R30 + 002DC F111 BEQ 0x02FF + 002DD 3046 CPI R20,6 + 002DE E0E0 LDI R30,0 + 002DF 075E CPC R21,R30 + 002E0 F191 BEQ 0x0313 + 002E1 3047 CPI R20,7 + 002E2 E0E0 LDI R30,0 + 002E3 075E CPC R21,R30 + 002E4 F121 BEQ 0x0309 + 002E5 3041 CPI R20,1 + 002E6 E0E0 LDI R30,0 + 002E7 075E CPC R21,R30 + 002E8 F40C BGE 0x02EA + 002E9 C074 RJMP 0x035E + 002EA 3644 CPI R20,0x64 + 002EB E0E0 LDI R30,0 + 002EC 075E CPC R21,R30 + 002ED F409 BNE 0x02EF + 002EE C044 RJMP 0x0333 + 002EF 3645 CPI R20,0x65 + 002F0 E0E0 LDI R30,0 + 002F1 075E CPC R21,R30 + 002F2 F409 BNE 0x02F4 + 002F3 C056 RJMP 0x034A + 002F4 C069 RJMP 0x035E +(0135) case OVER_TIME : +(0136) break; +(0137) case 0x04 : +(0138) //SYN7318_Error(); +(0139) DisplayCgrom(0x88,"语音超时"); + 002F5 E32E LDI R18,0x3E + 002F6 E031 LDI R19,1 + 002F7 E808 LDI R16,0x88 + 002F8 940E 0789 CALL _DisplayCgrom +(0140) delay_nms(2); + 002FA E002 LDI R16,2 + 002FB E010 LDI R17,0 + 002FC 940E 070B CALL _delay_nms +(0141) break; + 002FE C07A RJMP 0x0379 +(0142) case 0x05 : +(0143) //SYN7318_Error(); +(0144) DisplayCgrom(0x88,"识别拒识"); + 002FF E325 LDI R18,0x35 + 00300 E031 LDI R19,1 + 00301 E808 LDI R16,0x88 + 00302 940E 0789 CALL _DisplayCgrom +(0145) delay_nms(2); + 00304 E002 LDI R16,2 + 00305 E010 LDI R17,0 + 00306 940E 070B CALL _delay_nms +(0146) break; + 00308 C070 RJMP 0x0379 +(0147) case 0x07 : +(0148) //SYN7318_Error(); +(0149) DisplayCgrom(0x88,"识别拒识一"); + 00309 E22A LDI R18,0x2A + 0030A E031 LDI R19,1 + 0030B E808 LDI R16,0x88 + 0030C 940E 0789 CALL _DisplayCgrom +(0150) delay_nms(2); + 0030E E002 LDI R16,2 + 0030F E010 LDI R17,0 + 00310 940E 070B CALL _delay_nms +(0151) break; + 00312 C066 RJMP 0x0379 +(0152) case 0x06 : +(0153) //SYN7318_Error(); +(0154) DisplayCgrom(0x88,"识别内部错误"); + 00313 E12D LDI R18,0x1D + 00314 E031 LDI R19,1 + 00315 E808 LDI R16,0x88 + 00316 940E 0789 CALL _DisplayCgrom +(0155) delay_nms(2); + 00318 E002 LDI R16,2 + 00319 E010 LDI R17,0 + 0031A 940E 070B CALL _delay_nms +(0156) break; + 0031C C05C RJMP 0x0379 +(0157) case 1 : +(0158) DisplayCgrom(0x8C,"救命"); + 0031D E128 LDI R18,0x18 + 0031E E031 LDI R19,1 + 0031F E80C LDI R16,0x8C + 00320 940E 0789 CALL _DisplayCgrom +(0159) delay_nms(2); + 00322 E002 LDI R16,2 + 00323 E010 LDI R17,0 + 00324 940E 070B CALL _delay_nms +(0160) //wifi_SENDMSG(); +(0161) wifi_Restart(); + 00326 940E 0A57 CALL _wifi_Restart +(0162) break; + 00328 C050 RJMP 0x0379 +(0163) case 2 : +(0164) DisplayCgrom(0x8C,"哎呦"); + 00329 E123 LDI R18,0x13 + 0032A E031 LDI R19,1 0032B E80C LDI R16,0x8C - 0032C 940E 065F CALL _LCD_write_com -(0173) delay_nms(2); + 0032C 940E 0789 CALL _DisplayCgrom +(0165) delay_nms(2); 0032E E002 LDI R16,2 0032F E010 LDI R17,0 - 00330 940E 0637 CALL _delay_nms -(0174) temp = (command >> 4) + '0'; //在LCD上写要显示的数据 - 00332 2D4A MOV R20,R10 - 00333 9542 SWAP R20 - 00334 704F ANDI R20,0xF - 00335 5D40 SUBI R20,0xD0 -(0175) LCD_write_data(temp); - 00336 2F04 MOV R16,R20 - 00337 940E 067C CALL _LCD_write_data -(0176) delay_nms(2); - 00339 E002 LDI R16,2 - 0033A E010 LDI R17,0 - 0033B 940E 0637 CALL _delay_nms - 0033D CF3F RJMP 0x027D - 0033E 9508 RET + 00330 940E 070B CALL _delay_nms +(0166) break; + 00332 C046 RJMP 0x0379 +(0167) case 100 : +(0168) DisplayCgrom(0x8C,"温度"); + 00333 E02E LDI R18,0xE + 00334 E031 LDI R19,1 + 00335 E80C LDI R16,0x8C + 00336 940E 0789 CALL _DisplayCgrom +(0169) delay_nms(2); + 00338 E002 LDI R16,2 + 00339 E010 LDI R17,0 + 0033A 940E 070B CALL _delay_nms +(0170) strcpy((char*)tempstr,(char*)Temperaturetostr()); + 0033C 940E 069F CALL _Temperaturetostr + 0033E 0198 MOVW R18,R16 + 0033F 018E MOVW R16,R28 + 00340 5E0B SUBI R16,0xEB + 00341 4F1F SBCI R17,0xFF + 00342 940E 0AD6 CALL _strcpy +(0171) voicePlayer(tempstr); + 00344 018E MOVW R16,R28 + 00345 5E0B SUBI R16,0xEB + 00346 4F1F SBCI R17,0xFF + 00347 940E 090F CALL _voicePlayer +(0172) break; + 00349 C02F RJMP 0x0379 +(0173) case 101: +(0174) DisplayCgrom(0x8C,"时间"); + 0034A E029 LDI R18,0x9 + 0034B E031 LDI R19,1 + 0034C E80C LDI R16,0x8C + 0034D 940E 0789 CALL _DisplayCgrom +(0175) delay_nms(2); + 0034F E002 LDI R16,2 + 00350 E010 LDI R17,0 + 00351 940E 070B CALL _delay_nms +(0176) strcpy((char*)timestr,(char*)Timetostr()); + 00353 940E 0532 CALL _Timetostr + 00355 0168 MOVW R12,R16 + 00356 0196 MOVW R18,R12 + 00357 018E MOVW R16,R28 + 00358 940E 0AD6 CALL _strcpy +(0177) voicePlayer(timestr); + 0035A 018E MOVW R16,R28 + 0035B 940E 090F CALL _voicePlayer +(0178) break; + 0035D C01B RJMP 0x0379 +(0179) default : +(0180) DisplayCgrom(0x8C,"识别成功"); + 0035E E020 LDI R18,0 + 0035F E031 LDI R19,1 + 00360 E80C LDI R16,0x8C + 00361 940E 0789 CALL _DisplayCgrom +(0181) delay_nms(2); + 00363 E002 LDI R16,2 + 00364 E010 LDI R17,0 + 00365 940E 070B CALL _delay_nms +(0182) LCD_write_com(0x8C); + 00367 E80C LDI R16,0x8C + 00368 940E 0733 CALL _LCD_write_com +(0183) delay_nms(2); + 0036A E002 LDI R16,2 + 0036B E010 LDI R17,0 + 0036C 940E 070B CALL _delay_nms +(0184) temp = (command >> 4) + '0'; //在LCD上写要显示的数据 + 0036E 2D4A MOV R20,R10 + 0036F 9542 SWAP R20 + 00370 704F ANDI R20,0xF + 00371 5D40 SUBI R20,0xD0 +(0185) LCD_write_data(temp); + 00372 2F04 MOV R16,R20 + 00373 940E 0750 CALL _LCD_write_data +(0186) delay_nms(2); + 00375 E002 LDI R16,2 + 00376 E010 LDI R17,0 + 00377 940E 070B CALL _delay_nms + 00379 CF19 RJMP 0x0293 + 0037A 966C ADIW R28,0x1C + 0037B 9508 RET _ds1302_write_byte: i --> R20 d --> R18 addr --> R16 - 0033F 934A ST -Y,R20 -FILE: E:\git\AVR\OldManAlarm\12864time.c + 0037C 934A ST -Y,R20 +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\12864time.c (0001) //DMAVR-128开发板12864型液晶显示实时时钟驱动程序 (0002) //编译环境 编译环境 ICCAVR 7.16A (0003) //系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms @@ -477,75 +521,75 @@ FILE: E:\git\AVR\OldManAlarm\12864time.c (0025) (0026) unsigned char i; (0027) RST_SET; //启动DS1302总线 - 00340 9A1F SBI 0x03,7 + 0037D 9A1F SBI 0x03,7 (0028) (0029) //写入目标地址:addr (0030) IO_OUT; - 00341 9A16 SBI 0x02,6 + 0037E 9A16 SBI 0x02,6 (0031) addr = addr & 0xFE; //最低位置零 - 00342 7F0E ANDI R16,0xFE + 0037F 7F0E ANDI R16,0xFE (0032) for (i = 0; i < 8; i ++) { - 00343 2744 CLR R20 - 00344 C009 RJMP 0x034E + 00380 2744 CLR R20 + 00381 C009 RJMP 0x038B (0033) if (addr & 0x01) { - 00345 FF00 SBRS R16,0 - 00346 C002 RJMP 0x0349 + 00382 FF00 SBRS R16,0 + 00383 C002 RJMP 0x0386 (0034) IO_SET; - 00347 9A1E SBI 0x03,6 + 00384 9A1E SBI 0x03,6 (0035) } - 00348 C001 RJMP 0x034A + 00385 C001 RJMP 0x0387 (0036) else { (0037) IO_CLR; - 00349 981E CBI 0x03,6 + 00386 981E CBI 0x03,6 (0038) } (0039) SCK_SET; - 0034A 9A1D SBI 0x03,5 + 00387 9A1D SBI 0x03,5 (0040) SCK_CLR; - 0034B 981D CBI 0x03,5 + 00388 981D CBI 0x03,5 (0041) addr = addr >> 1; - 0034C 9506 LSR R16 - 0034D 9543 INC R20 - 0034E 3048 CPI R20,0x8 - 0034F F3A8 BCS 0x0345 + 00389 9506 LSR R16 + 0038A 9543 INC R20 + 0038B 3048 CPI R20,0x8 + 0038C F3A8 BCS 0x0382 (0042) } (0043) (0044) //写入数据:d (0045) IO_OUT; - 00350 9A16 SBI 0x02,6 + 0038D 9A16 SBI 0x02,6 (0046) for (i = 0; i < 8; i ++) { - 00351 2744 CLR R20 - 00352 C009 RJMP 0x035C + 0038E 2744 CLR R20 + 0038F C009 RJMP 0x0399 (0047) if (d & 0x01) { - 00353 FF20 SBRS R18,0 - 00354 C002 RJMP 0x0357 + 00390 FF20 SBRS R18,0 + 00391 C002 RJMP 0x0394 (0048) IO_SET; - 00355 9A1E SBI 0x03,6 + 00392 9A1E SBI 0x03,6 (0049) } - 00356 C001 RJMP 0x0358 + 00393 C001 RJMP 0x0395 (0050) else { (0051) IO_CLR; - 00357 981E CBI 0x03,6 + 00394 981E CBI 0x03,6 (0052) } (0053) SCK_SET; - 00358 9A1D SBI 0x03,5 + 00395 9A1D SBI 0x03,5 (0054) SCK_CLR; - 00359 981D CBI 0x03,5 + 00396 981D CBI 0x03,5 (0055) d = d >> 1; - 0035A 9526 LSR R18 - 0035B 9543 INC R20 - 0035C 3048 CPI R20,0x8 - 0035D F3A8 BCS 0x0353 + 00397 9526 LSR R18 + 00398 9543 INC R20 + 00399 3048 CPI R20,0x8 + 0039A F3A8 BCS 0x0390 (0056) } (0057) RST_CLR; //停止DS1302总线 - 0035E 981F CBI 0x03,7 - 0035F 9149 LD R20,Y+ - 00360 9508 RET + 0039B 981F CBI 0x03,7 + 0039C 9149 LD R20,Y+ + 0039D 9508 RET _ds1302_read_byte: temp --> R20 i --> R22 addr --> R16 - 00361 934A ST -Y,R20 - 00362 936A ST -Y,R22 + 0039E 934A ST -Y,R20 + 0039F 936A ST -Y,R22 (0058) } (0059) (0060) //*********************************************************************** @@ -557,73 +601,73 @@ _ds1302_read_byte: (0066) unsigned char i; (0067) unsigned char temp; (0068) RST_SET; //启动DS1302总线 - 00363 9A1F SBI 0x03,7 + 003A0 9A1F SBI 0x03,7 (0069) (0070) //写入目标地址:addr (0071) IO_OUT; - 00364 9A16 SBI 0x02,6 + 003A1 9A16 SBI 0x02,6 (0072) addr = addr | 0x01; //最低位置高 - 00365 6001 ORI R16,1 + 003A2 6001 ORI R16,1 (0073) for (i = 0; i < 8; i ++) { - 00366 2766 CLR R22 - 00367 C009 RJMP 0x0371 + 003A3 2766 CLR R22 + 003A4 C009 RJMP 0x03AE (0074) if (addr & 0x01) { - 00368 FF00 SBRS R16,0 - 00369 C002 RJMP 0x036C + 003A5 FF00 SBRS R16,0 + 003A6 C002 RJMP 0x03A9 (0075) IO_SET; - 0036A 9A1E SBI 0x03,6 + 003A7 9A1E SBI 0x03,6 (0076) } - 0036B C001 RJMP 0x036D + 003A8 C001 RJMP 0x03AA (0077) else { (0078) IO_CLR; - 0036C 981E CBI 0x03,6 + 003A9 981E CBI 0x03,6 (0079) } (0080) SCK_SET; - 0036D 9A1D SBI 0x03,5 + 003AA 9A1D SBI 0x03,5 (0081) SCK_CLR; - 0036E 981D CBI 0x03,5 + 003AB 981D CBI 0x03,5 (0082) addr = addr >> 1; - 0036F 9506 LSR R16 - 00370 9563 INC R22 - 00371 3068 CPI R22,0x8 - 00372 F3A8 BCS 0x0368 + 003AC 9506 LSR R16 + 003AD 9563 INC R22 + 003AE 3068 CPI R22,0x8 + 003AF F3A8 BCS 0x03A5 (0083) } (0084) (0085) /*输出数据:temp*/ (0086) IO_IN; - 00373 9816 CBI 0x02,6 + 003B0 9816 CBI 0x02,6 (0087) for (i = 0; i < 8; i ++) { - 00374 2766 CLR R22 - 00375 C009 RJMP 0x037F + 003B1 2766 CLR R22 + 003B2 C009 RJMP 0x03BC (0088) temp = temp >> 1; - 00376 9546 LSR R20 + 003B3 9546 LSR R20 (0089) if (IO_R) { - 00377 9B0E SBIS 0x01,6 - 00378 C002 RJMP 0x037B + 003B4 9B0E SBIS 0x01,6 + 003B5 C002 RJMP 0x03B8 (0090) temp |= 0x80; - 00379 6840 ORI R20,0x80 + 003B6 6840 ORI R20,0x80 (0091) } - 0037A C001 RJMP 0x037C + 003B7 C001 RJMP 0x03B9 (0092) else { (0093) temp &= 0x7F; - 0037B 774F ANDI R20,0x7F + 003B8 774F ANDI R20,0x7F (0094) } (0095) SCK_SET; - 0037C 9A1D SBI 0x03,5 + 003B9 9A1D SBI 0x03,5 (0096) SCK_CLR; - 0037D 981D CBI 0x03,5 - 0037E 9563 INC R22 - 0037F 3068 CPI R22,0x8 - 00380 F3A8 BCS 0x0376 + 003BA 981D CBI 0x03,5 + 003BB 9563 INC R22 + 003BC 3068 CPI R22,0x8 + 003BD F3A8 BCS 0x03B3 (0097) } (0098) (0099) RST_CLR; //停止DS1302总线 - 00381 981F CBI 0x03,7 + 003BE 981F CBI 0x03,7 (0100) return temp; - 00382 2F04 MOV R16,R20 - 00383 9169 LD R22,Y+ - 00384 9149 LD R20,Y+ - 00385 9508 RET + 003BF 2F04 MOV R16,R20 + 003C0 9169 LD R22,Y+ + 003C1 9149 LD R20,Y+ + 003C2 9508 RET (0101) } (0102) (0103) //*********************************************************************** @@ -635,53 +679,50 @@ _ds1302_read_byte: (0109) (0110) ds1302_write_byte(ds1302_control_add,0x00); //关闭写保护 _ds1302_write_time: - 00386 2722 CLR R18 - 00387 E80E LDI R16,0x8E - 00388 DFB6 RCALL _ds1302_write_byte + 003C3 2722 CLR R18 + 003C4 E80E LDI R16,0x8E + 003C5 DFB6 RCALL _ds1302_write_byte (0111) ds1302_write_byte(ds1302_sec_add,0x80); //暂停 - 00389 E820 LDI R18,0x80 - 0038A E800 LDI R16,0x80 - 0038B DFB3 RCALL _ds1302_write_byte + 003C6 E820 LDI R18,0x80 + 003C7 E800 LDI R16,0x80 + 003C8 DFB3 RCALL _ds1302_write_byte (0112) //ds1302_write_byte(ds1302_charger_add,0xa9); //涓流充电 (0113) ds1302_write_byte(ds1302_year_add,time_buf[1]); //年 - 0038C 9120 016F LDS R18,time_buf+1 - 0038E E80C LDI R16,0x8C - 0038F DFAF RCALL _ds1302_write_byte + 003C9 9120 0174 LDS R18,time_buf+1 + 003CB E80C LDI R16,0x8C + 003CC DFAF RCALL _ds1302_write_byte (0114) ds1302_write_byte(ds1302_month_add,time_buf[2]); //月 - 00390 9120 0170 LDS R18,time_buf+2 - 00392 E808 LDI R16,0x88 - 00393 DFAB RCALL _ds1302_write_byte + 003CD 9120 0175 LDS R18,time_buf+2 + 003CF E808 LDI R16,0x88 + 003D0 DFAB RCALL _ds1302_write_byte (0115) ds1302_write_byte(ds1302_date_add,time_buf[3]); //日 - 00394 9120 0171 LDS R18,time_buf+3 - 00396 E806 LDI R16,0x86 - 00397 DFA7 RCALL _ds1302_write_byte + 003D1 9120 0176 LDS R18,time_buf+3 + 003D3 E806 LDI R16,0x86 + 003D4 DFA7 RCALL _ds1302_write_byte (0116) ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 - 00398 9120 0175 LDS R18,time_buf+7 - 0039A E80A LDI R16,0x8A - 0039B DFA3 RCALL _ds1302_write_byte + 003D5 9120 017A LDS R18,time_buf+7 + 003D7 E80A LDI R16,0x8A + 003D8 DFA3 RCALL _ds1302_write_byte (0117) ds1302_write_byte(ds1302_hr_add,time_buf[4]); //时 - 0039C 9120 0172 LDS R18,time_buf+4 - 0039E E804 LDI R16,0x84 - 0039F DF9F RCALL _ds1302_write_byte + 003D9 9120 0177 LDS R18,time_buf+4 + 003DB E804 LDI R16,0x84 + 003DC DF9F RCALL _ds1302_write_byte (0118) ds1302_write_byte(ds1302_min_add,time_buf[5]); //分 - 003A0 9120 0173 LDS R18,time_buf+5 - 003A2 E802 LDI R16,0x82 - 003A3 DF9B RCALL _ds1302_write_byte + 003DD 9120 0178 LDS R18,time_buf+5 + 003DF E802 LDI R16,0x82 + 003E0 DF9B RCALL _ds1302_write_byte (0119) ds1302_write_byte(ds1302_sec_add,time_buf[6]); //秒 - 003A4 9120 0174 LDS R18,time_buf+6 - 003A6 E800 LDI R16,0x80 - 003A7 DF97 RCALL _ds1302_write_byte -(0120) ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 - 003A8 9120 0175 LDS R18,time_buf+7 - 003AA E80A LDI R16,0x8A - 003AB DF93 RCALL _ds1302_write_byte + 003E1 9120 0179 LDS R18,time_buf+6 + 003E3 E800 LDI R16,0x80 + 003E4 DF97 RCALL _ds1302_write_byte +(0120) //ds1302_write_byte(ds1302_day_add,time_buf[7]); //周 (0121) ds1302_write_byte(ds1302_control_add,0x80); //打开写保护 - 003AC E820 LDI R18,0x80 - 003AD E80E LDI R16,0x8E - 003AE CF90 RJMP _ds1302_write_byte + 003E5 E820 LDI R18,0x80 + 003E6 E80E LDI R16,0x8E + 003E7 CF94 RJMP _ds1302_write_byte _ds1302_read_time: - 003AF 92AA ST -Y,R10 - 003B0 934A ST -Y,R20 + 003E8 92AA ST -Y,R10 + 003E9 934A ST -Y,R20 (0122) } (0123) (0124) //*********************************************************************** @@ -692,43 +733,43 @@ _ds1302_read_time: (0129) { (0130) (0131) time_buf[1]=ds1302_read_byte(ds1302_year_add); //年 - 003B1 E80C LDI R16,0x8C - 003B2 DFAE RCALL _ds1302_read_byte - 003B3 9300 016F STS time_buf+1,R16 + 003EA E80C LDI R16,0x8C + 003EB DFB2 RCALL _ds1302_read_byte + 003EC 9300 0174 STS time_buf+1,R16 (0132) time_buf[2]=ds1302_read_byte(ds1302_month_add); //月 - 003B5 E808 LDI R16,0x88 - 003B6 DFAA RCALL _ds1302_read_byte - 003B7 9300 0170 STS time_buf+2,R16 + 003EE E808 LDI R16,0x88 + 003EF DFAE RCALL _ds1302_read_byte + 003F0 9300 0175 STS time_buf+2,R16 (0133) time_buf[3]=ds1302_read_byte(ds1302_date_add); //日 - 003B9 E806 LDI R16,0x86 - 003BA DFA6 RCALL _ds1302_read_byte - 003BB 2EA0 MOV R10,R16 - 003BC 92A0 0171 STS time_buf+3,R10 + 003F2 E806 LDI R16,0x86 + 003F3 DFAA RCALL _ds1302_read_byte + 003F4 2EA0 MOV R10,R16 + 003F5 92A0 0176 STS time_buf+3,R10 (0134) time_buf[4]=ds1302_read_byte(ds1302_hr_add); //时 - 003BE E804 LDI R16,0x84 - 003BF DFA1 RCALL _ds1302_read_byte - 003C0 2EA0 MOV R10,R16 - 003C1 92A0 0172 STS time_buf+4,R10 + 003F7 E804 LDI R16,0x84 + 003F8 DFA5 RCALL _ds1302_read_byte + 003F9 2EA0 MOV R10,R16 + 003FA 92A0 0177 STS time_buf+4,R10 (0135) time_buf[5]=ds1302_read_byte(ds1302_min_add); //分 - 003C3 E802 LDI R16,0x82 - 003C4 DF9C RCALL _ds1302_read_byte - 003C5 2EA0 MOV R10,R16 - 003C6 92A0 0173 STS time_buf+5,R10 + 003FC E802 LDI R16,0x82 + 003FD DFA0 RCALL _ds1302_read_byte + 003FE 2EA0 MOV R10,R16 + 003FF 92A0 0178 STS time_buf+5,R10 (0136) time_buf[6]=(ds1302_read_byte(ds1302_sec_add))&0x7F;//秒 - 003C8 E800 LDI R16,0x80 - 003C9 DF97 RCALL _ds1302_read_byte - 003CA 2F40 MOV R20,R16 - 003CB 2F84 MOV R24,R20 - 003CC 778F ANDI R24,0x7F - 003CD 9380 0174 STS time_buf+6,R24 + 00401 E800 LDI R16,0x80 + 00402 DF9B RCALL _ds1302_read_byte + 00403 2F40 MOV R20,R16 + 00404 2F84 MOV R24,R20 + 00405 778F ANDI R24,0x7F + 00406 9380 0179 STS time_buf+6,R24 (0137) time_buf[7]=ds1302_read_byte(ds1302_day_add); //周 - 003CF E80A LDI R16,0x8A - 003D0 DF90 RCALL _ds1302_read_byte - 003D1 2EA0 MOV R10,R16 - 003D2 92A0 0175 STS time_buf+7,R10 - 003D4 9149 LD R20,Y+ - 003D5 90A9 LD R10,Y+ - 003D6 9508 RET + 00408 E80A LDI R16,0x8A + 00409 DF94 RCALL _ds1302_read_byte + 0040A 2EA0 MOV R10,R16 + 0040B 92A0 017A STS time_buf+7,R10 + 0040D 9149 LD R20,Y+ + 0040E 90A9 LD R10,Y+ + 0040F 9508 RET (0138) } (0139) (0140) //*********************************************************************** @@ -740,18 +781,18 @@ _ds1302_read_time: (0146) (0147) RST_CLR; //RST脚置低 _ds1302_init: - 003D7 981F CBI 0x03,7 + 00410 981F CBI 0x03,7 (0148) SCK_CLR; //SCK脚置低 - 003D8 981D CBI 0x03,5 + 00411 981D CBI 0x03,5 (0149) RST_OUT; //RST脚设置为输出 - 003D9 9A17 SBI 0x02,7 + 00412 9A17 SBI 0x02,7 (0150) SCK_OUT; //SCK脚设置为输出 - 003DA 9A15 SBI 0x02,5 - 003DB 9508 RET + 00413 9A15 SBI 0x02,5 + 00414 9508 RET _dayToChina: day --> R20 - 003DC 934A ST -Y,R20 - 003DD 2F40 MOV R20,R16 + 00415 934A ST -Y,R20 + 00416 2F40 MOV R20,R16 (0151) } (0152) (0153) @@ -762,66 +803,66 @@ _dayToChina: (0158) void dayToChina(unsigned char day) (0159) { (0160) if(day == 0x01) - 003DE 3041 CPI R20,1 - 003DF F429 BNE 0x03E5 + 00417 3041 CPI R20,1 + 00418 F429 BNE 0x041E (0161) DisplayCgrom(0x86,"周一"); - 003E0 E924 LDI R18,0x94 - 003E1 E031 LDI R19,1 - 003E2 E806 LDI R16,0x86 - 003E3 940E 06B5 CALL _DisplayCgrom + 00419 EA2E LDI R18,0xAE + 0041A E031 LDI R19,1 + 0041B E806 LDI R16,0x86 + 0041C 940E 0789 CALL _DisplayCgrom (0162) if(day == 0x02) - 003E5 3042 CPI R20,2 - 003E6 F429 BNE 0x03EC + 0041E 3042 CPI R20,2 + 0041F F429 BNE 0x0425 (0163) DisplayCgrom(0x86,"周二"); - 003E7 E82F LDI R18,0x8F - 003E8 E031 LDI R19,1 - 003E9 E806 LDI R16,0x86 - 003EA 940E 06B5 CALL _DisplayCgrom + 00420 EA29 LDI R18,0xA9 + 00421 E031 LDI R19,1 + 00422 E806 LDI R16,0x86 + 00423 940E 0789 CALL _DisplayCgrom (0164) if(day == 0x03) - 003EC 3043 CPI R20,3 - 003ED F429 BNE 0x03F3 + 00425 3043 CPI R20,3 + 00426 F429 BNE 0x042C (0165) DisplayCgrom(0x86,"周三"); - 003EE E82A LDI R18,0x8A - 003EF E031 LDI R19,1 - 003F0 E806 LDI R16,0x86 - 003F1 940E 06B5 CALL _DisplayCgrom + 00427 EA24 LDI R18,0xA4 + 00428 E031 LDI R19,1 + 00429 E806 LDI R16,0x86 + 0042A 940E 0789 CALL _DisplayCgrom (0166) if(day == 0x04) - 003F3 3044 CPI R20,4 - 003F4 F429 BNE 0x03FA + 0042C 3044 CPI R20,4 + 0042D F429 BNE 0x0433 (0167) DisplayCgrom(0x86,"周四"); - 003F5 E825 LDI R18,0x85 - 003F6 E031 LDI R19,1 - 003F7 E806 LDI R16,0x86 - 003F8 940E 06B5 CALL _DisplayCgrom + 0042E E92F LDI R18,0x9F + 0042F E031 LDI R19,1 + 00430 E806 LDI R16,0x86 + 00431 940E 0789 CALL _DisplayCgrom (0168) if(day == 0x05) - 003FA 3045 CPI R20,5 - 003FB F429 BNE 0x0401 + 00433 3045 CPI R20,5 + 00434 F429 BNE 0x043A (0169) DisplayCgrom(0x86,"周五"); - 003FC E820 LDI R18,0x80 - 003FD E031 LDI R19,1 - 003FE E806 LDI R16,0x86 - 003FF 940E 06B5 CALL _DisplayCgrom + 00435 E92A LDI R18,0x9A + 00436 E031 LDI R19,1 + 00437 E806 LDI R16,0x86 + 00438 940E 0789 CALL _DisplayCgrom (0170) if(day == 0x06) - 00401 3046 CPI R20,6 - 00402 F429 BNE 0x0408 + 0043A 3046 CPI R20,6 + 0043B F429 BNE 0x0441 (0171) DisplayCgrom(0x86,"周六"); - 00403 E72B LDI R18,0x7B - 00404 E031 LDI R19,1 - 00405 E806 LDI R16,0x86 - 00406 940E 06B5 CALL _DisplayCgrom + 0043C E925 LDI R18,0x95 + 0043D E031 LDI R19,1 + 0043E E806 LDI R16,0x86 + 0043F 940E 0789 CALL _DisplayCgrom (0172) if(day == 0x07) - 00408 3047 CPI R20,7 - 00409 F429 BNE 0x040F + 00441 3047 CPI R20,7 + 00442 F429 BNE 0x0448 (0173) DisplayCgrom(0x86,"周日"); - 0040A E726 LDI R18,0x76 - 0040B E031 LDI R19,1 - 0040C E806 LDI R16,0x86 - 0040D 940E 06B5 CALL _DisplayCgrom - 0040F 9149 LD R20,Y+ - 00410 9508 RET + 00443 E920 LDI R18,0x90 + 00444 E031 LDI R19,1 + 00445 E806 LDI R16,0x86 + 00446 940E 0789 CALL _DisplayCgrom + 00448 9149 LD R20,Y+ + 00449 9508 RET _displayDateTime: temp --> Y,+0 - 00411 9721 SBIW R28,1 + 0044A 9721 SBIW R28,1 (0174) } (0175) (0176) //*********************************************************************** @@ -831,259 +872,380 @@ _displayDateTime: (0180) { (0181) volatile unsigned char temp; (0182) delay_nms(200); - 00412 EC08 LDI R16,0xC8 - 00413 E010 LDI R17,0 - 00414 940E 0637 CALL _delay_nms + 0044B EC08 LDI R16,0xC8 + 0044C E010 LDI R17,0 + 0044D 940E 070B CALL _delay_nms (0183) ds1302_read_time(); //读DS1302数据 - 00416 DF98 RCALL _ds1302_read_time + 0044F DF98 RCALL _ds1302_read_time (0184) (0185) LCD_write_com(0x80); - 00417 E800 LDI R16,0x80 - 00418 940E 065F CALL _LCD_write_com + 00450 E800 LDI R16,0x80 + 00451 940E 0733 CALL _LCD_write_com (0186) delay_nms(2); - 0041A E002 LDI R16,2 - 0041B E010 LDI R17,0 - 0041C 940E 0637 CALL _delay_nms + 00453 E002 LDI R16,2 + 00454 E010 LDI R17,0 + 00455 940E 070B CALL _delay_nms (0187) temp = (time_buf[0] >> 4) + '0'; //在LCD上写要显示的数据 - 0041E 9180 016E LDS R24,time_buf - 00420 9582 SWAP R24 - 00421 708F ANDI R24,0xF - 00422 5D80 SUBI R24,0xD0 - 00423 8388 ST Y,R24 + 00457 9180 0173 LDS R24,time_buf + 00459 9582 SWAP R24 + 0045A 708F ANDI R24,0xF + 0045B 5D80 SUBI R24,0xD0 + 0045C 8388 ST Y,R24 (0188) LCD_write_data(temp); - 00424 2F08 MOV R16,R24 - 00425 940E 067C CALL _LCD_write_data + 0045D 2F08 MOV R16,R24 + 0045E 940E 0750 CALL _LCD_write_data (0189) delay_nms(2); - 00427 E002 LDI R16,2 - 00428 E010 LDI R17,0 - 00429 940E 0637 CALL _delay_nms + 00460 E002 LDI R16,2 + 00461 E010 LDI R17,0 + 00462 940E 070B CALL _delay_nms (0190) temp = (time_buf[0] & 0x0F) + '0'; - 0042B 9180 016E LDS R24,time_buf - 0042D 708F ANDI R24,0xF - 0042E 5D80 SUBI R24,0xD0 - 0042F 8388 ST Y,R24 + 00464 9180 0173 LDS R24,time_buf + 00466 708F ANDI R24,0xF + 00467 5D80 SUBI R24,0xD0 + 00468 8388 ST Y,R24 (0191) LCD_write_data(temp); - 00430 2F08 MOV R16,R24 - 00431 940E 067C CALL _LCD_write_data + 00469 2F08 MOV R16,R24 + 0046A 940E 0750 CALL _LCD_write_data (0192) delay_nms(2); - 00433 E002 LDI R16,2 - 00434 E010 LDI R17,0 - 00435 940E 0637 CALL _delay_nms + 0046C E002 LDI R16,2 + 0046D E010 LDI R17,0 + 0046E 940E 070B CALL _delay_nms (0193) temp = (time_buf[1] >> 4) + '0'; - 00437 9180 016F LDS R24,time_buf+1 - 00439 9582 SWAP R24 - 0043A 708F ANDI R24,0xF - 0043B 5D80 SUBI R24,0xD0 - 0043C 8388 ST Y,R24 + 00470 9180 0174 LDS R24,time_buf+1 + 00472 9582 SWAP R24 + 00473 708F ANDI R24,0xF + 00474 5D80 SUBI R24,0xD0 + 00475 8388 ST Y,R24 (0194) LCD_write_data(temp); - 0043D 2F08 MOV R16,R24 - 0043E 940E 067C CALL _LCD_write_data + 00476 2F08 MOV R16,R24 + 00477 940E 0750 CALL _LCD_write_data (0195) delay_nms(2); - 00440 E002 LDI R16,2 - 00441 E010 LDI R17,0 - 00442 940E 0637 CALL _delay_nms + 00479 E002 LDI R16,2 + 0047A E010 LDI R17,0 + 0047B 940E 070B CALL _delay_nms (0196) (0197) temp = (time_buf[1] & 0x0F) + '0'; - 00444 9180 016F LDS R24,time_buf+1 - 00446 708F ANDI R24,0xF - 00447 5D80 SUBI R24,0xD0 - 00448 8388 ST Y,R24 + 0047D 9180 0174 LDS R24,time_buf+1 + 0047F 708F ANDI R24,0xF + 00480 5D80 SUBI R24,0xD0 + 00481 8388 ST Y,R24 (0198) LCD_write_data(temp); - 00449 2F08 MOV R16,R24 - 0044A 940E 067C CALL _LCD_write_data + 00482 2F08 MOV R16,R24 + 00483 940E 0750 CALL _LCD_write_data (0199) delay_nms(2); - 0044C E002 LDI R16,2 - 0044D E010 LDI R17,0 - 0044E 940E 0637 CALL _delay_nms + 00485 E002 LDI R16,2 + 00486 E010 LDI R17,0 + 00487 940E 070B CALL _delay_nms (0200) LCD_write_data('-'); - 00450 E20D LDI R16,0x2D - 00451 940E 067C CALL _LCD_write_data + 00489 E20D LDI R16,0x2D + 0048A 940E 0750 CALL _LCD_write_data (0201) delay_nms(2); - 00453 E002 LDI R16,2 - 00454 E010 LDI R17,0 - 00455 940E 0637 CALL _delay_nms + 0048C E002 LDI R16,2 + 0048D E010 LDI R17,0 + 0048E 940E 070B CALL _delay_nms (0202) (0203) temp = (time_buf[2] >> 4) + '0'; - 00457 9180 0170 LDS R24,time_buf+2 - 00459 9582 SWAP R24 - 0045A 708F ANDI R24,0xF - 0045B 5D80 SUBI R24,0xD0 - 0045C 8388 ST Y,R24 + 00490 9180 0175 LDS R24,time_buf+2 + 00492 9582 SWAP R24 + 00493 708F ANDI R24,0xF + 00494 5D80 SUBI R24,0xD0 + 00495 8388 ST Y,R24 (0204) LCD_write_data(temp); - 0045D 2F08 MOV R16,R24 - 0045E 940E 067C CALL _LCD_write_data + 00496 2F08 MOV R16,R24 + 00497 940E 0750 CALL _LCD_write_data (0205) delay_nms(2); - 00460 E002 LDI R16,2 - 00461 E010 LDI R17,0 - 00462 940E 0637 CALL _delay_nms + 00499 E002 LDI R16,2 + 0049A E010 LDI R17,0 + 0049B 940E 070B CALL _delay_nms (0206) temp = (time_buf[2] & 0x0F) + '0'; - 00464 9180 0170 LDS R24,time_buf+2 - 00466 708F ANDI R24,0xF - 00467 5D80 SUBI R24,0xD0 - 00468 8388 ST Y,R24 + 0049D 9180 0175 LDS R24,time_buf+2 + 0049F 708F ANDI R24,0xF + 004A0 5D80 SUBI R24,0xD0 + 004A1 8388 ST Y,R24 (0207) LCD_write_data(temp); - 00469 2F08 MOV R16,R24 - 0046A 940E 067C CALL _LCD_write_data + 004A2 2F08 MOV R16,R24 + 004A3 940E 0750 CALL _LCD_write_data (0208) delay_nms(2); - 0046C E002 LDI R16,2 - 0046D E010 LDI R17,0 - 0046E 940E 0637 CALL _delay_nms + 004A5 E002 LDI R16,2 + 004A6 E010 LDI R17,0 + 004A7 940E 070B CALL _delay_nms (0209) LCD_write_data('-'); - 00470 E20D LDI R16,0x2D - 00471 940E 067C CALL _LCD_write_data + 004A9 E20D LDI R16,0x2D + 004AA 940E 0750 CALL _LCD_write_data (0210) delay_nms(2); - 00473 E002 LDI R16,2 - 00474 E010 LDI R17,0 - 00475 940E 0637 CALL _delay_nms + 004AC E002 LDI R16,2 + 004AD E010 LDI R17,0 + 004AE 940E 070B CALL _delay_nms (0211) (0212) temp = (time_buf[3] >> 4) + '0'; - 00477 9180 0171 LDS R24,time_buf+3 - 00479 9582 SWAP R24 - 0047A 708F ANDI R24,0xF - 0047B 5D80 SUBI R24,0xD0 - 0047C 8388 ST Y,R24 + 004B0 9180 0176 LDS R24,time_buf+3 + 004B2 9582 SWAP R24 + 004B3 708F ANDI R24,0xF + 004B4 5D80 SUBI R24,0xD0 + 004B5 8388 ST Y,R24 (0213) LCD_write_data(temp); - 0047D 2F08 MOV R16,R24 - 0047E 940E 067C CALL _LCD_write_data + 004B6 2F08 MOV R16,R24 + 004B7 940E 0750 CALL _LCD_write_data (0214) delay_nms(2); - 00480 E002 LDI R16,2 - 00481 E010 LDI R17,0 - 00482 940E 0637 CALL _delay_nms + 004B9 E002 LDI R16,2 + 004BA E010 LDI R17,0 + 004BB 940E 070B CALL _delay_nms (0215) temp = (time_buf[3] & 0x0F) + '0'; - 00484 9180 0171 LDS R24,time_buf+3 - 00486 708F ANDI R24,0xF - 00487 5D80 SUBI R24,0xD0 - 00488 8388 ST Y,R24 + 004BD 9180 0176 LDS R24,time_buf+3 + 004BF 708F ANDI R24,0xF + 004C0 5D80 SUBI R24,0xD0 + 004C1 8388 ST Y,R24 (0216) LCD_write_data(temp); - 00489 2F08 MOV R16,R24 - 0048A 940E 067C CALL _LCD_write_data + 004C2 2F08 MOV R16,R24 + 004C3 940E 0750 CALL _LCD_write_data (0217) delay_nms(2); - 0048C E002 LDI R16,2 - 0048D E010 LDI R17,0 - 0048E 940E 0637 CALL _delay_nms + 004C5 E002 LDI R16,2 + 004C6 E010 LDI R17,0 + 004C7 940E 070B CALL _delay_nms (0218) (0219) //显示星期 (0220) dayToChina(time_buf[7]); - 00490 9100 0175 LDS R16,time_buf+7 - 00492 DF49 RCALL _dayToChina + 004C9 9100 017A LDS R16,time_buf+7 + 004CB DF49 RCALL _dayToChina (0221) delay_nms(2); - 00493 E002 LDI R16,2 - 00494 E010 LDI R17,0 - 00495 940E 0637 CALL _delay_nms + 004CC E002 LDI R16,2 + 004CD E010 LDI R17,0 + 004CE 940E 070B CALL _delay_nms (0222) (0223) (0224) LCD_write_com(0x90); - 00497 E900 LDI R16,0x90 - 00498 940E 065F CALL _LCD_write_com + 004D0 E900 LDI R16,0x90 + 004D1 940E 0733 CALL _LCD_write_com (0225) delay_nms(5); - 0049A E005 LDI R16,5 - 0049B E010 LDI R17,0 - 0049C 940E 0637 CALL _delay_nms + 004D3 E005 LDI R16,5 + 004D4 E010 LDI R17,0 + 004D5 940E 070B CALL _delay_nms (0226) (0227) temp = (time_buf[4] >> 4) + '0'; - 0049E 9180 0172 LDS R24,time_buf+4 - 004A0 9582 SWAP R24 - 004A1 708F ANDI R24,0xF - 004A2 5D80 SUBI R24,0xD0 - 004A3 8388 ST Y,R24 + 004D7 9180 0177 LDS R24,time_buf+4 + 004D9 9582 SWAP R24 + 004DA 708F ANDI R24,0xF + 004DB 5D80 SUBI R24,0xD0 + 004DC 8388 ST Y,R24 (0228) LCD_write_data(temp); - 004A4 2F08 MOV R16,R24 - 004A5 940E 067C CALL _LCD_write_data + 004DD 2F08 MOV R16,R24 + 004DE 940E 0750 CALL _LCD_write_data (0229) delay_nms(2); - 004A7 E002 LDI R16,2 - 004A8 E010 LDI R17,0 - 004A9 940E 0637 CALL _delay_nms + 004E0 E002 LDI R16,2 + 004E1 E010 LDI R17,0 + 004E2 940E 070B CALL _delay_nms (0230) temp = (time_buf[4] & 0x0F) + '0'; - 004AB 9180 0172 LDS R24,time_buf+4 - 004AD 708F ANDI R24,0xF - 004AE 5D80 SUBI R24,0xD0 - 004AF 8388 ST Y,R24 + 004E4 9180 0177 LDS R24,time_buf+4 + 004E6 708F ANDI R24,0xF + 004E7 5D80 SUBI R24,0xD0 + 004E8 8388 ST Y,R24 (0231) LCD_write_data(temp); - 004B0 2F08 MOV R16,R24 - 004B1 940E 067C CALL _LCD_write_data + 004E9 2F08 MOV R16,R24 + 004EA 940E 0750 CALL _LCD_write_data (0232) delay_nms(2); - 004B3 E002 LDI R16,2 - 004B4 E010 LDI R17,0 - 004B5 940E 0637 CALL _delay_nms + 004EC E002 LDI R16,2 + 004ED E010 LDI R17,0 + 004EE 940E 070B CALL _delay_nms (0233) LCD_write_data(':'); - 004B7 E30A LDI R16,0x3A - 004B8 940E 067C CALL _LCD_write_data + 004F0 E30A LDI R16,0x3A + 004F1 940E 0750 CALL _LCD_write_data (0234) delay_nms(2); - 004BA E002 LDI R16,2 - 004BB E010 LDI R17,0 - 004BC 940E 0637 CALL _delay_nms + 004F3 E002 LDI R16,2 + 004F4 E010 LDI R17,0 + 004F5 940E 070B CALL _delay_nms (0235) (0236) temp = (time_buf[5] >> 4) + '0'; - 004BE 9180 0173 LDS R24,time_buf+5 - 004C0 9582 SWAP R24 - 004C1 708F ANDI R24,0xF - 004C2 5D80 SUBI R24,0xD0 - 004C3 8388 ST Y,R24 + 004F7 9180 0178 LDS R24,time_buf+5 + 004F9 9582 SWAP R24 + 004FA 708F ANDI R24,0xF + 004FB 5D80 SUBI R24,0xD0 + 004FC 8388 ST Y,R24 (0237) LCD_write_data(temp); - 004C4 2F08 MOV R16,R24 - 004C5 940E 067C CALL _LCD_write_data + 004FD 2F08 MOV R16,R24 + 004FE 940E 0750 CALL _LCD_write_data (0238) delay_nms(2); - 004C7 E002 LDI R16,2 - 004C8 E010 LDI R17,0 - 004C9 940E 0637 CALL _delay_nms + 00500 E002 LDI R16,2 + 00501 E010 LDI R17,0 + 00502 940E 070B CALL _delay_nms (0239) temp = (time_buf[5] & 0x0F) + '0'; - 004CB 9180 0173 LDS R24,time_buf+5 - 004CD 708F ANDI R24,0xF - 004CE 5D80 SUBI R24,0xD0 - 004CF 8388 ST Y,R24 + 00504 9180 0178 LDS R24,time_buf+5 + 00506 708F ANDI R24,0xF + 00507 5D80 SUBI R24,0xD0 + 00508 8388 ST Y,R24 (0240) LCD_write_data(temp); - 004D0 2F08 MOV R16,R24 - 004D1 940E 067C CALL _LCD_write_data + 00509 2F08 MOV R16,R24 + 0050A 940E 0750 CALL _LCD_write_data (0241) delay_nms(2); - 004D3 E002 LDI R16,2 - 004D4 E010 LDI R17,0 - 004D5 940E 0637 CALL _delay_nms + 0050C E002 LDI R16,2 + 0050D E010 LDI R17,0 + 0050E 940E 070B CALL _delay_nms (0242) LCD_write_data(':'); - 004D7 E30A LDI R16,0x3A - 004D8 940E 067C CALL _LCD_write_data + 00510 E30A LDI R16,0x3A + 00511 940E 0750 CALL _LCD_write_data (0243) delay_nms(2); - 004DA E002 LDI R16,2 - 004DB E010 LDI R17,0 - 004DC 940E 0637 CALL _delay_nms + 00513 E002 LDI R16,2 + 00514 E010 LDI R17,0 + 00515 940E 070B CALL _delay_nms (0244) (0245) temp = (time_buf[6] >> 4) + '0'; - 004DE 9180 0174 LDS R24,time_buf+6 - 004E0 9582 SWAP R24 - 004E1 708F ANDI R24,0xF - 004E2 5D80 SUBI R24,0xD0 - 004E3 8388 ST Y,R24 + 00517 9180 0179 LDS R24,time_buf+6 + 00519 9582 SWAP R24 + 0051A 708F ANDI R24,0xF + 0051B 5D80 SUBI R24,0xD0 + 0051C 8388 ST Y,R24 (0246) LCD_write_data(temp); - 004E4 2F08 MOV R16,R24 - 004E5 940E 067C CALL _LCD_write_data + 0051D 2F08 MOV R16,R24 + 0051E 940E 0750 CALL _LCD_write_data (0247) delay_nms(2); - 004E7 E002 LDI R16,2 - 004E8 E010 LDI R17,0 - 004E9 940E 0637 CALL _delay_nms + 00520 E002 LDI R16,2 + 00521 E010 LDI R17,0 + 00522 940E 070B CALL _delay_nms (0248) temp = (time_buf[6] & 0x0F) + '0'; - 004EB 9180 0174 LDS R24,time_buf+6 - 004ED 708F ANDI R24,0xF - 004EE 5D80 SUBI R24,0xD0 - 004EF 8388 ST Y,R24 + 00524 9180 0179 LDS R24,time_buf+6 + 00526 708F ANDI R24,0xF + 00527 5D80 SUBI R24,0xD0 + 00528 8388 ST Y,R24 (0249) LCD_write_data(temp); - 004F0 2F08 MOV R16,R24 - 004F1 940E 067C CALL _LCD_write_data + 00529 2F08 MOV R16,R24 + 0052A 940E 0750 CALL _LCD_write_data (0250) delay_nms(2); - 004F3 E002 LDI R16,2 - 004F4 E010 LDI R17,0 - 004F5 940E 0637 CALL _delay_nms - 004F7 9621 ADIW R28,1 - 004F8 9508 RET + 0052C E002 LDI R16,2 + 0052D E010 LDI R17,0 + 0052E 940E 070B CALL _delay_nms + 00530 9621 ADIW R28,1 + 00531 9508 RET +_Timetostr: + str --> Y,+0 + 00532 9765 SBIW R28,0x15 +(0251) } +(0252) +(0253) //读取时间,保存到字符串数组中 +(0254) unsigned char* Timetostr(void) +(0255) { +(0256) unsigned char str[21]="\0"; //时间字符串数组 + 00533 E78B LDI R24,0x7B + 00534 E091 LDI R25,1 + 00535 01FE MOVW R30,R28 + 00536 E105 LDI R16,0x15 + 00537 E010 LDI R17,0 + 00538 93FA ST -Y,R31 + 00539 93EA ST -Y,R30 + 0053A 939A ST -Y,R25 + 0053B 938A ST -Y,R24 + 0053C 940E 0B8A CALL asgnblk +(0257) ds1302_read_time(); //读DS1302数据 + 0053E DEA9 RCALL _ds1302_read_time +(0258) str[0] = (time_buf[0] >> 4) + '0'; + 0053F 9180 0173 LDS R24,time_buf + 00541 9582 SWAP R24 + 00542 708F ANDI R24,0xF + 00543 5D80 SUBI R24,0xD0 + 00544 8388 ST Y,R24 +(0259) str[1] = (time_buf[0] & 0x0f) + '0'; + 00545 9180 0173 LDS R24,time_buf + 00547 708F ANDI R24,0xF + 00548 5D80 SUBI R24,0xD0 + 00549 8389 STD Y+1,R24 +(0260) str[2] = (time_buf[1] >> 4) + '0'; + 0054A 9180 0174 LDS R24,time_buf+1 + 0054C 9582 SWAP R24 + 0054D 708F ANDI R24,0xF + 0054E 5D80 SUBI R24,0xD0 + 0054F 838A STD Y+2,R24 +(0261) str[3] = (time_buf[1] & 0x0f) + '0'; + 00550 9180 0174 LDS R24,time_buf+1 + 00552 708F ANDI R24,0xF + 00553 5D80 SUBI R24,0xD0 + 00554 838B STD Y+3,R24 +(0262) str[4] = '-'; + 00555 E28D LDI R24,0x2D + 00556 838C STD Y+4,R24 +(0263) str[5] = (time_buf[2] >> 4) + '0'; + 00557 9180 0175 LDS R24,time_buf+2 + 00559 9582 SWAP R24 + 0055A 708F ANDI R24,0xF + 0055B 5D80 SUBI R24,0xD0 + 0055C 838D STD Y+5,R24 +(0264) str[6] = (time_buf[2] & 0x0f) + '0'; + 0055D 9180 0175 LDS R24,time_buf+2 + 0055F 708F ANDI R24,0xF + 00560 5D80 SUBI R24,0xD0 + 00561 838E STD Y+6,R24 +(0265) str[7] = '-'; + 00562 E28D LDI R24,0x2D + 00563 838F STD Y+7,R24 +(0266) str[8]= (time_buf[3] >> 4) + '0'; + 00564 9180 0176 LDS R24,time_buf+3 + 00566 9582 SWAP R24 + 00567 708F ANDI R24,0xF + 00568 5D80 SUBI R24,0xD0 + 00569 8788 STD Y+8,R24 +(0267) str[9] = (time_buf[3] & 0x0f) + '0'; + 0056A 9180 0176 LDS R24,time_buf+3 + 0056C 708F ANDI R24,0xF + 0056D 5D80 SUBI R24,0xD0 + 0056E 8789 STD Y+9,R24 +(0268) str[10] = ' '; str[11] = ' '; + 0056F E280 LDI R24,0x20 + 00570 878A STD Y+10,R24 + 00571 878B STD Y+11,R24 +(0269) str[12]= (time_buf[4] >> 4) + '0'; + 00572 9180 0177 LDS R24,time_buf+4 + 00574 9582 SWAP R24 + 00575 708F ANDI R24,0xF + 00576 5D80 SUBI R24,0xD0 + 00577 878C STD Y+12,R24 +(0270) str[13] = (time_buf[4] & 0x0f) + '0'; + 00578 9180 0177 LDS R24,time_buf+4 + 0057A 708F ANDI R24,0xF + 0057B 5D80 SUBI R24,0xD0 + 0057C 878D STD Y+13,R24 +(0271) str[14] = ':'; + 0057D E38A LDI R24,0x3A + 0057E 878E STD Y+14,R24 +(0272) str[15] = (time_buf[5] >> 4) + '0'; + 0057F 9180 0178 LDS R24,time_buf+5 + 00581 9582 SWAP R24 + 00582 708F ANDI R24,0xF + 00583 5D80 SUBI R24,0xD0 + 00584 878F STD Y+15,R24 +(0273) str[16] = (time_buf[5] & 0x0f) + '0'; + 00585 9180 0178 LDS R24,time_buf+5 + 00587 708F ANDI R24,0xF + 00588 5D80 SUBI R24,0xD0 + 00589 8B88 STD Y+16,R24 +(0274) str[17] = ':'; + 0058A E38A LDI R24,0x3A + 0058B 8B89 STD Y+17,R24 +(0275) str[18] = (time_buf[6] >> 4) + '0'; + 0058C 9180 0179 LDS R24,time_buf+6 + 0058E 9582 SWAP R24 + 0058F 708F ANDI R24,0xF + 00590 5D80 SUBI R24,0xD0 + 00591 8B8A STD Y+18,R24 +(0276) str[19] = (time_buf[6] & 0x0f) + '0'; + 00592 9180 0179 LDS R24,time_buf+6 + 00594 708F ANDI R24,0xF + 00595 5D80 SUBI R24,0xD0 + 00596 8B8B STD Y+19,R24 +(0277) str[20] = 0; + 00597 2422 CLR R2 + 00598 8A2C STD Y+20,R2 +(0278) return str; + 00599 018E MOVW R16,R28 + 0059A 9665 ADIW R28,0x15 + 0059B 9508 RET _DS18B20_Reset: i --> R20 - 004F9 934A ST -Y,R20 -FILE: E:\git\AVR\OldManAlarm\DS18B20.C + 0059C 934A ST -Y,R20 +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\DS18B20.C (0001) #include (0002) #include "DS18B20.h" (0003) #include "basic.h" (0004) (0005) (0006) uint temp_value; -(0007) uint temp,A1,A2,A3; +(0007) uint A1,A2,A3; (0008) (0009) //************************************************************************* (0010) // DS18B20初始化 @@ -1094,49 +1256,49 @@ FILE: E:\git\AVR\OldManAlarm\DS18B20.C (0015) { (0016) unsigned char i; (0017) DQ_OUT; - 004FA 9A14 SBI 0x02,4 + 0059D 9A14 SBI 0x02,4 (0018) DQ_CLR; - 004FB 981C CBI 0x03,4 + 0059E 981C CBI 0x03,4 (0019) delay_n100us(5); //延时500uS(480-960) - 004FC E005 LDI R16,5 - 004FD E010 LDI R17,0 - 004FE 940E 0622 CALL _delay_n100us + 0059F E005 LDI R16,5 + 005A0 E010 LDI R17,0 + 005A1 940E 06F6 CALL _delay_n100us (0020) DQ_SET; - 00500 9A1C SBI 0x03,4 + 005A3 9A1C SBI 0x03,4 (0021) DQ_IN; - 00501 9814 CBI 0x02,4 + 005A4 9814 CBI 0x02,4 (0022) delay_n100us(1); //延时100uS - 00502 E001 LDI R16,1 - 00503 E010 LDI R17,0 - 00504 940E 0622 CALL _delay_n100us + 005A5 E001 LDI R16,1 + 005A6 E010 LDI R17,0 + 005A7 940E 06F6 CALL _delay_n100us (0023) i = DQ_R; - 00506 B141 IN R20,0x01 - 00507 7140 ANDI R20,0x10 + 005A9 B141 IN R20,0x01 + 005AA 7140 ANDI R20,0x10 (0024) delay_n100us(5); //延时500uS(保持>480uS) - 00508 E005 LDI R16,5 - 00509 E010 LDI R17,0 - 0050A 940E 0622 CALL _delay_n100us + 005AB E005 LDI R16,5 + 005AC E010 LDI R17,0 + 005AD 940E 06F6 CALL _delay_n100us (0025) (0026) if (i) - 0050C 2344 TST R20 - 0050D F011 BEQ 0x0510 + 005AF 2344 TST R20 + 005B0 F011 BEQ 0x05B3 (0027) { (0028) return 0x00; - 0050E 2700 CLR R16 - 0050F C001 RJMP 0x0511 + 005B1 2700 CLR R16 + 005B2 C001 RJMP 0x05B4 (0029) (0030) } (0031) else (0032) { (0033) return 0x01; - 00510 E001 LDI R16,1 - 00511 9149 LD R20,Y+ - 00512 9508 RET + 005B3 E001 LDI R16,1 + 005B4 9149 LD R20,Y+ + 005B5 9508 RET _DS18B20_Read_byte: value --> R20 i --> R22 - 00513 934A ST -Y,R20 - 00514 936A ST -Y,R22 + 005B6 934A ST -Y,R20 + 005B7 936A ST -Y,R22 (0034) (0035) } (0036) @@ -1152,54 +1314,54 @@ _DS18B20_Read_byte: (0046) (0047) unsigned char i; (0048) unsigned char value = 0; - 00515 2744 CLR R20 + 005B8 2744 CLR R20 (0049) for (i = 8; i != 0; i--) - 00516 E068 LDI R22,0x8 - 00517 C00F RJMP 0x0527 + 005B9 E068 LDI R22,0x8 + 005BA C00F RJMP 0x05CA (0050) { (0051) value >>= 1; - 00518 9546 LSR R20 + 005BB 9546 LSR R20 (0052) DQ_OUT; - 00519 9A14 SBI 0x02,4 + 005BC 9A14 SBI 0x02,4 (0053) DQ_CLR; - 0051A 981C CBI 0x03,4 + 005BD 981C CBI 0x03,4 (0054) delay_10us(); //*延时10uS - 0051B 940E 0619 CALL _delay_10us + 005BE 940E 06ED CALL _delay_10us (0055) (0056) DQ_SET; - 0051D 9A1C SBI 0x03,4 + 005C0 9A1C SBI 0x03,4 (0057) DQ_IN; - 0051E 9814 CBI 0x02,4 + 005C1 9814 CBI 0x02,4 (0058) delay_10us(); //*延时10uS - 0051F 940E 0619 CALL _delay_10us + 005C2 940E 06ED CALL _delay_10us (0059) (0060) if (DQ_R) - 00521 9B0C SBIS 0x01,4 - 00522 C001 RJMP 0x0524 + 005C4 9B0C SBIS 0x01,4 + 005C5 C001 RJMP 0x05C7 (0061) { (0062) value|=0x80; - 00523 6840 ORI R20,0x80 + 005C6 6840 ORI R20,0x80 (0063) (0064) } (0065) delay_50us(); //*延时50uS - 00524 940E 061C CALL _delay_50us - 00526 956A DEC R22 - 00527 2366 TST R22 - 00528 F779 BNE 0x0518 + 005C7 940E 06F0 CALL _delay_50us + 005C9 956A DEC R22 + 005CA 2366 TST R22 + 005CB F779 BNE 0x05BB (0066) (0067) } (0068) (0069) return(value); - 00529 2F04 MOV R16,R20 - 0052A 9169 LD R22,Y+ - 0052B 9149 LD R20,Y+ - 0052C 9508 RET + 005CC 2F04 MOV R16,R20 + 005CD 9169 LD R22,Y+ + 005CE 9149 LD R20,Y+ + 005CF 9508 RET _ds1820_write_byte: i --> R20 value --> R10 - 0052D 92AA ST -Y,R10 - 0052E 934A ST -Y,R20 - 0052F 2EA0 MOV R10,R16 + 005D0 92AA ST -Y,R10 + 005D1 934A ST -Y,R20 + 005D2 2EA0 MOV R10,R16 (0070) } (0071) (0072) //************************************************************************* @@ -1211,37 +1373,37 @@ _ds1820_write_byte: (0078) (0079) unsigned char i; (0080) for (i = 8; i != 0; i--) - 00530 E048 LDI R20,0x8 - 00531 C00E RJMP 0x0540 + 005D3 E048 LDI R20,0x8 + 005D4 C00E RJMP 0x05E3 (0081) { (0082) DQ_OUT; - 00532 9A14 SBI 0x02,4 + 005D5 9A14 SBI 0x02,4 (0083) DQ_CLR; - 00533 981C CBI 0x03,4 + 005D6 981C CBI 0x03,4 (0084) delay_10us(); //延时10uS - 00534 940E 0619 CALL _delay_10us + 005D7 940E 06ED CALL _delay_10us (0085) if (value & 0x01) - 00536 FEA0 SBRS R10,0 - 00537 C001 RJMP 0x0539 + 005D9 FEA0 SBRS R10,0 + 005DA C001 RJMP 0x05DC (0086) { (0087) DQ_SET; - 00538 9A1C SBI 0x03,4 + 005DB 9A1C SBI 0x03,4 (0088) (0089) } (0090) delay_n100us(1); //延时100uS - 00539 E001 LDI R16,1 - 0053A E010 LDI R17,0 - 0053B 940E 0622 CALL _delay_n100us + 005DC E001 LDI R16,1 + 005DD E010 LDI R17,0 + 005DE 940E 06F6 CALL _delay_n100us (0091) DQ_SET; //位结束 - 0053D 9A1C SBI 0x03,4 + 005E0 9A1C SBI 0x03,4 (0092) value >>= 1; - 0053E 94A6 LSR R10 - 0053F 954A DEC R20 - 00540 2344 TST R20 - 00541 F781 BNE 0x0532 - 00542 9149 LD R20,Y+ - 00543 90A9 LD R10,Y+ - 00544 9508 RET + 005E1 94A6 LSR R10 + 005E2 954A DEC R20 + 005E3 2344 TST R20 + 005E4 F781 BNE 0x05D5 + 005E5 9149 LD R20,Y+ + 005E6 90A9 LD R10,Y+ + 005E7 9508 RET (0093) (0094) } (0095) @@ -1255,19 +1417,19 @@ _ds1820_write_byte: (0103) (0104) DS18B20_Reset(); _ds1820_start: - 00545 DFB3 RCALL _DS18B20_Reset + 005E8 DFB3 RCALL _DS18B20_Reset (0105) ds1820_write_byte(0xCC); - 00546 EC0C LDI R16,0xCC - 00547 DFE5 RCALL _ds1820_write_byte + 005E9 EC0C LDI R16,0xCC + 005EA DFE5 RCALL _ds1820_write_byte (0106) ds1820_write_byte(0x44); //启动转换 - 00548 E404 LDI R16,0x44 - 00549 CFE3 RJMP _ds1820_write_byte + 005EB E404 LDI R16,0x44 + 005EC CFE3 RJMP _ds1820_write_byte _DS18B20_Read_temp: buf --> Y,+0 i --> R20 - 0054A 934A ST -Y,R20 - 0054B 935A ST -Y,R21 - 0054C 9729 SBIW R28,0x9 + 005ED 934A ST -Y,R20 + 005EE 935A ST -Y,R21 + 005EF 9729 SBIW R28,0x9 (0107) } (0108) (0109) //************************************************************************* @@ -1281,79 +1443,79 @@ _DS18B20_Read_temp: (0117) unsigned char buf[9]; (0118) (0119) DS18B20_Reset(); - 0054D DFAB RCALL _DS18B20_Reset + 005F0 DFAB RCALL _DS18B20_Reset (0120) ds1820_write_byte(0xCC); - 0054E EC0C LDI R16,0xCC - 0054F DFDD RCALL _ds1820_write_byte + 005F1 EC0C LDI R16,0xCC + 005F2 DFDD RCALL _ds1820_write_byte (0121) ds1820_write_byte(0xBE); //读取温度 - 00550 EB0E LDI R16,0xBE - 00551 DFDB RCALL _ds1820_write_byte + 005F3 EB0E LDI R16,0xBE + 005F4 DFDB RCALL _ds1820_write_byte (0122) for (i = 0; i < 9; i++) - 00552 2744 CLR R20 - 00553 2755 CLR R21 - 00554 C008 RJMP 0x055D + 005F5 2744 CLR R20 + 005F6 2755 CLR R21 + 005F7 C008 RJMP 0x0600 (0123) { (0124) buf[i] = DS18B20_Read_byte(); - 00555 DFBD RCALL _DS18B20_Read_byte - 00556 01CE MOVW R24,R28 - 00557 01FA MOVW R30,R20 - 00558 0FE8 ADD R30,R24 - 00559 1FF9 ADC R31,R25 - 0055A 8300 ST Z,R16 - 0055B 5F4F SUBI R20,0xFF - 0055C 4F5F SBCI R21,0xFF - 0055D 3049 CPI R20,0x9 - 0055E E0E0 LDI R30,0 - 0055F 075E CPC R21,R30 - 00560 F3A0 BCS 0x0555 + 005F8 DFBD RCALL _DS18B20_Read_byte + 005F9 01CE MOVW R24,R28 + 005FA 01FA MOVW R30,R20 + 005FB 0FE8 ADD R30,R24 + 005FC 1FF9 ADC R31,R25 + 005FD 8300 ST Z,R16 + 005FE 5F4F SUBI R20,0xFF + 005FF 4F5F SBCI R21,0xFF + 00600 3049 CPI R20,0x9 + 00601 E0E0 LDI R30,0 + 00602 075E CPC R21,R30 + 00603 F3A0 BCS 0x05F8 (0125) } -(0126) i = buf[1]; - 00561 8149 LDD R20,Y+1 - 00562 2755 CLR R21 +(0126) i = buf[1]; + 00604 8149 LDD R20,Y+1 + 00605 2755 CLR R21 (0127) i <<= 8; - 00563 2F54 MOV R21,R20 - 00564 2744 CLR R20 + 00606 2F54 MOV R21,R20 + 00607 2744 CLR R20 (0128) i |= buf[0]; - 00565 8028 LD R2,Y - 00566 2433 CLR R3 - 00567 2942 OR R20,R2 - 00568 2953 OR R21,R3 + 00608 8028 LD R2,Y + 00609 2433 CLR R3 + 0060A 2942 OR R20,R2 + 0060B 2953 OR R21,R3 (0129) temp_value=i; - 00569 9350 030E STS temp_value+1,R21 - 0056B 9340 030D STS temp_value,R20 + 0060C 9350 0336 STS temp_value+1,R21 + 0060E 9340 0335 STS temp_value,R20 (0130) temp_value=temp_value*0.625; //不是乘以0.0625的原因是为了把小数点后一位数据也转化为可以显示的数据 - 0056D E80E LDI R16,0x8E - 0056E E010 LDI R17,0 - 0056F 940E 0A22 CALL elpm32 - 00571 0118 MOVW R2,R16 - 00572 0129 MOVW R4,R18 - 00573 9100 030D LDS R16,temp_value - 00575 9110 030E LDS R17,temp_value+1 - 00577 940E 0AD2 CALL uint2fp - 00579 933A ST -Y,R19 - 0057A 932A ST -Y,R18 - 0057B 931A ST -Y,R17 - 0057C 930A ST -Y,R16 - 0057D 0181 MOVW R16,R2 - 0057E 0192 MOVW R18,R4 - 0057F 940E 0BD5 CALL fpmule2 - 00581 940E 0AA0 CALL fpint - 00583 9310 030E STS temp_value+1,R17 - 00585 9300 030D STS temp_value,R16 + 00610 E80E LDI R16,0x8E + 00611 E010 LDI R17,0 + 00612 940E 0B0C CALL elpm32 + 00614 0118 MOVW R2,R16 + 00615 0129 MOVW R4,R18 + 00616 9100 0335 LDS R16,temp_value + 00618 9110 0336 LDS R17,temp_value+1 + 0061A 940E 0BD4 CALL uint2fp + 0061C 933A ST -Y,R19 + 0061D 932A ST -Y,R18 + 0061E 931A ST -Y,R17 + 0061F 930A ST -Y,R16 + 00620 0181 MOVW R16,R2 + 00621 0192 MOVW R18,R4 + 00622 940E 0CD7 CALL fpmule2 + 00624 940E 0BA2 CALL fpint + 00626 9310 0336 STS temp_value+1,R17 + 00628 9300 0335 STS temp_value,R16 (0131) //比如温度本身为27.5度,为了在后续的数据处理程序中得到BCD码,我们先放大到275 (0132) //然后在显示的时候确定小数点的位置即可,就能显示出27.5度了 (0133) return i; - 00587 018A MOVW R16,R20 - 00588 9629 ADIW R28,0x9 - 00589 9159 LD R21,Y+ - 0058A 9149 LD R20,Y+ - 0058B 9508 RET + 0062A 018A MOVW R16,R20 + 0062B 9629 ADIW R28,0x9 + 0062C 9159 LD R21,Y+ + 0062D 9149 LD R20,Y+ + 0062E 9508 RET _data_do: A2t --> R10 temp_d --> R10 - 0058C 92AA ST -Y,R10 - 0058D 92BA ST -Y,R11 - 0058E 0158 MOVW R10,R16 + 0062F 92AA ST -Y,R10 + 00630 92BA ST -Y,R11 + 00631 0158 MOVW R10,R16 (0134) } (0135) (0136) @@ -1365,37 +1527,37 @@ _data_do: (0142) { (0143) uint A2t; (0144) A1=temp_d/100; //分出百,十,和个位 - 0058F E624 LDI R18,0x64 - 00590 E030 LDI R19,0 - 00591 0185 MOVW R16,R10 - 00592 940E 0A08 CALL div16u - 00594 9310 030A STS A1+1,R17 - 00596 9300 0309 STS A1,R16 + 00632 E624 LDI R18,0x64 + 00633 E030 LDI R19,0 + 00634 0185 MOVW R16,R10 + 00635 940E 0AF2 CALL div16u + 00637 9310 0334 STS A1+1,R17 + 00639 9300 0333 STS A1,R16 (0145) A2t=temp_d%100; - 00598 E624 LDI R18,0x64 - 00599 E030 LDI R19,0 - 0059A 0185 MOVW R16,R10 - 0059B 940E 0A06 CALL mod16u - 0059D 0158 MOVW R10,R16 + 0063B E624 LDI R18,0x64 + 0063C E030 LDI R19,0 + 0063D 0185 MOVW R16,R10 + 0063E 940E 0AF0 CALL mod16u + 00640 0158 MOVW R10,R16 (0146) A2=A2t/10; - 0059E E02A LDI R18,0xA - 0059F E030 LDI R19,0 - 005A0 940E 0A08 CALL div16u - 005A2 9310 0308 STS A2+1,R17 - 005A4 9300 0307 STS A2,R16 + 00641 E02A LDI R18,0xA + 00642 E030 LDI R19,0 + 00643 940E 0AF2 CALL div16u + 00645 9310 0332 STS A2+1,R17 + 00647 9300 0331 STS A2,R16 (0147) A3=A2t%10; - 005A6 E02A LDI R18,0xA - 005A7 E030 LDI R19,0 - 005A8 0185 MOVW R16,R10 - 005A9 940E 0A06 CALL mod16u - 005AB 9310 0306 STS A3+1,R17 - 005AD 9300 0305 STS A3,R16 - 005AF 90B9 LD R11,Y+ - 005B0 90A9 LD R10,Y+ - 005B1 9508 RET + 00649 E02A LDI R18,0xA + 0064A E030 LDI R19,0 + 0064B 0185 MOVW R16,R10 + 0064C 940E 0AF0 CALL mod16u + 0064E 9310 0330 STS A3+1,R17 + 00650 9300 032F STS A3,R16 + 00652 90B9 LD R11,Y+ + 00653 90A9 LD R10,Y+ + 00654 9508 RET _LCD_write_temperature: temp --> Y,+0 - 005B2 9721 SBIW R28,1 + 00655 9721 SBIW R28,1 (0148) } (0149) (0150) //************************************************************************* @@ -1405,95 +1567,153 @@ _LCD_write_temperature: (0154) { (0155) volatile unsigned char temp; (0156) ds1820_start(); //启动一次转换 - 005B3 DF91 RCALL _ds1820_start + 00656 DF91 RCALL _ds1820_start (0157) DS18B20_Read_temp(); //读取温度数值 - 005B4 DF95 RCALL _DS18B20_Read_temp + 00657 DF95 RCALL _DS18B20_Read_temp (0158) data_do(temp_value); //处理数据,得到要显示的值 - 005B5 9100 030D LDS R16,temp_value - 005B7 9110 030E LDS R17,temp_value+1 - 005B9 DFD2 RCALL _data_do + 00658 9100 0335 LDS R16,temp_value + 0065A 9110 0336 LDS R17,temp_value+1 + 0065C DFD2 RCALL _data_do (0159) (0160) LCD_write_com(0x95); - 005BA E905 LDI R16,0x95 - 005BB E010 LDI R17,0 - 005BC 940E 065F CALL _LCD_write_com + 0065D E905 LDI R16,0x95 + 0065E E010 LDI R17,0 + 0065F 940E 0733 CALL _LCD_write_com (0161) delay_nms(2); - 005BE E002 LDI R16,2 - 005BF E010 LDI R17,0 - 005C0 940E 0637 CALL _delay_nms + 00661 E002 LDI R16,2 + 00662 E010 LDI R17,0 + 00663 940E 070B CALL _delay_nms (0162) temp = A1 + '0'; //在LCD上写温度十位 - 005C2 9180 0309 LDS R24,A1 - 005C4 9190 030A LDS R25,A1+1 - 005C6 96C0 ADIW R24,0x30 - 005C7 8388 ST Y,R24 + 00665 9180 0333 LDS R24,A1 + 00667 9190 0334 LDS R25,A1+1 + 00669 96C0 ADIW R24,0x30 + 0066A 8388 ST Y,R24 (0163) LCD_write_data(temp); - 005C8 2F08 MOV R16,R24 - 005C9 2711 CLR R17 - 005CA 940E 067C CALL _LCD_write_data + 0066B 2F08 MOV R16,R24 + 0066C 2711 CLR R17 + 0066D 940E 0750 CALL _LCD_write_data (0164) delay_nms(2); - 005CC E002 LDI R16,2 - 005CD E010 LDI R17,0 - 005CE 940E 0637 CALL _delay_nms + 0066F E002 LDI R16,2 + 00670 E010 LDI R17,0 + 00671 940E 070B CALL _delay_nms (0165) temp = A2 + '0'; //在LCD上写温度个位 - 005D0 9180 0307 LDS R24,A2 - 005D2 9190 0308 LDS R25,A2+1 - 005D4 96C0 ADIW R24,0x30 - 005D5 8388 ST Y,R24 + 00673 9180 0331 LDS R24,A2 + 00675 9190 0332 LDS R25,A2+1 + 00677 96C0 ADIW R24,0x30 + 00678 8388 ST Y,R24 (0166) LCD_write_data(temp); - 005D6 2F08 MOV R16,R24 - 005D7 2711 CLR R17 - 005D8 940E 067C CALL _LCD_write_data + 00679 2F08 MOV R16,R24 + 0067A 2711 CLR R17 + 0067B 940E 0750 CALL _LCD_write_data (0167) delay_nms(2); - 005DA E002 LDI R16,2 - 005DB E010 LDI R17,0 - 005DC 940E 0637 CALL _delay_nms + 0067D E002 LDI R16,2 + 0067E E010 LDI R17,0 + 0067F 940E 070B CALL _delay_nms (0168) LCD_write_data(0x2e); //在LCD上写.号 - 005DE E20E LDI R16,0x2E - 005DF E010 LDI R17,0 - 005E0 940E 067C CALL _LCD_write_data + 00681 E20E LDI R16,0x2E + 00682 E010 LDI R17,0 + 00683 940E 0750 CALL _LCD_write_data (0169) delay_nms(2); - 005E2 E002 LDI R16,2 - 005E3 E010 LDI R17,0 - 005E4 940E 0637 CALL _delay_nms + 00685 E002 LDI R16,2 + 00686 E010 LDI R17,0 + 00687 940E 070B CALL _delay_nms (0170) temp = A3 + '0'; //在LCD上写温度小数位 - 005E6 9180 0305 LDS R24,A3 - 005E8 9190 0306 LDS R25,A3+1 - 005EA 96C0 ADIW R24,0x30 - 005EB 8388 ST Y,R24 + 00689 9180 032F LDS R24,A3 + 0068B 9190 0330 LDS R25,A3+1 + 0068D 96C0 ADIW R24,0x30 + 0068E 8388 ST Y,R24 (0171) LCD_write_data(temp); - 005EC 2F08 MOV R16,R24 - 005ED 2711 CLR R17 - 005EE 940E 067C CALL _LCD_write_data + 0068F 2F08 MOV R16,R24 + 00690 2711 CLR R17 + 00691 940E 0750 CALL _LCD_write_data (0172) delay_nms(2); - 005F0 E002 LDI R16,2 - 005F1 E010 LDI R17,0 - 005F2 940E 0637 CALL _delay_nms + 00693 E002 LDI R16,2 + 00694 E010 LDI R17,0 + 00695 940E 070B CALL _delay_nms (0173) DisplayCgrom(0x97,"℃"); //在LCD上写温度单位 - 005F4 E929 LDI R18,0x99 - 005F5 E031 LDI R19,1 - 005F6 E907 LDI R16,0x97 - 005F7 E010 LDI R17,0 - 005F8 940E 06B5 CALL _DisplayCgrom - 005FA 9621 ADIW R28,1 - 005FB 9508 RET -FILE: E:\git\AVR\OldManAlarm\basic.c + 00697 EB2A LDI R18,0xBA + 00698 E031 LDI R19,1 + 00699 E907 LDI R16,0x97 + 0069A E010 LDI R17,0 + 0069B 940E 0789 CALL _DisplayCgrom + 0069D 9621 ADIW R28,1 + 0069E 9508 RET +_Temperaturetostr: + str --> Y,+0 + 0069F 9727 SBIW R28,7 +(0174) +(0175) } +(0176) +(0177) //读取温度,保存到字符串数组中 +(0178) unsigned char* Temperaturetostr(void) +(0179) { +(0180) unsigned char str[7]="\0"; //温度字符串数组 + 006A0 EB83 LDI R24,0xB3 + 006A1 E091 LDI R25,1 + 006A2 01FE MOVW R30,R28 + 006A3 E007 LDI R16,7 + 006A4 E010 LDI R17,0 + 006A5 93FA ST -Y,R31 + 006A6 93EA ST -Y,R30 + 006A7 939A ST -Y,R25 + 006A8 938A ST -Y,R24 + 006A9 940E 0B8A CALL asgnblk +(0181) ds1820_start(); //启动一次转换 + 006AB DF3C RCALL _ds1820_start +(0182) DS18B20_Read_temp(); //读取温度数值 + 006AC DF40 RCALL _DS18B20_Read_temp +(0183) data_do(temp_value); //处理数据,得到要显示的值 + 006AD 9100 0335 LDS R16,temp_value + 006AF 9110 0336 LDS R17,temp_value+1 + 006B1 DF7D RCALL _data_do +(0184) str[0] = A1 + '0'; + 006B2 9180 0333 LDS R24,A1 + 006B4 9190 0334 LDS R25,A1+1 + 006B6 96C0 ADIW R24,0x30 + 006B7 8388 ST Y,R24 +(0185) str[1] = A2 + '0'; + 006B8 9180 0331 LDS R24,A2 + 006BA 9190 0332 LDS R25,A2+1 + 006BC 96C0 ADIW R24,0x30 + 006BD 8389 STD Y+1,R24 +(0186) str[2]='.'; + 006BE E28E LDI R24,0x2E + 006BF 838A STD Y+2,R24 +(0187) str[3] = A3 + '0'; + 006C0 9180 032F LDS R24,A3 + 006C2 9190 0330 LDS R25,A3+1 + 006C4 96C0 ADIW R24,0x30 + 006C5 838B STD Y+3,R24 +(0188) strcat((char*)str, "℃"); + 006C6 EB2A LDI R18,0xBA + 006C7 E031 LDI R19,1 + 006C8 018E MOVW R16,R28 + 006C9 940E 0AC9 CALL _strcat +(0189) str[6] = 0; + 006CB 2422 CLR R2 + 006CC 822E STD Y+6,R2 +(0190) return str; + 006CD 018E MOVW R16,R28 + 006CE 9627 ADIW R28,7 + 006CF 9508 RET +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\basic.c (0001) (0002) void delay_1us(void) //1us延时函数,不能连续调用, (0003) { (0004) asm("nop"); //1时钟周期 _delay_1us: - 005FC 0000 NOP + 006D0 0000 NOP (0005) asm("nop"); - 005FD 0000 NOP + 006D1 0000 NOP (0006) asm("nop"); - 005FE 0000 NOP + 006D2 0000 NOP (0007) asm("nop"); - 005FF 0000 NOP + 006D3 0000 NOP (0008) asm("nop"); //1T - 00600 0000 NOP + 006D4 0000 NOP (0009) asm("nop"); - 00601 0000 NOP - 00602 9508 RET + 006D5 0000 NOP + 006D6 9508 RET (0010) (0011) } (0012) @@ -1502,99 +1722,99 @@ _delay_1us: (0015) (0016) asm("nop"); _delay_3us: - 00603 0000 NOP + 006D7 0000 NOP (0017) asm("nop"); - 00604 0000 NOP + 006D8 0000 NOP (0018) asm("nop"); - 00605 0000 NOP + 006D9 0000 NOP (0019) asm("nop"); - 00606 0000 NOP + 006DA 0000 NOP (0020) asm("nop"); - 00607 0000 NOP + 006DB 0000 NOP (0021) asm("nop"); - 00608 0000 NOP + 006DC 0000 NOP (0022) asm("nop"); - 00609 0000 NOP + 006DD 0000 NOP (0023) asm("nop"); - 0060A 0000 NOP + 006DE 0000 NOP (0024) asm("nop"); - 0060B 0000 NOP + 006DF 0000 NOP (0025) asm("nop"); - 0060C 0000 NOP + 006E0 0000 NOP (0026) asm("nop"); - 0060D 0000 NOP + 006E1 0000 NOP (0027) asm("nop"); - 0060E 0000 NOP + 006E2 0000 NOP (0028) asm("nop"); - 0060F 0000 NOP + 006E3 0000 NOP (0029) asm("nop"); - 00610 0000 NOP + 006E4 0000 NOP (0030) asm("nop"); - 00611 0000 NOP + 006E5 0000 NOP (0031) asm("nop"); - 00612 0000 NOP + 006E6 0000 NOP (0032) asm("nop"); - 00613 0000 NOP + 006E7 0000 NOP (0033) asm("nop"); - 00614 0000 NOP + 006E8 0000 NOP (0034) asm("nop"); - 00615 0000 NOP + 006E9 0000 NOP (0035) asm("nop"); - 00616 0000 NOP + 006EA 0000 NOP (0036) asm("nop"); - 00617 0000 NOP - 00618 9508 RET + 006EB 0000 NOP + 006EC 9508 RET (0037) } (0038) (0039) void delay_10us(void) //10us延时函数,,可重复调用不影响精度 (0040) { (0041) delay_3us(); _delay_10us: - 00619 DFE9 RCALL _delay_3us + 006ED DFE9 RCALL _delay_3us (0042) delay_3us(); - 0061A DFE8 RCALL _delay_3us + 006EE DFE8 RCALL _delay_3us (0043) delay_3us(); - 0061B CFE7 RJMP _delay_3us + 006EF CFE7 RJMP _delay_3us (0044) } (0045) (0046) void delay_50us(void) //48us延时函数,,可重复调用不影响精度 (0047) { (0048) delay_10us(); _delay_50us: - 0061C DFFC RCALL _delay_10us + 006F0 DFFC RCALL _delay_10us (0049) delay_10us(); - 0061D DFFB RCALL _delay_10us + 006F1 DFFB RCALL _delay_10us (0050) delay_10us(); - 0061E DFFA RCALL _delay_10us + 006F2 DFFA RCALL _delay_10us (0051) delay_10us(); - 0061F CFF9 RJMP _delay_10us + 006F3 CFF9 RJMP _delay_10us (0052) } (0053) void delay_100us(void) //exactly 98us延时函数,,可重复调用不影响精度 (0054) { (0055) delay_50us(); _delay_100us: - 00620 DFFB RCALL _delay_50us + 006F4 DFFB RCALL _delay_50us (0056) delay_50us(); - 00621 CFFA RJMP _delay_50us + 006F5 CFFA RJMP _delay_50us _delay_n100us: n100us --> R20 - 00622 934A ST -Y,R20 - 00623 2F40 MOV R20,R16 + 006F6 934A ST -Y,R20 + 006F7 2F40 MOV R20,R16 (0057) } (0058) (0059) void delay_n100us(unsigned char n100us) (0060) { - 00624 C001 RJMP 0x0626 + 006F8 C001 RJMP 0x06FA (0061) while(n100us--) (0062) delay_100us(); - 00625 DFFA RCALL _delay_100us - 00626 2E24 MOV R2,R20 - 00627 2433 CLR R3 - 00628 5041 SUBI R20,1 - 00629 2022 TST R2 - 0062A F7D1 BNE 0x0625 - 0062B 9149 LD R20,Y+ - 0062C 9508 RET + 006F9 DFFA RCALL _delay_100us + 006FA 2E24 MOV R2,R20 + 006FB 2433 CLR R3 + 006FC 5041 SUBI R20,1 + 006FD 2022 TST R2 + 006FE F7D1 BNE 0x06F9 + 006FF 9149 LD R20,Y+ + 00700 9508 RET (0063) } (0064) (0065) @@ -1602,49 +1822,49 @@ _delay_n100us: (0067) { (0068) delay_100us(); _delay_1ms: - 0062D DFF2 RCALL _delay_100us + 00701 DFF2 RCALL _delay_100us (0069) delay_100us(); - 0062E DFF1 RCALL _delay_100us + 00702 DFF1 RCALL _delay_100us (0070) delay_100us(); - 0062F DFF0 RCALL _delay_100us + 00703 DFF0 RCALL _delay_100us (0071) delay_100us(); - 00630 DFEF RCALL _delay_100us + 00704 DFEF RCALL _delay_100us (0072) delay_100us(); - 00631 DFEE RCALL _delay_100us + 00705 DFEE RCALL _delay_100us (0073) delay_100us(); - 00632 DFED RCALL _delay_100us + 00706 DFED RCALL _delay_100us (0074) delay_100us(); - 00633 DFEC RCALL _delay_100us + 00707 DFEC RCALL _delay_100us (0075) delay_100us(); - 00634 DFEB RCALL _delay_100us + 00708 DFEB RCALL _delay_100us (0076) delay_100us(); - 00635 DFEA RCALL _delay_100us + 00709 DFEA RCALL _delay_100us (0077) delay_100us(); - 00636 CFE9 RJMP _delay_100us + 0070A CFE9 RJMP _delay_100us _delay_nms: nms --> R20 - 00637 934A ST -Y,R20 - 00638 935A ST -Y,R21 - 00639 01A8 MOVW R20,R16 + 0070B 934A ST -Y,R20 + 0070C 935A ST -Y,R21 + 0070D 01A8 MOVW R20,R16 (0078) } (0079) (0080) void delay_nms(unsigned int nms) (0081) { - 0063A C001 RJMP 0x063C + 0070E C001 RJMP 0x0710 (0082) while(nms--) (0083) delay_1ms(); - 0063B DFF1 RCALL _delay_1ms - 0063C 011A MOVW R2,R20 - 0063D 5041 SUBI R20,1 - 0063E 4050 SBCI R21,0 - 0063F 2022 TST R2 - 00640 F7D1 BNE 0x063B - 00641 2033 TST R3 - 00642 F7C1 BNE 0x063B - 00643 9159 LD R21,Y+ - 00644 9149 LD R20,Y+ - 00645 9508 RET -FILE: E:\git\AVR\OldManAlarm\LCD.c + 0070F DFF1 RCALL _delay_1ms + 00710 011A MOVW R2,R20 + 00711 5041 SUBI R20,1 + 00712 4050 SBCI R21,0 + 00713 2022 TST R2 + 00714 F7D1 BNE 0x070F + 00715 2033 TST R3 + 00716 F7C1 BNE 0x070F + 00717 9159 LD R21,Y+ + 00718 9149 LD R20,Y+ + 00719 9508 RET +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\LCD.c (0001) #include (0002) #include "LCD.h" (0003) #include "basic.h" @@ -1656,48 +1876,48 @@ FILE: E:\git\AVR\OldManAlarm\LCD.c (0009) (0010) Data_IO = 0xFF; //电平设置 _system_init: - 00646 EF8F LDI R24,0xFF - 00647 BB8B OUT 0x1B,R24 + 0071A EF8F LDI R24,0xFF + 0071B BB8B OUT 0x1B,R24 (0011) Data_DDR = 0xFF; //方向输出 - 00648 BB8A OUT 0x1A,R24 + 0071C BB8A OUT 0x1A,R24 (0012) (0013) PORTF = 0xFF; //电平设置 - 00649 9380 0062 STS 0x62,R24 + 0071D 9380 0062 STS 0x62,R24 (0014) DDRF = 0xFF; //方向输出 - 0064B 9380 0061 STS 0x61,R24 + 0071F 9380 0061 STS 0x61,R24 (0015) PORTD=0xFF; - 0064D BB82 OUT 0x12,R24 + 00721 BB82 OUT 0x12,R24 (0016) DDRD=0xFF; - 0064E BB81 OUT 0x11,R24 + 00722 BB81 OUT 0x11,R24 (0017) PORTE=0xFF; //PSB对应于PE2 - 0064F B983 OUT 0x03,R24 + 00723 B983 OUT 0x03,R24 (0018) DDRE=0xfe; - 00650 EF8E LDI R24,0xFE - 00651 B982 OUT 0x02,R24 + 00724 EF8E LDI R24,0xFE + 00725 B982 OUT 0x02,R24 (0019) D_LE1; //关掉数码管,以免显示乱码 - 00652 9A94 SBI 0x12,4 + 00726 9A94 SBI 0x12,4 (0020) W_LE1; - 00653 9A95 SBI 0x12,5 + 00727 9A95 SBI 0x12,5 (0021) Data_IO=0xFF; //关数码管 - 00654 EF8F LDI R24,0xFF - 00655 BB8B OUT 0x1B,R24 + 00728 EF8F LDI R24,0xFF + 00729 BB8B OUT 0x1B,R24 (0022) W_LE0; - 00656 9895 CBI 0x12,5 + 0072A 9895 CBI 0x12,5 (0023) (0024) PORTB=0xFF; //关闭发光二极管 - 00657 BB88 OUT 0x18,R24 + 0072B BB88 OUT 0x18,R24 (0025) DDRB=0xFF; - 00658 BB87 OUT 0x17,R24 + 0072C BB87 OUT 0x17,R24 (0026) (0027) PSB_SET; //液晶并口方式 - 00659 9180 0062 LDS R24,0x62 - 0065B 6084 ORI R24,4 - 0065C 9380 0062 STS 0x62,R24 - 0065E 9508 RET + 0072D 9180 0062 LDS R24,0x62 + 0072F 6084 ORI R24,4 + 00730 9380 0062 STS 0x62,R24 + 00732 9508 RET _LCD_write_com: com --> R10 - 0065F 92AA ST -Y,R10 - 00660 2EA0 MOV R10,R16 + 00733 92AA ST -Y,R10 + 00734 2EA0 MOV R10,R16 (0028) } (0029) (0030) @@ -1709,33 +1929,33 @@ _LCD_write_com: (0036) void LCD_write_com(unsigned char com) (0037) { (0038) RS_CLR; - 00661 9180 0062 LDS R24,0x62 - 00663 7F8D ANDI R24,0xFD - 00664 9380 0062 STS 0x62,R24 + 00735 9180 0062 LDS R24,0x62 + 00737 7F8D ANDI R24,0xFD + 00738 9380 0062 STS 0x62,R24 (0039) RW_CLR; - 00666 9180 0062 LDS R24,0x62 - 00668 7F8B ANDI R24,0xFB - 00669 9380 0062 STS 0x62,R24 + 0073A 9180 0062 LDS R24,0x62 + 0073C 7F8B ANDI R24,0xFB + 0073D 9380 0062 STS 0x62,R24 (0040) EN_SET; - 0066B 9180 0062 LDS R24,0x62 - 0066D 6088 ORI R24,0x8 - 0066E 9380 0062 STS 0x62,R24 + 0073F 9180 0062 LDS R24,0x62 + 00741 6088 ORI R24,0x8 + 00742 9380 0062 STS 0x62,R24 (0041) Data_IO = com; - 00670 BAAB OUT 0x1B,R10 + 00744 BAAB OUT 0x1B,R10 (0042) delay_nms(5); - 00671 E005 LDI R16,5 - 00672 E010 LDI R17,0 - 00673 940E 0637 CALL _delay_nms + 00745 E005 LDI R16,5 + 00746 E010 LDI R17,0 + 00747 940E 070B CALL _delay_nms (0043) EN_CLR; - 00675 9180 0062 LDS R24,0x62 - 00677 7F87 ANDI R24,0xF7 - 00678 9380 0062 STS 0x62,R24 - 0067A 90A9 LD R10,Y+ - 0067B 9508 RET + 00749 9180 0062 LDS R24,0x62 + 0074B 7F87 ANDI R24,0xF7 + 0074C 9380 0062 STS 0x62,R24 + 0074E 90A9 LD R10,Y+ + 0074F 9508 RET _LCD_write_data: data --> R10 - 0067C 92AA ST -Y,R10 - 0067D 2EA0 MOV R10,R16 + 00750 92AA ST -Y,R10 + 00751 2EA0 MOV R10,R16 (0044) } (0045) (0046) //*********************************************************************** @@ -1745,37 +1965,37 @@ _LCD_write_data: (0050) void LCD_write_data(unsigned char data) (0051) { (0052) RS_SET; - 0067E 9180 0062 LDS R24,0x62 - 00680 6082 ORI R24,2 - 00681 9380 0062 STS 0x62,R24 + 00752 9180 0062 LDS R24,0x62 + 00754 6082 ORI R24,2 + 00755 9380 0062 STS 0x62,R24 (0053) RW_CLR; - 00683 9180 0062 LDS R24,0x62 - 00685 7F8B ANDI R24,0xFB - 00686 9380 0062 STS 0x62,R24 + 00757 9180 0062 LDS R24,0x62 + 00759 7F8B ANDI R24,0xFB + 0075A 9380 0062 STS 0x62,R24 (0054) EN_SET; - 00688 9180 0062 LDS R24,0x62 - 0068A 6088 ORI R24,0x8 - 0068B 9380 0062 STS 0x62,R24 + 0075C 9180 0062 LDS R24,0x62 + 0075E 6088 ORI R24,0x8 + 0075F 9380 0062 STS 0x62,R24 (0055) Data_IO = data; - 0068D BAAB OUT 0x1B,R10 + 00761 BAAB OUT 0x1B,R10 (0056) delay_nms(5); - 0068E E005 LDI R16,5 - 0068F E010 LDI R17,0 - 00690 940E 0637 CALL _delay_nms + 00762 E005 LDI R16,5 + 00763 E010 LDI R17,0 + 00764 940E 070B CALL _delay_nms (0057) EN_CLR; - 00692 9180 0062 LDS R24,0x62 - 00694 7F87 ANDI R24,0xF7 - 00695 9380 0062 STS 0x62,R24 - 00697 90A9 LD R10,Y+ - 00698 9508 RET + 00766 9180 0062 LDS R24,0x62 + 00768 7F87 ANDI R24,0xF7 + 00769 9380 0062 STS 0x62,R24 + 0076B 90A9 LD R10,Y+ + 0076C 9508 RET _LCD_write_char: data --> R10 y --> R12 x --> R20 - 00699 940E 0A6E CALL push_xgset303C - 0069B 2EC2 MOV R12,R18 - 0069C 2F40 MOV R20,R16 - 0069D 80AE LDD R10,Y+6 + 0076D 940E 0B58 CALL push_xgset303C + 0076F 2EC2 MOV R12,R18 + 00770 2F40 MOV R20,R16 + 00771 80AE LDD R10,Y+6 (0058) } (0059) (0060) //*********************************************************************** @@ -1786,30 +2006,30 @@ _LCD_write_char: (0065) { (0066) (0067) if (y == 0) - 0069E 20CC TST R12 - 0069F F421 BNE 0x06A4 + 00772 20CC TST R12 + 00773 F421 BNE 0x0778 (0068) { (0069) LCD_write_com(0x80 + x); - 006A0 2F04 MOV R16,R20 - 006A1 5800 SUBI R16,0x80 - 006A2 DFBC RCALL _LCD_write_com + 00774 2F04 MOV R16,R20 + 00775 5800 SUBI R16,0x80 + 00776 DFBC RCALL _LCD_write_com (0070) } - 006A3 C003 RJMP 0x06A7 + 00777 C003 RJMP 0x077B (0071) else (0072) { (0073) LCD_write_com(0x90 + x); - 006A4 2F04 MOV R16,R20 - 006A5 5700 SUBI R16,0x70 - 006A6 DFB8 RCALL _LCD_write_com + 00778 2F04 MOV R16,R20 + 00779 5700 SUBI R16,0x70 + 0077A DFB8 RCALL _LCD_write_com (0074) } (0075) delay_nms(2); - 006A7 E002 LDI R16,2 - 006A8 E010 LDI R17,0 - 006A9 940E 0637 CALL _delay_nms + 0077B E002 LDI R16,2 + 0077C E010 LDI R17,0 + 0077D 940E 070B CALL _delay_nms (0076) LCD_write_data( data); - 006AB 2D0A MOV R16,R10 - 006AC DFCF RCALL _LCD_write_data - 006AD 940C 0A75 JMP pop_xgset303C + 0077F 2D0A MOV R16,R10 + 00780 DFCF RCALL _LCD_write_data + 00781 940C 0B5F JMP pop_xgset303C (0077) } (0078) (0079) //*********************************************************************** @@ -1820,18 +2040,18 @@ _LCD_write_char: (0084) { (0085) LCD_write_com(0x01); _LCD_clear: - 006AF E001 LDI R16,1 - 006B0 DFAE RCALL _LCD_write_com + 00783 E001 LDI R16,1 + 00784 DFAE RCALL _LCD_write_com (0086) delay_nms(10); - 006B1 E00A LDI R16,0xA - 006B2 E010 LDI R17,0 - 006B3 940C 0637 JMP _delay_nms + 00785 E00A LDI R16,0xA + 00786 E010 LDI R17,0 + 00787 940C 070B JMP _delay_nms _DisplayCgrom: hz --> R20 addr --> R10 - 006B5 940E 0A4C CALL push_xgset300C - 006B7 01A9 MOVW R20,R18 - 006B8 2EA0 MOV R10,R16 + 00789 940E 0B36 CALL push_xgset300C + 0078B 01A9 MOVW R20,R18 + 0078C 2EA0 MOV R10,R16 (0087) } (0088) (0089) //*********************************************************************** @@ -1840,31 +2060,31 @@ _DisplayCgrom: (0092) void DisplayCgrom(uchar addr,uchar *hz) (0093) { (0094) LCD_write_com(addr); - 006B9 2D0A MOV R16,R10 - 006BA DFA4 RCALL _LCD_write_com + 0078D 2D0A MOV R16,R10 + 0078E DFA4 RCALL _LCD_write_com (0095) delay_nms(5); - 006BB E005 LDI R16,5 - 006BC E010 LDI R17,0 - 006BD 940E 0637 CALL _delay_nms - 006BF C009 RJMP 0x06C9 + 0078F E005 LDI R16,5 + 00790 E010 LDI R17,0 + 00791 940E 070B CALL _delay_nms + 00793 C009 RJMP 0x079D (0096) while(*hz != '\0') (0097) { (0098) LCD_write_data(*hz); - 006C0 01FA MOVW R30,R20 - 006C1 8100 LD R16,Z - 006C2 DFB9 RCALL _LCD_write_data + 00794 01FA MOVW R30,R20 + 00795 8100 LD R16,Z + 00796 DFB9 RCALL _LCD_write_data (0099) hz++; - 006C3 5F4F SUBI R20,0xFF - 006C4 4F5F SBCI R21,0xFF + 00797 5F4F SUBI R20,0xFF + 00798 4F5F SBCI R21,0xFF (0100) delay_nms(5); - 006C5 E005 LDI R16,5 - 006C6 E010 LDI R17,0 - 006C7 940E 0637 CALL _delay_nms - 006C9 01FA MOVW R30,R20 - 006CA 8020 LD R2,Z - 006CB 2022 TST R2 - 006CC F799 BNE 0x06C0 - 006CD 940C 0A51 JMP pop_xgset300C + 00799 E005 LDI R16,5 + 0079A E010 LDI R17,0 + 0079B 940E 070B CALL _delay_nms + 0079D 01FA MOVW R30,R20 + 0079E 8020 LD R2,Z + 0079F 2022 TST R2 + 007A0 F799 BNE 0x0794 + 007A1 940C 0B3B JMP pop_xgset300C (0101) } (0102) (0103) } @@ -1877,41 +2097,41 @@ _DisplayCgrom: (0110) { (0111) DDRA = 0xFF; //I/O口方向设置 _LCD_init: - 006CF EF8F LDI R24,0xFF - 006D0 BB8A OUT 0x1A,R24 + 007A3 EF8F LDI R24,0xFF + 007A4 BB8A OUT 0x1A,R24 (0112) DDRA |= (1 << PA5) | (1 << PA6) | (1 << PA7); - 006D1 B38A IN R24,0x1A - 006D2 6E80 ORI R24,0xE0 - 006D3 BB8A OUT 0x1A,R24 + 007A5 B38A IN R24,0x1A + 007A6 6E80 ORI R24,0xE0 + 007A7 BB8A OUT 0x1A,R24 (0113) LCD_write_com(FUN_MODE); //显示模式设置 - 006D4 E300 LDI R16,0x30 - 006D5 DF89 RCALL _LCD_write_com + 007A8 E300 LDI R16,0x30 + 007A9 DF89 RCALL _LCD_write_com (0114) delay_nms(5); - 006D6 E005 LDI R16,5 - 006D7 E010 LDI R17,0 - 006D8 940E 0637 CALL _delay_nms + 007AA E005 LDI R16,5 + 007AB E010 LDI R17,0 + 007AC 940E 070B CALL _delay_nms (0115) LCD_write_com(FUN_MODE); //显示模式设置 - 006DA E300 LDI R16,0x30 - 006DB DF83 RCALL _LCD_write_com + 007AE E300 LDI R16,0x30 + 007AF DF83 RCALL _LCD_write_com (0116) delay_nms(5); - 006DC E005 LDI R16,5 - 006DD E010 LDI R17,0 - 006DE 940E 0637 CALL _delay_nms + 007B0 E005 LDI R16,5 + 007B1 E010 LDI R17,0 + 007B2 940E 070B CALL _delay_nms (0117) LCD_write_com(DISPLAY_ON); //显示开 - 006E0 E00C LDI R16,0xC - 006E1 DF7D RCALL _LCD_write_com + 007B4 E00C LDI R16,0xC + 007B5 DF7D RCALL _LCD_write_com (0118) delay_nms(5); - 006E2 E005 LDI R16,5 - 006E3 E010 LDI R17,0 - 006E4 940E 0637 CALL _delay_nms + 007B6 E005 LDI R16,5 + 007B7 E010 LDI R17,0 + 007B8 940E 070B CALL _delay_nms (0119) LCD_write_com(CLEAR_SCREEN); //清屏 - 006E6 E001 LDI R16,1 - 006E7 DF77 RCALL _LCD_write_com + 007BA E001 LDI R16,1 + 007BB DF77 RCALL _LCD_write_com (0120) delay_nms(5); - 006E8 E005 LDI R16,5 - 006E9 E010 LDI R17,0 - 006EA 940C 0637 JMP _delay_nms -FILE: E:\git\AVR\OldManAlarm\USART.c + 007BC E005 LDI R16,5 + 007BD E010 LDI R17,0 + 007BE 940C 070B JMP _delay_nms +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\USART.c (0001) #include (0002) #include "basic.h" (0003) #include "USART.h" @@ -1939,27 +2159,27 @@ FILE: E:\git\AVR\OldManAlarm\USART.c (0025) { (0026) UCSR0B = 0x00; //disable while setting baud rate _UART0_Init: - 006EC 2422 CLR R2 - 006ED B82A OUT 0x0A,R2 + 007C0 2422 CLR R2 + 007C1 B82A OUT 0x0A,R2 (0027) UCSR0C = 0x06; - 006EE E086 LDI R24,6 - 006EF 9380 0095 STS 0x95,R24 + 007C2 E086 LDI R24,6 + 007C3 9380 0095 STS 0x95,R24 (0028) UCSR0A = 0x00; - 006F1 B82B OUT 0x0B,R2 + 007C5 B82B OUT 0x0B,R2 (0029) UBRR0H = baud_h; //写波特率的值 - 006F2 9220 0090 STS 0x90,R2 + 007C6 9220 0090 STS 0x90,R2 (0030) UBRR0L = baud_l; - 006F4 E083 LDI R24,3 - 006F5 B989 OUT 0x09,R24 + 007C8 E083 LDI R24,3 + 007C9 B989 OUT 0x09,R24 (0031) UCSR0B = (1 << RXEN0) | (1 << TXEN0) | (1 << RXCIE0); //发送接收使能、接收结束中断使能 - 006F6 E988 LDI R24,0x98 - 006F7 B98A OUT 0x0A,R24 + 007CA E988 LDI R24,0x98 + 007CB B98A OUT 0x0A,R24 (0032) (0033) RxBufWr = 0; - 006F8 9220 03A5 STS RxBufWr,R2 + 007CC 9220 03CD STS RxBufWr,R2 (0034) RxBufRd = 0; - 006FA 9220 03A4 STS RxBufRd,R2 - 006FC 9508 RET + 007CE 9220 03CC STS RxBufRd,R2 + 007D0 9508 RET (0035) } (0036) (0037) //*********************************************************************** @@ -1969,39 +2189,39 @@ _UART0_Init: (0041) { (0042) for(TxCharNum = 0; TxCharNum < TxStrLen; TxCharNum++){ _puts0: - 006FD 2422 CLR R2 - 006FE 9220 03B8 STS TxCharNum,R2 - 00700 C011 RJMP 0x0712 + 007D1 2422 CLR R2 + 007D2 9220 03E0 STS TxCharNum,R2 + 007D4 C011 RJMP 0x07E6 (0043) UDR0 = TxCharBuf[TxCharNum]; - 00701 EB89 LDI R24,0xB9 - 00702 E093 LDI R25,3 - 00703 91E0 03B8 LDS R30,TxCharNum - 00705 27FF CLR R31 - 00706 0FE8 ADD R30,R24 - 00707 1FF9 ADC R31,R25 - 00708 8020 LD R2,Z - 00709 B82C OUT 0x0C,R2 + 007D5 EE81 LDI R24,0xE1 + 007D6 E093 LDI R25,3 + 007D7 91E0 03E0 LDS R30,TxCharNum + 007D9 27FF CLR R31 + 007DA 0FE8 ADD R30,R24 + 007DB 1FF9 ADC R31,R25 + 007DC 8020 LD R2,Z + 007DD B82C OUT 0x0C,R2 (0044) while(!(UCSR0A & (1 << TXC0))) ; - 0070A 9B5E SBIS 0x0B,6 - 0070B CFFE RJMP 0x070A + 007DE 9B5E SBIS 0x0B,6 + 007DF CFFE RJMP 0x07DE (0045) UCSR0A |= (1 << TXC0); - 0070C 9A5E SBI 0x0B,6 - 0070D 9180 03B8 LDS R24,TxCharNum - 0070F 5F8F SUBI R24,0xFF - 00710 9380 03B8 STS TxCharNum,R24 - 00712 9020 03B7 LDS R2,TxStrLen - 00714 9030 03B8 LDS R3,TxCharNum - 00716 1432 CP R3,R2 - 00717 F348 BCS 0x0701 - 00718 9508 RET + 007E0 9A5E SBI 0x0B,6 + 007E1 9180 03E0 LDS R24,TxCharNum + 007E3 5F8F SUBI R24,0xFF + 007E4 9380 03E0 STS TxCharNum,R24 + 007E6 9020 03DF LDS R2,TxStrLen + 007E8 9030 03E0 LDS R3,TxCharNum + 007EA 1432 CP R3,R2 + 007EB F348 BCS 0x07D5 + 007EC 9508 RET _uart0_rx_isr: - 00719 922A ST -Y,R2 - 0071A 938A ST -Y,R24 - 0071B 939A ST -Y,R25 - 0071C 93EA ST -Y,R30 - 0071D 93FA ST -Y,R31 - 0071E B62F IN R2,0x3F - 0071F 922A ST -Y,R2 + 007ED 922A ST -Y,R2 + 007EE 938A ST -Y,R24 + 007EF 939A ST -Y,R25 + 007F0 93EA ST -Y,R30 + 007F1 93FA ST -Y,R31 + 007F2 B62F IN R2,0x3F + 007F3 922A ST -Y,R2 (0046) } (0047) //UDR0 = 0x0d; (0048) //while(!(UCSR0A & (1 << TXC0))) ; @@ -2015,29 +2235,29 @@ _uart0_rx_isr: (0056) void uart0_rx_isr(void) (0057) { (0058) RxCharBuf[RxBufWr] = UDR0; //从数据缓冲器中接收数据 - 00720 EA87 LDI R24,0xA7 - 00721 E093 LDI R25,3 - 00722 91E0 03A5 LDS R30,RxBufWr - 00724 27FF CLR R31 - 00725 0FE8 ADD R30,R24 - 00726 1FF9 ADC R31,R25 - 00727 B02C IN R2,0x0C - 00728 8220 ST Z,R2 + 007F4 EC8F LDI R24,0xCF + 007F5 E093 LDI R25,3 + 007F6 91E0 03CD LDS R30,RxBufWr + 007F8 27FF CLR R31 + 007F9 0FE8 ADD R30,R24 + 007FA 1FF9 ADC R31,R25 + 007FB B02C IN R2,0x0C + 007FC 8220 ST Z,R2 (0059) RxBufWr++; - 00729 9180 03A5 LDS R24,RxBufWr - 0072B 5F8F SUBI R24,0xFF - 0072C 9380 03A5 STS RxBufWr,R24 + 007FD 9180 03CD LDS R24,RxBufWr + 007FF 5F8F SUBI R24,0xFF + 00800 9380 03CD STS RxBufWr,R24 (0060) RxBufWr &= 0x0f; //16->0 - 0072E 708F ANDI R24,0xF - 0072F 9380 03A5 STS RxBufWr,R24 - 00731 9029 LD R2,Y+ - 00732 BE2F OUT 0x3F,R2 - 00733 91F9 LD R31,Y+ - 00734 91E9 LD R30,Y+ - 00735 9199 LD R25,Y+ - 00736 9189 LD R24,Y+ - 00737 9029 LD R2,Y+ - 00738 9518 RETI + 00802 708F ANDI R24,0xF + 00803 9380 03CD STS RxBufWr,R24 + 00805 9029 LD R2,Y+ + 00806 BE2F OUT 0x3F,R2 + 00807 91F9 LD R31,Y+ + 00808 91E9 LD R30,Y+ + 00809 9199 LD R25,Y+ + 0080A 9189 LD R24,Y+ + 0080B 9029 LD R2,Y+ + 0080C 9518 RETI (0061) } (0062) (0063) @@ -2050,27 +2270,27 @@ _uart0_rx_isr: (0070) { (0071) UCSR1B = 0x00; //disable while setting baud rate _UART1_Init: - 00739 2422 CLR R2 - 0073A 9220 009A STS 0x9A,R2 + 0080D 2422 CLR R2 + 0080E 9220 009A STS 0x9A,R2 (0072) UCSR1C = 0x06; - 0073C E086 LDI R24,6 - 0073D 9380 009D STS 0x9D,R24 + 00810 E086 LDI R24,6 + 00811 9380 009D STS 0x9D,R24 (0073) UCSR1A = 0x00; - 0073F 9220 009B STS 0x9B,R2 + 00813 9220 009B STS 0x9B,R2 (0074) UBRR1H = baud_h; //写波特率的值 - 00741 9220 0098 STS 0x98,R2 + 00815 9220 0098 STS 0x98,R2 (0075) UBRR1L = baud_l; - 00743 E083 LDI R24,3 - 00744 9380 0099 STS 0x99,R24 + 00817 E083 LDI R24,3 + 00818 9380 0099 STS 0x99,R24 (0076) UCSR1B = (1 << RXEN1) | (1 << TXEN1) | (1 << RXCIE1); //发送接收使能、接收结束中断使能 - 00746 E988 LDI R24,0x98 - 00747 9380 009A STS 0x9A,R24 + 0081A E988 LDI R24,0x98 + 0081B 9380 009A STS 0x9A,R24 (0077) (0078) RxBufWr_wifi = 0; - 00749 9220 0310 STS RxBufWr_wifi,R2 + 0081D 9220 0338 STS RxBufWr_wifi,R2 (0079) RxBufRd_wifi = 0; - 0074B 9220 030F STS RxBufRd_wifi,R2 - 0074D 9508 RET + 0081F 9220 0337 STS RxBufRd_wifi,R2 + 00821 9508 RET (0080) } (0081) (0082) //*********************************************************************** @@ -2080,54 +2300,54 @@ _UART1_Init: (0086) { (0087) for(TxCharNum_wifi = 0; TxCharNum_wifi < TxStrLen_wifi; TxCharNum_wifi++){ _puts1: - 0074E 2422 CLR R2 - 0074F 9220 0323 STS TxCharNum_wifi,R2 - 00751 C018 RJMP 0x076A + 00822 2422 CLR R2 + 00823 9220 034B STS TxCharNum_wifi,R2 + 00825 C018 RJMP 0x083E (0088) UDR1 = TxCharBuf_wifi[TxCharNum_wifi]; - 00752 E284 LDI R24,0x24 - 00753 E093 LDI R25,3 - 00754 91E0 0323 LDS R30,TxCharNum_wifi - 00756 27FF CLR R31 - 00757 0FE8 ADD R30,R24 - 00758 1FF9 ADC R31,R25 - 00759 8020 LD R2,Z - 0075A 9220 009C STS 0x9C,R2 + 00826 E48C LDI R24,0x4C + 00827 E093 LDI R25,3 + 00828 91E0 034B LDS R30,TxCharNum_wifi + 0082A 27FF CLR R31 + 0082B 0FE8 ADD R30,R24 + 0082C 1FF9 ADC R31,R25 + 0082D 8020 LD R2,Z + 0082E 9220 009C STS 0x9C,R2 (0089) while(!(UCSR1A & (1 << TXC1))) ; //等待发送完成 - 0075C 9020 009B LDS R2,0x9B - 0075E FE26 SBRS R2,6 - 0075F CFFC RJMP 0x075C + 00830 9020 009B LDS R2,0x9B + 00832 FE26 SBRS R2,6 + 00833 CFFC RJMP 0x0830 (0090) UCSR1A |= (1 << TXC1); //发送完成标志置位 - 00760 9180 009B LDS R24,0x9B - 00762 6480 ORI R24,0x40 - 00763 9380 009B STS 0x9B,R24 - 00765 9180 0323 LDS R24,TxCharNum_wifi - 00767 5F8F SUBI R24,0xFF - 00768 9380 0323 STS TxCharNum_wifi,R24 - 0076A 9020 0322 LDS R2,TxStrLen_wifi - 0076C 9030 0323 LDS R3,TxCharNum_wifi - 0076E 1432 CP R3,R2 - 0076F F310 BCS 0x0752 + 00834 9180 009B LDS R24,0x9B + 00836 6480 ORI R24,0x40 + 00837 9380 009B STS 0x9B,R24 + 00839 9180 034B LDS R24,TxCharNum_wifi + 0083B 5F8F SUBI R24,0xFF + 0083C 9380 034B STS TxCharNum_wifi,R24 + 0083E 9020 034A LDS R2,TxStrLen_wifi + 00840 9030 034B LDS R3,TxCharNum_wifi + 00842 1432 CP R3,R2 + 00843 F310 BCS 0x0826 (0091) } (0092) UDR1 = 0x0d; - 00770 E08D LDI R24,0xD - 00771 9380 009C STS 0x9C,R24 + 00844 E08D LDI R24,0xD + 00845 9380 009C STS 0x9C,R24 (0093) while(!(UCSR1A & (1 << TXC1))) ; - 00773 9020 009B LDS R2,0x9B - 00775 FE26 SBRS R2,6 - 00776 CFFC RJMP 0x0773 + 00847 9020 009B LDS R2,0x9B + 00849 FE26 SBRS R2,6 + 0084A CFFC RJMP 0x0847 (0094) UCSR1A |= (1 << TXC1); - 00777 9180 009B LDS R24,0x9B - 00779 6480 ORI R24,0x40 - 0077A 9380 009B STS 0x9B,R24 - 0077C 9508 RET + 0084B 9180 009B LDS R24,0x9B + 0084D 6480 ORI R24,0x40 + 0084E 9380 009B STS 0x9B,R24 + 00850 9508 RET _uart1_rx_isr: - 0077D 922A ST -Y,R2 - 0077E 938A ST -Y,R24 - 0077F 939A ST -Y,R25 - 00780 93EA ST -Y,R30 - 00781 93FA ST -Y,R31 - 00782 B62F IN R2,0x3F - 00783 922A ST -Y,R2 + 00851 922A ST -Y,R2 + 00852 938A ST -Y,R24 + 00853 939A ST -Y,R25 + 00854 93EA ST -Y,R30 + 00855 93FA ST -Y,R31 + 00856 B62F IN R2,0x3F + 00857 922A ST -Y,R2 (0095) } (0096) (0097) //*********************************************************************** @@ -2137,30 +2357,30 @@ _uart1_rx_isr: (0101) void uart1_rx_isr(void) (0102) { (0103) RxCharBuf_wifi[RxBufWr_wifi] = UDR1; //从数据缓冲器中接收数据 - 00784 E182 LDI R24,0x12 - 00785 E093 LDI R25,3 - 00786 91E0 0310 LDS R30,RxBufWr_wifi - 00788 27FF CLR R31 - 00789 0FE8 ADD R30,R24 - 0078A 1FF9 ADC R31,R25 - 0078B 9020 009C LDS R2,0x9C - 0078D 8220 ST Z,R2 + 00858 E38A LDI R24,0x3A + 00859 E093 LDI R25,3 + 0085A 91E0 0338 LDS R30,RxBufWr_wifi + 0085C 27FF CLR R31 + 0085D 0FE8 ADD R30,R24 + 0085E 1FF9 ADC R31,R25 + 0085F 9020 009C LDS R2,0x9C + 00861 8220 ST Z,R2 (0104) RxBufWr_wifi++; - 0078E 9180 0310 LDS R24,RxBufWr_wifi - 00790 5F8F SUBI R24,0xFF - 00791 9380 0310 STS RxBufWr_wifi,R24 + 00862 9180 0338 LDS R24,RxBufWr_wifi + 00864 5F8F SUBI R24,0xFF + 00865 9380 0338 STS RxBufWr_wifi,R24 (0105) RxBufWr_wifi &= 0x0f; //16->0 - 00793 708F ANDI R24,0xF - 00794 9380 0310 STS RxBufWr_wifi,R24 - 00796 9029 LD R2,Y+ - 00797 BE2F OUT 0x3F,R2 - 00798 91F9 LD R31,Y+ - 00799 91E9 LD R30,Y+ - 0079A 9199 LD R25,Y+ - 0079B 9189 LD R24,Y+ - 0079C 9029 LD R2,Y+ - 0079D 9518 RETI -FILE: E:\git\AVR\OldManAlarm\SYN7318.c + 00867 708F ANDI R24,0xF + 00868 9380 0338 STS RxBufWr_wifi,R24 + 0086A 9029 LD R2,Y+ + 0086B BE2F OUT 0x3F,R2 + 0086C 91F9 LD R31,Y+ + 0086D 91E9 LD R30,Y+ + 0086E 9199 LD R25,Y+ + 0086F 9189 LD R24,Y+ + 00870 9029 LD R2,Y+ + 00871 9518 RETI +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c (0001) #include (0002) #include (0003) #include @@ -2171,7 +2391,7 @@ FILE: E:\git\AVR\OldManAlarm\SYN7318.c (0008) (0009) (0010) //带命令识别词条 -(0011) const uchar words[] = "救命 1|救命啊 1|哎呦 2|现在多少度 100|现在温度多少 100|现在几点 101|"; +(0011) const uchar words[] = "救命 1|救命啊 1|哎呦 2|现在多少度 100|现在温度多少 100|现在几点 101|时间 101|"; (0012) uchar tmp_text[255]; (0013) (0014) uint wordID = 0x0000; @@ -2190,29 +2410,29 @@ FILE: E:\git\AVR\OldManAlarm\SYN7318.c (0027) //PC6,7 定义输入 10ms低电平 延时100ms (0028) SRT_SYN_OUT; _SYN7318_init: - 0079E 9AA6 SBI 0x14,6 + 00872 9AA6 SBI 0x14,6 (0029) RST_SYN_OUT; - 0079F 9AA7 SBI 0x14,7 + 00873 9AA7 SBI 0x14,7 (0030) SRT_SYN_SET; - 007A0 9AAE SBI 0x15,6 + 00874 9AAE SBI 0x15,6 (0031) RST_SYN_SET; - 007A1 9AAF SBI 0x15,7 + 00875 9AAF SBI 0x15,7 (0032) delay_nms(100); - 007A2 E604 LDI R16,0x64 - 007A3 E010 LDI R17,0 - 007A4 940E 0637 CALL _delay_nms + 00876 E604 LDI R16,0x64 + 00877 E010 LDI R17,0 + 00878 940E 070B CALL _delay_nms (0033) RST_SYN_CLR; - 007A6 98AF CBI 0x15,7 + 0087A 98AF CBI 0x15,7 (0034) delay_nms(10); - 007A7 E00A LDI R16,0xA - 007A8 E010 LDI R17,0 - 007A9 940E 0637 CALL _delay_nms + 0087B E00A LDI R16,0xA + 0087C E010 LDI R17,0 + 0087D 940E 070B CALL _delay_nms (0035) RST_SYN_SET; - 007AB 9AAF SBI 0x15,7 + 0087F 9AAF SBI 0x15,7 (0036) delay_nms(100); - 007AC E604 LDI R16,0x64 - 007AD E010 LDI R17,0 - 007AE 940C 0637 JMP _delay_nms + 00880 E604 LDI R16,0x64 + 00881 E010 LDI R17,0 + 00882 940C 070B JMP _delay_nms (0037) } (0038) (0039) /******************************************************************************* @@ -2224,29 +2444,29 @@ _SYN7318_init: _buildHead: command --> R18 len --> R16 - 007B0 EF8D LDI R24,0xFD - 007B1 9380 03B9 STS TxCharBuf,R24 + 00884 EF8D LDI R24,0xFD + 00885 9380 03E1 STS TxCharBuf,R24 (0045) TxCharBuf[1] = len >> 8; //构造数据区长度的高字节 - 007B3 0118 MOVW R2,R16 - 007B4 2C23 MOV R2,R3 - 007B5 2433 CLR R3 - 007B6 9220 03BA STS TxCharBuf+1,R2 + 00887 0118 MOVW R2,R16 + 00888 2C23 MOV R2,R3 + 00889 2433 CLR R3 + 0088A 9220 03E2 STS TxCharBuf+1,R2 (0046) TxCharBuf[2] = len & 0xff; //构造数据区长度的低字节 - 007B8 01C8 MOVW R24,R16 - 007B9 7090 ANDI R25,0 - 007BA 9380 03BB STS TxCharBuf+2,R24 + 0088C 01C8 MOVW R24,R16 + 0088D 7090 ANDI R25,0 + 0088E 9380 03E3 STS TxCharBuf+2,R24 (0047) TxCharBuf[3] = command; //构造命令字 - 007BC 9320 03BC STS TxCharBuf+3,R18 + 00890 9320 03E4 STS TxCharBuf+3,R18 (0048) TxCharBuf[4] = 0x00; - 007BE 2422 CLR R2 - 007BF 9220 03BD STS TxCharBuf+4,R2 - 007C1 9508 RET + 00892 2422 CLR R2 + 00893 9220 03E5 STS TxCharBuf+4,R2 + 00895 9508 RET _checkSendReturn: command --> R12 length --> R10 number --> R20 RxSt --> R22 - 007C2 940E 0A7C CALL push_xgsetF03C + 00896 940E 0B66 CALL push_xgsetF03C (0049) } (0050) (0051) /******************************************************************************* @@ -2255,158 +2475,158 @@ _checkSendReturn: (0054) uint checkSendReturn(void) (0055) { (0056) uchar RxSt, command, length, number = 0; - 007C4 2744 CLR R20 + 00898 2744 CLR R20 (0057) wordID = 0x0000; - 007C5 2422 CLR R2 - 007C6 2433 CLR R3 - 007C7 9230 01E2 STS wordID+1,R3 - 007C9 9220 01E1 STS wordID,R2 + 00899 2422 CLR R2 + 0089A 2433 CLR R3 + 0089B 9230 020C STS wordID+1,R3 + 0089D 9220 020B STS wordID,R2 (0058) do { - 007CB C004 RJMP 0x07D0 + 0089F C004 RJMP 0x08A4 (0059) while(RxBufRd == RxBufWr) delay_nms(1); - 007CC E001 LDI R16,1 - 007CD E010 LDI R17,0 - 007CE 940E 0637 CALL _delay_nms - 007D0 9020 03A5 LDS R2,RxBufWr - 007D2 9030 03A4 LDS R3,RxBufRd - 007D4 1432 CP R3,R2 - 007D5 F3B1 BEQ 0x07CC + 008A0 E001 LDI R16,1 + 008A1 E010 LDI R17,0 + 008A2 940E 070B CALL _delay_nms + 008A4 9020 03CD LDS R2,RxBufWr + 008A6 9030 03CC LDS R3,RxBufRd + 008A8 1432 CP R3,R2 + 008A9 F3B1 BEQ 0x08A0 (0060) RxSt = RxCharBuf[RxBufRd]; - 007D6 EA87 LDI R24,0xA7 - 007D7 E093 LDI R25,3 - 007D8 2DE3 MOV R30,R3 - 007D9 27FF CLR R31 - 007DA 0FE8 ADD R30,R24 - 007DB 1FF9 ADC R31,R25 - 007DC 8160 LD R22,Z + 008AA EC8F LDI R24,0xCF + 008AB E093 LDI R25,3 + 008AC 2DE3 MOV R30,R3 + 008AD 27FF CLR R31 + 008AE 0FE8 ADD R30,R24 + 008AF 1FF9 ADC R31,R25 + 008B0 8160 LD R22,Z (0061) RxBufRd ++; - 007DD 2D83 MOV R24,R3 - 007DE 5F8F SUBI R24,0xFF - 007DF 9380 03A4 STS RxBufRd,R24 + 008B1 2D83 MOV R24,R3 + 008B2 5F8F SUBI R24,0xFF + 008B3 9380 03CC STS RxBufRd,R24 (0062) RxBufRd &= 0x0f; - 007E1 708F ANDI R24,0xF - 007E2 9380 03A4 STS RxBufRd,R24 + 008B5 708F ANDI R24,0xF + 008B6 9380 03CC STS RxBufRd,R24 (0063) switch(number){ - 007E4 2EC4 MOV R12,R20 - 007E5 24DD CLR R13 - 007E6 20CC TST R12 - 007E7 F411 BNE 0x07EA - 007E8 20DD TST R13 - 007E9 F091 BEQ 0x07FC - 007EA 01C6 MOVW R24,R12 - 007EB 3081 CPI R24,1 - 007EC E0E0 LDI R30,0 - 007ED 079E CPC R25,R30 - 007EE F091 BEQ 0x0801 - 007EF 3082 CPI R24,2 - 007F0 E0E0 LDI R30,0 - 007F1 079E CPC R25,R30 - 007F2 F0A9 BEQ 0x0808 - 007F3 3083 CPI R24,3 - 007F4 E0E0 LDI R30,0 - 007F5 079E CPC R25,R30 - 007F6 F0D1 BEQ 0x0811 - 007F7 3084 CPI R24,4 - 007F8 E0E0 LDI R30,0 - 007F9 079E CPC R25,R30 - 007FA F119 BEQ 0x081E - 007FB C03C RJMP 0x0838 + 008B8 2EC4 MOV R12,R20 + 008B9 24DD CLR R13 + 008BA 20CC TST R12 + 008BB F411 BNE 0x08BE + 008BC 20DD TST R13 + 008BD F091 BEQ 0x08D0 + 008BE 01C6 MOVW R24,R12 + 008BF 3081 CPI R24,1 + 008C0 E0E0 LDI R30,0 + 008C1 079E CPC R25,R30 + 008C2 F091 BEQ 0x08D5 + 008C3 3082 CPI R24,2 + 008C4 E0E0 LDI R30,0 + 008C5 079E CPC R25,R30 + 008C6 F0A9 BEQ 0x08DC + 008C7 3083 CPI R24,3 + 008C8 E0E0 LDI R30,0 + 008C9 079E CPC R25,R30 + 008CA F0D1 BEQ 0x08E5 + 008CB 3084 CPI R24,4 + 008CC E0E0 LDI R30,0 + 008CD 079E CPC R25,R30 + 008CE F119 BEQ 0x08F2 + 008CF C03C RJMP 0x090C (0064) case 0 : (0065) if (RxSt == 0xFC){ - 007FC 3F6C CPI R22,0xFC - 007FD F009 BEQ 0x07FF - 007FE C039 RJMP 0x0838 + 008D0 3F6C CPI R22,0xFC + 008D1 F009 BEQ 0x08D3 + 008D2 C039 RJMP 0x090C (0066) number = 1; - 007FF E041 LDI R20,1 + 008D3 E041 LDI R20,1 (0067) } (0068) break; - 00800 C037 RJMP 0x0838 + 008D4 C037 RJMP 0x090C (0069) case 1 : (0070) if(RxSt != 0) - 00801 2366 TST R22 - 00802 F019 BEQ 0x0806 + 008D5 2366 TST R22 + 008D6 F019 BEQ 0x08DA (0071) return 0; - 00803 2700 CLR R16 - 00804 2711 CLR R17 - 00805 C033 RJMP 0x0839 + 008D7 2700 CLR R16 + 008D8 2711 CLR R17 + 008D9 C033 RJMP 0x090D (0072) number = 2; - 00806 E042 LDI R20,2 + 008DA E042 LDI R20,2 (0073) break; - 00807 C030 RJMP 0x0838 + 008DB C030 RJMP 0x090C (0074) case 2 : (0075) if(RxSt > 6) - 00808 E086 LDI R24,6 - 00809 1786 CP R24,R22 - 0080A F418 BCC 0x080E + 008DC E086 LDI R24,6 + 008DD 1786 CP R24,R22 + 008DE F418 BCC 0x08E2 (0076) return 0; - 0080B 2700 CLR R16 - 0080C 2711 CLR R17 - 0080D C02B RJMP 0x0839 + 008DF 2700 CLR R16 + 008E0 2711 CLR R17 + 008E1 C02B RJMP 0x090D (0077) length = RxSt; - 0080E 2EA6 MOV R10,R22 + 008E2 2EA6 MOV R10,R22 (0078) number = 3; - 0080F E043 LDI R20,3 + 008E3 E043 LDI R20,3 (0079) break; - 00810 C027 RJMP 0x0838 + 008E4 C027 RJMP 0x090C (0080) case 3 : (0081) if(RxSt == ACC_ERR) - 00811 3465 CPI R22,0x45 - 00812 F419 BNE 0x0816 + 008E5 3465 CPI R22,0x45 + 008E6 F419 BNE 0x08EA (0082) return 0; - 00813 2700 CLR R16 - 00814 2711 CLR R17 - 00815 C023 RJMP 0x0839 + 008E7 2700 CLR R16 + 008E8 2711 CLR R17 + 008E9 C023 RJMP 0x090D (0083) length--; - 00816 94AA DEC R10 + 008EA 94AA DEC R10 (0084) if(length == 0) - 00817 F419 BNE 0x081B + 008EB F419 BNE 0x08EF (0085) return RxSt; - 00818 2F06 MOV R16,R22 - 00819 2711 CLR R17 - 0081A C01E RJMP 0x0839 + 008EC 2F06 MOV R16,R22 + 008ED 2711 CLR R17 + 008EE C01E RJMP 0x090D (0086) command = RxSt; - 0081B 2EC6 MOV R12,R22 + 008EF 2EC6 MOV R12,R22 (0087) number = 4; - 0081C E044 LDI R20,4 + 008F0 E044 LDI R20,4 (0088) break; - 0081D C01A RJMP 0x0838 + 008F1 C01A RJMP 0x090C (0089) case 4 : (0090) wordID <<= 8; - 0081E 9020 01E1 LDS R2,wordID - 00820 9030 01E2 LDS R3,wordID+1 - 00822 2C32 MOV R3,R2 - 00823 2422 CLR R2 - 00824 9230 01E2 STS wordID+1,R3 - 00826 9220 01E1 STS wordID,R2 + 008F2 9020 020B LDS R2,wordID + 008F4 9030 020C LDS R3,wordID+1 + 008F6 2C32 MOV R3,R2 + 008F7 2422 CLR R2 + 008F8 9230 020C STS wordID+1,R3 + 008FA 9220 020B STS wordID,R2 (0091) wordID |= RxSt; - 00828 2E26 MOV R2,R22 - 00829 2433 CLR R3 - 0082A 9040 01E1 LDS R4,wordID - 0082C 9050 01E2 LDS R5,wordID+1 - 0082E 2842 OR R4,R2 - 0082F 2853 OR R5,R3 - 00830 9250 01E2 STS wordID+1,R5 - 00832 9240 01E1 STS wordID,R4 + 008FC 2E26 MOV R2,R22 + 008FD 2433 CLR R3 + 008FE 9040 020B LDS R4,wordID + 00900 9050 020C LDS R5,wordID+1 + 00902 2842 OR R4,R2 + 00903 2853 OR R5,R3 + 00904 9250 020C STS wordID+1,R5 + 00906 9240 020B STS wordID,R4 (0092) //wordID |= command; (0093) length--; - 00834 94AA DEC R10 + 00908 94AA DEC R10 (0094) if(length == 0) - 00835 F411 BNE 0x0838 + 00909 F411 BNE 0x090C (0095) return wordID; - 00836 0182 MOVW R16,R4 - 00837 C001 RJMP 0x0839 + 0090A 0182 MOVW R16,R4 + 0090B C001 RJMP 0x090D (0096) break; (0097) } (0098) }while(1); - 00838 CF97 RJMP 0x07D0 - 00839 940C 0A85 JMP pop_xgsetF03C + 0090C CF97 RJMP 0x08A4 + 0090D 940C 0B6F JMP pop_xgsetF03C _voicePlayer: temp --> Y,+1 length --> R20 i --> R22 content --> R10 - 0083B 940E 0A60 CALL push_xgsetF00C - 0083D 0158 MOVW R10,R16 + 0090F 940E 0B4A CALL push_xgsetF00C + 00911 0158 MOVW R10,R16 (0099) return 0; (0100) } (0101) @@ -2419,85 +2639,85 @@ _voicePlayer: (0108) int i; (0109) uchar temp; (0110) uint length = strlen(content); //待发送文本长度 - 0083E 0185 MOVW R16,R10 - 0083F 940E 09F5 CALL _strlen - 00841 01A8 MOVW R20,R16 + 00912 0185 MOVW R16,R10 + 00913 940E 0ADF CALL _strlen + 00915 01A8 MOVW R20,R16 (0111) buildHead(length+2, PLAY_TEXT); //数据区长度、合成播放命令 - 00842 E021 LDI R18,1 - 00843 5F0E SUBI R16,0xFE - 00844 4F1F SBCI R17,0xFF - 00845 DF6A RCALL _buildHead + 00916 E021 LDI R18,1 + 00917 5F0E SUBI R16,0xFE + 00918 4F1F SBCI R17,0xFF + 00919 DF6A RCALL _buildHead (0112) TxCharBuf[4] = GB2312; //构造命令参数,编码格式为GB2312 - 00846 2422 CLR R2 - 00847 9220 03BD STS TxCharBuf+4,R2 + 0091A 2422 CLR R2 + 0091B 9220 03E5 STS TxCharBuf+4,R2 (0113) for(i = 0; i < length; i++){ //构造待发送文本 - 00849 2766 CLR R22 - 0084A 2777 CLR R23 - 0084B C00C RJMP 0x0858 + 0091D 2766 CLR R22 + 0091E 2777 CLR R23 + 0091F C00C RJMP 0x092C (0114) TxCharBuf[5+i] = content[i]; - 0084C 01FB MOVW R30,R22 - 0084D 0DEA ADD R30,R10 - 0084E 1DFB ADC R31,R11 - 0084F 8020 LD R2,Z - 00850 EB8E LDI R24,0xBE - 00851 E093 LDI R25,3 - 00852 01FB MOVW R30,R22 - 00853 0FE8 ADD R30,R24 - 00854 1FF9 ADC R31,R25 - 00855 8220 ST Z,R2 - 00856 5F6F SUBI R22,0xFF - 00857 4F7F SBCI R23,0xFF - 00858 1764 CP R22,R20 - 00859 0775 CPC R23,R21 - 0085A F388 BCS 0x084C + 00920 01FB MOVW R30,R22 + 00921 0DEA ADD R30,R10 + 00922 1DFB ADC R31,R11 + 00923 8020 LD R2,Z + 00924 EE86 LDI R24,0xE6 + 00925 E093 LDI R25,3 + 00926 01FB MOVW R30,R22 + 00927 0FE8 ADD R30,R24 + 00928 1FF9 ADC R31,R25 + 00929 8220 ST Z,R2 + 0092A 5F6F SUBI R22,0xFF + 0092B 4F7F SBCI R23,0xFF + 0092C 1764 CP R22,R20 + 0092D 0775 CPC R23,R21 + 0092E F388 BCS 0x0920 (0115) } (0116) TxCharBuf[5+i] = 0x00; - 0085B EB8E LDI R24,0xBE - 0085C E093 LDI R25,3 - 0085D 01FB MOVW R30,R22 - 0085E 0FE8 ADD R30,R24 - 0085F 1FF9 ADC R31,R25 - 00860 2422 CLR R2 - 00861 8220 ST Z,R2 + 0092F EE86 LDI R24,0xE6 + 00930 E093 LDI R25,3 + 00931 01FB MOVW R30,R22 + 00932 0FE8 ADD R30,R24 + 00933 1FF9 ADC R31,R25 + 00934 2422 CLR R2 + 00935 8220 ST Z,R2 (0117) (0118) TxStrLen = length+5; //整个帧的长度 - 00862 01CA MOVW R24,R20 - 00863 9605 ADIW R24,5 - 00864 9380 03B7 STS TxStrLen,R24 + 00936 01CA MOVW R24,R20 + 00937 9605 ADIW R24,5 + 00938 9380 03DF STS TxStrLen,R24 (0119) do { (0120) RxBufRd = RxBufWr = 0; - 00866 2422 CLR R2 - 00867 9220 03A5 STS RxBufWr,R2 - 00869 9220 03A4 STS RxBufRd,R2 + 0093A 2422 CLR R2 + 0093B 9220 03CD STS RxBufWr,R2 + 0093D 9220 03CC STS RxBufRd,R2 (0121) puts0(); //串口0发送数据 - 0086B 940E 06FD CALL _puts0 + 0093F 940E 07D1 CALL _puts0 (0122) if(checkSendReturn() != ACC_OK) - 0086D DF54 RCALL _checkSendReturn - 0086E 3401 CPI R16,0x41 - 0086F E0E0 LDI R30,0 - 00870 071E CPC R17,R30 - 00871 F029 BEQ 0x0877 + 00941 DF54 RCALL _checkSendReturn + 00942 3401 CPI R16,0x41 + 00943 E0E0 LDI R30,0 + 00944 071E CPC R17,R30 + 00945 F029 BEQ 0x094B (0123) delay_nms(20); //延时20ms,帧与帧之间必须间隔超过15ms - 00872 E104 LDI R16,0x14 - 00873 E010 LDI R17,0 - 00874 940E 0637 CALL _delay_nms + 00946 E104 LDI R16,0x14 + 00947 E010 LDI R17,0 + 00948 940E 070B CALL _delay_nms (0124) else (0125) break; (0126) }while(1); - 00876 CFEF RJMP 0x0866 + 0094A CFEF RJMP 0x093A (0127) if(checkSendReturn() == STA_FREE) - 00877 DF4A RCALL _checkSendReturn - 00878 01A8 MOVW R20,R16 - 00879 340F CPI R16,0x4F - 0087A E0E0 LDI R30,0 - 0087B 071E CPC R17,R30 - 0087C F409 BNE 0x087E + 0094B DF4A RCALL _checkSendReturn + 0094C 01A8 MOVW R20,R16 + 0094D 340F CPI R16,0x4F + 0094E E0E0 LDI R30,0 + 0094F 071E CPC R17,R30 + 00950 F409 BNE 0x0952 (0128) return; - 0087D C001 RJMP 0x087F + 00951 C001 RJMP 0x0953 (0129) else (0130) waitFree(); //等待模块空闲 - 0087E D0C8 RCALL _waitFree - 0087F 940C 0A67 JMP pop_xgsetF00C + 00952 D0C8 RCALL _waitFree + 00953 940C 0B51 JMP pop_xgsetF00C (0131) } (0132) (0133) /******************************************************************************* @@ -2507,15 +2727,15 @@ _voicePlayer: (0137) { (0138) sprintf(tmp_text,"[m3][s5][v3][f1][b0]欢迎使用独居老人应急呼救系统[m3][d]"); _SYN7318_welcome: - 00881 E524 LDI R18,0x54 - 00882 E032 LDI R19,2 - 00883 E309 LDI R16,0x39 - 00884 E014 LDI R17,4 - 00885 940E 0DFF CALL _sprintf + 00955 E72E LDI R18,0x7E + 00956 E032 LDI R19,2 + 00957 E601 LDI R16,0x61 + 00958 E014 LDI R17,4 + 00959 940E 0F01 CALL _sprintf (0139) voicePlayer(tmp_text); - 00887 E309 LDI R16,0x39 - 00888 E014 LDI R17,4 - 00889 CFB1 RJMP _voicePlayer + 0095B E601 LDI R16,0x61 + 0095C E014 LDI R17,4 + 0095D CFB1 RJMP _voicePlayer (0140) } (0141) (0142) /******************************************************************************* @@ -2525,19 +2745,19 @@ _SYN7318_welcome: (0146) { (0147) sprintf(tmp_text,"[m3][s5][v3][f1][b0]不好意思,系统未理解您的意思,请重新说一遍[m3][d]"); _SYN7318_Error: - 0088A E02E LDI R18,0xE - 0088B E032 LDI R19,2 - 0088C E309 LDI R16,0x39 - 0088D E014 LDI R17,4 - 0088E 940E 0DFF CALL _sprintf + 0095E E328 LDI R18,0x38 + 0095F E032 LDI R19,2 + 00960 E601 LDI R16,0x61 + 00961 E014 LDI R17,4 + 00962 940E 0F01 CALL _sprintf (0148) voicePlayer(tmp_text); - 00890 E309 LDI R16,0x39 - 00891 E014 LDI R17,4 - 00892 CFA8 RJMP _voicePlayer + 00964 E601 LDI R16,0x61 + 00965 E014 LDI R17,4 + 00966 CFA8 RJMP _voicePlayer _setVoiceLevel: level --> R10 - 00893 92AA ST -Y,R10 - 00894 2EA0 MOV R10,R16 + 00967 92AA ST -Y,R10 + 00968 2EA0 MOV R10,R16 (0149) } (0150) (0151) /******************************************************************************* @@ -2546,36 +2766,36 @@ _setVoiceLevel: (0154) void setVoiceLevel(uchar level) (0155) { (0156) buildHead(0x02, SET_VOLUME); //数据区长度、播放音量设置命令 - 00895 E025 LDI R18,5 - 00896 E002 LDI R16,2 - 00897 E010 LDI R17,0 - 00898 DF17 RCALL _buildHead + 00969 E025 LDI R18,5 + 0096A E002 LDI R16,2 + 0096B E010 LDI R17,0 + 0096C DF17 RCALL _buildHead (0157) TxCharBuf[4] = level; //构造命令参数,播放音量设置为level级(0-9级,默认为5级) - 00899 92A0 03BD STS TxCharBuf+4,R10 + 0096D 92A0 03E5 STS TxCharBuf+4,R10 (0158) TxStrLen = strlen(TxCharBuf); //整个帧的长度 - 0089B EB09 LDI R16,0xB9 - 0089C E013 LDI R17,3 - 0089D 940E 09F5 CALL _strlen - 0089F 9300 03B7 STS TxStrLen,R16 + 0096F EE01 LDI R16,0xE1 + 00970 E013 LDI R17,3 + 00971 940E 0ADF CALL _strlen + 00973 9300 03DF STS TxStrLen,R16 (0159) do{ (0160) RxBufRd = RxBufWr = 0; - 008A1 2422 CLR R2 - 008A2 9220 03A5 STS RxBufWr,R2 - 008A4 9220 03A4 STS RxBufRd,R2 + 00975 2422 CLR R2 + 00976 9220 03CD STS RxBufWr,R2 + 00978 9220 03CC STS RxBufRd,R2 (0161) puts0(); //串口0发送数据 - 008A6 940E 06FD CALL _puts0 + 0097A 940E 07D1 CALL _puts0 (0162) }while(checkSendReturn() == 0); - 008A8 DF19 RCALL _checkSendReturn - 008A9 3000 CPI R16,0 - 008AA 0701 CPC R16,R17 - 008AB F3A9 BEQ 0x08A1 + 0097C DF19 RCALL _checkSendReturn + 0097D 3000 CPI R16,0 + 0097E 0701 CPC R16,R17 + 0097F F3A9 BEQ 0x0975 (0163) //while(checkReturnByParam(0x4F) == 0); (0164) delay_nms(20); //延时20ms,帧与帧之间必须间隔超过15ms - 008AC E104 LDI R16,0x14 - 008AD E010 LDI R17,0 - 008AE 940E 0637 CALL _delay_nms - 008B0 90A9 LD R10,Y+ - 008B1 9508 RET + 00980 E104 LDI R16,0x14 + 00981 E010 LDI R17,0 + 00982 940E 070B CALL _delay_nms + 00984 90A9 LD R10,Y+ + 00985 9508 RET (0165) (0166) } (0167) @@ -2586,58 +2806,58 @@ _setVoiceLevel: (0172) { (0173) buildHead(0x07, SET_PARAM); _setVoiceOption: - 008B2 E12E LDI R18,0x1E - 008B3 E007 LDI R16,7 - 008B4 E010 LDI R17,0 - 008B5 DEFA RCALL _buildHead + 00986 E12E LDI R18,0x1E + 00987 E007 LDI R16,7 + 00988 E010 LDI R17,0 + 00989 DEFA RCALL _buildHead (0174) TxCharBuf[4] = DIS_NEAR; //设置识别距离为 中 - 008B6 E082 LDI R24,2 - 008B7 9380 03BD STS TxCharBuf+4,R24 + 0098A E082 LDI R24,2 + 0098B 9380 03E5 STS TxCharBuf+4,R24 (0175) TxCharBuf[5] = QUI_H; //用户静音上限高字节 - 008B9 E08B LDI R24,0xB - 008BA 9380 03BE STS TxCharBuf+5,R24 + 0098D E08B LDI R24,0xB + 0098E 9380 03E6 STS TxCharBuf+5,R24 (0176) TxCharBuf[6] = QUI_L; //用户静音上限低字节 3000ms - 008BC EB88 LDI R24,0xB8 - 008BD 9380 03BF STS TxCharBuf+6,R24 + 00990 EB88 LDI R24,0xB8 + 00991 9380 03E7 STS TxCharBuf+6,R24 (0177) TxCharBuf[7] = RECO_TIME_H; //用户语音上限高字节 - 008BF E183 LDI R24,0x13 - 008C0 9380 03C0 STS TxCharBuf+7,R24 + 00993 E183 LDI R24,0x13 + 00994 9380 03E8 STS TxCharBuf+7,R24 (0178) TxCharBuf[8] = RECO_TIME_L; //用户语音上限低字节 5000ms - 008C2 E888 LDI R24,0x88 - 008C3 9380 03C1 STS TxCharBuf+8,R24 + 00996 E888 LDI R24,0x88 + 00997 9380 03E9 STS TxCharBuf+8,R24 (0179) TxCharBuf[9] = REFUSE_LEVEL; //拒识级别 较低 - 008C5 E084 LDI R24,4 - 008C6 9380 03C2 STS TxCharBuf+9,R24 + 00999 E084 LDI R24,4 + 0099A 9380 03EA STS TxCharBuf+9,R24 (0180) (0181) TxStrLen = 10; //整个帧的长度 - 008C8 E08A LDI R24,0xA - 008C9 9380 03B7 STS TxStrLen,R24 + 0099C E08A LDI R24,0xA + 0099D 9380 03DF STS TxStrLen,R24 (0182) do{ (0183) RxBufRd = RxBufWr = 0; - 008CB 2422 CLR R2 - 008CC 9220 03A5 STS RxBufWr,R2 - 008CE 9220 03A4 STS RxBufRd,R2 + 0099F 2422 CLR R2 + 009A0 9220 03CD STS RxBufWr,R2 + 009A2 9220 03CC STS RxBufRd,R2 (0184) puts0(); //串口0发送数据 - 008D0 940E 06FD CALL _puts0 + 009A4 940E 07D1 CALL _puts0 (0185) if(checkSendReturn() == ACC_OK){ - 008D2 DEEF RCALL _checkSendReturn - 008D3 3401 CPI R16,0x41 - 008D4 E0E0 LDI R30,0 - 008D5 071E CPC R17,R30 - 008D6 F409 BNE 0x08D8 + 009A6 DEEF RCALL _checkSendReturn + 009A7 3401 CPI R16,0x41 + 009A8 E0E0 LDI R30,0 + 009A9 071E CPC R17,R30 + 009AA F409 BNE 0x09AC (0186) break; - 008D7 C001 RJMP 0x08D9 + 009AB C001 RJMP 0x09AD (0187) } (0188) }while(1); - 008D8 CFF2 RJMP 0x08CB + 009AC CFF2 RJMP 0x099F (0189) delay_nms(20); //延时20ms,帧与帧之间必须间隔超过15ms - 008D9 E104 LDI R16,0x14 - 008DA E010 LDI R17,0 - 008DB 940C 0637 JMP _delay_nms + 009AD E104 LDI R16,0x14 + 009AE E010 LDI R17,0 + 009AF 940C 070B JMP _delay_nms _updateWords: length --> R20 i --> R22 - 008DD 940E 0A56 CALL push_xgsetF000 + 009B1 940E 0B40 CALL push_xgsetF000 (0190) } (0191) (0192) /******************************************************************************* @@ -2647,122 +2867,122 @@ _updateWords: (0196) { (0197) int i; (0198) uchar length = strlen(words); - 008DF E90C LDI R16,0x9C - 008E0 E011 LDI R17,1 - 008E1 940E 09F5 CALL _strlen - 008E3 2F40 MOV R20,R16 + 009B3 EB0D LDI R16,0xBD + 009B4 E011 LDI R17,1 + 009B5 940E 0ADF CALL _strlen + 009B7 2F40 MOV R20,R16 (0199) buildHead(length+3, UPADTE_WORD); - 008E4 E12F LDI R18,0x1F - 008E5 2711 CLR R17 - 008E6 5F0D SUBI R16,0xFD - 008E7 4F1F SBCI R17,0xFF - 008E8 DEC7 RCALL _buildHead + 009B8 E12F LDI R18,0x1F + 009B9 2711 CLR R17 + 009BA 5F0D SUBI R16,0xFD + 009BB 4F1F SBCI R17,0xFF + 009BC DEC7 RCALL _buildHead (0200) TxCharBuf[4] = GB2312; //编码格式GB2312 - 008E9 2422 CLR R2 - 008EA 9220 03BD STS TxCharBuf+4,R2 + 009BD 2422 CLR R2 + 009BE 9220 03E5 STS TxCharBuf+4,R2 (0201) TxCharBuf[5] = 0x20; //词典参数,启用内置智能解析,关闭内置垃圾词条,词典编号为0x00 - 008EC E280 LDI R24,0x20 - 008ED 9380 03BE STS TxCharBuf+5,R24 + 009C0 E280 LDI R24,0x20 + 009C1 9380 03E6 STS TxCharBuf+5,R24 (0202) for(i = 0; i < length; i++){ //词条 - 008EF 2766 CLR R22 - 008F0 2777 CLR R23 - 008F1 C00E RJMP 0x0900 + 009C3 2766 CLR R22 + 009C4 2777 CLR R23 + 009C5 C00E RJMP 0x09D4 (0203) TxCharBuf[6+i] = words[i]; - 008F2 E98C LDI R24,0x9C - 008F3 E091 LDI R25,1 - 008F4 01FB MOVW R30,R22 - 008F5 0FE8 ADD R30,R24 - 008F6 1FF9 ADC R31,R25 - 008F7 8020 LD R2,Z - 008F8 EB8F LDI R24,0xBF - 008F9 E093 LDI R25,3 - 008FA 01FB MOVW R30,R22 - 008FB 0FE8 ADD R30,R24 - 008FC 1FF9 ADC R31,R25 - 008FD 8220 ST Z,R2 - 008FE 5F6F SUBI R22,0xFF - 008FF 4F7F SBCI R23,0xFF - 00900 2E24 MOV R2,R20 - 00901 2433 CLR R3 - 00902 1562 CP R22,R2 - 00903 0573 CPC R23,R3 - 00904 F36C BLT 0x08F2 + 009C6 EB8D LDI R24,0xBD + 009C7 E091 LDI R25,1 + 009C8 01FB MOVW R30,R22 + 009C9 0FE8 ADD R30,R24 + 009CA 1FF9 ADC R31,R25 + 009CB 8020 LD R2,Z + 009CC EE87 LDI R24,0xE7 + 009CD E093 LDI R25,3 + 009CE 01FB MOVW R30,R22 + 009CF 0FE8 ADD R30,R24 + 009D0 1FF9 ADC R31,R25 + 009D1 8220 ST Z,R2 + 009D2 5F6F SUBI R22,0xFF + 009D3 4F7F SBCI R23,0xFF + 009D4 2E24 MOV R2,R20 + 009D5 2433 CLR R3 + 009D6 1562 CP R22,R2 + 009D7 0573 CPC R23,R3 + 009D8 F36C BLT 0x09C6 (0204) } (0205) (0206) TxStrLen = length + 6; //整个帧的长度 - 00905 2D82 MOV R24,R2 - 00906 5F8A SUBI R24,0xFA - 00907 9380 03B7 STS TxStrLen,R24 + 009D9 2D82 MOV R24,R2 + 009DA 5F8A SUBI R24,0xFA + 009DB 9380 03DF STS TxStrLen,R24 (0207) do{ (0208) RxBufRd = RxBufWr = 0; - 00909 2422 CLR R2 - 0090A 9220 03A5 STS RxBufWr,R2 - 0090C 9220 03A4 STS RxBufRd,R2 + 009DD 2422 CLR R2 + 009DE 9220 03CD STS RxBufWr,R2 + 009E0 9220 03CC STS RxBufRd,R2 (0209) puts0(); //串口0发送数据 - 0090E 940E 06FD CALL _puts0 + 009E2 940E 07D1 CALL _puts0 (0210) DisplayCgrom(0x88,"正在更新词条。。"); - 00910 EF2D LDI R18,0xFD - 00911 E031 LDI R19,1 - 00912 E808 LDI R16,0x88 - 00913 940E 06B5 CALL _DisplayCgrom + 009E4 E227 LDI R18,0x27 + 009E5 E032 LDI R19,2 + 009E6 E808 LDI R16,0x88 + 009E7 940E 0789 CALL _DisplayCgrom (0211) delay_nms(2); - 00915 E002 LDI R16,2 - 00916 E010 LDI R17,0 - 00917 940E 0637 CALL _delay_nms + 009E9 E002 LDI R16,2 + 009EA E010 LDI R17,0 + 009EB 940E 070B CALL _delay_nms (0212) if(checkSendReturn() == ACC_OK){ - 00919 DEA8 RCALL _checkSendReturn - 0091A 3401 CPI R16,0x41 - 0091B E0E0 LDI R30,0 - 0091C 071E CPC R17,R30 - 0091D F409 BNE 0x091F + 009ED DEA8 RCALL _checkSendReturn + 009EE 3401 CPI R16,0x41 + 009EF E0E0 LDI R30,0 + 009F0 071E CPC R17,R30 + 009F1 F409 BNE 0x09F3 (0213) break; - 0091E C005 RJMP 0x0924 + 009F2 C005 RJMP 0x09F8 (0214) } (0215) else{ (0216) delay_nms(20); - 0091F E104 LDI R16,0x14 - 00920 E010 LDI R17,0 - 00921 940E 0637 CALL _delay_nms + 009F3 E104 LDI R16,0x14 + 009F4 E010 LDI R17,0 + 009F5 940E 070B CALL _delay_nms (0217) } (0218) }while(1); - 00923 CFE5 RJMP 0x0909 + 009F7 CFE5 RJMP 0x09DD (0219) if(checkSendReturn() == UPD_OK){ //检查回传 ,词条更新时不能被打断 - 00924 DE9D RCALL _checkSendReturn - 00925 01A8 MOVW R20,R16 - 00926 3301 CPI R16,0x31 - 00927 E0E0 LDI R30,0 - 00928 071E CPC R17,R30 - 00929 F471 BNE 0x0938 + 009F8 DE9D RCALL _checkSendReturn + 009F9 01A8 MOVW R20,R16 + 009FA 3301 CPI R16,0x31 + 009FB E0E0 LDI R30,0 + 009FC 071E CPC R17,R30 + 009FD F471 BNE 0x0A0C (0220) LCD_clear(); - 0092A 940E 06AF CALL _LCD_clear + 009FE 940E 0783 CALL _LCD_clear (0221) DisplayCgrom(0x88,"词条更新成功"); - 0092C EF20 LDI R18,0xF0 - 0092D E031 LDI R19,1 - 0092E E808 LDI R16,0x88 - 0092F 940E 06B5 CALL _DisplayCgrom + 00A00 E12A LDI R18,0x1A + 00A01 E032 LDI R19,2 + 00A02 E808 LDI R16,0x88 + 00A03 940E 0789 CALL _DisplayCgrom (0222) delay_nms(1000); - 00931 EE08 LDI R16,0xE8 - 00932 E013 LDI R17,3 - 00933 940E 0637 CALL _delay_nms + 00A05 EE08 LDI R16,0xE8 + 00A06 E013 LDI R17,3 + 00A07 940E 070B CALL _delay_nms (0223) LCD_clear(); - 00935 940E 06AF CALL _LCD_clear + 00A09 940E 0783 CALL _LCD_clear (0224) }else{ - 00937 C00D RJMP 0x0945 + 00A0B C00D RJMP 0x0A19 (0225) LCD_clear(); - 00938 940E 06AF CALL _LCD_clear + 00A0C 940E 0783 CALL _LCD_clear (0226) DisplayCgrom(0x88,"词条更新失败"); - 0093A EE23 LDI R18,0xE3 - 0093B E031 LDI R19,1 - 0093C E808 LDI R16,0x88 - 0093D 940E 06B5 CALL _DisplayCgrom + 00A0E E02D LDI R18,0xD + 00A0F E032 LDI R19,2 + 00A10 E808 LDI R16,0x88 + 00A11 940E 0789 CALL _DisplayCgrom (0227) delay_nms(1000); - 0093F EE08 LDI R16,0xE8 - 00940 E013 LDI R17,3 - 00941 940E 0637 CALL _delay_nms + 00A13 EE08 LDI R16,0xE8 + 00A14 E013 LDI R17,3 + 00A15 940E 070B CALL _delay_nms (0228) LCD_clear(); - 00943 940E 06AF CALL _LCD_clear + 00A17 940E 0783 CALL _LCD_clear (0229) } - 00945 940C 0A5B JMP pop_xgsetF000 + 00A19 940C 0B45 JMP pop_xgsetF000 (0230) //延时20ms,帧与帧之间必须间隔超过15ms (0231) (0232) } @@ -2774,42 +2994,42 @@ _updateWords: (0238) { (0239) buildHead(0x01, CHECK_STATUS); _waitFree: - 00947 E221 LDI R18,0x21 - 00948 E001 LDI R16,1 - 00949 E010 LDI R17,0 - 0094A DE65 RCALL _buildHead + 00A1B E221 LDI R18,0x21 + 00A1C E001 LDI R16,1 + 00A1D E010 LDI R17,0 + 00A1E DE65 RCALL _buildHead (0240) TxStrLen = 4;//strlen(TxCharBuf); //整个帧的长度 - 0094B E084 LDI R24,4 - 0094C 9380 03B7 STS TxStrLen,R24 + 00A1F E084 LDI R24,4 + 00A20 9380 03DF STS TxStrLen,R24 (0241) do{ (0242) RxBufRd = RxBufWr = 0; - 0094E 2422 CLR R2 - 0094F 9220 03A5 STS RxBufWr,R2 - 00951 9220 03A4 STS RxBufRd,R2 + 00A22 2422 CLR R2 + 00A23 9220 03CD STS RxBufWr,R2 + 00A25 9220 03CC STS RxBufRd,R2 (0243) puts0(); //串口0发送数据 - 00953 940E 06FD CALL _puts0 + 00A27 940E 07D1 CALL _puts0 (0244) if(checkSendReturn() == ACC_OK){ - 00955 DE6C RCALL _checkSendReturn - 00956 3401 CPI R16,0x41 - 00957 E0E0 LDI R30,0 - 00958 071E CPC R17,R30 - 00959 F431 BNE 0x0960 + 00A29 DE6C RCALL _checkSendReturn + 00A2A 3401 CPI R16,0x41 + 00A2B E0E0 LDI R30,0 + 00A2C 071E CPC R17,R30 + 00A2D F431 BNE 0x0A34 (0245) if(checkSendReturn() == STA_FREE) - 0095A DE67 RCALL _checkSendReturn - 0095B 340F CPI R16,0x4F - 0095C E0E0 LDI R30,0 - 0095D 071E CPC R17,R30 - 0095E F409 BNE 0x0960 + 00A2E DE67 RCALL _checkSendReturn + 00A2F 340F CPI R16,0x4F + 00A30 E0E0 LDI R30,0 + 00A31 071E CPC R17,R30 + 00A32 F409 BNE 0x0A34 (0246) break; - 0095F C005 RJMP 0x0965 + 00A33 C005 RJMP 0x0A39 (0247) } (0248) delay_nms(20); //延时20ms,帧与帧之间必须间隔超过15ms - 00960 E104 LDI R16,0x14 - 00961 E010 LDI R17,0 - 00962 940E 0637 CALL _delay_nms + 00A34 E104 LDI R16,0x14 + 00A35 E010 LDI R17,0 + 00A36 940E 070B CALL _delay_nms (0249) }while(1); - 00964 CFE9 RJMP 0x094E - 00965 9508 RET + 00A38 CFE9 RJMP 0x0A22 + 00A39 9508 RET (0250) } (0251) (0252) /******************************************************************************* @@ -2819,40 +3039,40 @@ _waitFree: (0256) { (0257) buildHead(0x02, START_RECOGN); _startRecognition: - 00966 E120 LDI R18,0x10 - 00967 E002 LDI R16,2 - 00968 E010 LDI R17,0 - 00969 DE46 RCALL _buildHead + 00A3A E120 LDI R18,0x10 + 00A3B E002 LDI R16,2 + 00A3C E010 LDI R17,0 + 00A3D DE46 RCALL _buildHead (0258) TxCharBuf[4] = 0x00; //词典编号 - 0096A 2422 CLR R2 - 0096B 9220 03BD STS TxCharBuf+4,R2 + 00A3E 2422 CLR R2 + 00A3F 9220 03E5 STS TxCharBuf+4,R2 (0259) TxStrLen = 5 ; - 0096D E085 LDI R24,5 - 0096E 9380 03B7 STS TxStrLen,R24 + 00A41 E085 LDI R24,5 + 00A42 9380 03DF STS TxStrLen,R24 (0260) do{ (0261) RxBufRd = RxBufWr = 0; - 00970 2422 CLR R2 - 00971 9220 03A5 STS RxBufWr,R2 - 00973 9220 03A4 STS RxBufRd,R2 + 00A44 2422 CLR R2 + 00A45 9220 03CD STS RxBufWr,R2 + 00A47 9220 03CC STS RxBufRd,R2 (0262) puts0(); //串口0发送数据 - 00975 940E 06FD CALL _puts0 + 00A49 940E 07D1 CALL _puts0 (0263) if(checkSendReturn() == ACC_OK){ - 00977 DE4A RCALL _checkSendReturn - 00978 3401 CPI R16,0x41 - 00979 E0E0 LDI R30,0 - 0097A 071E CPC R17,R30 - 0097B F409 BNE 0x097D + 00A4B DE4A RCALL _checkSendReturn + 00A4C 3401 CPI R16,0x41 + 00A4D E0E0 LDI R30,0 + 00A4E 071E CPC R17,R30 + 00A4F F409 BNE 0x0A51 (0264) break; - 0097C C005 RJMP 0x0982 + 00A50 C005 RJMP 0x0A56 (0265) } (0266) delay_nms(20); //延时20ms,帧与帧之间必须间隔超过15ms - 0097D E104 LDI R16,0x14 - 0097E E010 LDI R17,0 - 0097F 940E 0637 CALL _delay_nms + 00A51 E104 LDI R16,0x14 + 00A52 E010 LDI R17,0 + 00A53 940E 070B CALL _delay_nms (0267) }while(1); - 00981 CFEE RJMP 0x0970 - 00982 9508 RET -FILE: E:\git\AVR\OldManAlarm\ESP8266.c + 00A55 CFEE RJMP 0x0A44 + 00A56 9508 RET +FILE: G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\ESP8266.c (0001) #include (0002) #include (0003) #include @@ -2874,18 +3094,18 @@ FILE: E:\git\AVR\OldManAlarm\ESP8266.c (0019) { (0020) sprintf(TxCharBuf_wifi, "AT+RST"); _wifi_Restart: - 00983 EF2E LDI R18,0xFE - 00984 E032 LDI R19,2 - 00985 E204 LDI R16,0x24 - 00986 E013 LDI R17,3 - 00987 940E 0DFF CALL _sprintf + 00A57 E228 LDI R18,0x28 + 00A58 E033 LDI R19,3 + 00A59 E40C LDI R16,0x4C + 00A5A E013 LDI R17,3 + 00A5B 940E 0F01 CALL _sprintf (0021) TxStrLen_wifi = strlen(TxCharBuf_wifi); - 00989 E204 LDI R16,0x24 - 0098A E013 LDI R17,3 - 0098B 940E 09F5 CALL _strlen - 0098D 9300 0322 STS TxStrLen_wifi,R16 + 00A5D E40C LDI R16,0x4C + 00A5E E013 LDI R17,3 + 00A5F 940E 0ADF CALL _strlen + 00A61 9300 034A STS TxStrLen_wifi,R16 (0022) puts1(); - 0098F 940C 074E JMP _puts1 + 00A63 940C 0822 JMP _puts1 (0023) } (0024) (0025) //*********************************************************************** @@ -2895,18 +3115,18 @@ _wifi_Restart: (0029) { (0030) sprintf(TxCharBuf_wifi, "AT+CWJAP=ICHARM,meiyanliang"); _wifi_ConnectSTA: - 00991 EE22 LDI R18,0xE2 - 00992 E032 LDI R19,2 - 00993 E204 LDI R16,0x24 - 00994 E013 LDI R17,3 - 00995 940E 0DFF CALL _sprintf + 00A65 E02C LDI R18,0xC + 00A66 E033 LDI R19,3 + 00A67 E40C LDI R16,0x4C + 00A68 E013 LDI R17,3 + 00A69 940E 0F01 CALL _sprintf (0031) TxStrLen_wifi = strlen(TxCharBuf_wifi); - 00997 E204 LDI R16,0x24 - 00998 E013 LDI R17,3 - 00999 940E 09F5 CALL _strlen - 0099B 9300 0322 STS TxStrLen_wifi,R16 + 00A6B E40C LDI R16,0x4C + 00A6C E013 LDI R17,3 + 00A6D 940E 0ADF CALL _strlen + 00A6F 9300 034A STS TxStrLen_wifi,R16 (0032) puts1(); - 0099D 940C 074E JMP _puts1 + 00A71 940C 0822 JMP _puts1 (0033) } (0034) (0035) //*********************************************************************** @@ -2916,18 +3136,18 @@ _wifi_ConnectSTA: (0039) { (0040) sprintf(TxCharBuf_wifi, "AT+CIPMUX=0"); _wifi_CIPMUX: - 0099F ED26 LDI R18,0xD6 - 009A0 E032 LDI R19,2 - 009A1 E204 LDI R16,0x24 - 009A2 E013 LDI R17,3 - 009A3 940E 0DFF CALL _sprintf + 00A73 E020 LDI R18,0 + 00A74 E033 LDI R19,3 + 00A75 E40C LDI R16,0x4C + 00A76 E013 LDI R17,3 + 00A77 940E 0F01 CALL _sprintf (0041) TxStrLen_wifi = strlen(TxCharBuf_wifi); - 009A5 E204 LDI R16,0x24 - 009A6 E013 LDI R17,3 - 009A7 940E 09F5 CALL _strlen - 009A9 9300 0322 STS TxStrLen_wifi,R16 + 00A79 E40C LDI R16,0x4C + 00A7A E013 LDI R17,3 + 00A7B 940E 0ADF CALL _strlen + 00A7D 9300 034A STS TxStrLen_wifi,R16 (0042) puts1(); - 009AB 940C 074E JMP _puts1 + 00A7F 940C 0822 JMP _puts1 (0043) } (0044) (0045) //*********************************************************************** @@ -2937,18 +3157,18 @@ _wifi_CIPMUX: (0049) { (0050) sprintf(TxCharBuf_wifi, "TCP,alarm.icharm.me,80"); _wifi_TCPConnect: - 009AD EB2F LDI R18,0xBF - 009AE E032 LDI R19,2 - 009AF E204 LDI R16,0x24 - 009B0 E013 LDI R17,3 - 009B1 940E 0DFF CALL _sprintf + 00A81 EE29 LDI R18,0xE9 + 00A82 E032 LDI R19,2 + 00A83 E40C LDI R16,0x4C + 00A84 E013 LDI R17,3 + 00A85 940E 0F01 CALL _sprintf (0051) TxStrLen_wifi = strlen(TxCharBuf_wifi); - 009B3 E204 LDI R16,0x24 - 009B4 E013 LDI R17,3 - 009B5 940E 09F5 CALL _strlen - 009B7 9300 0322 STS TxStrLen_wifi,R16 + 00A87 E40C LDI R16,0x4C + 00A88 E013 LDI R17,3 + 00A89 940E 0ADF CALL _strlen + 00A8B 9300 034A STS TxStrLen_wifi,R16 (0052) puts1(); - 009B9 940C 074E JMP _puts1 + 00A8D 940C 0822 JMP _puts1 (0053) } (0054) (0055) //*********************************************************************** @@ -2958,18 +3178,18 @@ _wifi_TCPConnect: (0059) { (0060) sprintf(TxCharBuf_wifi, "AT+CIPMODE=1"); _wifi_CIPMODE: - 009BB EB22 LDI R18,0xB2 - 009BC E032 LDI R19,2 - 009BD E204 LDI R16,0x24 - 009BE E013 LDI R17,3 - 009BF 940E 0DFF CALL _sprintf + 00A8F ED2C LDI R18,0xDC + 00A90 E032 LDI R19,2 + 00A91 E40C LDI R16,0x4C + 00A92 E013 LDI R17,3 + 00A93 940E 0F01 CALL _sprintf (0061) TxStrLen_wifi = strlen(TxCharBuf_wifi); - 009C1 E204 LDI R16,0x24 - 009C2 E013 LDI R17,3 - 009C3 940E 09F5 CALL _strlen - 009C5 9300 0322 STS TxStrLen_wifi,R16 + 00A95 E40C LDI R16,0x4C + 00A96 E013 LDI R17,3 + 00A97 940E 0ADF CALL _strlen + 00A99 9300 034A STS TxStrLen_wifi,R16 (0062) puts1(); - 009C7 940C 074E JMP _puts1 + 00A9B 940C 0822 JMP _puts1 (0063) } (0064) (0065) //*********************************************************************** @@ -2979,18 +3199,18 @@ _wifi_CIPMODE: (0069) { (0070) sprintf(TxCharBuf_wifi, "AT+CIPSEND"); _wifi_CIPSEND: - 009C9 EA27 LDI R18,0xA7 - 009CA E032 LDI R19,2 - 009CB E204 LDI R16,0x24 - 009CC E013 LDI R17,3 - 009CD 940E 0DFF CALL _sprintf + 00A9D ED21 LDI R18,0xD1 + 00A9E E032 LDI R19,2 + 00A9F E40C LDI R16,0x4C + 00AA0 E013 LDI R17,3 + 00AA1 940E 0F01 CALL _sprintf (0071) TxStrLen_wifi = strlen(TxCharBuf_wifi); - 009CF E204 LDI R16,0x24 - 009D0 E013 LDI R17,3 - 009D1 940E 09F5 CALL _strlen - 009D3 9300 0322 STS TxStrLen_wifi,R16 + 00AA3 E40C LDI R16,0x4C + 00AA4 E013 LDI R17,3 + 00AA5 940E 0ADF CALL _strlen + 00AA7 9300 034A STS TxStrLen_wifi,R16 (0072) puts1(); - 009D5 940C 074E JMP _puts1 + 00AA9 940C 0822 JMP _puts1 (0073) } (0074) (0075) @@ -3001,18 +3221,18 @@ _wifi_CIPSEND: (0080) { (0081) sprintf(TxCharBuf_wifi, "GET http://alarm.icharm.me"); _wifi_SendMsg: - 009D7 E82C LDI R18,0x8C - 009D8 E032 LDI R19,2 - 009D9 E204 LDI R16,0x24 - 009DA E013 LDI R17,3 - 009DB 940E 0DFF CALL _sprintf + 00AAB EB26 LDI R18,0xB6 + 00AAC E032 LDI R19,2 + 00AAD E40C LDI R16,0x4C + 00AAE E013 LDI R17,3 + 00AAF 940E 0F01 CALL _sprintf (0082) TxStrLen_wifi = strlen(TxCharBuf_wifi); - 009DD E204 LDI R16,0x24 - 009DE E013 LDI R17,3 - 009DF 940E 09F5 CALL _strlen - 009E1 9300 0322 STS TxStrLen_wifi,R16 + 00AB1 E40C LDI R16,0x4C + 00AB2 E013 LDI R17,3 + 00AB3 940E 0ADF CALL _strlen + 00AB5 9300 034A STS TxStrLen_wifi,R16 (0083) puts1(); - 009E3 940C 074E JMP _puts1 + 00AB7 940C 0822 JMP _puts1 (0084) } (0085) (0086) //*********************************************************************** @@ -3022,1095 +3242,1144 @@ _wifi_SendMsg: (0090) { (0091) wifi_TCPConnect(); _wifi_SENDMSG: - 009E5 DFC7 RCALL _wifi_TCPConnect + 00AB9 DFC7 RCALL _wifi_TCPConnect (0092) delay_nms(200); - 009E6 EC08 LDI R16,0xC8 - 009E7 E010 LDI R17,0 - 009E8 940E 0637 CALL _delay_nms + 00ABA EC08 LDI R16,0xC8 + 00ABB E010 LDI R17,0 + 00ABC 940E 070B CALL _delay_nms (0093) wifi_CIPMODE(); - 009EA DFD0 RCALL _wifi_CIPMODE + 00ABE DFD0 RCALL _wifi_CIPMODE (0094) delay_nms(200); - 009EB EC08 LDI R16,0xC8 - 009EC E010 LDI R17,0 - 009ED 940E 0637 CALL _delay_nms + 00ABF EC08 LDI R16,0xC8 + 00AC0 E010 LDI R17,0 + 00AC1 940E 070B CALL _delay_nms (0095) wifi_CIPSEND(); - 009EF DFD9 RCALL _wifi_CIPSEND + 00AC3 DFD9 RCALL _wifi_CIPSEND (0096) delay_nms(50); - 009F0 E302 LDI R16,0x32 - 009F1 E010 LDI R17,0 - 009F2 940E 0637 CALL _delay_nms + 00AC4 E302 LDI R16,0x32 + 00AC5 E010 LDI R17,0 + 00AC6 940E 070B CALL _delay_nms (0097) wifi_SendMsg(); FILE: - 009F4 CFE2 RJMP _wifi_SendMsg + 00AC8 CFE2 RJMP _wifi_SendMsg +_strcat: + 00AC9 2FA0 MOV R26,R16 + 00ACA 2FB1 MOV R27,R17 + 00ACB 2FE2 MOV R30,R18 + 00ACC 2FF3 MOV R31,R19 + 00ACD 912D LD R18,X+ + 00ACE 2322 TST R18 + 00ACF F7E9 BNE 0x0ACD + 00AD0 9711 SBIW R26,1 + 00AD1 9121 LD R18,Z+ + 00AD2 932D ST X+,R18 + 00AD3 2322 TST R18 + 00AD4 F7E1 BNE 0x0AD1 + 00AD5 9508 RET +_strcpy: + 00AD6 2FA0 MOV R26,R16 + 00AD7 2FB1 MOV R27,R17 + 00AD8 2FE2 MOV R30,R18 + 00AD9 2FF3 MOV R31,R19 + 00ADA 9001 LD R0,Z+ + 00ADB 920D ST X+,R0 + 00ADC 2000 TST R0 + 00ADD F7E1 BNE 0x0ADA + 00ADE 9508 RET _strlen: - 009F5 2FE0 MOV R30,R16 - 009F6 2FF1 MOV R31,R17 - 009F7 27AA CLR R26 - 009F8 27BB CLR R27 - 009F9 9001 LD R0,Z+ - 009FA 2000 TST R0 - 009FB F011 BEQ 0x09FE - 009FC 9611 ADIW R26,1 - 009FD CFFB RJMP 0x09F9 - 009FE 2F0A MOV R16,R26 - 009FF 2F1B MOV R17,R27 - 00A00 9508 RET + 00ADF 2FE0 MOV R30,R16 + 00AE0 2FF1 MOV R31,R17 + 00AE1 27AA CLR R26 + 00AE2 27BB CLR R27 + 00AE3 9001 LD R0,Z+ + 00AE4 2000 TST R0 + 00AE5 F011 BEQ 0x0AE8 + 00AE6 9611 ADIW R26,1 + 00AE7 CFFB RJMP 0x0AE3 + 00AE8 2F0A MOV R16,R26 + 00AE9 2F1B MOV R17,R27 + 00AEA 9508 RET push_arg4: - 00A01 933A ST -Y,R19 - 00A02 932A ST -Y,R18 + 00AEB 933A ST -Y,R19 + 00AEC 932A ST -Y,R18 push_arg2: - 00A03 931A ST -Y,R17 - 00A04 930A ST -Y,R16 - 00A05 9508 RET + 00AED 931A ST -Y,R17 + 00AEE 930A ST -Y,R16 + 00AEF 9508 RET mod16u: - 00A06 9468 BSET 6 - 00A07 C001 RJMP xdiv16u + 00AF0 9468 BSET 6 + 00AF1 C001 RJMP xdiv16u div16u: - 00A08 94E8 BCLR 6 + 00AF2 94E8 BCLR 6 xdiv16u: - 00A09 92EA ST -Y,R14 - 00A0A 92FA ST -Y,R15 - 00A0B 938A ST -Y,R24 - 00A0C 24EE CLR R14 - 00A0D 24FF CLR R15 - 00A0E E180 LDI R24,0x10 - 00A0F 0F00 LSL R16 - 00A10 1F11 ROL R17 - 00A11 1CEE ROL R14 - 00A12 1CFF ROL R15 - 00A13 16E2 CP R14,R18 - 00A14 06F3 CPC R15,R19 - 00A15 F018 BCS 0x0A19 - 00A16 1AE2 SUB R14,R18 - 00A17 0AF3 SBC R15,R19 - 00A18 9503 INC R16 - 00A19 958A DEC R24 - 00A1A F7A1 BNE 0x0A0F - 00A1B F416 BRTC 0x0A1E - 00A1C 2D0E MOV R16,R14 - 00A1D 2D1F MOV R17,R15 - 00A1E 9189 LD R24,Y+ - 00A1F 90F9 LD R15,Y+ - 00A20 90E9 LD R14,Y+ - 00A21 9508 RET + 00AF3 92EA ST -Y,R14 + 00AF4 92FA ST -Y,R15 + 00AF5 938A ST -Y,R24 + 00AF6 24EE CLR R14 + 00AF7 24FF CLR R15 + 00AF8 E180 LDI R24,0x10 + 00AF9 0F00 LSL R16 + 00AFA 1F11 ROL R17 + 00AFB 1CEE ROL R14 + 00AFC 1CFF ROL R15 + 00AFD 16E2 CP R14,R18 + 00AFE 06F3 CPC R15,R19 + 00AFF F018 BCS 0x0B03 + 00B00 1AE2 SUB R14,R18 + 00B01 0AF3 SBC R15,R19 + 00B02 9503 INC R16 + 00B03 958A DEC R24 + 00B04 F7A1 BNE 0x0AF9 + 00B05 F416 BRTC 0x0B08 + 00B06 2D0E MOV R16,R14 + 00B07 2D1F MOV R17,R15 + 00B08 9189 LD R24,Y+ + 00B09 90F9 LD R15,Y+ + 00B0A 90E9 LD R14,Y+ + 00B0B 9508 RET elpm32: - 00A22 93EA ST -Y,R30 - 00A23 93FA ST -Y,R31 - 00A24 920A ST -Y,R0 - 00A25 2FE0 MOV R30,R16 - 00A26 2FF1 MOV R31,R17 - 00A27 95D8 ELPM - 00A28 2D00 MOV R16,R0 - 00A29 9631 ADIW R30,1 - 00A2A 95D8 ELPM - 00A2B 2D10 MOV R17,R0 - 00A2C 9631 ADIW R30,1 - 00A2D 95D8 ELPM - 00A2E 2D20 MOV R18,R0 - 00A2F 9631 ADIW R30,1 - 00A30 95D8 ELPM - 00A31 2D30 MOV R19,R0 - 00A32 9009 LD R0,Y+ - 00A33 91F9 LD R31,Y+ - 00A34 91E9 LD R30,Y+ - 00A35 9508 RET + 00B0C 93EA ST -Y,R30 + 00B0D 93FA ST -Y,R31 + 00B0E 920A ST -Y,R0 + 00B0F 2FE0 MOV R30,R16 + 00B10 2FF1 MOV R31,R17 + 00B11 95D8 ELPM + 00B12 2D00 MOV R16,R0 + 00B13 9631 ADIW R30,1 + 00B14 95D8 ELPM + 00B15 2D10 MOV R17,R0 + 00B16 9631 ADIW R30,1 + 00B17 95D8 ELPM + 00B18 2D20 MOV R18,R0 + 00B19 9631 ADIW R30,1 + 00B1A 95D8 ELPM + 00B1B 2D30 MOV R19,R0 + 00B1C 9009 LD R0,Y+ + 00B1D 91F9 LD R31,Y+ + 00B1E 91E9 LD R30,Y+ + 00B1F 9508 RET pop_xgsetF0FC: - 00A36 90A9 LD R10,Y+ - 00A37 90B9 LD R11,Y+ - 00A38 90C9 LD R12,Y+ - 00A39 90D9 LD R13,Y+ - 00A3A 90E9 LD R14,Y+ - 00A3B 90F9 LD R15,Y+ - 00A3C 9149 LD R20,Y+ - 00A3D 9159 LD R21,Y+ - 00A3E 9169 LD R22,Y+ - 00A3F 9179 LD R23,Y+ - 00A40 9508 RET + 00B20 90A9 LD R10,Y+ + 00B21 90B9 LD R11,Y+ + 00B22 90C9 LD R12,Y+ + 00B23 90D9 LD R13,Y+ + 00B24 90E9 LD R14,Y+ + 00B25 90F9 LD R15,Y+ + 00B26 9149 LD R20,Y+ + 00B27 9159 LD R21,Y+ + 00B28 9169 LD R22,Y+ + 00B29 9179 LD R23,Y+ + 00B2A 9508 RET push_xgsetF0FC: - 00A41 937A ST -Y,R23 - 00A42 936A ST -Y,R22 + 00B2B 937A ST -Y,R23 + 00B2C 936A ST -Y,R22 push_xgset30FC: - 00A43 935A ST -Y,R21 - 00A44 934A ST -Y,R20 + 00B2D 935A ST -Y,R21 + 00B2E 934A ST -Y,R20 push_xgset00FC: - 00A45 92FA ST -Y,R15 - 00A46 92EA ST -Y,R14 + 00B2F 92FA ST -Y,R15 + 00B30 92EA ST -Y,R14 push_xgset003C: - 00A47 92DA ST -Y,R13 - 00A48 92CA ST -Y,R12 - 00A49 92BA ST -Y,R11 - 00A4A 92AA ST -Y,R10 - 00A4B 9508 RET + 00B31 92DA ST -Y,R13 + 00B32 92CA ST -Y,R12 + 00B33 92BA ST -Y,R11 + 00B34 92AA ST -Y,R10 + 00B35 9508 RET push_xgset300C: - 00A4C 935A ST -Y,R21 - 00A4D 934A ST -Y,R20 - 00A4E 92BA ST -Y,R11 - 00A4F 92AA ST -Y,R10 - 00A50 9508 RET + 00B36 935A ST -Y,R21 + 00B37 934A ST -Y,R20 + 00B38 92BA ST -Y,R11 + 00B39 92AA ST -Y,R10 + 00B3A 9508 RET pop_xgset300C: - 00A51 90A9 LD R10,Y+ - 00A52 90B9 LD R11,Y+ - 00A53 9149 LD R20,Y+ - 00A54 9159 LD R21,Y+ - 00A55 9508 RET + 00B3B 90A9 LD R10,Y+ + 00B3C 90B9 LD R11,Y+ + 00B3D 9149 LD R20,Y+ + 00B3E 9159 LD R21,Y+ + 00B3F 9508 RET push_xgsetF000: - 00A56 937A ST -Y,R23 - 00A57 936A ST -Y,R22 - 00A58 935A ST -Y,R21 - 00A59 934A ST -Y,R20 - 00A5A 9508 RET + 00B40 937A ST -Y,R23 + 00B41 936A ST -Y,R22 + 00B42 935A ST -Y,R21 + 00B43 934A ST -Y,R20 + 00B44 9508 RET pop_xgsetF000: - 00A5B 9149 LD R20,Y+ - 00A5C 9159 LD R21,Y+ - 00A5D 9169 LD R22,Y+ - 00A5E 9179 LD R23,Y+ - 00A5F 9508 RET + 00B45 9149 LD R20,Y+ + 00B46 9159 LD R21,Y+ + 00B47 9169 LD R22,Y+ + 00B48 9179 LD R23,Y+ + 00B49 9508 RET push_xgsetF00C: - 00A60 937A ST -Y,R23 - 00A61 936A ST -Y,R22 - 00A62 935A ST -Y,R21 - 00A63 934A ST -Y,R20 - 00A64 92BA ST -Y,R11 - 00A65 92AA ST -Y,R10 - 00A66 9508 RET + 00B4A 937A ST -Y,R23 + 00B4B 936A ST -Y,R22 + 00B4C 935A ST -Y,R21 + 00B4D 934A ST -Y,R20 + 00B4E 92BA ST -Y,R11 + 00B4F 92AA ST -Y,R10 + 00B50 9508 RET pop_xgsetF00C: - 00A67 90A9 LD R10,Y+ - 00A68 90B9 LD R11,Y+ - 00A69 9149 LD R20,Y+ - 00A6A 9159 LD R21,Y+ - 00A6B 9169 LD R22,Y+ - 00A6C 9179 LD R23,Y+ - 00A6D 9508 RET + 00B51 90A9 LD R10,Y+ + 00B52 90B9 LD R11,Y+ + 00B53 9149 LD R20,Y+ + 00B54 9159 LD R21,Y+ + 00B55 9169 LD R22,Y+ + 00B56 9179 LD R23,Y+ + 00B57 9508 RET push_xgset303C: - 00A6E 935A ST -Y,R21 - 00A6F 934A ST -Y,R20 - 00A70 92DA ST -Y,R13 - 00A71 92CA ST -Y,R12 - 00A72 92BA ST -Y,R11 - 00A73 92AA ST -Y,R10 - 00A74 9508 RET + 00B58 935A ST -Y,R21 + 00B59 934A ST -Y,R20 + 00B5A 92DA ST -Y,R13 + 00B5B 92CA ST -Y,R12 + 00B5C 92BA ST -Y,R11 + 00B5D 92AA ST -Y,R10 + 00B5E 9508 RET pop_xgset303C: - 00A75 90A9 LD R10,Y+ - 00A76 90B9 LD R11,Y+ - 00A77 90C9 LD R12,Y+ - 00A78 90D9 LD R13,Y+ - 00A79 9149 LD R20,Y+ - 00A7A 9159 LD R21,Y+ - 00A7B 9508 RET + 00B5F 90A9 LD R10,Y+ + 00B60 90B9 LD R11,Y+ + 00B61 90C9 LD R12,Y+ + 00B62 90D9 LD R13,Y+ + 00B63 9149 LD R20,Y+ + 00B64 9159 LD R21,Y+ + 00B65 9508 RET push_xgsetF03C: - 00A7C 937A ST -Y,R23 - 00A7D 936A ST -Y,R22 - 00A7E 935A ST -Y,R21 - 00A7F 934A ST -Y,R20 - 00A80 92DA ST -Y,R13 - 00A81 92CA ST -Y,R12 - 00A82 92BA ST -Y,R11 - 00A83 92AA ST -Y,R10 - 00A84 9508 RET + 00B66 937A ST -Y,R23 + 00B67 936A ST -Y,R22 + 00B68 935A ST -Y,R21 + 00B69 934A ST -Y,R20 + 00B6A 92DA ST -Y,R13 + 00B6B 92CA ST -Y,R12 + 00B6C 92BA ST -Y,R11 + 00B6D 92AA ST -Y,R10 + 00B6E 9508 RET pop_xgsetF03C: - 00A85 90A9 LD R10,Y+ - 00A86 90B9 LD R11,Y+ - 00A87 90C9 LD R12,Y+ - 00A88 90D9 LD R13,Y+ - 00A89 9149 LD R20,Y+ - 00A8A 9159 LD R21,Y+ - 00A8B 9169 LD R22,Y+ - 00A8C 9179 LD R23,Y+ - 00A8D 9508 RET + 00B6F 90A9 LD R10,Y+ + 00B70 90B9 LD R11,Y+ + 00B71 90C9 LD R12,Y+ + 00B72 90D9 LD R13,Y+ + 00B73 9149 LD R20,Y+ + 00B74 9159 LD R21,Y+ + 00B75 9169 LD R22,Y+ + 00B76 9179 LD R23,Y+ + 00B77 9508 RET xicallx: - 00A8E 920A ST -Y,R0 - 00A8F 95D8 ELPM - 00A90 920A ST -Y,R0 - 00A91 9631 ADIW R30,1 - 00A92 95D8 ELPM - 00A93 2DF0 MOV R31,R0 - 00A94 91E9 LD R30,Y+ - 00A95 9009 LD R0,Y+ - 00A96 9409 IJMP + 00B78 920A ST -Y,R0 + 00B79 95D8 ELPM + 00B7A 920A ST -Y,R0 + 00B7B 9631 ADIW R30,1 + 00B7C 95D8 ELPM + 00B7D 2DF0 MOV R31,R0 + 00B7E 91E9 LD R30,Y+ + 00B7F 9009 LD R0,Y+ + 00B80 9409 IJMP neg32: - 00A97 9500 COM R16 - 00A98 9510 COM R17 - 00A99 9520 COM R18 - 00A9A 9530 COM R19 - 00A9B 5F0F SUBI R16,0xFF - 00A9C 4F1F SBCI R17,0xFF - 00A9D 4F2F SBCI R18,0xFF - 00A9E 4F3F SBCI R19,0xFF - 00A9F 9508 RET + 00B81 9500 COM R16 + 00B82 9510 COM R17 + 00B83 9520 COM R18 + 00B84 9530 COM R19 + 00B85 5F0F SUBI R16,0xFF + 00B86 4F1F SBCI R17,0xFF + 00B87 4F2F SBCI R18,0xFF + 00B88 4F3F SBCI R19,0xFF + 00B89 9508 RET +asgnblk: + 00B8A 93AA ST -Y,R26 + 00B8B 93BA ST -Y,R27 + 00B8C 93EA ST -Y,R30 + 00B8D 93FA ST -Y,R31 + 00B8E 920A ST -Y,R0 + 00B8F 81AF LDD R26,Y+7 + 00B90 85B8 LDD R27,Y+8 + 00B91 81ED LDD R30,Y+5 + 00B92 81FE LDD R31,Y+6 + 00B93 3000 CPI R16,0 + 00B94 0701 CPC R16,R17 + 00B95 F029 BEQ 0x0B9B + 00B96 9001 LD R0,Z+ + 00B97 920D ST X+,R0 + 00B98 5001 SUBI R16,1 + 00B99 4010 SBCI R17,0 + 00B9A CFF8 RJMP 0x0B93 + 00B9B 9009 LD R0,Y+ + 00B9C 91F9 LD R31,Y+ + 00B9D 91E9 LD R30,Y+ + 00B9E 91B9 LD R27,Y+ + 00B9F 91A9 LD R26,Y+ + 00BA0 9624 ADIW R28,4 + 00BA1 9508 RET fpint: - 00AA0 924A ST -Y,R4 - 00AA1 925A ST -Y,R5 - 00AA2 926A ST -Y,R6 - 00AA3 938A ST -Y,R24 - 00AA4 940E 0B06 CALL unpacku - 00AA6 F111 BEQ 0x0AC9 - 00AA7 2055 TST R5 - 00AA8 F0E2 BMI 0x0AC5 - 00AA9 E18F LDI R24,0x1F - 00AAA 1648 CP R4,R24 - 00AAB F4C0 BCC 0x0AC4 - 00AAC E187 LDI R24,0x17 - 00AAD 1648 CP R4,R24 - 00AAE F0D1 BEQ 0x0AC9 - 00AAF F458 BCC 0x0ABB - 00AB0 9441 NEG R4 - 00AB1 EE89 LDI R24,0xE9 - 00AB2 1A48 SUB R4,R24 - 00AB3 C005 RJMP 0x0AB9 - 00AB4 9535 ASR R19 - 00AB5 9527 ROR R18 - 00AB6 9517 ROR R17 - 00AB7 9507 ROR R16 - 00AB8 944A DEC R4 - 00AB9 F7D1 BNE 0x0AB4 - 00ABA C00E RJMP 0x0AC9 - 00ABB E187 LDI R24,0x17 - 00ABC 1A48 SUB R4,R24 - 00ABD 0F00 LSL R16 - 00ABE 1F11 ROL R17 - 00ABF 1F22 ROL R18 - 00AC0 1F33 ROL R19 - 00AC1 944A DEC R4 - 00AC2 F7D1 BNE 0x0ABD - 00AC3 C005 RJMP 0x0AC9 - 00AC4 E73F LDI R19,0x7F - 00AC5 2F23 MOV R18,R19 - 00AC6 2F13 MOV R17,R19 - 00AC7 2F03 MOV R16,R19 - 00AC8 C004 RJMP 0x0ACD - 00AC9 2066 TST R6 - 00ACA F011 BEQ 0x0ACD - 00ACB 940E 0A97 CALL neg32 - 00ACD 9189 LD R24,Y+ - 00ACE 9069 LD R6,Y+ - 00ACF 9059 LD R5,Y+ - 00AD0 9049 LD R4,Y+ - 00AD1 9508 RET + 00BA2 924A ST -Y,R4 + 00BA3 925A ST -Y,R5 + 00BA4 926A ST -Y,R6 + 00BA5 938A ST -Y,R24 + 00BA6 940E 0C08 CALL unpacku + 00BA8 F111 BEQ 0x0BCB + 00BA9 2055 TST R5 + 00BAA F0E2 BMI 0x0BC7 + 00BAB E18F LDI R24,0x1F + 00BAC 1648 CP R4,R24 + 00BAD F4C0 BCC 0x0BC6 + 00BAE E187 LDI R24,0x17 + 00BAF 1648 CP R4,R24 + 00BB0 F0D1 BEQ 0x0BCB + 00BB1 F458 BCC 0x0BBD + 00BB2 9441 NEG R4 + 00BB3 EE89 LDI R24,0xE9 + 00BB4 1A48 SUB R4,R24 + 00BB5 C005 RJMP 0x0BBB + 00BB6 9535 ASR R19 + 00BB7 9527 ROR R18 + 00BB8 9517 ROR R17 + 00BB9 9507 ROR R16 + 00BBA 944A DEC R4 + 00BBB F7D1 BNE 0x0BB6 + 00BBC C00E RJMP 0x0BCB + 00BBD E187 LDI R24,0x17 + 00BBE 1A48 SUB R4,R24 + 00BBF 0F00 LSL R16 + 00BC0 1F11 ROL R17 + 00BC1 1F22 ROL R18 + 00BC2 1F33 ROL R19 + 00BC3 944A DEC R4 + 00BC4 F7D1 BNE 0x0BBF + 00BC5 C005 RJMP 0x0BCB + 00BC6 E73F LDI R19,0x7F + 00BC7 2F23 MOV R18,R19 + 00BC8 2F13 MOV R17,R19 + 00BC9 2F03 MOV R16,R19 + 00BCA C004 RJMP 0x0BCF + 00BCB 2066 TST R6 + 00BCC F011 BEQ 0x0BCF + 00BCD 940E 0B81 CALL neg32 + 00BCF 9189 LD R24,Y+ + 00BD0 9069 LD R6,Y+ + 00BD1 9059 LD R5,Y+ + 00BD2 9049 LD R4,Y+ + 00BD3 9508 RET uint2fp: - 00AD2 9468 BSET 6 - 00AD3 C001 RJMP 0x0AD5 + 00BD4 9468 BSET 6 + 00BD5 C001 RJMP 0x0BD7 int2fp: - 00AD4 94E8 BCLR 6 - 00AD5 2722 CLR R18 - 00AD6 2733 CLR R19 - 00AD7 F046 BRTS 0x0AE0 - 00AD8 FD17 SBRC R17,7 - 00AD9 9520 COM R18 - 00ADA FD17 SBRC R17,7 - 00ADB 9530 COM R19 - 00ADC C003 RJMP 0x0AE0 + 00BD6 94E8 BCLR 6 + 00BD7 2722 CLR R18 + 00BD8 2733 CLR R19 + 00BD9 F046 BRTS 0x0BE2 + 00BDA FD17 SBRC R17,7 + 00BDB 9520 COM R18 + 00BDC FD17 SBRC R17,7 + 00BDD 9530 COM R19 + 00BDE C003 RJMP 0x0BE2 ulong2fp: - 00ADD 9468 BSET 6 - 00ADE C001 RJMP 0x0AE0 + 00BDF 9468 BSET 6 + 00BE0 C001 RJMP 0x0BE2 long2fp: - 00ADF 94E8 BCLR 6 - 00AE0 924A ST -Y,R4 - 00AE1 925A ST -Y,R5 - 00AE2 926A ST -Y,R6 - 00AE3 938A ST -Y,R24 - 00AE4 E187 LDI R24,0x17 - 00AE5 2E48 MOV R4,R24 - 00AE6 2455 CLR R5 - 00AE7 2466 CLR R6 - 00AE8 F036 BRTS 0x0AEF - 00AE9 2333 TST R19 - 00AEA F422 BPL 0x0AEF - 00AEB 940E 0A97 CALL neg32 - 00AED E880 LDI R24,0x80 - 00AEE 2E68 MOV R6,R24 - 00AEF 940E 0B1F CALL normalize_and_pack - 00AF1 9189 LD R24,Y+ - 00AF2 9069 LD R6,Y+ - 00AF3 9059 LD R5,Y+ - 00AF4 9049 LD R4,Y+ - 00AF5 9508 RET + 00BE1 94E8 BCLR 6 + 00BE2 924A ST -Y,R4 + 00BE3 925A ST -Y,R5 + 00BE4 926A ST -Y,R6 + 00BE5 938A ST -Y,R24 + 00BE6 E187 LDI R24,0x17 + 00BE7 2E48 MOV R4,R24 + 00BE8 2455 CLR R5 + 00BE9 2466 CLR R6 + 00BEA F036 BRTS 0x0BF1 + 00BEB 2333 TST R19 + 00BEC F422 BPL 0x0BF1 + 00BED 940E 0B81 CALL neg32 + 00BEF E880 LDI R24,0x80 + 00BF0 2E68 MOV R6,R24 + 00BF1 940E 0C21 CALL normalize_and_pack + 00BF3 9189 LD R24,Y+ + 00BF4 9069 LD R6,Y+ + 00BF5 9059 LD R5,Y+ + 00BF6 9049 LD R4,Y+ + 00BF7 9508 RET unpacks: - 00AF6 D00F RCALL unpacku - 00AF7 F029 BEQ 0x0AFD - 00AF8 2066 TST R6 - 00AF9 F011 BEQ 0x0AFC - 00AFA 940E 0A97 CALL neg32 - 00AFC 9498 BCLR 1 - 00AFD 9508 RET + 00BF8 D00F RCALL unpacku + 00BF9 F029 BEQ 0x0BFF + 00BFA 2066 TST R6 + 00BFB F011 BEQ 0x0BFE + 00BFC 940E 0B81 CALL neg32 + 00BFE 9498 BCLR 1 + 00BFF 9508 RET tstR16_R19: - 00AFE 2300 TST R16 - 00AFF F429 BNE 0x0B05 - 00B00 2311 TST R17 - 00B01 F419 BNE 0x0B05 - 00B02 2322 TST R18 - 00B03 F409 BNE 0x0B05 - 00B04 2333 TST R19 - 00B05 9508 RET + 00C00 2300 TST R16 + 00C01 F429 BNE 0x0C07 + 00C02 2311 TST R17 + 00C03 F419 BNE 0x0C07 + 00C04 2322 TST R18 + 00C05 F409 BNE 0x0C07 + 00C06 2333 TST R19 + 00C07 9508 RET unpacku: - 00B06 DFF7 RCALL tstR16_R19 - 00B07 F099 BEQ 0x0B1B - 00B08 938A ST -Y,R24 - 00B09 2E63 MOV R6,R19 - 00B0A E880 LDI R24,0x80 - 00B0B 2268 AND R6,R24 - 00B0C 0F22 LSL R18 - 00B0D 1F33 ROL R19 - 00B0E 2E43 MOV R4,R19 - 00B0F E78F LDI R24,0x7F - 00B10 1A48 SUB R4,R24 - 00B11 2455 CLR R5 - 00B12 2788 CLR R24 - 00B13 0A58 SBC R5,R24 - 00B14 9526 LSR R18 - 00B15 E830 LDI R19,0x80 - 00B16 2B23 OR R18,R19 - 00B17 2733 CLR R19 - 00B18 9189 LD R24,Y+ - 00B19 9498 BCLR 1 - 00B1A 9508 RET - 00B1B 2444 CLR R4 - 00B1C 2455 CLR R5 - 00B1D 2466 CLR R6 - 00B1E 9508 RET + 00C08 DFF7 RCALL tstR16_R19 + 00C09 F099 BEQ 0x0C1D + 00C0A 938A ST -Y,R24 + 00C0B 2E63 MOV R6,R19 + 00C0C E880 LDI R24,0x80 + 00C0D 2268 AND R6,R24 + 00C0E 0F22 LSL R18 + 00C0F 1F33 ROL R19 + 00C10 2E43 MOV R4,R19 + 00C11 E78F LDI R24,0x7F + 00C12 1A48 SUB R4,R24 + 00C13 2455 CLR R5 + 00C14 2788 CLR R24 + 00C15 0A58 SBC R5,R24 + 00C16 9526 LSR R18 + 00C17 E830 LDI R19,0x80 + 00C18 2B23 OR R18,R19 + 00C19 2733 CLR R19 + 00C1A 9189 LD R24,Y+ + 00C1B 9498 BCLR 1 + 00C1C 9508 RET + 00C1D 2444 CLR R4 + 00C1E 2455 CLR R5 + 00C1F 2466 CLR R6 + 00C20 9508 RET normalize_and_pack: - 00B1F DFDE RCALL tstR16_R19 - 00B20 F409 BNE 0x0B22 - 00B21 9508 RET - 00B22 93AA ST -Y,R26 - 00B23 93BA ST -Y,R27 - 00B24 01D2 MOVW R26,R4 - 00B25 939A ST -Y,R25 - 00B26 938A ST -Y,R24 - 00B27 E78E LDI R24,0x7E - 00B28 E090 LDI R25,0 - 00B29 2333 TST R19 - 00B2A F049 BEQ 0x0B34 - 00B2B 9536 LSR R19 - 00B2C 9527 ROR R18 - 00B2D 9517 ROR R17 - 00B2E 9507 ROR R16 - 00B2F 17A8 CP R26,R24 - 00B30 07B9 CPC R27,R25 - 00B31 F4CC BGE 0x0B4B - 00B32 9611 ADIW R26,1 - 00B33 CFF5 RJMP 0x0B29 - 00B34 9580 COM R24 - 00B35 9590 COM R25 - 00B36 9601 ADIW R24,1 - 00B37 2322 TST R18 - 00B38 F0BA BMI 0x0B50 - 00B39 0F00 LSL R16 - 00B3A 1F11 ROL R17 - 00B3B 1F22 ROL R18 - 00B3C 17A8 CP R26,R24 - 00B3D 07B9 CPC R27,R25 - 00B3E F014 BLT 0x0B41 - 00B3F 9711 SBIW R26,1 - 00B40 CFF6 RJMP 0x0B37 - 00B41 2700 CLR R16 - 00B42 2711 CLR R17 - 00B43 2722 CLR R18 - 00B44 2733 CLR R19 - 00B45 9189 LD R24,Y+ - 00B46 9199 LD R25,Y+ - 00B47 012D MOVW R4,R26 - 00B48 91B9 LD R27,Y+ - 00B49 91A9 LD R26,Y+ - 00B4A 9508 RET - 00B4B 2733 CLR R19 - 00B4C EF0F LDI R16,0xFF - 00B4D 2F10 MOV R17,R16 - 00B4E E72F LDI R18,0x7F - 00B4F 2F32 MOV R19,R18 - 00B50 9189 LD R24,Y+ - 00B51 9199 LD R25,Y+ - 00B52 012D MOVW R4,R26 - 00B53 C002 RJMP 0x0B56 + 00C21 DFDE RCALL tstR16_R19 + 00C22 F409 BNE 0x0C24 + 00C23 9508 RET + 00C24 93AA ST -Y,R26 + 00C25 93BA ST -Y,R27 + 00C26 01D2 MOVW R26,R4 + 00C27 939A ST -Y,R25 + 00C28 938A ST -Y,R24 + 00C29 E78E LDI R24,0x7E + 00C2A E090 LDI R25,0 + 00C2B 2333 TST R19 + 00C2C F049 BEQ 0x0C36 + 00C2D 9536 LSR R19 + 00C2E 9527 ROR R18 + 00C2F 9517 ROR R17 + 00C30 9507 ROR R16 + 00C31 17A8 CP R26,R24 + 00C32 07B9 CPC R27,R25 + 00C33 F4CC BGE 0x0C4D + 00C34 9611 ADIW R26,1 + 00C35 CFF5 RJMP 0x0C2B + 00C36 9580 COM R24 + 00C37 9590 COM R25 + 00C38 9601 ADIW R24,1 + 00C39 2322 TST R18 + 00C3A F0BA BMI 0x0C52 + 00C3B 0F00 LSL R16 + 00C3C 1F11 ROL R17 + 00C3D 1F22 ROL R18 + 00C3E 17A8 CP R26,R24 + 00C3F 07B9 CPC R27,R25 + 00C40 F014 BLT 0x0C43 + 00C41 9711 SBIW R26,1 + 00C42 CFF6 RJMP 0x0C39 + 00C43 2700 CLR R16 + 00C44 2711 CLR R17 + 00C45 2722 CLR R18 + 00C46 2733 CLR R19 + 00C47 9189 LD R24,Y+ + 00C48 9199 LD R25,Y+ + 00C49 012D MOVW R4,R26 + 00C4A 91B9 LD R27,Y+ + 00C4B 91A9 LD R26,Y+ + 00C4C 9508 RET + 00C4D 2733 CLR R19 + 00C4E EF0F LDI R16,0xFF + 00C4F 2F10 MOV R17,R16 + 00C50 E72F LDI R18,0x7F + 00C51 2F32 MOV R19,R18 + 00C52 9189 LD R24,Y+ + 00C53 9199 LD R25,Y+ + 00C54 012D MOVW R4,R26 + 00C55 C002 RJMP 0x0C58 pack: - 00B54 93AA ST -Y,R26 - 00B55 93BA ST -Y,R27 - 00B56 DFA7 RCALL tstR16_R19 - 00B57 F049 BEQ 0x0B61 - 00B58 01D2 MOVW R26,R4 - 00B59 58A1 SUBI R26,0x81 - 00B5A 4FBF SBCI R27,0xFF - 00B5B 012D MOVW R4,R26 - 00B5C 2D34 MOV R19,R4 - 00B5D 0F22 LSL R18 - 00B5E 9536 LSR R19 - 00B5F 9527 ROR R18 - 00B60 2936 OR R19,R6 - 00B61 91B9 LD R27,Y+ - 00B62 91A9 LD R26,Y+ - 00B63 9508 RET + 00C56 93AA ST -Y,R26 + 00C57 93BA ST -Y,R27 + 00C58 DFA7 RCALL tstR16_R19 + 00C59 F049 BEQ 0x0C63 + 00C5A 01D2 MOVW R26,R4 + 00C5B 58A1 SUBI R26,0x81 + 00C5C 4FBF SBCI R27,0xFF + 00C5D 012D MOVW R4,R26 + 00C5E 2D34 MOV R19,R4 + 00C5F 0F22 LSL R18 + 00C60 9536 LSR R19 + 00C61 9527 ROR R18 + 00C62 2936 OR R19,R6 + 00C63 91B9 LD R27,Y+ + 00C64 91A9 LD R26,Y+ + 00C65 9508 RET saveFPRegs: - 00B64 924A ST -Y,R4 - 00B65 925A ST -Y,R5 - 00B66 926A ST -Y,R6 - 00B67 927A ST -Y,R7 - 00B68 928A ST -Y,R8 - 00B69 929A ST -Y,R9 - 00B6A 92AA ST -Y,R10 - 00B6B 92BA ST -Y,R11 - 00B6C 92CA ST -Y,R12 - 00B6D 92DA ST -Y,R13 - 00B6E 92EA ST -Y,R14 - 00B6F 92FA ST -Y,R15 - 00B70 938A ST -Y,R24 - 00B71 939A ST -Y,R25 - 00B72 9508 RET + 00C66 924A ST -Y,R4 + 00C67 925A ST -Y,R5 + 00C68 926A ST -Y,R6 + 00C69 927A ST -Y,R7 + 00C6A 928A ST -Y,R8 + 00C6B 929A ST -Y,R9 + 00C6C 92AA ST -Y,R10 + 00C6D 92BA ST -Y,R11 + 00C6E 92CA ST -Y,R12 + 00C6F 92DA ST -Y,R13 + 00C70 92EA ST -Y,R14 + 00C71 92FA ST -Y,R15 + 00C72 938A ST -Y,R24 + 00C73 939A ST -Y,R25 + 00C74 9508 RET restoreFPRegs: - 00B73 9199 LD R25,Y+ - 00B74 9189 LD R24,Y+ - 00B75 90F9 LD R15,Y+ - 00B76 90E9 LD R14,Y+ - 00B77 90D9 LD R13,Y+ - 00B78 90C9 LD R12,Y+ - 00B79 90B9 LD R11,Y+ - 00B7A 90A9 LD R10,Y+ - 00B7B 9099 LD R9,Y+ - 00B7C 9089 LD R8,Y+ - 00B7D 9079 LD R7,Y+ - 00B7E 9069 LD R6,Y+ - 00B7F 9059 LD R5,Y+ - 00B80 9049 LD R4,Y+ - 00B81 9508 RET + 00C75 9199 LD R25,Y+ + 00C76 9189 LD R24,Y+ + 00C77 90F9 LD R15,Y+ + 00C78 90E9 LD R14,Y+ + 00C79 90D9 LD R13,Y+ + 00C7A 90C9 LD R12,Y+ + 00C7B 90B9 LD R11,Y+ + 00C7C 90A9 LD R10,Y+ + 00C7D 9099 LD R9,Y+ + 00C7E 9089 LD R8,Y+ + 00C7F 9079 LD R7,Y+ + 00C80 9069 LD R6,Y+ + 00C81 9059 LD R5,Y+ + 00C82 9049 LD R4,Y+ + 00C83 9508 RET fpmule: - 00B82 940E 0B64 CALL saveFPRegs - 00B84 93AA ST -Y,R26 - 00B85 93BA ST -Y,R27 - 00B86 940E 0B06 CALL unpacku - 00B88 F1E1 BEQ 0x0BC5 - 00B89 2CE6 MOV R14,R6 - 00B8A 2CD5 MOV R13,R5 - 00B8B 2CC4 MOV R12,R4 - 00B8C 2EB3 MOV R11,R19 - 00B8D 2EA2 MOV R10,R18 - 00B8E 2E91 MOV R9,R17 - 00B8F 2E80 MOV R8,R16 - 00B90 8100 LD R16,Z - 00B91 8111 LDD R17,Z+1 - 00B92 8122 LDD R18,Z+2 - 00B93 8133 LDD R19,Z+3 - 00B94 940E 0B06 CALL unpacku - 00B96 F171 BEQ 0x0BC5 - 00B97 246E EOR R6,R14 - 00B98 0C4C ADD R4,R12 - 00B99 1C5D ADC R5,R13 - 00B9A E880 LDI R24,0x80 - 00B9B 1648 CP R4,R24 - 00B9C 0653 CPC R5,R19 - 00B9D F564 BGE 0x0BCA - 00B9E E881 LDI R24,0x81 - 00B9F 1648 CP R4,R24 - 00BA0 EF8F LDI R24,0xFF - 00BA1 0658 CPC R5,R24 - 00BA2 F16C BLT 0x0BD0 - 00BA3 9EA2 MUL R10,R18 - 00BA4 2DB1 MOV R27,R1 - 00BA5 2DA0 MOV R26,R0 - 00BA6 9E91 MUL R9,R17 - 00BA7 2D91 MOV R25,R1 - 00BA8 2D80 MOV R24,R0 - 00BA9 9EA0 MUL R10,R16 - 00BAA 0D80 ADD R24,R0 - 00BAB 1D91 ADC R25,R1 - 00BAC 1FA3 ADC R26,R19 - 00BAD 1FB3 ADC R27,R19 - 00BAE 9E82 MUL R8,R18 - 00BAF 0D80 ADD R24,R0 - 00BB0 1D91 ADC R25,R1 - 00BB1 1FA3 ADC R26,R19 - 00BB2 1FB3 ADC R27,R19 - 00BB3 9E92 MUL R9,R18 - 00BB4 0D90 ADD R25,R0 - 00BB5 1DA1 ADC R26,R1 - 00BB6 1FB3 ADC R27,R19 - 00BB7 9EA1 MUL R10,R17 - 00BB8 0D90 ADD R25,R0 - 00BB9 1DA1 ADC R26,R1 - 00BBA 1FB3 ADC R27,R19 - 00BBB 2F2B MOV R18,R27 - 00BBC 2F1A MOV R17,R26 - 00BBD 2F09 MOV R16,R25 - 00BBE 0F88 LSL R24 - 00BBF 1F00 ROL R16 - 00BC0 1F11 ROL R17 - 00BC1 1F22 ROL R18 - 00BC2 1F33 ROL R19 - 00BC3 940E 0B1F CALL normalize_and_pack - 00BC5 91B9 LD R27,Y+ - 00BC6 91A9 LD R26,Y+ - 00BC7 940E 0B73 CALL restoreFPRegs - 00BC9 9508 RET - 00BCA EF0F LDI R16,0xFF - 00BCB 2F10 MOV R17,R16 - 00BCC E72F LDI R18,0x7F - 00BCD E78F LDI R24,0x7F - 00BCE 2E48 MOV R4,R24 - 00BCF CFF5 RJMP 0x0BC5 - 00BD0 2700 CLR R16 - 00BD1 2F10 MOV R17,R16 - 00BD2 2F20 MOV R18,R16 - 00BD3 2F30 MOV R19,R16 - 00BD4 CFF0 RJMP 0x0BC5 + 00C84 940E 0C66 CALL saveFPRegs + 00C86 93AA ST -Y,R26 + 00C87 93BA ST -Y,R27 + 00C88 940E 0C08 CALL unpacku + 00C8A F1E1 BEQ 0x0CC7 + 00C8B 2CE6 MOV R14,R6 + 00C8C 2CD5 MOV R13,R5 + 00C8D 2CC4 MOV R12,R4 + 00C8E 2EB3 MOV R11,R19 + 00C8F 2EA2 MOV R10,R18 + 00C90 2E91 MOV R9,R17 + 00C91 2E80 MOV R8,R16 + 00C92 8100 LD R16,Z + 00C93 8111 LDD R17,Z+1 + 00C94 8122 LDD R18,Z+2 + 00C95 8133 LDD R19,Z+3 + 00C96 940E 0C08 CALL unpacku + 00C98 F171 BEQ 0x0CC7 + 00C99 246E EOR R6,R14 + 00C9A 0C4C ADD R4,R12 + 00C9B 1C5D ADC R5,R13 + 00C9C E880 LDI R24,0x80 + 00C9D 1648 CP R4,R24 + 00C9E 0653 CPC R5,R19 + 00C9F F564 BGE 0x0CCC + 00CA0 E881 LDI R24,0x81 + 00CA1 1648 CP R4,R24 + 00CA2 EF8F LDI R24,0xFF + 00CA3 0658 CPC R5,R24 + 00CA4 F16C BLT 0x0CD2 + 00CA5 9EA2 MUL R10,R18 + 00CA6 2DB1 MOV R27,R1 + 00CA7 2DA0 MOV R26,R0 + 00CA8 9E91 MUL R9,R17 + 00CA9 2D91 MOV R25,R1 + 00CAA 2D80 MOV R24,R0 + 00CAB 9EA0 MUL R10,R16 + 00CAC 0D80 ADD R24,R0 + 00CAD 1D91 ADC R25,R1 + 00CAE 1FA3 ADC R26,R19 + 00CAF 1FB3 ADC R27,R19 + 00CB0 9E82 MUL R8,R18 + 00CB1 0D80 ADD R24,R0 + 00CB2 1D91 ADC R25,R1 + 00CB3 1FA3 ADC R26,R19 + 00CB4 1FB3 ADC R27,R19 + 00CB5 9E92 MUL R9,R18 + 00CB6 0D90 ADD R25,R0 + 00CB7 1DA1 ADC R26,R1 + 00CB8 1FB3 ADC R27,R19 + 00CB9 9EA1 MUL R10,R17 + 00CBA 0D90 ADD R25,R0 + 00CBB 1DA1 ADC R26,R1 + 00CBC 1FB3 ADC R27,R19 + 00CBD 2F2B MOV R18,R27 + 00CBE 2F1A MOV R17,R26 + 00CBF 2F09 MOV R16,R25 + 00CC0 0F88 LSL R24 + 00CC1 1F00 ROL R16 + 00CC2 1F11 ROL R17 + 00CC3 1F22 ROL R18 + 00CC4 1F33 ROL R19 + 00CC5 940E 0C21 CALL normalize_and_pack + 00CC7 91B9 LD R27,Y+ + 00CC8 91A9 LD R26,Y+ + 00CC9 940E 0C75 CALL restoreFPRegs + 00CCB 9508 RET + 00CCC EF0F LDI R16,0xFF + 00CCD 2F10 MOV R17,R16 + 00CCE E72F LDI R18,0x7F + 00CCF E78F LDI R24,0x7F + 00CD0 2E48 MOV R4,R24 + 00CD1 CFF5 RJMP 0x0CC7 + 00CD2 2700 CLR R16 + 00CD3 2F10 MOV R17,R16 + 00CD4 2F20 MOV R18,R16 + 00CD5 2F30 MOV R19,R16 + 00CD6 CFF0 RJMP 0x0CC7 fpmule2: - 00BD5 93FA ST -Y,R31 - 00BD6 93EA ST -Y,R30 - 00BD7 2FEC MOV R30,R28 - 00BD8 2FFD MOV R31,R29 - 00BD9 9632 ADIW R30,2 - 00BDA 940E 0B82 CALL fpmule - 00BDC 91E9 LD R30,Y+ - 00BDD 91F9 LD R31,Y+ - 00BDE 9624 ADIW R28,4 - 00BDF 9508 RET + 00CD7 93FA ST -Y,R31 + 00CD8 93EA ST -Y,R30 + 00CD9 2FEC MOV R30,R28 + 00CDA 2FFD MOV R31,R29 + 00CDB 9632 ADIW R30,2 + 00CDC 940E 0C84 CALL fpmule + 00CDE 91E9 LD R30,Y+ + 00CDF 91F9 LD R31,Y+ + 00CE0 9624 ADIW R28,4 + 00CE1 9508 RET _itoa: - 00BE0 940E 0A01 CALL push_arg4 - 00BE2 940E 0A41 CALL push_xgsetF0FC - 00BE4 01A9 MOVW R20,R18 - 00BE5 84EE LDD R14,Y+14 - 00BE6 84FF LDD R15,Y+15 - 00BE7 015A MOVW R10,R20 - 00BE8 20AA TST R10 - 00BE9 F451 BNE 0x0BF4 - 00BEA 20BB TST R11 - 00BEB F441 BNE 0x0BF4 - 00BEC E380 LDI R24,0x30 - 00BED 85EA LDD R30,Y+10 - 00BEE 85FB LDD R31,Y+11 - 00BEF 8380 ST Z,R24 - 00BF0 2422 CLR R2 - 00BF1 8221 STD Z+1,R2 - 00BF2 018F MOVW R16,R30 - 00BF3 C053 RJMP 0x0C47 - 00BF4 3040 CPI R20,0 - 00BF5 E0E0 LDI R30,0 - 00BF6 075E CPC R21,R30 - 00BF7 F46C BGE 0x0C05 - 00BF8 01C7 MOVW R24,R14 - 00BF9 308A CPI R24,0xA - 00BFA E0E0 LDI R30,0 - 00BFB 079E CPC R25,R30 - 00BFC F441 BNE 0x0C05 - 00BFD 24CC CLR R12 - 00BFE 94C3 INC R12 - 00BFF 01C5 MOVW R24,R10 - 00C00 9580 COM R24 - 00C01 9590 COM R25 - 00C02 9601 ADIW R24,1 - 00C03 015C MOVW R10,R24 - 00C04 C001 RJMP 0x0C06 - 00C05 24CC CLR R12 - 00C06 856A LDD R22,Y+10 - 00C07 857B LDD R23,Y+11 - 00C08 0197 MOVW R18,R14 - 00C09 0185 MOVW R16,R10 - 00C0A 940E 0A06 CALL mod16u - 00C0C 01A8 MOVW R20,R16 - 00C0D E089 LDI R24,0x9 - 00C0E E090 LDI R25,0 - 00C0F 1780 CP R24,R16 - 00C10 0791 CPC R25,R17 - 00C11 F034 BLT 0x0C18 - 00C12 01CA MOVW R24,R20 - 00C13 96C0 ADIW R24,0x30 - 00C14 01FB MOVW R30,R22 - 00C15 9381 ST Z+,R24 - 00C16 01BF MOVW R22,R30 - 00C17 C006 RJMP 0x0C1E - 00C18 01CA MOVW R24,R20 - 00C19 5A89 SUBI R24,0xA9 - 00C1A 4F9F SBCI R25,0xFF - 00C1B 01FB MOVW R30,R22 - 00C1C 9381 ST Z+,R24 - 00C1D 01BF MOVW R22,R30 - 00C1E 0197 MOVW R18,R14 - 00C1F 0185 MOVW R16,R10 - 00C20 940E 0A08 CALL div16u - 00C22 0158 MOVW R10,R16 - 00C23 20AA TST R10 - 00C24 F719 BNE 0x0C08 - 00C25 20BB TST R11 - 00C26 F709 BNE 0x0C08 - 00C27 20CC TST R12 - 00C28 F021 BEQ 0x0C2D - 00C29 E28D LDI R24,0x2D - 00C2A 01FB MOVW R30,R22 - 00C2B 9381 ST Z+,R24 - 00C2C 01BF MOVW R22,R30 - 00C2D 012B MOVW R4,R22 - 00C2E 5061 SUBI R22,1 - 00C2F 4070 SBCI R23,0 - 00C30 2422 CLR R2 - 00C31 01F2 MOVW R30,R4 - 00C32 8220 ST Z,R2 - 00C33 84AA LDD R10,Y+10 - 00C34 84BB LDD R11,Y+11 - 00C35 C00C RJMP 0x0C42 - 00C36 01F5 MOVW R30,R10 - 00C37 80C0 LD R12,Z - 00C38 01FB MOVW R30,R22 - 00C39 8020 LD R2,Z - 00C3A 01F5 MOVW R30,R10 - 00C3B 9221 ST Z+,R2 - 00C3C 015F MOVW R10,R30 - 00C3D 011B MOVW R2,R22 - 00C3E 5061 SUBI R22,1 - 00C3F 4070 SBCI R23,0 - 00C40 01F1 MOVW R30,R2 - 00C41 82C0 ST Z,R12 - 00C42 16A6 CP R10,R22 - 00C43 06B7 CPC R11,R23 - 00C44 F388 BCS 0x0C36 - 00C45 850A LDD R16,Y+10 - 00C46 851B LDD R17,Y+11 - 00C47 940E 0A36 CALL pop_xgsetF0FC - 00C49 9624 ADIW R28,4 - 00C4A 9508 RET + 00CE2 940E 0AEB CALL push_arg4 + 00CE4 940E 0B2B CALL push_xgsetF0FC + 00CE6 01A9 MOVW R20,R18 + 00CE7 84EE LDD R14,Y+14 + 00CE8 84FF LDD R15,Y+15 + 00CE9 015A MOVW R10,R20 + 00CEA 20AA TST R10 + 00CEB F451 BNE 0x0CF6 + 00CEC 20BB TST R11 + 00CED F441 BNE 0x0CF6 + 00CEE E380 LDI R24,0x30 + 00CEF 85EA LDD R30,Y+10 + 00CF0 85FB LDD R31,Y+11 + 00CF1 8380 ST Z,R24 + 00CF2 2422 CLR R2 + 00CF3 8221 STD Z+1,R2 + 00CF4 018F MOVW R16,R30 + 00CF5 C053 RJMP 0x0D49 + 00CF6 3040 CPI R20,0 + 00CF7 E0E0 LDI R30,0 + 00CF8 075E CPC R21,R30 + 00CF9 F46C BGE 0x0D07 + 00CFA 01C7 MOVW R24,R14 + 00CFB 308A CPI R24,0xA + 00CFC E0E0 LDI R30,0 + 00CFD 079E CPC R25,R30 + 00CFE F441 BNE 0x0D07 + 00CFF 24CC CLR R12 + 00D00 94C3 INC R12 + 00D01 01C5 MOVW R24,R10 + 00D02 9580 COM R24 + 00D03 9590 COM R25 + 00D04 9601 ADIW R24,1 + 00D05 015C MOVW R10,R24 + 00D06 C001 RJMP 0x0D08 + 00D07 24CC CLR R12 + 00D08 856A LDD R22,Y+10 + 00D09 857B LDD R23,Y+11 + 00D0A 0197 MOVW R18,R14 + 00D0B 0185 MOVW R16,R10 + 00D0C 940E 0AF0 CALL mod16u + 00D0E 01A8 MOVW R20,R16 + 00D0F E089 LDI R24,0x9 + 00D10 E090 LDI R25,0 + 00D11 1780 CP R24,R16 + 00D12 0791 CPC R25,R17 + 00D13 F034 BLT 0x0D1A + 00D14 01CA MOVW R24,R20 + 00D15 96C0 ADIW R24,0x30 + 00D16 01FB MOVW R30,R22 + 00D17 9381 ST Z+,R24 + 00D18 01BF MOVW R22,R30 + 00D19 C006 RJMP 0x0D20 + 00D1A 01CA MOVW R24,R20 + 00D1B 5A89 SUBI R24,0xA9 + 00D1C 4F9F SBCI R25,0xFF + 00D1D 01FB MOVW R30,R22 + 00D1E 9381 ST Z+,R24 + 00D1F 01BF MOVW R22,R30 + 00D20 0197 MOVW R18,R14 + 00D21 0185 MOVW R16,R10 + 00D22 940E 0AF2 CALL div16u + 00D24 0158 MOVW R10,R16 + 00D25 20AA TST R10 + 00D26 F719 BNE 0x0D0A + 00D27 20BB TST R11 + 00D28 F709 BNE 0x0D0A + 00D29 20CC TST R12 + 00D2A F021 BEQ 0x0D2F + 00D2B E28D LDI R24,0x2D + 00D2C 01FB MOVW R30,R22 + 00D2D 9381 ST Z+,R24 + 00D2E 01BF MOVW R22,R30 + 00D2F 012B MOVW R4,R22 + 00D30 5061 SUBI R22,1 + 00D31 4070 SBCI R23,0 + 00D32 2422 CLR R2 + 00D33 01F2 MOVW R30,R4 + 00D34 8220 ST Z,R2 + 00D35 84AA LDD R10,Y+10 + 00D36 84BB LDD R11,Y+11 + 00D37 C00C RJMP 0x0D44 + 00D38 01F5 MOVW R30,R10 + 00D39 80C0 LD R12,Z + 00D3A 01FB MOVW R30,R22 + 00D3B 8020 LD R2,Z + 00D3C 01F5 MOVW R30,R10 + 00D3D 9221 ST Z+,R2 + 00D3E 015F MOVW R10,R30 + 00D3F 011B MOVW R2,R22 + 00D40 5061 SUBI R22,1 + 00D41 4070 SBCI R23,0 + 00D42 01F1 MOVW R30,R2 + 00D43 82C0 ST Z,R12 + 00D44 16A6 CP R10,R22 + 00D45 06B7 CPC R11,R23 + 00D46 F388 BCS 0x0D38 + 00D47 850A LDD R16,Y+10 + 00D48 851B LDD R17,Y+11 + 00D49 940E 0B20 CALL pop_xgsetF0FC + 00D4B 9624 ADIW R28,4 + 00D4C 9508 RET _utoa: - 00C4B 940E 0A41 CALL push_xgsetF0FC - 00C4D 0169 MOVW R12,R18 - 00C4E 0158 MOVW R10,R16 - 00C4F 84EA LDD R14,Y+10 - 00C50 84FB LDD R15,Y+11 - 00C51 01A5 MOVW R20,R10 - 00C52 0197 MOVW R18,R14 - 00C53 0186 MOVW R16,R12 - 00C54 940E 0A06 CALL mod16u - 00C56 01B8 MOVW R22,R16 - 00C57 E089 LDI R24,0x9 - 00C58 E090 LDI R25,0 - 00C59 1780 CP R24,R16 - 00C5A 0791 CPC R25,R17 - 00C5B F034 BLT 0x0C62 - 00C5C 01CB MOVW R24,R22 - 00C5D 96C0 ADIW R24,0x30 - 00C5E 01FA MOVW R30,R20 - 00C5F 9381 ST Z+,R24 - 00C60 01AF MOVW R20,R30 - 00C61 C006 RJMP 0x0C68 - 00C62 01CB MOVW R24,R22 - 00C63 5A89 SUBI R24,0xA9 - 00C64 4F9F SBCI R25,0xFF - 00C65 01FA MOVW R30,R20 - 00C66 9381 ST Z+,R24 - 00C67 01AF MOVW R20,R30 - 00C68 0197 MOVW R18,R14 - 00C69 0186 MOVW R16,R12 - 00C6A 940E 0A08 CALL div16u - 00C6C 0168 MOVW R12,R16 - 00C6D 20CC TST R12 - 00C6E F719 BNE 0x0C52 - 00C6F 20DD TST R13 - 00C70 F709 BNE 0x0C52 - 00C71 012A MOVW R4,R20 - 00C72 5041 SUBI R20,1 - 00C73 4050 SBCI R21,0 - 00C74 2422 CLR R2 - 00C75 01F2 MOVW R30,R4 - 00C76 8220 ST Z,R2 - 00C77 0165 MOVW R12,R10 - 00C78 C00C RJMP 0x0C85 - 00C79 01F6 MOVW R30,R12 - 00C7A 80E0 LD R14,Z - 00C7B 01FA MOVW R30,R20 - 00C7C 8020 LD R2,Z - 00C7D 01F6 MOVW R30,R12 - 00C7E 9221 ST Z+,R2 - 00C7F 016F MOVW R12,R30 - 00C80 011A MOVW R2,R20 - 00C81 5041 SUBI R20,1 - 00C82 4050 SBCI R21,0 - 00C83 01F1 MOVW R30,R2 - 00C84 82E0 ST Z,R14 - 00C85 16C4 CP R12,R20 - 00C86 06D5 CPC R13,R21 - 00C87 F388 BCS 0x0C79 - 00C88 0185 MOVW R16,R10 - 00C89 940C 0A36 JMP pop_xgsetF0FC + 00D4D 940E 0B2B CALL push_xgsetF0FC + 00D4F 0169 MOVW R12,R18 + 00D50 0158 MOVW R10,R16 + 00D51 84EA LDD R14,Y+10 + 00D52 84FB LDD R15,Y+11 + 00D53 01A5 MOVW R20,R10 + 00D54 0197 MOVW R18,R14 + 00D55 0186 MOVW R16,R12 + 00D56 940E 0AF0 CALL mod16u + 00D58 01B8 MOVW R22,R16 + 00D59 E089 LDI R24,0x9 + 00D5A E090 LDI R25,0 + 00D5B 1780 CP R24,R16 + 00D5C 0791 CPC R25,R17 + 00D5D F034 BLT 0x0D64 + 00D5E 01CB MOVW R24,R22 + 00D5F 96C0 ADIW R24,0x30 + 00D60 01FA MOVW R30,R20 + 00D61 9381 ST Z+,R24 + 00D62 01AF MOVW R20,R30 + 00D63 C006 RJMP 0x0D6A + 00D64 01CB MOVW R24,R22 + 00D65 5A89 SUBI R24,0xA9 + 00D66 4F9F SBCI R25,0xFF + 00D67 01FA MOVW R30,R20 + 00D68 9381 ST Z+,R24 + 00D69 01AF MOVW R20,R30 + 00D6A 0197 MOVW R18,R14 + 00D6B 0186 MOVW R16,R12 + 00D6C 940E 0AF2 CALL div16u + 00D6E 0168 MOVW R12,R16 + 00D6F 20CC TST R12 + 00D70 F719 BNE 0x0D54 + 00D71 20DD TST R13 + 00D72 F709 BNE 0x0D54 + 00D73 012A MOVW R4,R20 + 00D74 5041 SUBI R20,1 + 00D75 4050 SBCI R21,0 + 00D76 2422 CLR R2 + 00D77 01F2 MOVW R30,R4 + 00D78 8220 ST Z,R2 + 00D79 0165 MOVW R12,R10 + 00D7A C00C RJMP 0x0D87 + 00D7B 01F6 MOVW R30,R12 + 00D7C 80E0 LD R14,Z + 00D7D 01FA MOVW R30,R20 + 00D7E 8020 LD R2,Z + 00D7F 01F6 MOVW R30,R12 + 00D80 9221 ST Z+,R2 + 00D81 016F MOVW R12,R30 + 00D82 011A MOVW R2,R20 + 00D83 5041 SUBI R20,1 + 00D84 4050 SBCI R21,0 + 00D85 01F1 MOVW R30,R2 + 00D86 82E0 ST Z,R14 + 00D87 16C4 CP R12,R20 + 00D88 06D5 CPC R13,R21 + 00D89 F388 BCS 0x0D7B + 00D8A 0185 MOVW R16,R10 + 00D8B 940C 0B20 JMP pop_xgsetF0FC _islower: - 00C8B E983 LDI R24,0x93 - 00C8C E090 LDI R25,0 - 00C8D 01F8 MOVW R30,R16 - 00C8E 0FE8 ADD R30,R24 - 00C8F 1FF9 ADC R31,R25 - 00C90 9106 ELPM R16,Z - 00C91 2711 CLR R17 - 00C92 7002 ANDI R16,2 - 00C93 7010 ANDI R17,0 - 00C94 9508 RET + 00D8D E983 LDI R24,0x93 + 00D8E E090 LDI R25,0 + 00D8F 01F8 MOVW R30,R16 + 00D90 0FE8 ADD R30,R24 + 00D91 1FF9 ADC R31,R25 + 00D92 9106 ELPM R16,Z + 00D93 2711 CLR R17 + 00D94 7002 ANDI R16,2 + 00D95 7010 ANDI R17,0 + 00D96 9508 RET _toupper: - 00C95 934A ST -Y,R20 - 00C96 935A ST -Y,R21 - 00C97 01A8 MOVW R20,R16 - 00C98 018A MOVW R16,R20 - 00C99 940E 0C8B CALL _islower - 00C9B 3000 CPI R16,0 - 00C9C 0701 CPC R16,R17 - 00C9D F031 BEQ 0x0CA4 - 00C9E 018A MOVW R16,R20 - 00C9F 5601 SUBI R16,0x61 - 00CA0 4010 SBCI R17,0 - 00CA1 5B0F SUBI R16,0xBF - 00CA2 4F1F SBCI R17,0xFF - 00CA3 C001 RJMP 0x0CA5 - 00CA4 018A MOVW R16,R20 - 00CA5 9159 LD R21,Y+ - 00CA6 9149 LD R20,Y+ - 00CA7 9508 RET + 00D97 934A ST -Y,R20 + 00D98 935A ST -Y,R21 + 00D99 01A8 MOVW R20,R16 + 00D9A 018A MOVW R16,R20 + 00D9B 940E 0D8D CALL _islower + 00D9D 3000 CPI R16,0 + 00D9E 0701 CPC R16,R17 + 00D9F F031 BEQ 0x0DA6 + 00DA0 018A MOVW R16,R20 + 00DA1 5601 SUBI R16,0x61 + 00DA2 4010 SBCI R17,0 + 00DA3 5B0F SUBI R16,0xBF + 00DA4 4F1F SBCI R17,0xFF + 00DA5 C001 RJMP 0x0DA7 + 00DA6 018A MOVW R16,R20 + 00DA7 9159 LD R21,Y+ + 00DA8 9149 LD R20,Y+ + 00DA9 9508 RET __print: - 00CA8 940E 0A01 CALL push_arg4 - 00CAA 940E 0A41 CALL push_xgsetF0FC - 00CAC 9724 SBIW R28,4 - 00CAD 896A LDD R22,Y+18 - 00CAE 897B LDD R23,Y+19 - 00CAF 2744 CLR R20 - 00CB0 2755 CLR R21 - 00CB1 C137 RJMP 0x0DE9 - 00CB2 89E8 LDD R30,Y+16 - 00CB3 89F9 LDD R31,Y+17 - 00CB4 8180 LD R24,Z - 00CB5 3285 CPI R24,0x25 - 00CB6 F041 BEQ 0x0CBF - 00CB7 8100 LD R16,Z - 00CB8 85EE LDD R30,Y+14 - 00CB9 85FF LDD R31,Y+15 - 00CBA 940E 0A8E CALL xicallx - 00CBC 5F4F SUBI R20,0xFF - 00CBD 4F5F SBCI R21,0xFF - 00CBE C125 RJMP 0x0DE4 - 00CBF E388 LDI R24,0x38 - 00CC0 E095 LDI R25,5 - 00CC1 015C MOVW R10,R24 - 00CC2 E280 LDI R24,0x20 - 00CC3 2EC8 MOV R12,R24 - 00CC4 8988 LDD R24,Y+16 - 00CC5 8999 LDD R25,Y+17 - 00CC6 9601 ADIW R24,1 - 00CC7 8B99 STD Y+17,R25 - 00CC8 8B88 STD Y+16,R24 - 00CC9 01FC MOVW R30,R24 - 00CCA 80E0 LD R14,Z - 00CCB 24FF CLR R15 - 00CCC 01C7 MOVW R24,R14 - 00CCD 3588 CPI R24,0x58 - 00CCE E0E0 LDI R30,0 - 00CCF 079E CPC R25,R30 - 00CD0 F409 BNE 0x0CD2 - 00CD1 C065 RJMP 0x0D37 - 00CD2 E588 LDI R24,0x58 - 00CD3 158E CP R24,R14 - 00CD4 059F CPC R25,R15 - 00CD5 F094 BLT 0x0CE8 - 00CD6 01C7 MOVW R24,R14 - 00CD7 3485 CPI R24,0x45 - 00CD8 E0E0 LDI R30,0 - 00CD9 079E CPC R25,R30 - 00CDA F409 BNE 0x0CDC - 00CDB C104 RJMP 0x0DE0 - 00CDC 3485 CPI R24,0x45 - 00CDD E0E0 LDI R30,0 - 00CDE 079E CPC R25,R30 - 00CDF F40C BGE 0x0CE1 - 00CE0 C03D RJMP 0x0D1E - 00CE1 01C7 MOVW R24,R14 - 00CE2 3583 CPI R24,0x53 - 00CE3 E0E0 LDI R30,0 - 00CE4 079E CPC R25,R30 - 00CE5 F409 BNE 0x0CE7 - 00CE6 C0AF RJMP 0x0D96 - 00CE7 C036 RJMP 0x0D1E - 00CE8 01C7 MOVW R24,R14 - 00CE9 3683 CPI R24,0x63 - 00CEA E0E0 LDI R30,0 - 00CEB 079E CPC R25,R30 - 00CEC F409 BNE 0x0CEE - 00CED C099 RJMP 0x0D87 - 00CEE 3684 CPI R24,0x64 - 00CEF E0E0 LDI R30,0 - 00CF0 079E CPC R25,R30 - 00CF1 F409 BNE 0x0CF3 - 00CF2 C035 RJMP 0x0D28 - 00CF3 3685 CPI R24,0x65 - 00CF4 E0E0 LDI R30,0 - 00CF5 079E CPC R25,R30 - 00CF6 F409 BNE 0x0CF8 - 00CF7 C0E8 RJMP 0x0DE0 - 00CF8 3686 CPI R24,0x66 - 00CF9 E0E0 LDI R30,0 - 00CFA 079E CPC R25,R30 - 00CFB F409 BNE 0x0CFD - 00CFC C0E3 RJMP 0x0DE0 - 00CFD 3689 CPI R24,0x69 - 00CFE E0E0 LDI R30,0 - 00CFF 079E CPC R25,R30 - 00D00 F139 BEQ 0x0D28 - 00D01 368F CPI R24,0x6F - 00D02 E0E0 LDI R30,0 - 00D03 079E CPC R25,R30 - 00D04 F409 BNE 0x0D06 - 00D05 C031 RJMP 0x0D37 - 00D06 3780 CPI R24,0x70 - 00D07 E0E0 LDI R30,0 - 00D08 079E CPC R25,R30 - 00D09 F409 BNE 0x0D0B - 00D0A C02C RJMP 0x0D37 - 00D0B 3683 CPI R24,0x63 - 00D0C E0E0 LDI R30,0 - 00D0D 079E CPC R25,R30 - 00D0E F07C BLT 0x0D1E - 00D0F 01C7 MOVW R24,R14 - 00D10 3783 CPI R24,0x73 - 00D11 E0E0 LDI R30,0 - 00D12 079E CPC R25,R30 - 00D13 F409 BNE 0x0D15 - 00D14 C0A2 RJMP 0x0DB7 - 00D15 3785 CPI R24,0x75 - 00D16 E0E0 LDI R30,0 - 00D17 079E CPC R25,R30 - 00D18 F0F1 BEQ 0x0D37 - 00D19 3788 CPI R24,0x78 - 00D1A E0E0 LDI R30,0 - 00D1B 079E CPC R25,R30 - 00D1C F0D1 BEQ 0x0D37 - 00D1D C000 RJMP 0x0D1E - 00D1E 89E8 LDD R30,Y+16 - 00D1F 89F9 LDD R31,Y+17 - 00D20 8100 LD R16,Z - 00D21 85EE LDD R30,Y+14 - 00D22 85FF LDD R31,Y+15 - 00D23 940E 0A8E CALL xicallx - 00D25 5F4F SUBI R20,0xFF - 00D26 4F5F SBCI R21,0xFF - 00D27 C0BC RJMP 0x0DE4 - 00D28 5F6E SUBI R22,0xFE - 00D29 4F7F SBCI R23,0xFF - 00D2A 01FB MOVW R30,R22 - 00D2B 9732 SBIW R30,2 - 00D2C 80E0 LD R14,Z - 00D2D 80F1 LDD R15,Z+1 - 00D2E E08A LDI R24,0xA - 00D2F E090 LDI R25,0 - 00D30 8399 STD Y+1,R25 - 00D31 8388 ST Y,R24 - 00D32 0197 MOVW R18,R14 - 00D33 0185 MOVW R16,R10 - 00D34 940E 0BE0 CALL _itoa - 00D36 C04C RJMP 0x0D83 - 00D37 5F6E SUBI R22,0xFE - 00D38 4F7F SBCI R23,0xFF - 00D39 01FB MOVW R30,R22 - 00D3A 9732 SBIW R30,2 - 00D3B 80E0 LD R14,Z - 00D3C 80F1 LDD R15,Z+1 - 00D3D 89E8 LDD R30,Y+16 - 00D3E 89F9 LDD R31,Y+17 - 00D3F 8180 LD R24,Z - 00D40 3785 CPI R24,0x75 - 00D41 F449 BNE 0x0D4B - 00D42 E08A LDI R24,0xA - 00D43 E090 LDI R25,0 - 00D44 8399 STD Y+1,R25 - 00D45 8388 ST Y,R24 - 00D46 0197 MOVW R18,R14 - 00D47 0185 MOVW R16,R10 - 00D48 940E 0C4B CALL _utoa - 00D4A C038 RJMP 0x0D83 - 00D4B 89E8 LDD R30,Y+16 - 00D4C 89F9 LDD R31,Y+17 - 00D4D 8180 LD R24,Z - 00D4E 368F CPI R24,0x6F - 00D4F F449 BNE 0x0D59 - 00D50 E088 LDI R24,0x8 - 00D51 E090 LDI R25,0 - 00D52 8399 STD Y+1,R25 - 00D53 8388 ST Y,R24 - 00D54 0197 MOVW R18,R14 - 00D55 0185 MOVW R16,R10 - 00D56 940E 0C4B CALL _utoa - 00D58 C02A RJMP 0x0D83 - 00D59 89E8 LDD R30,Y+16 - 00D5A 89F9 LDD R31,Y+17 - 00D5B 8180 LD R24,Z - 00D5C 3780 CPI R24,0x70 - 00D5D F431 BNE 0x0D64 - 00D5E E380 LDI R24,0x30 - 00D5F 01F5 MOVW R30,R10 - 00D60 9381 ST Z+,R24 - 00D61 E788 LDI R24,0x78 - 00D62 9381 ST Z+,R24 - 00D63 015F MOVW R10,R30 - 00D64 E180 LDI R24,0x10 - 00D65 E090 LDI R25,0 - 00D66 8399 STD Y+1,R25 - 00D67 8388 ST Y,R24 - 00D68 0197 MOVW R18,R14 - 00D69 0185 MOVW R16,R10 - 00D6A 940E 0C4B CALL _utoa - 00D6C 89E8 LDD R30,Y+16 - 00D6D 89F9 LDD R31,Y+17 - 00D6E 8180 LD R24,Z - 00D6F 3588 CPI R24,0x58 - 00D70 F491 BNE 0x0D83 - 00D71 E388 LDI R24,0x38 - 00D72 E095 LDI R25,5 - 00D73 015C MOVW R10,R24 - 00D74 C00A RJMP 0x0D7F - 00D75 01F5 MOVW R30,R10 - 00D76 8100 LD R16,Z - 00D77 2711 CLR R17 - 00D78 940E 0C95 CALL _toupper - 00D7A 01F5 MOVW R30,R10 - 00D7B 8300 ST Z,R16 - 00D7C 01C5 MOVW R24,R10 - 00D7D 9601 ADIW R24,1 - 00D7E 015C MOVW R10,R24 - 00D7F 01F5 MOVW R30,R10 - 00D80 8020 LD R2,Z - 00D81 2022 TST R2 - 00D82 F791 BNE 0x0D75 - 00D83 E388 LDI R24,0x38 - 00D84 E095 LDI R25,5 - 00D85 015C MOVW R10,R24 - 00D86 C03E RJMP 0x0DC5 - 00D87 5F6E SUBI R22,0xFE - 00D88 4F7F SBCI R23,0xFF - 00D89 01FB MOVW R30,R22 - 00D8A 9732 SBIW R30,2 - 00D8B 8020 LD R2,Z - 00D8C 8031 LDD R3,Z+1 - 00D8D 822A STD Y+2,R2 - 00D8E 2D02 MOV R16,R2 - 00D8F 85EE LDD R30,Y+14 - 00D90 85FF LDD R31,Y+15 - 00D91 940E 0A8E CALL xicallx - 00D93 5F4F SUBI R20,0xFF - 00D94 4F5F SBCI R21,0xFF - 00D95 C04E RJMP 0x0DE4 - 00D96 5F6E SUBI R22,0xFE - 00D97 4F7F SBCI R23,0xFF - 00D98 01FB MOVW R30,R22 - 00D99 9732 SBIW R30,2 - 00D9A 80E0 LD R14,Z - 00D9B 80F1 LDD R15,Z+1 - 00D9C 2D8C MOV R24,R12 - 00D9D 328D CPI R24,0x2D - 00D9E F499 BNE 0x0DB2 - 00D9F E20D LDI R16,0x2D - 00DA0 85EE LDD R30,Y+14 - 00DA1 85FF LDD R31,Y+15 - 00DA2 940E 0A8E CALL xicallx - 00DA4 5F4F SUBI R20,0xFF - 00DA5 4F5F SBCI R21,0xFF - 00DA6 C00B RJMP 0x0DB2 - 00DA7 01F7 MOVW R30,R14 - 00DA8 9106 ELPM R16,Z - 00DA9 85EE LDD R30,Y+14 - 00DAA 85FF LDD R31,Y+15 - 00DAB 940E 0A8E CALL xicallx - 00DAD 5F4F SUBI R20,0xFF - 00DAE 4F5F SBCI R21,0xFF - 00DAF 01C7 MOVW R24,R14 - 00DB0 9601 ADIW R24,1 - 00DB1 017C MOVW R14,R24 - 00DB2 01F7 MOVW R30,R14 - 00DB3 9026 ELPM R2,Z - 00DB4 2022 TST R2 - 00DB5 F789 BNE 0x0DA7 - 00DB6 C02D RJMP 0x0DE4 - 00DB7 5F6E SUBI R22,0xFE - 00DB8 4F7F SBCI R23,0xFF - 00DB9 01FB MOVW R30,R22 - 00DBA 9732 SBIW R30,2 - 00DBB 80A0 LD R10,Z - 00DBC 80B1 LDD R11,Z+1 - 00DBD 20AA TST R10 - 00DBE F431 BNE 0x0DC5 - 00DBF 20BB TST R11 - 00DC0 F421 BNE 0x0DC5 - 00DC1 E983 LDI R24,0x93 - 00DC2 E091 LDI R25,1 - 00DC3 017C MOVW R14,R24 - 00DC4 CFD7 RJMP 0x0D9C - 00DC5 2D8C MOV R24,R12 - 00DC6 328D CPI R24,0x2D - 00DC7 F499 BNE 0x0DDB - 00DC8 E20D LDI R16,0x2D - 00DC9 85EE LDD R30,Y+14 - 00DCA 85FF LDD R31,Y+15 - 00DCB 940E 0A8E CALL xicallx - 00DCD 5F4F SUBI R20,0xFF - 00DCE 4F5F SBCI R21,0xFF - 00DCF C00B RJMP 0x0DDB - 00DD0 01F5 MOVW R30,R10 - 00DD1 8100 LD R16,Z - 00DD2 85EE LDD R30,Y+14 - 00DD3 85FF LDD R31,Y+15 - 00DD4 940E 0A8E CALL xicallx - 00DD6 5F4F SUBI R20,0xFF - 00DD7 4F5F SBCI R21,0xFF - 00DD8 01C5 MOVW R24,R10 - 00DD9 9601 ADIW R24,1 - 00DDA 015C MOVW R10,R24 - 00DDB 01F5 MOVW R30,R10 - 00DDC 8020 LD R2,Z - 00DDD 2022 TST R2 - 00DDE F789 BNE 0x0DD0 - 00DDF C004 RJMP 0x0DE4 - 00DE0 EA85 LDI R24,0xA5 - 00DE1 E091 LDI R25,1 - 00DE2 017C MOVW R14,R24 - 00DE3 CFB8 RJMP 0x0D9C - 00DE4 8988 LDD R24,Y+16 - 00DE5 8999 LDD R25,Y+17 - 00DE6 9601 ADIW R24,1 - 00DE7 8B99 STD Y+17,R25 - 00DE8 8B88 STD Y+16,R24 - 00DE9 89E8 LDD R30,Y+16 - 00DEA 89F9 LDD R31,Y+17 - 00DEB 8020 LD R2,Z - 00DEC 2022 TST R2 - 00DED F009 BEQ 0x0DEF - 00DEE CEC3 RJMP 0x0CB2 - 00DEF 018A MOVW R16,R20 - 00DF0 9624 ADIW R28,4 - 00DF1 940E 0A36 CALL pop_xgsetF0FC - 00DF3 9624 ADIW R28,4 - 00DF4 9508 RET + 00DAA 940E 0AEB CALL push_arg4 + 00DAC 940E 0B2B CALL push_xgsetF0FC + 00DAE 9724 SBIW R28,4 + 00DAF 896A LDD R22,Y+18 + 00DB0 897B LDD R23,Y+19 + 00DB1 2744 CLR R20 + 00DB2 2755 CLR R21 + 00DB3 C137 RJMP 0x0EEB + 00DB4 89E8 LDD R30,Y+16 + 00DB5 89F9 LDD R31,Y+17 + 00DB6 8180 LD R24,Z + 00DB7 3285 CPI R24,0x25 + 00DB8 F041 BEQ 0x0DC1 + 00DB9 8100 LD R16,Z + 00DBA 85EE LDD R30,Y+14 + 00DBB 85FF LDD R31,Y+15 + 00DBC 940E 0B78 CALL xicallx + 00DBE 5F4F SUBI R20,0xFF + 00DBF 4F5F SBCI R21,0xFF + 00DC0 C125 RJMP 0x0EE6 + 00DC1 E680 LDI R24,0x60 + 00DC2 E095 LDI R25,5 + 00DC3 015C MOVW R10,R24 + 00DC4 E280 LDI R24,0x20 + 00DC5 2EC8 MOV R12,R24 + 00DC6 8988 LDD R24,Y+16 + 00DC7 8999 LDD R25,Y+17 + 00DC8 9601 ADIW R24,1 + 00DC9 8B99 STD Y+17,R25 + 00DCA 8B88 STD Y+16,R24 + 00DCB 01FC MOVW R30,R24 + 00DCC 80E0 LD R14,Z + 00DCD 24FF CLR R15 + 00DCE 01C7 MOVW R24,R14 + 00DCF 3588 CPI R24,0x58 + 00DD0 E0E0 LDI R30,0 + 00DD1 079E CPC R25,R30 + 00DD2 F409 BNE 0x0DD4 + 00DD3 C065 RJMP 0x0E39 + 00DD4 E588 LDI R24,0x58 + 00DD5 158E CP R24,R14 + 00DD6 059F CPC R25,R15 + 00DD7 F094 BLT 0x0DEA + 00DD8 01C7 MOVW R24,R14 + 00DD9 3485 CPI R24,0x45 + 00DDA E0E0 LDI R30,0 + 00DDB 079E CPC R25,R30 + 00DDC F409 BNE 0x0DDE + 00DDD C104 RJMP 0x0EE2 + 00DDE 3485 CPI R24,0x45 + 00DDF E0E0 LDI R30,0 + 00DE0 079E CPC R25,R30 + 00DE1 F40C BGE 0x0DE3 + 00DE2 C03D RJMP 0x0E20 + 00DE3 01C7 MOVW R24,R14 + 00DE4 3583 CPI R24,0x53 + 00DE5 E0E0 LDI R30,0 + 00DE6 079E CPC R25,R30 + 00DE7 F409 BNE 0x0DE9 + 00DE8 C0AF RJMP 0x0E98 + 00DE9 C036 RJMP 0x0E20 + 00DEA 01C7 MOVW R24,R14 + 00DEB 3683 CPI R24,0x63 + 00DEC E0E0 LDI R30,0 + 00DED 079E CPC R25,R30 + 00DEE F409 BNE 0x0DF0 + 00DEF C099 RJMP 0x0E89 + 00DF0 3684 CPI R24,0x64 + 00DF1 E0E0 LDI R30,0 + 00DF2 079E CPC R25,R30 + 00DF3 F409 BNE 0x0DF5 + 00DF4 C035 RJMP 0x0E2A + 00DF5 3685 CPI R24,0x65 + 00DF6 E0E0 LDI R30,0 + 00DF7 079E CPC R25,R30 + 00DF8 F409 BNE 0x0DFA + 00DF9 C0E8 RJMP 0x0EE2 + 00DFA 3686 CPI R24,0x66 + 00DFB E0E0 LDI R30,0 + 00DFC 079E CPC R25,R30 + 00DFD F409 BNE 0x0DFF + 00DFE C0E3 RJMP 0x0EE2 + 00DFF 3689 CPI R24,0x69 + 00E00 E0E0 LDI R30,0 + 00E01 079E CPC R25,R30 + 00E02 F139 BEQ 0x0E2A + 00E03 368F CPI R24,0x6F + 00E04 E0E0 LDI R30,0 + 00E05 079E CPC R25,R30 + 00E06 F409 BNE 0x0E08 + 00E07 C031 RJMP 0x0E39 + 00E08 3780 CPI R24,0x70 + 00E09 E0E0 LDI R30,0 + 00E0A 079E CPC R25,R30 + 00E0B F409 BNE 0x0E0D + 00E0C C02C RJMP 0x0E39 + 00E0D 3683 CPI R24,0x63 + 00E0E E0E0 LDI R30,0 + 00E0F 079E CPC R25,R30 + 00E10 F07C BLT 0x0E20 + 00E11 01C7 MOVW R24,R14 + 00E12 3783 CPI R24,0x73 + 00E13 E0E0 LDI R30,0 + 00E14 079E CPC R25,R30 + 00E15 F409 BNE 0x0E17 + 00E16 C0A2 RJMP 0x0EB9 + 00E17 3785 CPI R24,0x75 + 00E18 E0E0 LDI R30,0 + 00E19 079E CPC R25,R30 + 00E1A F0F1 BEQ 0x0E39 + 00E1B 3788 CPI R24,0x78 + 00E1C E0E0 LDI R30,0 + 00E1D 079E CPC R25,R30 + 00E1E F0D1 BEQ 0x0E39 + 00E1F C000 RJMP 0x0E20 + 00E20 89E8 LDD R30,Y+16 + 00E21 89F9 LDD R31,Y+17 + 00E22 8100 LD R16,Z + 00E23 85EE LDD R30,Y+14 + 00E24 85FF LDD R31,Y+15 + 00E25 940E 0B78 CALL xicallx + 00E27 5F4F SUBI R20,0xFF + 00E28 4F5F SBCI R21,0xFF + 00E29 C0BC RJMP 0x0EE6 + 00E2A 5F6E SUBI R22,0xFE + 00E2B 4F7F SBCI R23,0xFF + 00E2C 01FB MOVW R30,R22 + 00E2D 9732 SBIW R30,2 + 00E2E 80E0 LD R14,Z + 00E2F 80F1 LDD R15,Z+1 + 00E30 E08A LDI R24,0xA + 00E31 E090 LDI R25,0 + 00E32 8399 STD Y+1,R25 + 00E33 8388 ST Y,R24 + 00E34 0197 MOVW R18,R14 + 00E35 0185 MOVW R16,R10 + 00E36 940E 0CE2 CALL _itoa + 00E38 C04C RJMP 0x0E85 + 00E39 5F6E SUBI R22,0xFE + 00E3A 4F7F SBCI R23,0xFF + 00E3B 01FB MOVW R30,R22 + 00E3C 9732 SBIW R30,2 + 00E3D 80E0 LD R14,Z + 00E3E 80F1 LDD R15,Z+1 + 00E3F 89E8 LDD R30,Y+16 + 00E40 89F9 LDD R31,Y+17 + 00E41 8180 LD R24,Z + 00E42 3785 CPI R24,0x75 + 00E43 F449 BNE 0x0E4D + 00E44 E08A LDI R24,0xA + 00E45 E090 LDI R25,0 + 00E46 8399 STD Y+1,R25 + 00E47 8388 ST Y,R24 + 00E48 0197 MOVW R18,R14 + 00E49 0185 MOVW R16,R10 + 00E4A 940E 0D4D CALL _utoa + 00E4C C038 RJMP 0x0E85 + 00E4D 89E8 LDD R30,Y+16 + 00E4E 89F9 LDD R31,Y+17 + 00E4F 8180 LD R24,Z + 00E50 368F CPI R24,0x6F + 00E51 F449 BNE 0x0E5B + 00E52 E088 LDI R24,0x8 + 00E53 E090 LDI R25,0 + 00E54 8399 STD Y+1,R25 + 00E55 8388 ST Y,R24 + 00E56 0197 MOVW R18,R14 + 00E57 0185 MOVW R16,R10 + 00E58 940E 0D4D CALL _utoa + 00E5A C02A RJMP 0x0E85 + 00E5B 89E8 LDD R30,Y+16 + 00E5C 89F9 LDD R31,Y+17 + 00E5D 8180 LD R24,Z + 00E5E 3780 CPI R24,0x70 + 00E5F F431 BNE 0x0E66 + 00E60 E380 LDI R24,0x30 + 00E61 01F5 MOVW R30,R10 + 00E62 9381 ST Z+,R24 + 00E63 E788 LDI R24,0x78 + 00E64 9381 ST Z+,R24 + 00E65 015F MOVW R10,R30 + 00E66 E180 LDI R24,0x10 + 00E67 E090 LDI R25,0 + 00E68 8399 STD Y+1,R25 + 00E69 8388 ST Y,R24 + 00E6A 0197 MOVW R18,R14 + 00E6B 0185 MOVW R16,R10 + 00E6C 940E 0D4D CALL _utoa + 00E6E 89E8 LDD R30,Y+16 + 00E6F 89F9 LDD R31,Y+17 + 00E70 8180 LD R24,Z + 00E71 3588 CPI R24,0x58 + 00E72 F491 BNE 0x0E85 + 00E73 E680 LDI R24,0x60 + 00E74 E095 LDI R25,5 + 00E75 015C MOVW R10,R24 + 00E76 C00A RJMP 0x0E81 + 00E77 01F5 MOVW R30,R10 + 00E78 8100 LD R16,Z + 00E79 2711 CLR R17 + 00E7A 940E 0D97 CALL _toupper + 00E7C 01F5 MOVW R30,R10 + 00E7D 8300 ST Z,R16 + 00E7E 01C5 MOVW R24,R10 + 00E7F 9601 ADIW R24,1 + 00E80 015C MOVW R10,R24 + 00E81 01F5 MOVW R30,R10 + 00E82 8020 LD R2,Z + 00E83 2022 TST R2 + 00E84 F791 BNE 0x0E77 + 00E85 E680 LDI R24,0x60 + 00E86 E095 LDI R25,5 + 00E87 015C MOVW R10,R24 + 00E88 C03E RJMP 0x0EC7 + 00E89 5F6E SUBI R22,0xFE + 00E8A 4F7F SBCI R23,0xFF + 00E8B 01FB MOVW R30,R22 + 00E8C 9732 SBIW R30,2 + 00E8D 8020 LD R2,Z + 00E8E 8031 LDD R3,Z+1 + 00E8F 822A STD Y+2,R2 + 00E90 2D02 MOV R16,R2 + 00E91 85EE LDD R30,Y+14 + 00E92 85FF LDD R31,Y+15 + 00E93 940E 0B78 CALL xicallx + 00E95 5F4F SUBI R20,0xFF + 00E96 4F5F SBCI R21,0xFF + 00E97 C04E RJMP 0x0EE6 + 00E98 5F6E SUBI R22,0xFE + 00E99 4F7F SBCI R23,0xFF + 00E9A 01FB MOVW R30,R22 + 00E9B 9732 SBIW R30,2 + 00E9C 80E0 LD R14,Z + 00E9D 80F1 LDD R15,Z+1 + 00E9E 2D8C MOV R24,R12 + 00E9F 328D CPI R24,0x2D + 00EA0 F499 BNE 0x0EB4 + 00EA1 E20D LDI R16,0x2D + 00EA2 85EE LDD R30,Y+14 + 00EA3 85FF LDD R31,Y+15 + 00EA4 940E 0B78 CALL xicallx + 00EA6 5F4F SUBI R20,0xFF + 00EA7 4F5F SBCI R21,0xFF + 00EA8 C00B RJMP 0x0EB4 + 00EA9 01F7 MOVW R30,R14 + 00EAA 9106 ELPM R16,Z + 00EAB 85EE LDD R30,Y+14 + 00EAC 85FF LDD R31,Y+15 + 00EAD 940E 0B78 CALL xicallx + 00EAF 5F4F SUBI R20,0xFF + 00EB0 4F5F SBCI R21,0xFF + 00EB1 01C7 MOVW R24,R14 + 00EB2 9601 ADIW R24,1 + 00EB3 017C MOVW R14,R24 + 00EB4 01F7 MOVW R30,R14 + 00EB5 9026 ELPM R2,Z + 00EB6 2022 TST R2 + 00EB7 F789 BNE 0x0EA9 + 00EB8 C02D RJMP 0x0EE6 + 00EB9 5F6E SUBI R22,0xFE + 00EBA 4F7F SBCI R23,0xFF + 00EBB 01FB MOVW R30,R22 + 00EBC 9732 SBIW R30,2 + 00EBD 80A0 LD R10,Z + 00EBE 80B1 LDD R11,Z+1 + 00EBF 20AA TST R10 + 00EC0 F431 BNE 0x0EC7 + 00EC1 20BB TST R11 + 00EC2 F421 BNE 0x0EC7 + 00EC3 E983 LDI R24,0x93 + 00EC4 E091 LDI R25,1 + 00EC5 017C MOVW R14,R24 + 00EC6 CFD7 RJMP 0x0E9E + 00EC7 2D8C MOV R24,R12 + 00EC8 328D CPI R24,0x2D + 00EC9 F499 BNE 0x0EDD + 00ECA E20D LDI R16,0x2D + 00ECB 85EE LDD R30,Y+14 + 00ECC 85FF LDD R31,Y+15 + 00ECD 940E 0B78 CALL xicallx + 00ECF 5F4F SUBI R20,0xFF + 00ED0 4F5F SBCI R21,0xFF + 00ED1 C00B RJMP 0x0EDD + 00ED2 01F5 MOVW R30,R10 + 00ED3 8100 LD R16,Z + 00ED4 85EE LDD R30,Y+14 + 00ED5 85FF LDD R31,Y+15 + 00ED6 940E 0B78 CALL xicallx + 00ED8 5F4F SUBI R20,0xFF + 00ED9 4F5F SBCI R21,0xFF + 00EDA 01C5 MOVW R24,R10 + 00EDB 9601 ADIW R24,1 + 00EDC 015C MOVW R10,R24 + 00EDD 01F5 MOVW R30,R10 + 00EDE 8020 LD R2,Z + 00EDF 2022 TST R2 + 00EE0 F789 BNE 0x0ED2 + 00EE1 C004 RJMP 0x0EE6 + 00EE2 EA85 LDI R24,0xA5 + 00EE3 E091 LDI R25,1 + 00EE4 017C MOVW R14,R24 + 00EE5 CFB8 RJMP 0x0E9E + 00EE6 8988 LDD R24,Y+16 + 00EE7 8999 LDD R25,Y+17 + 00EE8 9601 ADIW R24,1 + 00EE9 8B99 STD Y+17,R25 + 00EEA 8B88 STD Y+16,R24 + 00EEB 89E8 LDD R30,Y+16 + 00EEC 89F9 LDD R31,Y+17 + 00EED 8020 LD R2,Z + 00EEE 2022 TST R2 + 00EEF F009 BEQ 0x0EF1 + 00EF0 CEC3 RJMP 0x0DB4 + 00EF1 018A MOVW R16,R20 + 00EF2 9624 ADIW R28,4 + 00EF3 940E 0B20 CALL pop_xgsetF0FC + 00EF5 9624 ADIW R28,4 + 00EF6 9508 RET __sdepi: - 00DF5 91E0 0551 LDS R30,tmp_text+280 - 00DF7 91F0 0552 LDS R31,tmp_text+281 - 00DF9 9301 ST Z+,R16 - 00DFA 93F0 0552 STS tmp_text+281,R31 - 00DFC 93E0 0551 STS tmp_text+280,R30 - 00DFE 9508 RET + 00EF7 91E0 0579 LDS R30,tmp_text+280 + 00EF9 91F0 057A LDS R31,tmp_text+281 + 00EFB 9301 ST Z+,R16 + 00EFC 93F0 057A STS tmp_text+281,R31 + 00EFE 93E0 0579 STS tmp_text+280,R30 + 00F00 9508 RET _sprintf: - 00DFF 940E 0A01 CALL push_arg4 - 00E01 92AA ST -Y,R10 - 00E02 92BA ST -Y,R11 - 00E03 9722 SBIW R28,2 - 00E04 802C LDD R2,Y+4 - 00E05 803D LDD R3,Y+5 - 00E06 9230 0552 STS tmp_text+281,R3 - 00E08 9220 0551 STS tmp_text+280,R2 - 00E0A 01CE MOVW R24,R28 - 00E0B 9608 ADIW R24,0x8 - 00E0C 015C MOVW R10,R24 - 00E0D 82B9 STD Y+1,R11 - 00E0E 82A8 ST Y,R10 - 00E0F 812E LDD R18,Y+6 - 00E10 813F LDD R19,Y+7 - 00E11 E80C LDI R16,0x8C - 00E12 E010 LDI R17,0 - 00E13 940E 0CA8 CALL __print - 00E15 2422 CLR R2 - 00E16 91E0 0551 LDS R30,tmp_text+280 - 00E18 91F0 0552 LDS R31,tmp_text+281 - 00E1A 8220 ST Z,R2 - 00E1B 802C LDD R2,Y+4 - 00E1C 803D LDD R3,Y+5 - 00E1D 9100 0551 LDS R16,tmp_text+280 - 00E1F 9110 0552 LDS R17,tmp_text+281 - 00E21 1902 SUB R16,R2 - 00E22 0913 SBC R17,R3 - 00E23 9622 ADIW R28,2 - 00E24 90B9 LD R11,Y+ - 00E25 90A9 LD R10,Y+ - 00E26 9624 ADIW R28,4 - 00E27 9508 RET + 00F01 940E 0AEB CALL push_arg4 + 00F03 92AA ST -Y,R10 + 00F04 92BA ST -Y,R11 + 00F05 9722 SBIW R28,2 + 00F06 802C LDD R2,Y+4 + 00F07 803D LDD R3,Y+5 + 00F08 9230 057A STS tmp_text+281,R3 + 00F0A 9220 0579 STS tmp_text+280,R2 + 00F0C 01CE MOVW R24,R28 + 00F0D 9608 ADIW R24,0x8 + 00F0E 015C MOVW R10,R24 + 00F0F 82B9 STD Y+1,R11 + 00F10 82A8 ST Y,R10 + 00F11 812E LDD R18,Y+6 + 00F12 813F LDD R19,Y+7 + 00F13 E80C LDI R16,0x8C + 00F14 E010 LDI R17,0 + 00F15 940E 0DAA CALL __print + 00F17 2422 CLR R2 + 00F18 91E0 0579 LDS R30,tmp_text+280 + 00F1A 91F0 057A LDS R31,tmp_text+281 + 00F1C 8220 ST Z,R2 + 00F1D 802C LDD R2,Y+4 + 00F1E 803D LDD R3,Y+5 + 00F1F 9100 0579 LDS R16,tmp_text+280 + 00F21 9110 057A LDS R17,tmp_text+281 + 00F23 1902 SUB R16,R2 + 00F24 0913 SBC R17,R3 + 00F25 9622 ADIW R28,2 + 00F26 90B9 LD R11,Y+ + 00F27 90A9 LD R10,Y+ + 00F28 9624 ADIW R28,4 + 00F29 9508 RET diff --git a/OLDMANALARM.mak b/OLDMANALARM.mak index 514b757..bdb613e 100644 --- a/OLDMANALARM.mak +++ b/OLDMANALARM.mak @@ -7,27 +7,27 @@ FILES = main.o 12864time.o DS18B20.o basic.o LCD.o USART.o SYN7318.o ESP8266.o OLDMANALARM: $(FILES) $(CC) -o OLDMANALARM $(LFLAGS) @OLDMANALARM.lk -lcatm128 -main.o: D:\iccv7avr\include\string.h D:\iccv7avr\include\_const.h D:\iccv7avr\include\stdio.h D:\iccv7avr\include\stdarg.h D:\iccv7avr\include\macros.h D:\iccv7avr\include\AVRdef.h D:\iccv7avr\include\iom128v.h .\DS18B20.h .\basic.h .\12864time.h .\LCD.h .\USART.h .\SYN7318.h .\ESP8266.h +main.o: F:\ICCAVR\include\string.h F:\ICCAVR\include\_const.h F:\ICCAVR\include\stdio.h F:\ICCAVR\include\stdarg.h F:\ICCAVR\include\macros.h F:\ICCAVR\include\AVRdef.h F:\ICCAVR\include\iom128v.h .\DS18B20.h .\basic.h .\12864time.h .\LCD.h .\USART.h .\SYN7318.h .\ESP8266.h main.o: main.c $(CC) -c $(CFLAGS) main.c -12864time.o: D:\iccv7avr\include\iom128v.h .\12864time.h .\basic.h .\LCD.h +12864time.o: F:\ICCAVR\include\iom128v.h .\12864time.h .\basic.h .\LCD.h 12864time.o: 12864time.c $(CC) -c $(CFLAGS) 12864time.c -DS18B20.o: D:\iccv7avr\include\iom128v.h .\DS18B20.h .\basic.h +DS18B20.o: F:\ICCAVR\include\iom128v.h .\DS18B20.h .\basic.h DS18B20.o: DS18B20.C $(CC) -c $(CFLAGS) DS18B20.C basic.o: basic.o: basic.c $(CC) -c $(CFLAGS) basic.c -LCD.o: D:\iccv7avr\include\iom128v.h .\LCD.h .\basic.h +LCD.o: F:\ICCAVR\include\iom128v.h .\LCD.h .\basic.h LCD.o: LCD.c $(CC) -c $(CFLAGS) LCD.c -USART.o: D:\iccv7avr\include\iom128v.h .\basic.h .\USART.h +USART.o: F:\ICCAVR\include\iom128v.h .\basic.h .\USART.h USART.o: USART.c $(CC) -c $(CFLAGS) USART.c -SYN7318.o: D:\iccv7avr\include\string.h D:\iccv7avr\include\_const.h D:\iccv7avr\include\stdio.h D:\iccv7avr\include\stdarg.h D:\iccv7avr\include\iom128v.h .\USART.h .\basic.h .\SYN7318.h .\LCD.h +SYN7318.o: F:\ICCAVR\include\string.h F:\ICCAVR\include\_const.h F:\ICCAVR\include\stdio.h F:\ICCAVR\include\stdarg.h F:\ICCAVR\include\iom128v.h .\USART.h .\basic.h .\SYN7318.h .\LCD.h SYN7318.o: SYN7318.c $(CC) -c $(CFLAGS) SYN7318.c -ESP8266.o: D:\iccv7avr\include\string.h D:\iccv7avr\include\_const.h D:\iccv7avr\include\stdio.h D:\iccv7avr\include\stdarg.h D:\iccv7avr\include\iom128v.h .\USART.h .\basic.h .\ESP8266.h +ESP8266.o: F:\ICCAVR\include\string.h F:\ICCAVR\include\_const.h F:\ICCAVR\include\stdio.h F:\ICCAVR\include\stdarg.h F:\ICCAVR\include\iom128v.h .\USART.h .\basic.h .\ESP8266.h ESP8266.o: ESP8266.c $(CC) -c $(CFLAGS) ESP8266.c diff --git a/OLDMANALARM.mp b/OLDMANALARM.mp index 2443459..6fbaef9 100644 --- a/OLDMANALARM.mp +++ b/OLDMANALARM.mp @@ -22,167 +22,171 @@ Area Addr Size Decimal Bytes (Attributes) Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ - idata 0207 0205 = 517. bytes (rel,con,rom) + idata 0207 022F = 559. bytes (rel,con,rom) Addr Global Symbol ----- -------------------------------- 0207 __idata_start - 040C __idata_end + 0436 __idata_end Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ - text 040C 1844 = 6212. bytes (rel,con,rom) + text 0436 1A1E = 6686. bytes (rel,con,rom) Addr Global Symbol ----- -------------------------------- - 0206 __start - 0206 __text_start - 0228 _exit - 0229 _welcomeDisplay - 023D _syn7318InitDisplay - 0251 _init_devices - 0263 _main - 033F _ds1302_write_byte - 0361 _ds1302_read_byte - 0386 _ds1302_write_time - 03AF _ds1302_read_time - 03D7 _ds1302_init - 03DC _dayToChina - 0411 _displayDateTime - 04F9 _DS18B20_Reset - 0513 _DS18B20_Read_byte - 052D _ds1820_write_byte - 0545 _ds1820_start - 054A _DS18B20_Read_temp - 058C _data_do - 05B2 _LCD_write_temperature - 05FC _delay_1us - 0603 _delay_3us - 0619 _delay_10us - 061C _delay_50us - 0620 _delay_100us - 0622 _delay_n100us - 062D _delay_1ms - 0637 _delay_nms - 0646 _system_init - 065F _LCD_write_com - 067C _LCD_write_data - 0699 _LCD_write_char - 06AF _LCD_clear - 06B5 _DisplayCgrom - 06CF _LCD_init - 06EC _UART0_Init - 06FD _puts0 - 0719 _uart0_rx_isr - 0739 _UART1_Init - 074E _puts1 - 077D _uart1_rx_isr - 079E _SYN7318_init - 07B0 _buildHead - 07C2 _checkSendReturn - 083B _voicePlayer - 0881 _SYN7318_welcome - 088A _SYN7318_Error - 0893 _setVoiceLevel - 08B2 _setVoiceOption - 08DD _updateWords - 0947 _waitFree - 0966 _startRecognition - 0983 _wifi_Restart - 0991 _wifi_ConnectSTA - 099F _wifi_CIPMUX - 09AD _wifi_TCPConnect - 09BB _wifi_CIPMODE - 09C9 _wifi_CIPSEND - 09D7 _wifi_SendMsg - 09E5 _wifi_SENDMSG - 09F5 _strlen - 0A01 push_arg4 - 0A03 push_arg2 - 0A06 mod16u - 0A08 div16u - 0A09 xdiv16u - 0A22 elpm32 - 0A36 pop_xgsetF0FC - 0A41 push_xgsetF0FC - 0A43 push_xgset30FC - 0A45 push_xgset00FC - 0A47 push_xgset003C - 0A4C push_xgset300C - 0A51 pop_xgset300C - 0A56 push_xgsetF000 - 0A5B pop_xgsetF000 - 0A60 push_xgsetF00C - 0A67 pop_xgsetF00C - 0A6E push_xgset303C - 0A75 pop_xgset303C - 0A7C push_xgsetF03C - 0A85 pop_xgsetF03C - 0A8E xicallx - 0A97 neg32 - 0AA0 fpint - 0AD2 uint2fp - 0AD4 int2fp - 0ADD ulong2fp - 0ADF long2fp - 0AF6 unpacks - 0AFE tstR16_R19 - 0B06 unpacku - 0B1F normalize_and_pack - 0B54 pack - 0B64 saveFPRegs - 0B73 restoreFPRegs - 0B82 fpmule - 0BD5 fpmule2 - 0BE0 _itoa - 0C4B _utoa - 0C8B _islower - 0C95 _toupper - 0CA8 __print - 0DF5 __sdepi - 0DFF _sprintf - 0E28 __text_end + 021B __text_start + 021B __start + 023D _exit + 023E _welcomeDisplay + 0252 _syn7318InitDisplay + 0266 _init_devices + 0278 _main + 037C _ds1302_write_byte + 039E _ds1302_read_byte + 03C3 _ds1302_write_time + 03E8 _ds1302_read_time + 0410 _ds1302_init + 0415 _dayToChina + 044A _displayDateTime + 0532 _Timetostr + 059C _DS18B20_Reset + 05B6 _DS18B20_Read_byte + 05D0 _ds1820_write_byte + 05E8 _ds1820_start + 05ED _DS18B20_Read_temp + 062F _data_do + 0655 _LCD_write_temperature + 069F _Temperaturetostr + 06D0 _delay_1us + 06D7 _delay_3us + 06ED _delay_10us + 06F0 _delay_50us + 06F4 _delay_100us + 06F6 _delay_n100us + 0701 _delay_1ms + 070B _delay_nms + 071A _system_init + 0733 _LCD_write_com + 0750 _LCD_write_data + 076D _LCD_write_char + 0783 _LCD_clear + 0789 _DisplayCgrom + 07A3 _LCD_init + 07C0 _UART0_Init + 07D1 _puts0 + 07ED _uart0_rx_isr + 080D _UART1_Init + 0822 _puts1 + 0851 _uart1_rx_isr + 0872 _SYN7318_init + 0884 _buildHead + 0896 _checkSendReturn + 090F _voicePlayer + 0955 _SYN7318_welcome + 095E _SYN7318_Error + 0967 _setVoiceLevel + 0986 _setVoiceOption + 09B1 _updateWords + 0A1B _waitFree + 0A3A _startRecognition + 0A57 _wifi_Restart + 0A65 _wifi_ConnectSTA + 0A73 _wifi_CIPMUX + 0A81 _wifi_TCPConnect + 0A8F _wifi_CIPMODE + 0A9D _wifi_CIPSEND + 0AAB _wifi_SendMsg + 0AB9 _wifi_SENDMSG + 0AC9 _strcat + 0AD6 _strcpy + 0ADF _strlen + 0AEB push_arg4 + 0AED push_arg2 + 0AF0 mod16u + 0AF2 div16u + 0AF3 xdiv16u + 0B0C elpm32 + 0B20 pop_xgsetF0FC + 0B2B push_xgsetF0FC + 0B2D push_xgset30FC + 0B2F push_xgset00FC + 0B31 push_xgset003C + 0B36 push_xgset300C + 0B3B pop_xgset300C + 0B40 push_xgsetF000 + 0B45 pop_xgsetF000 + 0B4A push_xgsetF00C + 0B51 pop_xgsetF00C + 0B58 push_xgset303C + 0B5F pop_xgset303C + 0B66 push_xgsetF03C + 0B6F pop_xgsetF03C + 0B78 xicallx + 0B81 neg32 + 0B8A asgnblk + 0BA2 fpint + 0BD4 uint2fp + 0BD6 int2fp + 0BDF ulong2fp + 0BE1 long2fp + 0BF8 unpacks + 0C00 tstR16_R19 + 0C08 unpacku + 0C21 normalize_and_pack + 0C56 pack + 0C66 saveFPRegs + 0C75 restoreFPRegs + 0C84 fpmule + 0CD7 fpmule2 + 0CE2 _itoa + 0D4D _utoa + 0D8D _islower + 0D97 _toupper + 0DAA __print + 0EF7 __sdepi + 0F01 _sprintf + 0F2A __text_end Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ - data 0100 0205 = 517. bytes (rel,con,ram) + data 0100 022F = 559. bytes (rel,con,ram) Addr Global Symbol ----- -------------------------------- 0100 __data_start - 016E _time_buf - 019C _words - 01E1 _wordID - 0305 __data_end + 0173 _time_buf + 01BD _words + 020B _wordID + 032F __data_end Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ - bss 0305 024E = 590. bytes (rel,con,ram) + bss 032F 024C = 588. bytes (rel,con,ram) Addr Global Symbol ----- -------------------------------- - 0305 __bss_start - 0305 _A3 - 0307 _A2 - 0309 _A1 - 030B _temp - 030D _temp_value - 030F _RxBufRd_wifi - 0310 _RxBufWr_wifi - 0311 _RxCharNum_wifi - 0312 _RxCharBuf_wifi - 0322 _TxStrLen_wifi - 0323 _TxCharNum_wifi - 0324 _TxCharBuf_wifi - 03A4 _RxBufRd - 03A5 _RxBufWr - 03A6 _RxCharNum - 03A7 _RxCharBuf - 03B7 _TxStrLen - 03B8 _TxCharNum - 03B9 _TxCharBuf - 0439 _tmp_text - 0553 __bss_end + 032F __bss_start + 032F _A3 + 0331 _A2 + 0333 _A1 + 0335 _temp_value + 0337 _RxBufRd_wifi + 0338 _RxBufWr_wifi + 0339 _RxCharNum_wifi + 033A _RxCharBuf_wifi + 034A _TxStrLen_wifi + 034B _TxCharNum_wifi + 034C _TxCharBuf_wifi + 03CC _RxBufRd + 03CD _RxBufWr + 03CE _RxCharNum + 03CF _RxCharBuf + 03DF _TxStrLen + 03E0 _TxCharNum + 03E1 _TxCharBuf + 0461 _tmp_text + 057B __bss_end Area Start End Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ @@ -190,7 +194,7 @@ Area Start End Decimal Bytes (Attributes) Files Linked [ module(s) ] -D:\iccv7avr\lib\crtatmega.o [ crtatmega.s ] +F:\ICCAVR\lib\crtatmega.o [ crtatmega.s ] main.o [ main.c ] 12864time.o [ _12864time.c ] DS18B20.o [ DS18B20.C ] @@ -199,9 +203,9 @@ LCD.o [ LCD.c ] USART.o [ USART.c ] SYN7318.o [ SYN7318.c ] ESP8266.o [ ESP8266.c ] - [ strlen.s, asave.s, div16u.s, elpm32.s, gpop5.s, gpush.s, gpushx.s, gpushy.s, gpushz.s, gpusha.s, gpushb.s ] -[ icallx.s, lneg.s, fpint.s, int2fp.s, fputil.s, fpmule.s, fpmule2.s, itoa.s, utoa.s, islower.s, ctype.s ] -[ toupper.s, _printf.s, sprintf.s ] + [ strcat.s, strcpy.s, strlen.s, asave.s, div16u.s, elpm32.s, gpop5.s, gpush.s, gpushx.s, gpushy.s, gpushz.s ] +[ gpusha.s, gpushb.s, icallx.s, lneg.s, struct.s, fpint.s, int2fp.s, fputil.s, fpmule.s, fpmule2.s, itoa.s ] +[ utoa.s, islower.s, ctype.s, toupper.s, _printf.s, sprintf.s ] User Global Definitions diff --git a/SYN7318.c b/SYN7318.c index 1ae6b3b..54e0755 100644 --- a/SYN7318.c +++ b/SYN7318.c @@ -8,7 +8,7 @@ //带命令识别词条 -const uchar words[] = "救命 1|救命啊 1|哎呦 2|现在多少度 100|现在温度多少 100|现在几点 101|"; +const uchar words[] = "救命 1|救命啊 1|哎呦 2|现在多少度 100|现在温度多少 100|现在几点 101|时间 101|"; uchar tmp_text[255]; uint wordID = 0x0000; diff --git a/SYN7318.lis b/SYN7318.lis index 8a06729..b700dff 100644 --- a/SYN7318.lis +++ b/SYN7318.lis @@ -4,26 +4,26 @@ .area data(ram, con, rel) 0000 .dbfile SYN7318.c 0000 _words:: - 0000 .blkb 69 + 0000 .blkb 78 .area idata 0000 BEC8C3FC20317CBEC8C3FCB0A120317C .byte 190,200,195,252,32,49,124,190,200,195,252,176,161,32,49,124 0010 B0A5DFCF20327CCFD6D4DAB6E0C9D9B6 .byte 176,165,223,207,32,50,124,207,214,212,218,182,224,201,217,182 0020 C8203130307CCFD6D4DACEC2B6C8B6E0 .byte 200,32,49,48,48,124,207,214,212,218,206,194,182,200,182,224 0030 C9D9203130307CCFD6D4DABCB8B5E320 .byte 201,217,32,49,48,48,124,207,214,212,218,188,184,181,227,32 - 0040 3130317C00 .byte 49,48,49,124,0 + 0040 3130317CCAB1BCE4203130317C00 .byte 49,48,49,124,202,177,188,228,32,49,48,49,124,0 .area data(ram, con, rel) - 0045 .dbfile SYN7318.c - 0045 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 0045 .dbsym e words _words A[69:69]c - 0045 _wordID:: - 0045 .blkb 2 + 004E .dbfile SYN7318.c + 004E .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 004E .dbsym e words _words A[78:78]c + 004E _wordID:: + 004E .blkb 2 .area idata - 0045 0000 .word 0 + 004E 0000 .word 0 .area data(ram, con, rel) - 0047 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 0047 .dbsym e wordID _wordID i + 0050 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 0050 .dbsym e wordID _wordID i .area text(rom, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c 0000 .dbfunc e SYN7318_init _SYN7318_init fV .even 0000 _SYN7318_init:: @@ -39,7 +39,7 @@ 0000 ; 0000 ; 0000 ; //带命令识别词条 - 0000 ; const uchar words[] = "救命 1|救命啊 1|哎呦 2|现在多少度 100|现在温度多少 100|现在几点 101|"; + 0000 ; const uchar words[] = "救命 1|救命啊 1|哎呦 2|现在多少度 100|现在温度多少 100|现在几点 101|时间 101|"; 0000 ; uchar tmp_text[255]; 0000 ; 0000 ; uint wordID = 0x0000; @@ -160,8 +160,8 @@ 004E ; wordID = 0x0000; 004E 2224 clr R2 0050 3324 clr R3 - 0052 30924600 sts _wordID+1,R3 - 0056 20924500 sts _wordID,R2 + 0052 30924F00 sts _wordID+1,R3 + 0056 20924E00 sts _wordID,R2 005A .dbline 58 005A ; do { 005A 04C0 xjmp L12 @@ -326,22 +326,22 @@ 0100 .dbline 90 0100 ; case 4 : 0100 ; wordID <<= 8; - 0100 20904500 lds R2,_wordID - 0104 30904600 lds R3,_wordID+1 + 0100 20904E00 lds R2,_wordID + 0104 30904F00 lds R3,_wordID+1 0108 322C mov R3,R2 010A 2224 clr R2 - 010C 30924600 sts _wordID+1,R3 - 0110 20924500 sts _wordID,R2 + 010C 30924F00 sts _wordID+1,R3 + 0110 20924E00 sts _wordID,R2 0114 .dbline 91 0114 ; wordID |= RxSt; 0114 262E mov R2,R22 0116 3324 clr R3 - 0118 40904500 lds R4,_wordID - 011C 50904600 lds R5,_wordID+1 + 0118 40904E00 lds R4,_wordID + 011C 50904F00 lds R5,_wordID+1 0120 4228 or R4,R2 0122 5328 or R5,R3 - 0124 50924600 sts _wordID+1,R5 - 0128 40924500 sts _wordID,R4 + 0124 50924F00 sts _wordID+1,R5 + 0128 40924E00 sts _wordID,R4 012C .dbline 93 012C ; //wordID |= command; 012C ; length--; @@ -1054,48 +1054,48 @@ 03C8 0895 ret 03CA .dbend .area bss(ram, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c 0000 _tmp_text:: 0000 .blkb 255 00FF .dbsym e tmp_text _tmp_text A[255:255]c .area data(ram, con, rel) - 0047 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 0047 L87: - 0047 .blkb 13 + 0050 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 0050 L87: + 0050 .blkb 13 .area idata - 0047 B4CACCF5B8FCD0C2CAA7B0DC00 .byte 180,202,204,245,184,252,208,194,202,167,176,220,0 + 0050 B4CACCF5B8FCD0C2CAA7B0DC00 .byte 180,202,204,245,184,252,208,194,202,167,176,220,0 .area data(ram, con, rel) - 0054 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 0054 L86: - 0054 .blkb 13 + 005D .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 005D L86: + 005D .blkb 13 .area idata - 0054 B4CACCF5B8FCD0C2B3C9B9A600 .byte 180,202,204,245,184,252,208,194,179,201,185,166,0 + 005D B4CACCF5B8FCD0C2B3C9B9A600 .byte 180,202,204,245,184,252,208,194,179,201,185,166,0 .area data(ram, con, rel) - 0061 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 0061 L81: - 0061 .blkb 17 + 006A .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 006A L81: + 006A .blkb 17 .area idata - 0061 D5FDD4DAB8FCD0C2B4CACCF5A1A3A1A3 .byte 213,253,212,218,184,252,208,194,180,202,204,245,161,163,161,163 - 0071 00 .byte 0 + 006A D5FDD4DAB8FCD0C2B4CACCF5A1A3A1A3 .byte 213,253,212,218,184,252,208,194,180,202,204,245,161,163,161,163 + 007A 00 .byte 0 .area data(ram, con, rel) - 0072 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 0072 L52: - 0072 .blkb 70 + 007B .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 007B L52: + 007B .blkb 70 .area idata - 0072 5B6D335D5B73355D5B76335D5B66315D .byte 91,'m,51,93,91,'s,53,93,91,'v,51,93,91,'f,49,93 - 0082 5B62305DB2BBBAC3D2E2CBBCA3ACCFB5 .byte 91,'b,48,93,178,187,186,195,210,226,203,188,163,172,207,181 - 0092 CDB3CEB4C0EDBDE2C4FAB5C4D2E2CBBC .byte 205,179,206,180,192,237,189,226,196,250,181,196,210,226,203,188 - 00A2 A3ACC7EBD6D8D0C2CBB5D2BBB1E95B6D .byte 163,172,199,235,214,216,208,194,203,181,210,187,177,233,91,'m - 00B2 335D5B645D00 .byte 51,93,91,'d,93,0 + 007B 5B6D335D5B73355D5B76335D5B66315D .byte 91,'m,51,93,91,'s,53,93,91,'v,51,93,91,'f,49,93 + 008B 5B62305DB2BBBAC3D2E2CBBCA3ACCFB5 .byte 91,'b,48,93,178,187,186,195,210,226,203,188,163,172,207,181 + 009B CDB3CEB4C0EDBDE2C4FAB5C4D2E2CBBC .byte 205,179,206,180,192,237,189,226,196,250,181,196,210,226,203,188 + 00AB A3ACC7EBD6D8D0C2CBB5D2BBB1E95B6D .byte 163,172,199,235,214,216,208,194,203,181,210,187,177,233,91,'m + 00BB 335D5B645D00 .byte 51,93,91,'d,93,0 .area data(ram, con, rel) - 00B8 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 00B8 L50: - 00B8 .blkb 56 + 00C1 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 00C1 L50: + 00C1 .blkb 56 .area idata - 00B8 5B6D335D5B73355D5B76335D5B66315D .byte 91,'m,51,93,91,'s,53,93,91,'v,51,93,91,'f,49,93 - 00C8 5B62305DBBB6D3ADCAB9D3C3B6C0BED3 .byte 91,'b,48,93,187,182,211,173,202,185,211,195,182,192,190,211 - 00D8 C0CFC8CBD3A6BCB1BAF4BEC8CFB5CDB3 .byte 192,207,200,203,211,166,188,177,186,244,190,200,207,181,205,179 - 00E8 5B6D335D5B645D00 .byte 91,'m,51,93,91,'d,93,0 + 00C1 5B6D335D5B73355D5B76335D5B66315D .byte 91,'m,51,93,91,'s,53,93,91,'v,51,93,91,'f,49,93 + 00D1 5B62305DBBB6D3ADCAB9D3C3B6C0BED3 .byte 91,'b,48,93,187,182,211,173,202,185,211,195,182,192,190,211 + 00E1 C0CFC8CBD3A6BCB1BAF4BEC8CFB5CDB3 .byte 192,207,200,203,211,166,188,177,186,244,190,200,207,181,205,179 + 00F1 5B6D335D5B645D00 .byte 91,'m,51,93,91,'d,93,0 .area data(ram, con, rel) - 00F0 .dbfile E:\git\AVR\OldManAlarm\SYN7318.c - 00F0 ; } + 00F9 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c + 00F9 ; } diff --git a/SYN7318.o b/SYN7318.o index fdf9255..ea8a262 100644 --- a/SYN7318.o +++ b/SYN7318.o @@ -20,7 +20,7 @@ S _strlen Ref0000 S _RxBufRd Ref0000 A text size 3CA flags 0 dbfile SYN7318.c -dbfile E:\git\AVR\OldManAlarm\SYN7318.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c dbfunc e SYN7318_init 0 fV dbline FFFFFFFF 0 dbline 1A 0 @@ -266,16 +266,16 @@ S _setVoiceLevel Def01EA S _buildHead Def0024 S _voicePlayer Def013A S _updateWords Def027E -A data size F0 flags 20 +A data size F9 flags 20 dbfile SYN7318.c -dbfile E:\git\AVR\OldManAlarm\SYN7318.c -dbsym e words 0 A[69:69]c -dbsym e wordID 45 i +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c +dbsym e words 0 A[78:78]c +dbsym e wordID 4E i S _words Def0000 -S _wordID Def0045 -A idata size F0 flags 0 +S _wordID Def004E +A idata size F9 flags 0 A bss size FF flags 20 -dbfile E:\git\AVR\OldManAlarm\SYN7318.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\SYN7318.c dbsym e tmp_text 0 A[255:255]c S _tmp_text Def0000 T 00 00 BE C8 C3 FC 20 31 7C BE C8 C3 FC B0 A1 20 @@ -286,9 +286,11 @@ T 1C 00 E0 C9 D9 B6 C8 20 31 30 30 7C CF D6 D4 DA R 00 00 02 00 T 2A 00 CE C2 B6 C8 B6 E0 C9 D9 20 31 30 30 7C CF R 00 00 02 00 -T 38 00 D6 D4 DA BC B8 B5 E3 20 31 30 31 7C 00 +T 38 00 D6 D4 DA BC B8 B5 E3 20 31 30 31 7C CA B1 R 00 00 02 00 -T 45 00 00 00 +T 46 00 BC E4 20 31 30 31 7C 00 +R 00 00 02 00 +T 4E 00 00 00 R 00 00 02 00 T 00 00 A6 9A A7 9A AE 9A AF 9A 04 E6 10 E0 R 00 00 00 00 @@ -302,9 +304,9 @@ T 32 00 01 00 C8 01 90 70 80 93 02 00 20 93 03 00 R 00 00 00 00 02 02 0E 00 02 0A 0E 00 02 0E 0E 00 T 40 00 22 24 20 92 04 00 08 95 R 00 00 00 00 02 06 0E 00 -T 48 00 0E 94 00 00 44 27 22 24 33 24 30 92 46 00 +T 48 00 0E 94 00 00 44 27 22 24 33 24 30 92 4F 00 R 00 00 00 00 12 04 05 00 00 0E 01 00 -T 56 00 20 92 45 00 04 C0 01 E0 10 E0 0E 94 00 00 +T 56 00 20 92 4E 00 04 C0 01 E0 10 E0 0E 94 00 00 R 00 00 00 00 00 04 01 00 12 0E 01 00 T 64 00 20 90 00 00 30 90 00 00 32 14 B1 F3 R 00 00 00 00 02 04 00 00 02 08 10 00 @@ -328,13 +330,13 @@ T E0 00 A6 2E 43 E0 27 C0 65 34 19 F4 00 27 11 27 R 00 00 00 00 T EE 00 23 C0 AA 94 19 F4 06 2F 11 27 1E C0 C6 2E R 00 00 00 00 -T FC 00 44 E0 1A C0 20 90 45 00 30 90 46 00 32 2C +T FC 00 44 E0 1A C0 20 90 4E 00 30 90 4F 00 32 2C R 00 00 00 00 00 08 01 00 00 0C 01 00 -T 0A 01 22 24 30 92 46 00 20 92 45 00 26 2E 33 24 +T 0A 01 22 24 30 92 4F 00 20 92 4E 00 26 2E 33 24 R 00 00 00 00 00 06 01 00 00 0A 01 00 -T 18 01 40 90 45 00 50 90 46 00 42 28 53 28 50 92 +T 18 01 40 90 4E 00 50 90 4F 00 42 28 53 28 50 92 R 00 00 00 00 00 04 01 00 00 08 01 00 -T 26 01 46 00 40 92 45 00 AA 94 11 F4 82 01 01 C0 +T 26 01 4F 00 40 92 4E 00 AA 94 11 F4 82 01 01 C0 R 00 00 00 00 00 02 01 00 00 06 01 00 T 34 01 97 CF 0C 94 00 00 R 00 00 00 00 12 06 0D 00 @@ -361,7 +363,7 @@ R 00 00 00 00 T C2 01 0C 94 00 00 R 00 00 00 00 12 04 0B 00 T C6 01 20 E0 30 E0 -R 00 00 00 00 20 02 01 00 B8 00 40 04 01 00 B8 00 +R 00 00 00 00 20 02 01 00 C1 00 40 04 01 00 C1 00 T CA 01 00 E0 10 E0 R 00 00 00 00 20 02 03 00 00 00 40 04 03 00 00 00 T CE 01 0E 94 00 00 00 E0 @@ -369,7 +371,7 @@ R 00 00 00 00 12 04 07 00 20 06 03 00 00 00 T D4 01 10 E0 B1 CF R 00 00 00 00 40 02 03 00 00 00 T D8 01 20 E0 30 E0 -R 00 00 00 00 20 02 01 00 72 00 40 04 01 00 72 00 +R 00 00 00 00 20 02 01 00 7B 00 40 04 01 00 7B 00 T DC 01 00 E0 10 E0 R 00 00 00 00 20 02 03 00 00 00 40 04 03 00 00 00 T E0 01 0E 94 00 00 00 E0 @@ -419,9 +421,9 @@ R 00 00 00 00 T D2 02 80 93 00 00 22 24 20 92 00 00 20 92 00 00 R 00 00 00 00 02 04 08 00 02 0A 00 00 02 0E 10 00 T E0 02 0E 94 00 00 20 E0 -R 00 00 00 00 12 04 06 00 20 06 01 00 61 00 +R 00 00 00 00 12 04 06 00 20 06 01 00 6A 00 T E6 02 30 E0 08 E8 0E 94 00 00 02 E0 10 E0 -R 00 00 00 00 40 02 01 00 61 00 12 08 03 00 +R 00 00 00 00 40 02 01 00 6A 00 12 08 03 00 T F2 02 0E 94 00 00 A8 DE 01 34 E0 E0 1E 07 09 F4 R 00 00 00 00 12 04 01 00 T 00 03 05 C0 04 E1 10 E0 0E 94 00 00 E5 CF 9D DE @@ -429,13 +431,13 @@ R 00 00 00 00 12 0A 01 00 T 0E 03 A8 01 01 33 E0 E0 1E 07 71 F4 0E 94 00 00 R 00 00 00 00 12 0E 09 00 T 1C 03 20 E0 30 E0 08 E8 -R 00 00 00 00 20 02 01 00 54 00 40 04 01 00 54 00 +R 00 00 00 00 20 02 01 00 5D 00 40 04 01 00 5D 00 T 22 03 0E 94 00 00 08 EE 13 E0 0E 94 00 00 R 00 00 00 00 12 04 03 00 12 0C 01 00 T 2E 03 0E 94 00 00 0D C0 0E 94 00 00 R 00 00 00 00 12 04 09 00 12 0A 09 00 T 38 03 20 E0 30 E0 08 E8 -R 00 00 00 00 20 02 01 00 47 00 40 04 01 00 47 00 +R 00 00 00 00 20 02 01 00 50 00 40 04 01 00 50 00 T 3E 03 0E 94 00 00 08 EE 13 E0 0E 94 00 00 R 00 00 00 00 12 04 03 00 12 0C 01 00 T 4A 03 0E 94 00 00 0C 94 00 00 @@ -460,29 +462,29 @@ T BA 03 09 F4 05 C0 04 E1 10 E0 0E 94 00 00 EE CF R 00 00 00 00 12 0C 01 00 T C8 03 08 95 R 00 00 00 00 -T 47 00 B4 CA CC F5 B8 FC D0 C2 CA A7 B0 DC 00 +T 50 00 B4 CA CC F5 B8 FC D0 C2 CA A7 B0 DC 00 R 00 00 02 00 -T 54 00 B4 CA CC F5 B8 FC D0 C2 B3 C9 B9 A6 00 +T 5D 00 B4 CA CC F5 B8 FC D0 C2 B3 C9 B9 A6 00 R 00 00 02 00 -T 61 00 D5 FD D4 DA B8 FC D0 C2 B4 CA CC F5 A1 A3 +T 6A 00 D5 FD D4 DA B8 FC D0 C2 B4 CA CC F5 A1 A3 R 00 00 02 00 -T 6F 00 A1 A3 00 +T 78 00 A1 A3 00 R 00 00 02 00 -T 72 00 5B 6D 33 5D 5B 73 35 5D 5B 76 33 5D 5B 66 +T 7B 00 5B 6D 33 5D 5B 73 35 5D 5B 76 33 5D 5B 66 R 00 00 02 00 -T 80 00 31 5D 5B 62 30 5D B2 BB BA C3 D2 E2 CB BC +T 89 00 31 5D 5B 62 30 5D B2 BB BA C3 D2 E2 CB BC R 00 00 02 00 -T 8E 00 A3 AC CF B5 CD B3 CE B4 C0 ED BD E2 C4 FA +T 97 00 A3 AC CF B5 CD B3 CE B4 C0 ED BD E2 C4 FA R 00 00 02 00 -T 9C 00 B5 C4 D2 E2 CB BC A3 AC C7 EB D6 D8 D0 C2 +T A5 00 B5 C4 D2 E2 CB BC A3 AC C7 EB D6 D8 D0 C2 R 00 00 02 00 -T AA 00 CB B5 D2 BB B1 E9 5B 6D 33 5D 5B 64 5D 00 +T B3 00 CB B5 D2 BB B1 E9 5B 6D 33 5D 5B 64 5D 00 R 00 00 02 00 -T B8 00 5B 6D 33 5D 5B 73 35 5D 5B 76 33 5D 5B 66 +T C1 00 5B 6D 33 5D 5B 73 35 5D 5B 76 33 5D 5B 66 R 00 00 02 00 -T C6 00 31 5D 5B 62 30 5D BB B6 D3 AD CA B9 D3 C3 +T CF 00 31 5D 5B 62 30 5D BB B6 D3 AD CA B9 D3 C3 R 00 00 02 00 -T D4 00 B6 C0 BE D3 C0 CF C8 CB D3 A6 BC B1 BA F4 +T DD 00 B6 C0 BE D3 C0 CF C8 CB D3 A6 BC B1 BA F4 R 00 00 02 00 -T E2 00 BE C8 CF B5 CD B3 5B 6D 33 5D 5B 64 5D 00 +T EB 00 BE C8 CF B5 CD B3 5B 6D 33 5D 5B 64 5D 00 R 00 00 02 00 diff --git a/USART.lis b/USART.lis index 485fbbb..48a28a8 100644 --- a/USART.lis +++ b/USART.lis @@ -1,7 +1,7 @@ .module USART.c .area text(rom, con, rel) 0000 .dbfile USART.c - 0000 .dbfile E:\git\AVR\OldManAlarm\USART.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\USART.c 0000 .dbfunc e UART0_Init _UART0_Init fV .even 0000 _UART0_Init:: @@ -129,7 +129,7 @@ .org 72 0048 0C942D00 jmp _uart0_rx_isr .area text(rom, con, rel) - 005A .dbfile E:\git\AVR\OldManAlarm\USART.c + 005A .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\USART.c 005A .dbfunc e uart0_rx_isr _uart0_rx_isr fV .even 005A _uart0_rx_isr:: @@ -317,7 +317,7 @@ .org 120 0078 0C949100 jmp _uart1_rx_isr .area text(rom, con, rel) - 0122 .dbfile E:\git\AVR\OldManAlarm\USART.c + 0122 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\USART.c 0122 .dbfunc e uart1_rx_isr _uart1_rx_isr fV .even 0122 _uart1_rx_isr:: @@ -370,7 +370,7 @@ 0162 1895 reti 0164 .dbend .area bss(ram, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\USART.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\USART.c 0000 _RxBufRd_wifi:: 0000 .blkb 1 0001 .dbsym e RxBufRd_wifi _RxBufRd_wifi c diff --git a/USART.o b/USART.o index f58c7d3..f1016c5 100644 --- a/USART.o +++ b/USART.o @@ -3,7 +3,7 @@ H 3 areas 14 global symbols M USART.c A text size 164 flags 0 dbfile USART.c -dbfile E:\git\AVR\OldManAlarm\USART.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\USART.c dbfunc e UART0_Init 0 fV dbline FFFFFFFF 0 dbline 19 0 @@ -86,7 +86,7 @@ S _UART0_Init Def0000 S _UART1_Init Def009A A vector size 7C flags C A bss size 12A flags 20 -dbfile E:\git\AVR\OldManAlarm\USART.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\USART.c dbsym e RxBufRd_wifi 0 c dbsym e RxBufWr_wifi 1 c dbsym e RxCharNum_wifi 2 c diff --git a/basic.lis b/basic.lis index 71a796e..3b2b3b8 100644 --- a/basic.lis +++ b/basic.lis @@ -1,7 +1,7 @@ .module basic.c .area text(rom, con, rel) 0000 .dbfile basic.c - 0000 .dbfile E:\git\AVR\OldManAlarm\basic.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\basic.c 0000 .dbfunc e delay_1us _delay_1us fV .even 0000 _delay_1us:: diff --git a/basic.o b/basic.o index ea4bab8..b103e7c 100644 --- a/basic.o +++ b/basic.o @@ -3,7 +3,7 @@ H 1 areas 8 global symbols M basic.c A text size 94 flags 0 dbfile basic.c -dbfile E:\git\AVR\OldManAlarm\basic.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\basic.c dbfunc e delay_1us 0 fV dbline FFFFFFFF 0 dbline 3 0 diff --git a/main.c b/main.c index f2936a7..098c138 100644 --- a/main.c +++ b/main.c @@ -84,7 +84,9 @@ void main(void) // volatile unsigned char temp; uchar u8temp; uchar command; - uchar temp; + uchar temp; + uchar timestr[21]; //时间字符串数组 + uchar tempstr[7]; //温度字符串数组 system_init(); //系统初始化,设置IO口属性 delay_nms(100); //延时100ms @@ -165,7 +167,15 @@ void main(void) case 100 : DisplayCgrom(0x8C,"温度"); delay_nms(2); + strcpy((char*)tempstr,(char*)Temperaturetostr()); + voicePlayer(tempstr); break; + case 101: + DisplayCgrom(0x8C,"时间"); + delay_nms(2); + strcpy((char*)timestr,(char*)Timetostr()); + voicePlayer(timestr); + break; default : DisplayCgrom(0x8C,"识别成功"); delay_nms(2); diff --git a/main.lis b/main.lis index 0c8dc09..851378c 100644 --- a/main.lis +++ b/main.lis @@ -1,7 +1,7 @@ .module main.c .area text(rom, con, rel) 0000 .dbfile main.c - 0000 .dbfile E:\git\AVR\OldManAlarm\main.c + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c 0000 .dbfunc e welcomeDisplay _welcomeDisplay fV .even 0000 _welcomeDisplay:: @@ -170,471 +170,533 @@ 0072 0895 ret 0074 .dbend 0074 .dbfunc e main _main fV + 0074 ; tempstr -> y+21 + 0074 ; timestr -> y+0 0074 ; temp -> R20 0074 ; command -> R10 0074 ; u8temp -> R20 .even 0074 _main:: - 0074 .dbline -1 - 0074 .dbline 83 - 0074 ; //all peripherals are now initialized - 0074 ; } - 0074 ; - 0074 ; //*********************************************************************** - 0074 ; // 主程序 - 0074 ; //*********************************************************************** - 0074 ; void main(void) - 0074 ; { - 0074 .dbline 89 - 0074 ; // volatile unsigned char temp; - 0074 ; uchar u8temp; - 0074 ; uchar command; - 0074 ; uchar temp; - 0074 ; - 0074 ; system_init(); //系统初始化,设置IO口属性 - 0074 0E940000 xcall _system_init - 0078 .dbline 90 - 0078 ; delay_nms(100); //延时100ms - 0078 04E6 ldi R16,100 - 007A 10E0 ldi R17,0 - 007C 0E940000 xcall _delay_nms - 0080 .dbline 91 - 0080 ; LCD_init(); //液晶参数初始化设置 - 0080 0E940000 xcall _LCD_init - 0084 .dbline 92 - 0084 ; LCD_clear(); //清屏 - 0084 0E940000 xcall _LCD_clear - 0088 .dbline 94 - 0088 ; - 0088 ; ds1302_init(); //DS1302初始化 - 0088 0E940000 xcall _ds1302_init - 008C .dbline 95 - 008C ; DS18B20_Reset(); //复位D18B20 - 008C 0E940000 xcall _DS18B20_Reset - 0090 .dbline 96 - 0090 ; delay_nms(10); - 0090 0AE0 ldi R16,10 - 0092 10E0 ldi R17,0 - 0094 0E940000 xcall _delay_nms - 0098 .dbline 98 - 0098 ; //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 - 0098 ; welcomeDisplay(); - 0098 B3DF xcall _welcomeDisplay - 009A .dbline 99 - 009A ; init_devices(); - 009A DADF xcall _init_devices + 0074 6C97 sbiw R28,28 + 0076 .dbline -1 + 0076 .dbline 83 + 0076 ; //all peripherals are now initialized + 0076 ; } + 0076 ; + 0076 ; //*********************************************************************** + 0076 ; // 主程序 + 0076 ; //*********************************************************************** + 0076 ; void main(void) + 0076 ; { + 0076 .dbline 91 + 0076 ; // volatile unsigned char temp; + 0076 ; uchar u8temp; + 0076 ; uchar command; + 0076 ; uchar temp; + 0076 ; uchar timestr[21]; //时间字符串数组 + 0076 ; uchar tempstr[7]; //温度字符串数组 + 0076 ; + 0076 ; system_init(); //系统初始化,设置IO口属性 + 0076 0E940000 xcall _system_init + 007A .dbline 92 + 007A ; delay_nms(100); //延时100ms + 007A 04E6 ldi R16,100 + 007C 10E0 ldi R17,0 + 007E 0E940000 xcall _delay_nms + 0082 .dbline 93 + 0082 ; LCD_init(); //液晶参数初始化设置 + 0082 0E940000 xcall _LCD_init + 0086 .dbline 94 + 0086 ; LCD_clear(); //清屏 + 0086 0E940000 xcall _LCD_clear + 008A .dbline 96 + 008A ; + 008A ; ds1302_init(); //DS1302初始化 + 008A 0E940000 xcall _ds1302_init + 008E .dbline 97 + 008E ; DS18B20_Reset(); //复位D18B20 + 008E 0E940000 xcall _DS18B20_Reset + 0092 .dbline 98 + 0092 ; delay_nms(10); + 0092 0AE0 ldi R16,10 + 0094 10E0 ldi R17,0 + 0096 0E940000 xcall _delay_nms + 009A .dbline 100 + 009A ; //ds1302_write_time(); //向DS1302写初始数据,如年月和时间等 + 009A ; welcomeDisplay(); + 009A B2DF xcall _welcomeDisplay 009C .dbline 101 - 009C ; - 009C ; SYN7318_init(); //SYN7318语音识别模块 初始化 - 009C 0E940000 xcall _SYN7318_init - 00A0 .dbline 102 - 00A0 ; syn7318InitDisplay(); - 00A0 C3DF xcall _syn7318InitDisplay - 00A2 .dbline 108 - 00A2 ; - 00A2 ; - 00A2 ; //updateWords(); //SYN7318语音识别模块 词典更新 - 00A2 ; //SYN7318_welcome(); - 00A2 ; - 00A2 ; updateWords(); - 00A2 0E940000 xcall _updateWords - 00A6 C0C0 xjmp L10 - 00A8 L9: - 00A8 .dbline 110 - 00A8 ; - 00A8 ; while(1) { - 00A8 .dbline 112 - 00A8 ; - 00A8 ; displayDateTime(); - 00A8 0E940000 xcall _displayDateTime - 00AC .dbline 113 - 00AC ; LCD_write_temperature(); - 00AC 0E940000 xcall _LCD_write_temperature - 00B0 21C0 xjmp L13 - 00B2 L12: - 00B2 .dbline 116 - 00B2 ; - 00B2 ; //wifi - 00B2 ; while(RxBufWr_wifi != RxBufRd_wifi) { - 00B2 .dbline 117 - 00B2 ; LCD_write_com(0x98); - 00B2 08E9 ldi R16,152 - 00B4 0E940000 xcall _LCD_write_com - 00B8 .dbline 118 - 00B8 ; delay_nms(2); - 00B8 02E0 ldi R16,2 - 00BA 10E0 ldi R17,0 - 00BC 0E940000 xcall _delay_nms - 00C0 .dbline 119 - 00C0 ; u8temp = RxCharBuf_wifi[RxBufRd_wifi]; - 00C0 80E0 ldi R24,<_RxCharBuf_wifi - 00C2 90E0 ldi R25,>_RxCharBuf_wifi - 00C4 E0910000 lds R30,_RxBufRd_wifi - 00C8 FF27 clr R31 - 00CA E80F add R30,R24 - 00CC F91F adc R31,R25 - 00CE 4081 ldd R20,z+0 - 00D0 .dbline 120 - 00D0 ; RxBufRd_wifi++; - 00D0 80910000 lds R24,_RxBufRd_wifi - 00D4 8F5F subi R24,255 ; addi 1 - 00D6 80930000 sts _RxBufRd_wifi,R24 - 00DA .dbline 121 - 00DA ; RxBufRd_wifi &= 0x0f; - 00DA 8F70 andi R24,15 - 00DC 80930000 sts _RxBufRd_wifi,R24 - 00E0 .dbline 122 - 00E0 ; if(u8temp == 0x0d) break; - 00E0 4D30 cpi R20,13 - 00E2 09F4 brne L15 - 00E4 X0: - 00E4 .dbline 122 - 00E4 0DC0 xjmp L14 - 00E6 L15: - 00E6 .dbline 123 - 00E6 ; LCD_write_data(u8temp); - 00E6 042F mov R16,R20 - 00E8 0E940000 xcall _LCD_write_data - 00EC .dbline 124 - 00EC ; delay_nms(2); - 00EC 02E0 ldi R16,2 - 00EE 10E0 ldi R17,0 - 00F0 0E940000 xcall _delay_nms - 00F4 .dbline 126 - 00F4 ; //DisplayCgrom(0x98, &u8temp); - 00F4 ; } - 00F4 L13: - 00F4 .dbline 116 - 00F4 20900000 lds R2,_RxBufRd_wifi - 00F8 30900000 lds R3,_RxBufWr_wifi - 00FC 3214 cp R3,R2 - 00FE C9F6 brne L12 - 0100 X1: - 0100 L14: - 0100 .dbline 129 - 0100 ; - 0100 ; - 0100 ; startRecognition(); - 0100 0E940000 xcall _startRecognition - 0104 .dbline 130 - 0104 ; command = checkSendReturn(); - 0104 0E940000 xcall _checkSendReturn - 0108 A02E mov R10,R16 - 010A .dbline 132 - 010A ; - 010A ; switch(command){ - 010A 4A2D mov R20,R10 - 010C 5527 clr R21 - 010E 4130 cpi R20,1 - 0110 E0E0 ldi R30,0 - 0112 5E07 cpc R21,R30 - 0114 09F4 brne X12 - 0116 4DC0 xjmp L29 - 0118 X12: - 0118 X2: - 0118 4230 cpi R20,2 - 011A E0E0 ldi R30,0 - 011C 5E07 cpc R21,R30 - 011E 09F4 brne X13 - 0120 54C0 xjmp L31 - 0122 X13: - 0122 X3: - 0122 4330 cpi R20,3 - 0124 E0E0 ldi R30,0 - 0126 5E07 cpc R21,R30 - 0128 09F4 brne X14 - 012A 7EC0 xjmp L18 - 012C X14: - 012C X4: - 012C 4430 cpi R20,4 - 012E E0E0 ldi R30,0 - 0130 5E07 cpc R21,R30 - 0132 B9F0 breq L21 - 0134 X5: - 0134 4530 cpi R20,5 - 0136 E0E0 ldi R30,0 - 0138 5E07 cpc R21,R30 - 013A E9F0 breq L23 - 013C X6: - 013C 4630 cpi R20,6 - 013E E0E0 ldi R30,0 - 0140 5E07 cpc R21,R30 - 0142 69F1 breq L27 - 0144 X7: - 0144 4730 cpi R20,7 - 0146 E0E0 ldi R30,0 - 0148 5E07 cpc R21,R30 - 014A F9F0 breq L25 - 014C X8: - 014C 4130 cpi R20,1 - 014E E0E0 ldi R30,0 - 0150 5E07 cpc R21,R30 - 0152 0CF4 brge X15 - 0154 4EC0 xjmp L17 - 0156 X15: - 0156 X9: - 0156 L36: - 0156 4436 cpi R20,100 - 0158 E0E0 ldi R30,0 - 015A 5E07 cpc R21,R30 - 015C 09F4 brne X16 - 015E 3FC0 xjmp L33 - 0160 X16: - 0160 X10: - 0160 48C0 xjmp L17 - 0162 L21: - 0162 .dbline 137 - 0162 ; case OVER_TIME : - 0162 ; break; - 0162 ; case 0x04 : - 0162 ; //SYN7318_Error(); - 0162 ; DisplayCgrom(0x88,"语音超时"); - 0162 20E0 ldi R18,L22 - 0166 08E8 ldi R16,136 - 0168 0E940000 xcall _DisplayCgrom - 016C .dbline 138 - 016C ; delay_nms(2); - 016C 02E0 ldi R16,2 - 016E 10E0 ldi R17,0 - 0170 0E940000 xcall _delay_nms - 0174 .dbline 139 - 0174 ; break; - 0174 59C0 xjmp L18 - 0176 L23: - 0176 .dbline 142 - 0176 ; case 0x05 : - 0176 ; //SYN7318_Error(); - 0176 ; DisplayCgrom(0x88,"识别拒识"); - 0176 20E0 ldi R18,L24 - 017A 08E8 ldi R16,136 - 017C 0E940000 xcall _DisplayCgrom - 0180 .dbline 143 - 0180 ; delay_nms(2); - 0180 02E0 ldi R16,2 - 0182 10E0 ldi R17,0 - 0184 0E940000 xcall _delay_nms - 0188 .dbline 144 - 0188 ; break; - 0188 4FC0 xjmp L18 - 018A L25: - 018A .dbline 147 - 018A ; case 0x07 : - 018A ; //SYN7318_Error(); - 018A ; DisplayCgrom(0x88,"识别拒识一"); - 018A 20E0 ldi R18,L26 - 018E 08E8 ldi R16,136 - 0190 0E940000 xcall _DisplayCgrom - 0194 .dbline 148 - 0194 ; delay_nms(2); - 0194 02E0 ldi R16,2 - 0196 10E0 ldi R17,0 - 0198 0E940000 xcall _delay_nms - 019C .dbline 149 - 019C ; break; - 019C 45C0 xjmp L18 - 019E L27: - 019E .dbline 152 - 019E ; case 0x06 : - 019E ; //SYN7318_Error(); - 019E ; DisplayCgrom(0x88,"识别内部错误"); - 019E 20E0 ldi R18,L28 - 01A2 08E8 ldi R16,136 - 01A4 0E940000 xcall _DisplayCgrom - 01A8 .dbline 153 - 01A8 ; delay_nms(2); - 01A8 02E0 ldi R16,2 - 01AA 10E0 ldi R17,0 - 01AC 0E940000 xcall _delay_nms - 01B0 .dbline 154 - 01B0 ; break; - 01B0 3BC0 xjmp L18 - 01B2 L29: - 01B2 .dbline 156 - 01B2 ; case 1 : - 01B2 ; DisplayCgrom(0x8C,"救命"); - 01B2 20E0 ldi R18,L30 - 01B6 0CE8 ldi R16,140 - 01B8 0E940000 xcall _DisplayCgrom - 01BC .dbline 157 - 01BC ; delay_nms(2); - 01BC 02E0 ldi R16,2 - 01BE 10E0 ldi R17,0 - 01C0 0E940000 xcall _delay_nms - 01C4 .dbline 159 - 01C4 ; //wifi_SENDMSG(); - 01C4 ; wifi_Restart(); - 01C4 0E940000 xcall _wifi_Restart - 01C8 .dbline 160 - 01C8 ; break; - 01C8 2FC0 xjmp L18 - 01CA L31: - 01CA .dbline 162 - 01CA ; case 2 : - 01CA ; DisplayCgrom(0x8C,"哎呦"); - 01CA 20E0 ldi R18,L32 - 01CE 0CE8 ldi R16,140 - 01D0 0E940000 xcall _DisplayCgrom - 01D4 .dbline 163 - 01D4 ; delay_nms(2); - 01D4 02E0 ldi R16,2 - 01D6 10E0 ldi R17,0 - 01D8 0E940000 xcall _delay_nms - 01DC .dbline 164 - 01DC ; break; - 01DC 25C0 xjmp L18 - 01DE L33: - 01DE .dbline 166 - 01DE ; case 100 : - 01DE ; DisplayCgrom(0x8C,"温度"); - 01DE 20E0 ldi R18,L34 - 01E2 0CE8 ldi R16,140 - 01E4 0E940000 xcall _DisplayCgrom - 01E8 .dbline 167 - 01E8 ; delay_nms(2); - 01E8 02E0 ldi R16,2 - 01EA 10E0 ldi R17,0 - 01EC 0E940000 xcall _delay_nms - 01F0 .dbline 168 - 01F0 ; break; - 01F0 1BC0 xjmp L18 - 01F2 L17: - 01F2 .dbline 170 - 01F2 ; default : - 01F2 ; DisplayCgrom(0x8C,"识别成功"); - 01F2 20E0 ldi R18,L35 - 01F6 0CE8 ldi R16,140 - 01F8 0E940000 xcall _DisplayCgrom - 01FC .dbline 171 - 01FC ; delay_nms(2); - 01FC 02E0 ldi R16,2 - 01FE 10E0 ldi R17,0 - 0200 0E940000 xcall _delay_nms - 0204 .dbline 172 - 0204 ; LCD_write_com(0x8C); - 0204 0CE8 ldi R16,140 - 0206 0E940000 xcall _LCD_write_com - 020A .dbline 173 - 020A ; delay_nms(2); - 020A 02E0 ldi R16,2 - 020C 10E0 ldi R17,0 - 020E 0E940000 xcall _delay_nms - 0212 .dbline 174 - 0212 ; temp = (command >> 4) + '0'; //在LCD上写要显示的数据 - 0212 4A2D mov R20,R10 - 0214 4295 swap R20 - 0216 4F70 andi R20,#0x0F - 0218 405D subi R20,208 ; addi 48 - 021A .dbline 175 - 021A ; LCD_write_data(temp); - 021A 042F mov R16,R20 - 021C 0E940000 xcall _LCD_write_data - 0220 .dbline 176 - 0220 ; delay_nms(2); - 0220 02E0 ldi R16,2 - 0222 10E0 ldi R17,0 - 0224 0E940000 xcall _delay_nms - 0228 .dbline 177 - 0228 ; break; - 0228 L18: - 0228 .dbline 181 - 0228 ; } - 0228 ; - 0228 ; //if(command == ) - 0228 ; } - 0228 L10: - 0228 .dbline 110 - 0228 3FCF xjmp L9 - 022A X11: - 022A .dbline -2 - 022A L8: - 022A .dbline 0 ; func end - 022A 0895 ret - 022C .dbsym r temp 20 c - 022C .dbsym r command 10 c - 022C .dbsym r u8temp 20 c - 022C .dbend + 009C ; init_devices(); + 009C D9DF xcall _init_devices + 009E .dbline 103 + 009E ; + 009E ; SYN7318_init(); //SYN7318语音识别模块 初始化 + 009E 0E940000 xcall _SYN7318_init + 00A2 .dbline 104 + 00A2 ; syn7318InitDisplay(); + 00A2 C2DF xcall _syn7318InitDisplay + 00A4 .dbline 110 + 00A4 ; + 00A4 ; + 00A4 ; //updateWords(); //SYN7318语音识别模块 词典更新 + 00A4 ; //SYN7318_welcome(); + 00A4 ; + 00A4 ; updateWords(); + 00A4 0E940000 xcall _updateWords + 00A8 E6C0 xjmp L10 + 00AA L9: + 00AA .dbline 112 + 00AA ; + 00AA ; while(1) { + 00AA .dbline 114 + 00AA ; + 00AA ; displayDateTime(); + 00AA 0E940000 xcall _displayDateTime + 00AE .dbline 115 + 00AE ; LCD_write_temperature(); + 00AE 0E940000 xcall _LCD_write_temperature + 00B2 21C0 xjmp L13 + 00B4 L12: + 00B4 .dbline 118 + 00B4 ; + 00B4 ; //wifi + 00B4 ; while(RxBufWr_wifi != RxBufRd_wifi) { + 00B4 .dbline 119 + 00B4 ; LCD_write_com(0x98); + 00B4 08E9 ldi R16,152 + 00B6 0E940000 xcall _LCD_write_com + 00BA .dbline 120 + 00BA ; delay_nms(2); + 00BA 02E0 ldi R16,2 + 00BC 10E0 ldi R17,0 + 00BE 0E940000 xcall _delay_nms + 00C2 .dbline 121 + 00C2 ; u8temp = RxCharBuf_wifi[RxBufRd_wifi]; + 00C2 80E0 ldi R24,<_RxCharBuf_wifi + 00C4 90E0 ldi R25,>_RxCharBuf_wifi + 00C6 E0910000 lds R30,_RxBufRd_wifi + 00CA FF27 clr R31 + 00CC E80F add R30,R24 + 00CE F91F adc R31,R25 + 00D0 4081 ldd R20,z+0 + 00D2 .dbline 122 + 00D2 ; RxBufRd_wifi++; + 00D2 80910000 lds R24,_RxBufRd_wifi + 00D6 8F5F subi R24,255 ; addi 1 + 00D8 80930000 sts _RxBufRd_wifi,R24 + 00DC .dbline 123 + 00DC ; RxBufRd_wifi &= 0x0f; + 00DC 8F70 andi R24,15 + 00DE 80930000 sts _RxBufRd_wifi,R24 + 00E2 .dbline 124 + 00E2 ; if(u8temp == 0x0d) break; + 00E2 4D30 cpi R20,13 + 00E4 09F4 brne L15 + 00E6 X0: + 00E6 .dbline 124 + 00E6 0DC0 xjmp L14 + 00E8 L15: + 00E8 .dbline 125 + 00E8 ; LCD_write_data(u8temp); + 00E8 042F mov R16,R20 + 00EA 0E940000 xcall _LCD_write_data + 00EE .dbline 126 + 00EE ; delay_nms(2); + 00EE 02E0 ldi R16,2 + 00F0 10E0 ldi R17,0 + 00F2 0E940000 xcall _delay_nms + 00F6 .dbline 128 + 00F6 ; //DisplayCgrom(0x98, &u8temp); + 00F6 ; } + 00F6 L13: + 00F6 .dbline 118 + 00F6 20900000 lds R2,_RxBufRd_wifi + 00FA 30900000 lds R3,_RxBufWr_wifi + 00FE 3214 cp R3,R2 + 0100 C9F6 brne L12 + 0102 X1: + 0102 L14: + 0102 .dbline 131 + 0102 ; + 0102 ; + 0102 ; startRecognition(); + 0102 0E940000 xcall _startRecognition + 0106 .dbline 132 + 0106 ; command = checkSendReturn(); + 0106 0E940000 xcall _checkSendReturn + 010A A02E mov R10,R16 + 010C .dbline 134 + 010C ; + 010C ; switch(command){ + 010C 4A2D mov R20,R10 + 010E 5527 clr R21 + 0110 4130 cpi R20,1 + 0112 E0E0 ldi R30,0 + 0114 5E07 cpc R21,R30 + 0116 09F4 brne X13 + 0118 52C0 xjmp L29 + 011A X13: + 011A X2: + 011A 4230 cpi R20,2 + 011C E0E0 ldi R30,0 + 011E 5E07 cpc R21,R30 + 0120 09F4 brne X14 + 0122 59C0 xjmp L31 + 0124 X14: + 0124 X3: + 0124 4330 cpi R20,3 + 0126 E0E0 ldi R30,0 + 0128 5E07 cpc R21,R30 + 012A 09F4 brne X15 + 012C A4C0 xjmp L18 + 012E X15: + 012E X4: + 012E 4430 cpi R20,4 + 0130 E0E0 ldi R30,0 + 0132 5E07 cpc R21,R30 + 0134 E1F0 breq L21 + 0136 X5: + 0136 4530 cpi R20,5 + 0138 E0E0 ldi R30,0 + 013A 5E07 cpc R21,R30 + 013C 11F1 breq L23 + 013E X6: + 013E 4630 cpi R20,6 + 0140 E0E0 ldi R30,0 + 0142 5E07 cpc R21,R30 + 0144 91F1 breq L27 + 0146 X7: + 0146 4730 cpi R20,7 + 0148 E0E0 ldi R30,0 + 014A 5E07 cpc R21,R30 + 014C 21F1 breq L25 + 014E X8: + 014E 4130 cpi R20,1 + 0150 E0E0 ldi R30,0 + 0152 5E07 cpc R21,R30 + 0154 0CF4 brge X16 + 0156 74C0 xjmp L17 + 0158 X16: + 0158 X9: + 0158 L38: + 0158 4436 cpi R20,100 + 015A E0E0 ldi R30,0 + 015C 5E07 cpc R21,R30 + 015E 09F4 brne X17 + 0160 44C0 xjmp L33 + 0162 X17: + 0162 X10: + 0162 4536 cpi R20,101 + 0164 E0E0 ldi R30,0 + 0166 5E07 cpc R21,R30 + 0168 09F4 brne X18 + 016A 56C0 xjmp L35 + 016C X18: + 016C X11: + 016C 69C0 xjmp L17 + 016E L21: + 016E .dbline 139 + 016E ; case OVER_TIME : + 016E ; break; + 016E ; case 0x04 : + 016E ; //SYN7318_Error(); + 016E ; DisplayCgrom(0x88,"语音超时"); + 016E 20E0 ldi R18,L22 + 0172 08E8 ldi R16,136 + 0174 0E940000 xcall _DisplayCgrom + 0178 .dbline 140 + 0178 ; delay_nms(2); + 0178 02E0 ldi R16,2 + 017A 10E0 ldi R17,0 + 017C 0E940000 xcall _delay_nms + 0180 .dbline 141 + 0180 ; break; + 0180 7AC0 xjmp L18 + 0182 L23: + 0182 .dbline 144 + 0182 ; case 0x05 : + 0182 ; //SYN7318_Error(); + 0182 ; DisplayCgrom(0x88,"识别拒识"); + 0182 20E0 ldi R18,L24 + 0186 08E8 ldi R16,136 + 0188 0E940000 xcall _DisplayCgrom + 018C .dbline 145 + 018C ; delay_nms(2); + 018C 02E0 ldi R16,2 + 018E 10E0 ldi R17,0 + 0190 0E940000 xcall _delay_nms + 0194 .dbline 146 + 0194 ; break; + 0194 70C0 xjmp L18 + 0196 L25: + 0196 .dbline 149 + 0196 ; case 0x07 : + 0196 ; //SYN7318_Error(); + 0196 ; DisplayCgrom(0x88,"识别拒识一"); + 0196 20E0 ldi R18,L26 + 019A 08E8 ldi R16,136 + 019C 0E940000 xcall _DisplayCgrom + 01A0 .dbline 150 + 01A0 ; delay_nms(2); + 01A0 02E0 ldi R16,2 + 01A2 10E0 ldi R17,0 + 01A4 0E940000 xcall _delay_nms + 01A8 .dbline 151 + 01A8 ; break; + 01A8 66C0 xjmp L18 + 01AA L27: + 01AA .dbline 154 + 01AA ; case 0x06 : + 01AA ; //SYN7318_Error(); + 01AA ; DisplayCgrom(0x88,"识别内部错误"); + 01AA 20E0 ldi R18,L28 + 01AE 08E8 ldi R16,136 + 01B0 0E940000 xcall _DisplayCgrom + 01B4 .dbline 155 + 01B4 ; delay_nms(2); + 01B4 02E0 ldi R16,2 + 01B6 10E0 ldi R17,0 + 01B8 0E940000 xcall _delay_nms + 01BC .dbline 156 + 01BC ; break; + 01BC 5CC0 xjmp L18 + 01BE L29: + 01BE .dbline 158 + 01BE ; case 1 : + 01BE ; DisplayCgrom(0x8C,"救命"); + 01BE 20E0 ldi R18,L30 + 01C2 0CE8 ldi R16,140 + 01C4 0E940000 xcall _DisplayCgrom + 01C8 .dbline 159 + 01C8 ; delay_nms(2); + 01C8 02E0 ldi R16,2 + 01CA 10E0 ldi R17,0 + 01CC 0E940000 xcall _delay_nms + 01D0 .dbline 161 + 01D0 ; //wifi_SENDMSG(); + 01D0 ; wifi_Restart(); + 01D0 0E940000 xcall _wifi_Restart + 01D4 .dbline 162 + 01D4 ; break; + 01D4 50C0 xjmp L18 + 01D6 L31: + 01D6 .dbline 164 + 01D6 ; case 2 : + 01D6 ; DisplayCgrom(0x8C,"哎呦"); + 01D6 20E0 ldi R18,L32 + 01DA 0CE8 ldi R16,140 + 01DC 0E940000 xcall _DisplayCgrom + 01E0 .dbline 165 + 01E0 ; delay_nms(2); + 01E0 02E0 ldi R16,2 + 01E2 10E0 ldi R17,0 + 01E4 0E940000 xcall _delay_nms + 01E8 .dbline 166 + 01E8 ; break; + 01E8 46C0 xjmp L18 + 01EA L33: + 01EA .dbline 168 + 01EA ; case 100 : + 01EA ; DisplayCgrom(0x8C,"温度"); + 01EA 20E0 ldi R18,L34 + 01EE 0CE8 ldi R16,140 + 01F0 0E940000 xcall _DisplayCgrom + 01F4 .dbline 169 + 01F4 ; delay_nms(2); + 01F4 02E0 ldi R16,2 + 01F6 10E0 ldi R17,0 + 01F8 0E940000 xcall _delay_nms + 01FC .dbline 170 + 01FC ; strcpy((char*)tempstr,(char*)Temperaturetostr()); + 01FC 0E940000 xcall _Temperaturetostr + 0200 9801 movw R18,R16 + 0202 8E01 movw R16,R28 + 0204 0B5E subi R16,235 ; offset = 21 + 0206 1F4F sbci R17,255 + 0208 0E940000 xcall _strcpy + 020C .dbline 171 + 020C ; voicePlayer(tempstr); + 020C 8E01 movw R16,R28 + 020E 0B5E subi R16,235 ; offset = 21 + 0210 1F4F sbci R17,255 + 0212 0E940000 xcall _voicePlayer + 0216 .dbline 172 + 0216 ; break; + 0216 2FC0 xjmp L18 + 0218 L35: + 0218 .dbline 174 + 0218 ; case 101: + 0218 ; DisplayCgrom(0x8C,"时间"); + 0218 20E0 ldi R18,L36 + 021C 0CE8 ldi R16,140 + 021E 0E940000 xcall _DisplayCgrom + 0222 .dbline 175 + 0222 ; delay_nms(2); + 0222 02E0 ldi R16,2 + 0224 10E0 ldi R17,0 + 0226 0E940000 xcall _delay_nms + 022A .dbline 176 + 022A ; strcpy((char*)timestr,(char*)Timetostr()); + 022A 0E940000 xcall _Timetostr + 022E 6801 movw R12,R16 + 0230 9601 movw R18,R12 + 0232 8E01 movw R16,R28 + 0234 0E940000 xcall _strcpy + 0238 .dbline 177 + 0238 ; voicePlayer(timestr); + 0238 8E01 movw R16,R28 + 023A 0E940000 xcall _voicePlayer + 023E .dbline 178 + 023E ; break; + 023E 1BC0 xjmp L18 + 0240 L17: + 0240 .dbline 180 + 0240 ; default : + 0240 ; DisplayCgrom(0x8C,"识别成功"); + 0240 20E0 ldi R18,L37 + 0244 0CE8 ldi R16,140 + 0246 0E940000 xcall _DisplayCgrom + 024A .dbline 181 + 024A ; delay_nms(2); + 024A 02E0 ldi R16,2 + 024C 10E0 ldi R17,0 + 024E 0E940000 xcall _delay_nms + 0252 .dbline 182 + 0252 ; LCD_write_com(0x8C); + 0252 0CE8 ldi R16,140 + 0254 0E940000 xcall _LCD_write_com + 0258 .dbline 183 + 0258 ; delay_nms(2); + 0258 02E0 ldi R16,2 + 025A 10E0 ldi R17,0 + 025C 0E940000 xcall _delay_nms + 0260 .dbline 184 + 0260 ; temp = (command >> 4) + '0'; //在LCD上写要显示的数据 + 0260 4A2D mov R20,R10 + 0262 4295 swap R20 + 0264 4F70 andi R20,#0x0F + 0266 405D subi R20,208 ; addi 48 + 0268 .dbline 185 + 0268 ; LCD_write_data(temp); + 0268 042F mov R16,R20 + 026A 0E940000 xcall _LCD_write_data + 026E .dbline 186 + 026E ; delay_nms(2); + 026E 02E0 ldi R16,2 + 0270 10E0 ldi R17,0 + 0272 0E940000 xcall _delay_nms + 0276 .dbline 187 + 0276 ; break; + 0276 L18: + 0276 .dbline 191 + 0276 ; } + 0276 ; + 0276 ; //if(command == ) + 0276 ; } + 0276 L10: + 0276 .dbline 112 + 0276 19CF xjmp L9 + 0278 X12: + 0278 .dbline -2 + 0278 L8: + 0278 .dbline 0 ; func end + 0278 6C96 adiw R28,28 + 027A 0895 ret + 027C .dbsym l tempstr 21 A[7:7]c + 027C .dbsym l timestr 0 A[21:21]c + 027C .dbsym r temp 20 c + 027C .dbsym r command 10 c + 027C .dbsym r u8temp 20 c + 027C .dbend .area data(ram, con, rel) - 0000 .dbfile E:\git\AVR\OldManAlarm\main.c - 0000 L35: + 0000 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0000 L37: 0000 .blkb 9 .area idata 0000 CAB6B1F0B3C9B9A600 .byte 202,182,177,240,179,201,185,166,0 .area data(ram, con, rel) - 0009 .dbfile E:\git\AVR\OldManAlarm\main.c - 0009 L34: + 0009 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0009 L36: 0009 .blkb 5 .area idata - 0009 CEC2B6C800 .byte 206,194,182,200,0 + 0009 CAB1BCE400 .byte 202,177,188,228,0 .area data(ram, con, rel) - 000E .dbfile E:\git\AVR\OldManAlarm\main.c - 000E L32: + 000E .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 000E L34: 000E .blkb 5 .area idata - 000E B0A5DFCF00 .byte 176,165,223,207,0 + 000E CEC2B6C800 .byte 206,194,182,200,0 .area data(ram, con, rel) - 0013 .dbfile E:\git\AVR\OldManAlarm\main.c - 0013 L30: + 0013 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0013 L32: 0013 .blkb 5 .area idata - 0013 BEC8C3FC00 .byte 190,200,195,252,0 + 0013 B0A5DFCF00 .byte 176,165,223,207,0 .area data(ram, con, rel) - 0018 .dbfile E:\git\AVR\OldManAlarm\main.c - 0018 L28: - 0018 .blkb 13 + 0018 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0018 L30: + 0018 .blkb 5 .area idata - 0018 CAB6B1F0C4DAB2BFB4EDCEF300 .byte 202,182,177,240,196,218,178,191,180,237,206,243,0 + 0018 BEC8C3FC00 .byte 190,200,195,252,0 .area data(ram, con, rel) - 0025 .dbfile E:\git\AVR\OldManAlarm\main.c - 0025 L26: - 0025 .blkb 11 + 001D .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 001D L28: + 001D .blkb 13 .area idata - 0025 CAB6B1F0BEDCCAB6D2BB00 .byte 202,182,177,240,190,220,202,182,210,187,0 + 001D CAB6B1F0C4DAB2BFB4EDCEF300 .byte 202,182,177,240,196,218,178,191,180,237,206,243,0 .area data(ram, con, rel) - 0030 .dbfile E:\git\AVR\OldManAlarm\main.c - 0030 L24: - 0030 .blkb 9 + 002A .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 002A L26: + 002A .blkb 11 .area idata - 0030 CAB6B1F0BEDCCAB600 .byte 202,182,177,240,190,220,202,182,0 + 002A CAB6B1F0BEDCCAB6D2BB00 .byte 202,182,177,240,190,220,202,182,210,187,0 .area data(ram, con, rel) - 0039 .dbfile E:\git\AVR\OldManAlarm\main.c - 0039 L22: - 0039 .blkb 9 + 0035 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0035 L24: + 0035 .blkb 9 .area idata - 0039 D3EFD2F4B3ACCAB100 .byte 211,239,210,244,179,172,202,177,0 + 0035 CAB6B1F0BEDCCAB600 .byte 202,182,177,240,190,220,202,182,0 .area data(ram, con, rel) - 0042 .dbfile E:\git\AVR\OldManAlarm\main.c - 0042 L6: - 0042 .blkb 9 + 003E .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 003E L22: + 003E .blkb 9 .area idata - 0042 B3F5CABCBBAFD6D000 .byte 179,245,202,188,187,175,214,208,0 + 003E D3EFD2F4B3ACCAB100 .byte 211,239,210,244,179,172,202,177,0 .area data(ram, con, rel) - 004B .dbfile E:\git\AVR\OldManAlarm\main.c - 004B L5: - 004B .blkb 9 + 0047 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0047 L6: + 0047 .blkb 9 .area idata - 004B D3EFD2F4C4A3BFE900 .byte 211,239,210,244,196,163,191,233,0 + 0047 B3F5CABCBBAFD6D000 .byte 179,245,202,188,187,175,214,208,0 .area data(ram, con, rel) - 0054 .dbfile E:\git\AVR\OldManAlarm\main.c - 0054 L3: - 0054 .blkb 9 + 0050 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0050 L5: + 0050 .blkb 9 .area idata - 0054 D4A4BEAFCFB5CDB300 .byte 212,164,190,175,207,181,205,179,0 + 0050 D3EFD2F4C4A3BFE900 .byte 211,239,210,244,196,163,191,233,0 .area data(ram, con, rel) - 005D .dbfile E:\git\AVR\OldManAlarm\main.c - 005D L2: - 005D .blkb 17 + 0059 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0059 L3: + 0059 .blkb 9 .area idata - 005D BBB6D3ADCAB9D3C3B6C0BED3C0CFC8CB .byte 187,182,211,173,202,185,211,195,182,192,190,211,192,207,200,203 - 006D 00 .byte 0 + 0059 D4A4BEAFCFB5CDB300 .byte 212,164,190,175,207,181,205,179,0 .area data(ram, con, rel) - 006E .dbfile E:\git\AVR\OldManAlarm\main.c - 006E ; } - 006E ; + 0062 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0062 L2: + 0062 .blkb 17 + .area idata + 0062 BBB6D3ADCAB9D3C3B6C0BED3C0CFC8CB .byte 187,182,211,173,202,185,211,195,182,192,190,211,192,207,200,203 + 0072 00 .byte 0 + .area data(ram, con, rel) + 0073 .dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c + 0073 ; } + 0073 ; diff --git a/main.o b/main.o index b9daaf9..9d6ab11 100644 --- a/main.o +++ b/main.o @@ -1,12 +1,15 @@ XL -H 3 areas 18 global symbols +H 3 areas 1C global symbols M main.c +S _strcpy Ref0000 S _RxBufRd_wifi Ref0000 S _startRecognition Ref0000 S _ds1302_init Ref0000 S _system_init Ref0000 S _delay_nms Ref0000 S _RxBufWr_wifi Ref0000 +S _Temperaturetostr Ref0000 +S _Timetostr Ref0000 S _DisplayCgrom Ref0000 S _SYN7318_init Ref0000 S _LCD_init Ref0000 @@ -20,10 +23,11 @@ S _LCD_write_data Ref0000 S _UART0_Init Ref0000 S _LCD_write_temperature Ref0000 S _RxCharBuf_wifi Ref0000 +S _voicePlayer Ref0000 S _updateWords Ref0000 -A text size 22C flags 0 +A text size 27C flags 0 dbfile main.c -dbfile E:\git\AVR\OldManAlarm\main.c +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c dbfunc e welcomeDisplay 0 fV dbline FFFFFFFF 0 dbline 27 0 @@ -61,207 +65,230 @@ dbline 4B 70 dbline FFFFFFFE 72 dbline 0 72 dbfunc e main 74 fV +dbsym l tempstr 15 A[7:7]c +dbsym l timestr 0 A[21:21]c dbsym r temp 14 c dbsym r command A c dbsym r u8temp 14 c -dbline FFFFFFFF 74 -dbline 53 74 -dbline 59 74 -dbline 5A 78 -dbline 5B 80 -dbline 5C 84 -dbline 5E 88 -dbline 5F 8C -dbline 60 90 -dbline 62 98 -dbline 63 9A +dbline FFFFFFFF 76 +dbline 53 76 +dbline 5B 76 +dbline 5C 7A +dbline 5D 82 +dbline 5E 86 +dbline 60 8A +dbline 61 8E +dbline 62 92 +dbline 64 9A dbline 65 9C -dbline 66 A0 -dbline 6C A2 -dbline 6E A8 -dbline 70 A8 -dbline 71 AC -dbline 74 B2 -dbline 75 B2 -dbline 76 B8 -dbline 77 C0 -dbline 78 D0 -dbline 79 DA -dbline 7A E0 -dbline 7A E4 -dbline 7B E6 -dbline 7C EC -dbline 7E F4 -dbline 74 F4 -dbline 81 100 -dbline 82 104 -dbline 84 10A -dbline 89 162 -dbline 8A 16C -dbline 8B 174 -dbline 8E 176 -dbline 8F 180 -dbline 90 188 -dbline 93 18A -dbline 94 194 -dbline 95 19C -dbline 98 19E -dbline 99 1A8 -dbline 9A 1B0 -dbline 9C 1B2 -dbline 9D 1BC -dbline 9F 1C4 -dbline A0 1C8 -dbline A2 1CA -dbline A3 1D4 -dbline A4 1DC -dbline A6 1DE -dbline A7 1E8 -dbline A8 1F0 -dbline AA 1F2 -dbline AB 1FC -dbline AC 204 -dbline AD 20A -dbline AE 212 -dbline AF 21A -dbline B0 220 -dbline B1 228 -dbline B5 228 -dbline 6E 228 -dbline FFFFFFFE 22A -dbline 0 22A +dbline 67 9E +dbline 68 A2 +dbline 6E A4 +dbline 70 AA +dbline 72 AA +dbline 73 AE +dbline 76 B4 +dbline 77 B4 +dbline 78 BA +dbline 79 C2 +dbline 7A D2 +dbline 7B DC +dbline 7C E2 +dbline 7C E6 +dbline 7D E8 +dbline 7E EE +dbline 80 F6 +dbline 76 F6 +dbline 83 102 +dbline 84 106 +dbline 86 10C +dbline 8B 16E +dbline 8C 178 +dbline 8D 180 +dbline 90 182 +dbline 91 18C +dbline 92 194 +dbline 95 196 +dbline 96 1A0 +dbline 97 1A8 +dbline 9A 1AA +dbline 9B 1B4 +dbline 9C 1BC +dbline 9E 1BE +dbline 9F 1C8 +dbline A1 1D0 +dbline A2 1D4 +dbline A4 1D6 +dbline A5 1E0 +dbline A6 1E8 +dbline A8 1EA +dbline A9 1F4 +dbline AA 1FC +dbline AB 20C +dbline AC 216 +dbline AE 218 +dbline AF 222 +dbline B0 22A +dbline B1 238 +dbline B2 23E +dbline B4 240 +dbline B5 24A +dbline B6 252 +dbline B7 258 +dbline B8 260 +dbline B9 268 +dbline BA 26E +dbline BB 276 +dbline BF 276 +dbline 70 276 +dbline FFFFFFFE 278 +dbline 0 278 S _main Def0074 S _welcomeDisplay Def0000 S _init_devices Def0050 S _syn7318InitDisplay Def0028 -A data size 6E flags 20 -dbfile E:\git\AVR\OldManAlarm\main.c -A idata size 6E flags 0 +A data size 73 flags 20 +dbfile G:\基于ASR技术的独居老人应急呼救系统\OldManAlarm\main.c +A idata size 73 flags 0 T 00 00 20 E0 30 E0 00 E9 -R 00 00 00 00 20 02 01 00 5D 00 40 04 01 00 5D 00 +R 00 00 00 00 20 02 01 00 62 00 40 04 01 00 62 00 T 06 00 0E 94 00 00 04 E6 10 E0 0E 94 00 00 -R 00 00 00 00 12 04 06 00 12 0C 04 00 +R 00 00 00 00 12 04 09 00 12 0C 05 00 T 12 00 20 E0 30 E0 0A E8 -R 00 00 00 00 20 02 01 00 54 00 40 04 01 00 54 00 +R 00 00 00 00 20 02 01 00 59 00 40 04 01 00 59 00 T 18 00 0E 94 00 00 08 EB 1B E0 0E 94 00 00 -R 00 00 00 00 12 04 06 00 12 0C 04 00 +R 00 00 00 00 12 04 09 00 12 0C 05 00 T 24 00 0C 94 00 00 -R 00 00 00 00 12 04 0E 00 +R 00 00 00 00 12 04 11 00 T 28 00 20 E0 30 E0 00 E9 -R 00 00 00 00 20 02 01 00 4B 00 40 04 01 00 4B 00 +R 00 00 00 00 20 02 01 00 50 00 40 04 01 00 50 00 T 2E 00 0E 94 00 00 04 E6 10 E0 0E 94 00 00 -R 00 00 00 00 12 04 06 00 12 0C 04 00 +R 00 00 00 00 12 04 09 00 12 0C 05 00 T 3A 00 20 E0 30 E0 0A E8 -R 00 00 00 00 20 02 01 00 42 00 40 04 01 00 42 00 +R 00 00 00 00 20 02 01 00 47 00 40 04 01 00 47 00 T 40 00 0E 94 00 00 08 EB 1B E0 0E 94 00 00 -R 00 00 00 00 12 04 06 00 12 0C 04 00 +R 00 00 00 00 12 04 09 00 12 0C 05 00 T 4C 00 0C 94 00 00 -R 00 00 00 00 12 04 0E 00 +R 00 00 00 00 12 04 11 00 T 50 00 F8 94 22 24 2C BE 20 92 6D 00 0E 94 00 00 -R 00 00 00 00 12 0E 10 00 +R 00 00 00 00 12 0E 13 00 T 5E 00 22 24 25 BE 20 92 6A 00 2A BE 29 BE 27 BE R 00 00 00 00 T 6C 00 20 92 7D 00 78 94 08 95 R 00 00 00 00 -T 74 00 0E 94 00 00 04 E6 10 E0 0E 94 00 00 -R 00 00 00 00 12 04 03 00 12 0C 04 00 -T 80 00 0E 94 00 00 0E 94 00 00 0E 94 00 00 -R 00 00 00 00 12 04 08 00 12 08 0E 00 12 0C 02 00 -T 8C 00 0E 94 00 00 0A E0 10 E0 0E 94 00 00 B3 DF -R 00 00 00 00 12 04 0C 00 12 0C 04 00 -T 9A 00 DA DF 0E 94 00 00 C3 DF 0E 94 00 00 C0 C0 -R 00 00 00 00 12 06 07 00 12 0C 13 00 -T A8 00 0E 94 00 00 0E 94 00 00 21 C0 08 E9 -R 00 00 00 00 12 04 0B 00 12 08 11 00 -T B4 00 0E 94 00 00 02 E0 10 E0 0E 94 00 00 -R 00 00 00 00 12 04 0A 00 12 0C 04 00 -T C0 00 80 E0 90 E0 E0 91 -R 00 00 00 00 22 02 12 00 00 00 42 04 12 00 00 00 -T C6 00 00 00 FF 27 E8 0F F9 1F 40 81 80 91 00 00 -R 00 00 00 00 02 02 00 00 02 0E 00 00 -T D4 00 8F 5F 80 93 00 00 8F 70 80 93 00 00 4D 30 -R 00 00 00 00 02 06 00 00 02 0C 00 00 -T E2 00 09 F4 0D C0 04 2F 0E 94 00 00 02 E0 10 E0 -R 00 00 00 00 12 0A 0F 00 -T F0 00 0E 94 00 00 20 90 00 00 30 90 00 00 32 14 -R 00 00 00 00 12 04 04 00 02 08 00 00 02 0C 05 00 -T FE 00 C9 F6 0E 94 00 00 0E 94 00 00 A0 2E 4A 2D -R 00 00 00 00 12 06 01 00 12 0A 0D 00 -T 0C 01 55 27 41 30 E0 E0 5E 07 09 F4 4D C0 42 30 +T 74 00 6C 97 0E 94 00 00 04 E6 10 E0 0E 94 00 00 +R 00 00 00 00 12 06 04 00 12 0E 05 00 +T 82 00 0E 94 00 00 0E 94 00 00 0E 94 00 00 +R 00 00 00 00 12 04 0B 00 12 08 11 00 12 0C 03 00 +T 8E 00 0E 94 00 00 0A E0 10 E0 0E 94 00 00 B2 DF +R 00 00 00 00 12 04 0F 00 12 0C 05 00 +T 9C 00 D9 DF 0E 94 00 00 C2 DF 0E 94 00 00 E6 C0 +R 00 00 00 00 12 06 0A 00 12 0C 17 00 +T AA 00 0E 94 00 00 0E 94 00 00 21 C0 08 E9 +R 00 00 00 00 12 04 0E 00 12 08 14 00 +T B6 00 0E 94 00 00 02 E0 10 E0 0E 94 00 00 +R 00 00 00 00 12 04 0D 00 12 0C 05 00 +T C2 00 80 E0 90 E0 E0 91 +R 00 00 00 00 22 02 15 00 00 00 42 04 15 00 00 00 +T C8 00 00 00 FF 27 E8 0F F9 1F 40 81 80 91 00 00 +R 00 00 00 00 02 02 01 00 02 0E 01 00 +T D6 00 8F 5F 80 93 00 00 8F 70 80 93 00 00 4D 30 +R 00 00 00 00 02 06 01 00 02 0C 01 00 +T E4 00 09 F4 0D C0 04 2F 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 12 0A 12 00 +T F2 00 0E 94 00 00 20 90 00 00 30 90 00 00 32 14 +R 00 00 00 00 12 04 05 00 02 08 01 00 02 0C 06 00 +T 00 01 C9 F6 0E 94 00 00 0E 94 00 00 A0 2E 4A 2D +R 00 00 00 00 12 06 02 00 12 0A 10 00 +T 0E 01 55 27 41 30 E0 E0 5E 07 09 F4 52 C0 42 30 R 00 00 00 00 -T 1A 01 E0 E0 5E 07 09 F4 54 C0 43 30 E0 E0 5E 07 +T 1C 01 E0 E0 5E 07 09 F4 59 C0 43 30 E0 E0 5E 07 R 00 00 00 00 -T 28 01 09 F4 7E C0 44 30 E0 E0 5E 07 B9 F0 45 30 +T 2A 01 09 F4 A4 C0 44 30 E0 E0 5E 07 E1 F0 45 30 R 00 00 00 00 -T 36 01 E0 E0 5E 07 E9 F0 46 30 E0 E0 5E 07 69 F1 +T 38 01 E0 E0 5E 07 11 F1 46 30 E0 E0 5E 07 91 F1 R 00 00 00 00 -T 44 01 47 30 E0 E0 5E 07 F9 F0 41 30 E0 E0 5E 07 +T 46 01 47 30 E0 E0 5E 07 21 F1 41 30 E0 E0 5E 07 R 00 00 00 00 -T 52 01 0C F4 4E C0 44 36 E0 E0 5E 07 09 F4 3F C0 +T 54 01 0C F4 74 C0 44 36 E0 E0 5E 07 09 F4 44 C0 R 00 00 00 00 -T 60 01 48 C0 20 E0 30 E0 08 E8 -R 00 00 00 00 20 04 01 00 39 00 40 06 01 00 39 00 -T 68 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 59 C0 -R 00 00 00 00 12 04 06 00 12 0C 04 00 -T 76 01 20 E0 30 E0 08 E8 -R 00 00 00 00 20 02 01 00 30 00 40 04 01 00 30 00 -T 7C 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 4F C0 -R 00 00 00 00 12 04 06 00 12 0C 04 00 -T 8A 01 20 E0 30 E0 08 E8 -R 00 00 00 00 20 02 01 00 25 00 40 04 01 00 25 00 -T 90 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 45 C0 -R 00 00 00 00 12 04 06 00 12 0C 04 00 -T 9E 01 20 E0 30 E0 08 E8 -R 00 00 00 00 20 02 01 00 18 00 40 04 01 00 18 00 -T A4 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 3B C0 -R 00 00 00 00 12 04 06 00 12 0C 04 00 -T B2 01 20 E0 30 E0 0C E8 +T 62 01 45 36 E0 E0 5E 07 09 F4 56 C0 69 C0 20 E0 +R 00 00 00 00 20 0E 01 00 3E 00 +T 70 01 30 E0 08 E8 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 40 02 01 00 3E 00 12 08 09 00 +T 7C 01 0E 94 00 00 7A C0 20 E0 +R 00 00 00 00 12 04 05 00 20 08 01 00 35 00 +T 84 01 30 E0 08 E8 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 40 02 01 00 35 00 12 08 09 00 +T 90 01 0E 94 00 00 70 C0 20 E0 +R 00 00 00 00 12 04 05 00 20 08 01 00 2A 00 +T 98 01 30 E0 08 E8 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 40 02 01 00 2A 00 12 08 09 00 +T A4 01 0E 94 00 00 66 C0 20 E0 +R 00 00 00 00 12 04 05 00 20 08 01 00 1D 00 +T AC 01 30 E0 08 E8 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 40 02 01 00 1D 00 12 08 09 00 +T B8 01 0E 94 00 00 5C C0 20 E0 +R 00 00 00 00 12 04 05 00 20 08 01 00 18 00 +T C0 01 30 E0 0C E8 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 40 02 01 00 18 00 12 08 09 00 +T CC 01 0E 94 00 00 0E 94 00 00 50 C0 +R 00 00 00 00 12 04 05 00 12 08 0C 00 +T D6 01 20 E0 30 E0 0C E8 R 00 00 00 00 20 02 01 00 13 00 40 04 01 00 13 00 -T B8 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 -R 00 00 00 00 12 04 06 00 12 0C 04 00 -T C4 01 0E 94 00 00 2F C0 20 E0 -R 00 00 00 00 12 04 09 00 20 08 01 00 0E 00 -T CC 01 30 E0 0C E8 0E 94 00 00 02 E0 10 E0 -R 00 00 00 00 40 02 01 00 0E 00 12 08 06 00 -T D8 01 0E 94 00 00 25 C0 20 E0 -R 00 00 00 00 12 04 04 00 20 08 01 00 09 00 -T E0 01 30 E0 0C E8 0E 94 00 00 02 E0 10 E0 -R 00 00 00 00 40 02 01 00 09 00 12 08 06 00 -T EC 01 0E 94 00 00 1B C0 20 E0 -R 00 00 00 00 12 04 04 00 20 08 01 00 00 00 -T F4 01 30 E0 0C E8 0E 94 00 00 02 E0 10 E0 -R 00 00 00 00 40 02 01 00 00 00 12 08 06 00 -T 00 02 0E 94 00 00 0C E8 0E 94 00 00 02 E0 10 E0 -R 00 00 00 00 12 04 04 00 12 0A 0A 00 -T 0E 02 0E 94 00 00 4A 2D 42 95 4F 70 40 5D 04 2F -R 00 00 00 00 12 04 04 00 -T 1C 02 0E 94 00 00 02 E0 10 E0 0E 94 00 00 3F CF -R 00 00 00 00 12 04 0F 00 12 0C 04 00 -T 2A 02 08 95 +T DC 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 46 C0 +R 00 00 00 00 12 04 09 00 12 0C 05 00 +T EA 01 20 E0 30 E0 0C E8 +R 00 00 00 00 20 02 01 00 0E 00 40 04 01 00 0E 00 +T F0 01 0E 94 00 00 02 E0 10 E0 0E 94 00 00 +R 00 00 00 00 12 04 09 00 12 0C 05 00 +T FC 01 0E 94 00 00 98 01 8E 01 0B 5E 1F 4F +R 00 00 00 00 12 04 07 00 +T 08 02 0E 94 00 00 8E 01 0B 5E 1F 4F 0E 94 00 00 +R 00 00 00 00 12 04 00 00 12 0E 16 00 +T 16 02 2F C0 20 E0 30 E0 0C E8 +R 00 00 00 00 20 04 01 00 09 00 40 06 01 00 09 00 +T 1E 02 0E 94 00 00 02 E0 10 E0 0E 94 00 00 +R 00 00 00 00 12 04 09 00 12 0C 05 00 +T 2A 02 0E 94 00 00 68 01 96 01 8E 01 0E 94 00 00 +R 00 00 00 00 12 04 08 00 12 0E 00 00 +T 38 02 8E 01 0E 94 00 00 1B C0 20 E0 +R 00 00 00 00 12 06 16 00 20 0A 01 00 00 00 +T 42 02 30 E0 0C E8 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 40 02 01 00 00 00 12 08 09 00 +T 4E 02 0E 94 00 00 0C E8 0E 94 00 00 02 E0 10 E0 +R 00 00 00 00 12 04 05 00 12 0A 0D 00 +T 5C 02 0E 94 00 00 4A 2D 42 95 4F 70 40 5D 04 2F +R 00 00 00 00 12 04 05 00 +T 6A 02 0E 94 00 00 02 E0 10 E0 0E 94 00 00 19 CF +R 00 00 00 00 12 04 12 00 12 0C 05 00 +T 78 02 6C 96 08 95 R 00 00 00 00 T 00 00 CA B6 B1 F0 B3 C9 B9 A6 00 R 00 00 02 00 -T 09 00 CE C2 B6 C8 00 +T 09 00 CA B1 BC E4 00 R 00 00 02 00 -T 0E 00 B0 A5 DF CF 00 +T 0E 00 CE C2 B6 C8 00 R 00 00 02 00 -T 13 00 BE C8 C3 FC 00 +T 13 00 B0 A5 DF CF 00 R 00 00 02 00 -T 18 00 CA B6 B1 F0 C4 DA B2 BF B4 ED CE F3 00 +T 18 00 BE C8 C3 FC 00 R 00 00 02 00 -T 25 00 CA B6 B1 F0 BE DC CA B6 D2 BB 00 +T 1D 00 CA B6 B1 F0 C4 DA B2 BF B4 ED CE F3 00 R 00 00 02 00 -T 30 00 CA B6 B1 F0 BE DC CA B6 00 +T 2A 00 CA B6 B1 F0 BE DC CA B6 D2 BB 00 R 00 00 02 00 -T 39 00 D3 EF D2 F4 B3 AC CA B1 00 +T 35 00 CA B6 B1 F0 BE DC CA B6 00 R 00 00 02 00 -T 42 00 B3 F5 CA BC BB AF D6 D0 00 +T 3E 00 D3 EF D2 F4 B3 AC CA B1 00 R 00 00 02 00 -T 4B 00 D3 EF D2 F4 C4 A3 BF E9 00 +T 47 00 B3 F5 CA BC BB AF D6 D0 00 R 00 00 02 00 -T 54 00 D4 A4 BE AF CF B5 CD B3 00 +T 50 00 D3 EF D2 F4 C4 A3 BF E9 00 R 00 00 02 00 -T 5D 00 BB B6 D3 AD CA B9 D3 C3 B6 C0 BE D3 C0 CF +T 59 00 D4 A4 BE AF CF B5 CD B3 00 R 00 00 02 00 -T 6B 00 C8 CB 00 +T 62 00 BB B6 D3 AD CA B9 D3 C3 B6 C0 BE D3 C0 CF +R 00 00 02 00 +T 70 00 C8 CB 00 R 00 00 02 00