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

📄 main.lis

📁 有遥控的温度计,用dS1302做时钟芯片
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02FE           X30:
 02FE 6830              cpi R22,8
 0300 E0E0              ldi R30,0
 0302 7E07              cpc R23,R30
 0304 09F4              brne X31
 0306 57C0              rjmp L96
 0308           X31:
 0308 6930              cpi R22,9
 030A E0E0              ldi R30,0
 030C 7E07              cpc R23,R30
 030E 09F4              brne X32
 0310 5DC0              rjmp L97
 0312           X32:
 0312 6A30              cpi R22,10
 0314 E0E0              ldi R30,0
 0316 7E07              cpc R23,R30
 0318 09F4              brne X33
 031A 60C0              rjmp L98
 031C           X33:
 031C 62C0              rjmp L85
 031E           X7:
 031E                   .dbline 133
 031E           ;         {
 031E           L88:
 031E                   .dbline 134
 031E           ;               case 0 :write_data(0x88,((read_data(0x89))&0x0f)|(t<<4));;break;//0
 031E 09E8              ldi R16,137
 0320 00D0              rcall _read_data
 0322 842F              mov R24,R20
 0324 8F70              andi R24,#0x0F
 0326 8295              swap R24
 0328 202F              mov R18,R16
 032A 2F70              andi R18,15
 032C 282B              or R18,R24
 032E 08E8              ldi R16,136
 0330 00D0              rcall _write_data
 0332                   .dbline 134
 0332                   .dbline 134
 0332 57C0              rjmp L86
 0334           L89:
 0334                   .dbline 135
 0334           ;               case 1 :write_data(0x88,((read_data(0x89))&0xf0)|t);;break;
 0334 09E8              ldi R16,137
 0336 00D0              rcall _read_data
 0338 202F              mov R18,R16
 033A 207F              andi R18,240
 033C 242B              or R18,R20
 033E 08E8              ldi R16,136
 0340 00D0              rcall _write_data
 0342                   .dbline 135
 0342                   .dbline 135
 0342 4FC0              rjmp L86
 0344           L90:
 0344                   .dbline 136
 0344           ;               case 2 :write_data(0x86,((read_data(0x87))&0x0f)|(t<<4));;break;
 0344 07E8              ldi R16,135
 0346 00D0              rcall _read_data
 0348 842F              mov R24,R20
 034A 8F70              andi R24,#0x0F
 034C 8295              swap R24
 034E 202F              mov R18,R16
 0350 2F70              andi R18,15
 0352 282B              or R18,R24
 0354 06E8              ldi R16,134
 0356 00D0              rcall _write_data
 0358                   .dbline 136
 0358                   .dbline 136
 0358 44C0              rjmp L86
 035A           L91:
 035A                   .dbline 137
 035A           ;               case 3 :write_data(0x86,((read_data(0x87))&0xf0)|t);;break;
 035A 07E8              ldi R16,135
 035C 00D0              rcall _read_data
 035E 202F              mov R18,R16
 0360 207F              andi R18,240
 0362 242B              or R18,R20
 0364 06E8              ldi R16,134
 0366 00D0              rcall _write_data
 0368                   .dbline 137
 0368                   .dbline 137
 0368 3CC0              rjmp L86
 036A           L92:
 036A                   .dbline 138
 036A           ;               case 4 :write_data(0x84,((read_data(0x85))&0x0f)|(t<<4));;break;
 036A 05E8              ldi R16,133
 036C 00D0              rcall _read_data
 036E 842F              mov R24,R20
 0370 8F70              andi R24,#0x0F
 0372 8295              swap R24
 0374 202F              mov R18,R16
 0376 2F70              andi R18,15
 0378 282B              or R18,R24
 037A 04E8              ldi R16,132
 037C 00D0              rcall _write_data
 037E                   .dbline 138
 037E                   .dbline 138
 037E 31C0              rjmp L86
 0380           L93:
 0380                   .dbline 139
 0380           ;               case 5 :write_data(0x84,((read_data(0x85))&0xf0)|t);;break;
 0380 05E8              ldi R16,133
 0382 00D0              rcall _read_data
 0384 202F              mov R18,R16
 0386 207F              andi R18,240
 0388 242B              or R18,R20
 038A 04E8              ldi R16,132
 038C 00D0              rcall _write_data
 038E                   .dbline 139
 038E                   .dbline 139
 038E 29C0              rjmp L86
 0390           L94:
 0390                   .dbline 140
 0390           ;               case 6 :write_data(0x82,((read_data(0x83))&0x0f)|(t<<4));;break;
 0390 03E8              ldi R16,131
 0392 00D0              rcall _read_data
 0394 842F              mov R24,R20
 0396 8F70              andi R24,#0x0F
 0398 8295              swap R24
 039A 202F              mov R18,R16
 039C 2F70              andi R18,15
 039E 282B              or R18,R24
 03A0 02E8              ldi R16,130
 03A2 00D0              rcall _write_data
 03A4                   .dbline 140
 03A4                   .dbline 140
 03A4 1EC0              rjmp L86
 03A6           L95:
 03A6                   .dbline 141
 03A6           ;               case 7 :write_data(0x82,((read_data(0x83))&0xf0)|t);;break;
 03A6 03E8              ldi R16,131
 03A8 00D0              rcall _read_data
 03AA 202F              mov R18,R16
 03AC 207F              andi R18,240
 03AE 242B              or R18,R20
 03B0 02E8              ldi R16,130
 03B2 00D0              rcall _write_data
 03B4                   .dbline 141
 03B4                   .dbline 141
 03B4 16C0              rjmp L86
 03B6           L96:
 03B6                   .dbline 142
 03B6           ;               case 8 :write_data(0x80,((read_data(0x81))&0x0f)|(t<<4));;break;
 03B6 01E8              ldi R16,129
 03B8 00D0              rcall _read_data
 03BA 842F              mov R24,R20
 03BC 8F70              andi R24,#0x0F
 03BE 8295              swap R24
 03C0 202F              mov R18,R16
 03C2 2F70              andi R18,15
 03C4 282B              or R18,R24
 03C6 00E8              ldi R16,128
 03C8 00D0              rcall _write_data
 03CA                   .dbline 142
 03CA                   .dbline 142
 03CA 0BC0              rjmp L86
 03CC           L97:
 03CC                   .dbline 143
 03CC           ;               case 9 :write_data(0x80,((read_data(0x81))&0xf0)|t);;break;
 03CC 01E8              ldi R16,129
 03CE 00D0              rcall _read_data
 03D0 202F              mov R18,R16
 03D2 207F              andi R18,240
 03D4 242B              or R18,R20
 03D6 00E8              ldi R16,128
 03D8 00D0              rcall _write_data
 03DA                   .dbline 143
 03DA                   .dbline 143
 03DA 03C0              rjmp L86
 03DC           L98:
 03DC                   .dbline 144
 03DC           ;               case 10 :write_data(0x8a,t);;break;
 03DC 242F              mov R18,R20
 03DE 0AE8              ldi R16,138
 03E0 00D0              rcall _write_data
 03E2                   .dbline 144
 03E2                   .dbline 144
 03E2           L85:
 03E2           L86:
 03E2                   .dbline 146
 03E2           ;         }
 03E2           ;       LCD_set_xy(9,1);            //这一位抗干拢
 03E2 21E0              ldi R18,1
 03E4 09E0              ldi R16,9
 03E6 00D0              rcall _LCD_set_xy
 03E8                   .dbline 147
 03E8           ;         LCD_write_char(n+48); 
 03E8 00910100          lds R16,_n
 03EC 005D              subi R16,208    ; addi 48
 03EE 00D0              rcall _LCD_write_char
 03F0                   .dbline 148
 03F0           ;        }
 03F0 05C0              rjmp L52
 03F2           L51:
 03F2                   .dbline 150
 03F2           ;       else
 03F2           ;         {
 03F2                   .dbline 151
 03F2           ;      LCD_DATA_PORT=0x01;              //清屏
 03F2 81E0              ldi R24,1
 03F4 8BBB              out 0x1b,R24
 03F6                   .dbline 152
 03F6           ;      command_enable();
 03F6 00D0              rcall _command_enable
 03F8                   .dbline 153
 03F8           ;      delay_ms(10);                                    //等待1.53ms以上
 03F8 0AE0              ldi R16,10
 03FA 00D0              rcall _delay_ms
 03FC                   .dbline 154
 03FC           ;         }
 03FC           L52:
 03FC           L24:
 03FC                   .dbline 155
 03FC           ;  ret:SEI();
 03FC 7894              sei
 03FE                   .dbline -2
 03FE           L17:
 03FE 2296              adiw R28,2
 0400 00D0              rcall pop_gset4
 0402 00D0              rcall pop_lset
 0404                   .dbline 0 ; func end
 0404 1895              reti
 0406                   .dbsym r t 20 c
 0406                   .dbsym r store 20 i
 0406                   .dbsym r user_code 12 i
 0406                   .dbsym r data_code 22 i
 0406                   .dbsym r i 10 c
 0406                   .dbend
 0406                   .dbfunc e main _main fV
 0406           ;              a -> y+10
 0406           ;           temm -> R10
 0406           ;          count -> R12
 0406           ;           temh -> R14
 0406           ;           teml -> R20
 0406           ;             th -> y+9
 0406           ;             tl -> y+8
 0406           ;              s -> y+7
 0406           ;              i -> R22
                        .even
 0406           _main::
 0406 2D97              sbiw R28,13
 0408                   .dbline -1
 0408                   .dbline 161
 0408           ; }
 0408           ; /******************************************************
 0408           ;                          主程序
 0408           ; ******************************************************/                              
 0408           ; void main(void)
 0408           ; {
 0408                   .dbline 165
 0408           ; 
 0408           ; uchar s,i,th,tl;
 0408           ;  uchar temh,teml,a,count,temm; 
 0408           ; init_devices();
 0408 06DE              rcall _init_devices
 040A                   .dbline 166
 040A           ; init_1302();
 040A 00D0              rcall _init_1302
 040C                   .dbline 167
 040C           ; init_1302();
 040C 00D0              rcall _init_1302
 040E                   .dbline 168
 040E           ; init_lcd() ;
 040E 00D0              rcall _init_lcd
 0410                   .dbline 169
 0410           ; init_lcd() ;
 0410 00D0              rcall _init_lcd
 0412                   .dbline 170
 0412           ; init_time(0x00,0x01,0x02,0x03,0x04,0x05);
 0412 85E0              ldi R24,5
 0414 8E83              std y+6,R24
 0416 84E0              ldi R24,4
 0418 8C83              std y+4,R24
 041A 83E0              ldi R24,3
 041C 8A83              std y+2,R24
 041E 82E0              ldi R24,2
 0420 8883              std y+0,R24
 0422 21E0              ldi R18,1
 0424 0027              clr R16
 0426 00D0              rcall _init_time
 0428 19C1              rjmp L101
 042A           L100:
 042A                   .dbline 172
 042A           ;    while(1)
 042A           ;     {
 042A                   .dbline 174
 042A           ;        //1302
 042A           ;         LCD_set_xy(0,0);
 042A 2227              clr R18
 042C 0027              clr R16
 042E 00D0              rcall _LCD_set_xy
 0430                   .dbline 176
 0430           ;         //month
 0430           ;         s=read_data(0x89);
 0430 09E8              ldi R16,137
 0432 00D0              rcall _read_data
 0434 0F83              std y+7,R16
 0436                   .dbline 177
 0436           ;         tl=s&0x0f;
 0436 802F              mov R24,R16
 0438 8F70              andi R24,15
 043A 8887              std y+8,R24
 043C                   .dbline 178
 043C           ;         th=(s>>4);
 043C 8F81              ldd R24,y+7
 043E 8295              swap R24
 0440 8F70              andi R24,#0x0F
 0442 8987              std y+9,R24
 0444                   .dbline 179
 0444           ;         LCD_write_char(th+48);
 0444 082F              mov R16,R24
 0446 005D              subi R16,208    ; addi 48
 0448 00D0              rcall _LCD_write_char
 044A                   .dbline 180
 044A           ;       LCD_write_char(tl+48);
 044A 0885              ldd R16,y+8
 044C 005D              subi R16,208    ; addi 48
 044E 00D0              rcall _LCD_write_char
 0450                   .dbline 181
 0450           ;         LCD_write_char(':');
 0450 0AE3              ldi R16,58
 0452 00D0              rcall _LCD_write_char
 0454                   .dbline 183
 0454           ;         //day
 0454           ;         s=read_data(0x87);
 0454 07E8              ldi R16,135
 0456 00D0              rcall _read_data
 0458 0F83              std y+7,R16
 045A                   .dbline 184
 045A           ;         tl=s&0x0f;
 045A 802F              mov R24,R16
 045C 8F70              andi R24,15
 045E 8887              std y+8,R24
 0460                   .dbline 185
 0460           ;         th=(s>>4);
 0460 8F81              ldd R24,y+7
 0462 8295              swap R24
 0464 8F70              andi R24,#0x0F
 0466 8987              std y+9,R24
 0468                   .dbline 186
 0468           ;         LCD_write_char(th+48);
 0468 082F              mov R16,R24
 046A 005D              subi R16,208    ; addi 48
 046C 00D0              rcall _LCD_write_char
 046E                   .dbline 187
 046E           ;       LCD_write_char(tl+48);
 046E 0885              ldd R16,y+8
 0470 005D              subi R16,208    ; addi 48
 0472 00D0              rcall _LCD_write_char
 0474                   .dbline 188
 0474           ;         LCD_write_char(' ');
 0474 00E2              ldi R16,32
 0476 00D0              rcall _LCD_write_char
 0478                   .dbline 189
 0478           ;         LCD_write_char(' ');
 0478 00E2              ldi R16,32
 047A 00D0              rcall _LCD_write_char
 047C                   .dbline 191
 047C           ;         //hour
 047C           ;         s=read_data(0x85);
 047C 05E8              ldi R16,133
 047E 00D0              rcall _read_data
 0480 0F83              std y+7,R16
 0482                   .dbline 192
 0482           ;         tl=s&0x0f;
 0482 802F              mov R24,R16
 0484 8F70              andi R24,15
 0486 8887              std y+8,R24
 0488                   .dbline 193
 0488           ;         th=(s>>4);
 0488 8F81              ldd R24,y+7
 048A 8295              swap R24
 048C 8F70              andi R24,#0x0F
 048E 8987              std y+9,R24
 0490                   .dbline 194
 0490           ;         LCD_write_char(th+48);
 0490 082F              mov R16,R24
 0492 005D              subi R16,208    ; addi 48
 0494 00D0              rcall _LCD_write_char
 0496                   .dbline 195
 0496           ;       LCD_write_char(tl+48);
 0496 0885              ldd R16,y+8
 0498 005D              subi R16,208    ; addi 48
 049A 00D0              rcall _LCD_write_char
 049C                   .dbline 196
 049C           ;         LCD_write_char(':');
 049C 0AE3              ldi R16,58
 049E 00D0              rcall _LCD_write_char
 04A0                   .dbline 198
 04A0           ;         //min
 04A0           ;         s=read_data(0x83);
 04A0 03E8              ldi R16,131
 04A2 00D0              rcall _read_data
 04A4 0F83              std y+7,R16
 04A6                   .dbline 199
 04A6           ;         tl=s&0x0f;
 04A6 802F              mov R24,R16
 04A8 8F70              andi R24,15

⌨️ 快捷键说明

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