📄 jianpan.lis
字号:
0188 .dbline 200
0188 ; UCSRB = 0x18;
0188 88E1 ldi R24,24
018A 8AB9 out 0xa,R24
018C .dbline -2
018C .dbline 201
018C ; }
018C L42:
018C .dbline 0 ; func end
018C 0895 ret
018E .dbend
018E .dbfunc e watchdog_init _watchdog_init fV
.even
018E _watchdog_init::
018E .dbline -1
018E .dbline 206
018E ;
018E ; //Watchdog initialisation
018E ; // prescale: 32K cycles
018E ; void watchdog_init(void)
018E ; {
018E .dbline 207
018E ; WDR(); //this prevents a timout on enabling
018E A895 wdr
0190 .dbline 208
0190 ; WDTCR = 0x0A; //WATCHDOG ENABLED - dont forget to issue WDRs
0190 8AE0 ldi R24,10
0192 81BD out 0x21,R24
0194 .dbline -2
0194 .dbline 209
0194 ; }
0194 L43:
0194 .dbline 0 ; func end
0194 0895 ret
0196 .dbend
0196 .dbfunc e init_devices _init_devices fV
.even
0196 _init_devices::
0196 .dbline -1
0196 .dbline 213
0196 ;
0196 ; //call this routine to initialise all peripherals
0196 ; void init_devices(void)
0196 ; {
0196 .dbline 215
0196 ; //stop errant interrupts until set up
0196 ; CLI(); //disable all interrupts
0196 F894 cli
0198 .dbline 216
0198 ; port_init();
0198 BADF xcall _port_init
019A .dbline 217
019A ; timer0_init();
019A C8DF xcall _timer0_init
019C .dbline 218
019C ; uart0_init();
019C EDDF xcall _uart0_init
019E .dbline 221
019E ; //watchdog_init();
019E ;
019E ; MCUCR = 0x00;
019E 2224 clr R2
01A0 25BE out 0x35,R2
01A2 .dbline 222
01A2 ; GICR = 0x00;
01A2 2BBE out 0x3b,R2
01A4 .dbline 223
01A4 ; TIMSK = 0x01; //timer interrupt sources
01A4 81E0 ldi R24,1
01A6 89BF out 0x39,R24
01A8 .dbline 224
01A8 ; SEI(); //re-enable interrupts
01A8 7894 sei
01AA .dbline -2
01AA .dbline 226
01AA ; //all peripherals are now initialised
01AA ; }
01AA L44:
01AA .dbline 0 ; func end
01AA 0895 ret
01AC .dbend
01AC .dbfunc e display _display fV
01AC ; tmp -> R20,R21
.even
01AC _display::
01AC 0E940000 xcall push_gset2
01B0 .dbline -1
01B0 .dbline 229
01B0 ; //显示
01B0 ; void display( void )
01B0 ; {
01B0 .dbline 231
01B0 ; uint tmp;
01B0 ; send( 7, mode );
01B0 20910800 lds R18,_mode
01B4 07E0 ldi R16,7
01B6 34DF xcall _send
01B8 .dbline 232
01B8 ; tmp=numL;
01B8 .dbline 233
01B8 ; switch( NumBitL )
01B8 40910500 lds R20,_numL
01BC 50910600 lds R21,_numL+1
01C0 60910900 lds R22,_NumBitL
01C4 7727 clr R23
01C6 6130 cpi R22,1
01C8 E0E0 ldi R30,0
01CA 7E07 cpc R23,R30
01CC 09F4 brne X3
01CE D1C0 xjmp L53
01D0 X3:
01D0 6230 cpi R22,2
01D2 E0E0 ldi R30,0
01D4 7E07 cpc R23,R30
01D6 09F4 brne X4
01D8 AEC0 xjmp L52
01DA X4:
01DA 6330 cpi R22,3
01DC E0E0 ldi R30,0
01DE 7E07 cpc R23,R30
01E0 09F4 brne X5
01E2 7DC0 xjmp L51
01E4 X5:
01E4 6430 cpi R22,4
01E6 E0E0 ldi R30,0
01E8 7E07 cpc R23,R30
01EA 09F4 brne X6
01EC 45C0 xjmp L50
01EE X6:
01EE 6530 cpi R22,5
01F0 E0E0 ldi R30,0
01F2 7E07 cpc R23,R30
01F4 09F0 breq L49
01F6 CCC0 xjmp L46
01F8 X1:
01F8 .dbline 234
01F8 ; {
01F8 L49:
01F8 .dbline 235
01F8 ; case 5: send( 0, tmp % 10 );
01F8 2AE0 ldi R18,10
01FA 30E0 ldi R19,0
01FC 8A01 movw R16,R20
01FE 0E940000 xcall mod16u
0202 202F mov R18,R16
0204 0027 clr R16
0206 0CDF xcall _send
0208 .dbline 236
0208 ; tmp=tmp/10;
0208 .dbline 237
0208 ; send( 1, tmp% 10 );
0208 2AE0 ldi R18,10
020A 30E0 ldi R19,0
020C 8A01 movw R16,R20
020E 0E940000 xcall div16u
0212 A801 movw R20,R16
0214 2AE0 ldi R18,10
0216 30E0 ldi R19,0
0218 0E940000 xcall mod16u
021C 202F mov R18,R16
021E 01E0 ldi R16,1
0220 FFDE xcall _send
0222 .dbline 238
0222 ; tmp=tmp/10;
0222 .dbline 239
0222 ; send( 2, tmp % 10 );
0222 2AE0 ldi R18,10
0224 30E0 ldi R19,0
0226 8A01 movw R16,R20
0228 0E940000 xcall div16u
022C A801 movw R20,R16
022E 2AE0 ldi R18,10
0230 30E0 ldi R19,0
0232 0E940000 xcall mod16u
0236 202F mov R18,R16
0238 02E0 ldi R16,2
023A F2DE xcall _send
023C .dbline 240
023C ; tmp=tmp/10;
023C .dbline 241
023C ; send( 3, tmp % 10 );
023C 2AE0 ldi R18,10
023E 30E0 ldi R19,0
0240 8A01 movw R16,R20
0242 0E940000 xcall div16u
0246 A801 movw R20,R16
0248 2AE0 ldi R18,10
024A 30E0 ldi R19,0
024C 0E940000 xcall mod16u
0250 202F mov R18,R16
0252 03E0 ldi R16,3
0254 E5DE xcall _send
0256 .dbline 242
0256 ; tmp=tmp/10;
0256 .dbline 243
0256 ; send( 4, tmp % 10 );
0256 2AE0 ldi R18,10
0258 30E0 ldi R19,0
025A 8A01 movw R16,R20
025C 0E940000 xcall div16u
0260 A801 movw R20,R16
0262 2AE0 ldi R18,10
0264 30E0 ldi R19,0
0266 0E940000 xcall mod16u
026A 202F mov R18,R16
026C 04E0 ldi R16,4
026E D8DE xcall _send
0270 .dbline 244
0270 ; delay(1);
0270 01E0 ldi R16,1
0272 10E0 ldi R17,0
0274 C5DE xcall _delay
0276 .dbline 245
0276 ; break;
0276 8FC0 xjmp L47
0278 L50:
0278 .dbline 246
0278 ; case 4:send( 0, tmp % 10 );
0278 2AE0 ldi R18,10
027A 30E0 ldi R19,0
027C 8A01 movw R16,R20
027E 0E940000 xcall mod16u
0282 202F mov R18,R16
0284 0027 clr R16
0286 CCDE xcall _send
0288 .dbline 247
0288 ; tmp=tmp/10;
0288 .dbline 248
0288 ; send( 1, tmp% 10 );
0288 2AE0 ldi R18,10
028A 30E0 ldi R19,0
028C 8A01 movw R16,R20
028E 0E940000 xcall div16u
0292 A801 movw R20,R16
0294 2AE0 ldi R18,10
0296 30E0 ldi R19,0
0298 0E940000 xcall mod16u
029C 202F mov R18,R16
029E 01E0 ldi R16,1
02A0 BFDE xcall _send
02A2 .dbline 249
02A2 ; tmp/=10;
02A2 .dbline 250
02A2 ; send( 2, tmp % 10 );
02A2 2AE0 ldi R18,10
02A4 30E0 ldi R19,0
02A6 8A01 movw R16,R20
02A8 0E940000 xcall div16u
02AC A801 movw R20,R16
02AE 2AE0 ldi R18,10
02B0 30E0 ldi R19,0
02B2 0E940000 xcall mod16u
02B6 202F mov R18,R16
02B8 02E0 ldi R16,2
02BA B2DE xcall _send
02BC .dbline 251
02BC ; tmp/=10;
02BC .dbline 252
02BC ; send( 3, tmp % 10 );
02BC 2AE0 ldi R18,10
02BE 30E0 ldi R19,0
02C0 8A01 movw R16,R20
02C2 0E940000 xcall div16u
02C6 A801 movw R20,R16
02C8 2AE0 ldi R18,10
02CA 30E0 ldi R19,0
02CC 0E940000 xcall mod16u
02D0 202F mov R18,R16
02D2 03E0 ldi R16,3
02D4 A5DE xcall _send
02D6 .dbline 253
02D6 ; delay(1);
02D6 01E0 ldi R16,1
02D8 10E0 ldi R17,0
02DA 92DE xcall _delay
02DC .dbline 254
02DC ; break;
02DC 5CC0 xjmp L47
02DE L51:
02DE .dbline 255
02DE ; case 3: send( 0, numL % 10 );
02DE 2AE0 ldi R18,10
02E0 30E0 ldi R19,0
02E2 00910500 lds R16,_numL
02E6 10910600 lds R17,_numL+1
02EA 0E940000 xcall mod16u
02EE 202F mov R18,R16
02F0 0027 clr R16
02F2 96DE xcall _send
02F4 .dbline 256
02F4 ; tmp=numL/10;
02F4 .dbline 257
02F4 ; send( 1, tmp% 10 );
02F4 2AE0 ldi R18,10
02F6 30E0 ldi R19,0
02F8 00910500 lds R16,_numL
02FC 10910600 lds R17,_numL+1
0300 0E940000 xcall div16u
0304 A801 movw R20,R16
0306 2AE0 ldi R18,10
0308 30E0 ldi R19,0
030A 0E940000 xcall mod16u
030E 202F mov R18,R16
0310 01E0 ldi R16,1
0312 86DE xcall _send
0314 .dbline 258
0314 ; tmp/=10;
0314 .dbline 259
0314 ; send( 2, tmp % 10 );
0314 2AE0 ldi R18,10
0316 30E0 ldi R19,0
0318 8A01 movw R16,R20
031A 0E940000 xcall div16u
031E A801 movw R20,R16
0320 2AE0 ldi R18,10
0322 30E0 ldi R19,0
0324 0E940000 xcall mod16u
0328 202F mov R18,R16
032A 02E0 ldi R16,2
032C 79DE xcall _send
032E .dbline 260
032E ; delay(1);
032E 01E0 ldi R16,1
0330 10E0 ldi R17,0
0332 66DE xcall _delay
0334 .dbline 261
0334 ; break;
0334 30C0 xjmp L47
0336 L52:
0336 .dbline 262
0336 ; case 2: send( 0, numL% 10 );
0336 2AE0 ldi R18,10
0338 30E0 ldi R19,0
033A 00910500 lds R16,_numL
033E 10910600 lds R17,_numL+1
0342 0E940000 xcall mod16u
0346 202F mov R18,R16
0348 0027 clr R16
034A 6ADE xcall _send
034C .dbline 263
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -