📄 宝贝机器人.lis
字号:
00B4 ; void delay_back()//延时1.7m,用于反转
00B4 ; {//毫秒级延时程序
00B4 .dbline 79
00B4 ; unsigned char time=1;
00B4 41E0 ldi R20,1
00B6 04C0 xjmp L31
00B8 L30:
00B8 .dbline 81
00B8 .dbline 82
00B8 0EEC ldi R16,206
00BA 10E0 ldi R17,0
00BC A1DF xcall _delay_us
00BE .dbline 83
00BE 4A95 dec R20
00C0 .dbline 84
00C0 L31:
00C0 .dbline 80
00C0 ; while(time!=0)
00C0 4423 tst R20
00C2 D1F7 brne L30
00C4 .dbline -2
00C4 L29:
00C4 0E940000 xcall pop_gset1
00C8 .dbline 0 ; func end
00C8 0895 ret
00CA .dbsym r time 20 c
00CA .dbend
00CA .dbfunc e stop _stop fV
.even
00CA _stop::
00CA .dbline -1
00CA .dbline 87
00CA ; {
00CA ; delay_us(206);
00CA ; time--;
00CA ; }
00CA ; }
00CA ; void stop(void)
00CA ; {
00CA .dbline 88
00CA ; PORTD&=0x3f;
00CA 82B3 in R24,0x12
00CC 8F73 andi R24,63
00CE 82BB out 0x12,R24
00D0 .dbline 89
00D0 ; delay_20ms();
00D0 AEDF xcall _delay_20ms
00D2 .dbline 90
00D2 ; PORTD|=0xc0;
00D2 82B3 in R24,0x12
00D4 806C ori R24,192
00D6 82BB out 0x12,R24
00D8 .dbline 91
00D8 ; delay_stop();
00D8 B7DF xcall _delay_stop
00DA .dbline -2
00DA L33:
00DA .dbline 0 ; func end
00DA 0895 ret
00DC .dbend
00DC .dbfunc e run _run fV
.even
00DC _run::
00DC .dbline -1
00DC .dbline 94
00DC ; }
00DC ; void run(void)
00DC ; {
00DC .dbline 95
00DC ; PORTD&=0x3f;
00DC 82B3 in R24,0x12
00DE 8F73 andi R24,63
00E0 82BB out 0x12,R24
00E2 .dbline 96
00E2 ; delay_20ms();
00E2 A5DF xcall _delay_20ms
00E4 .dbline 98
00E4 ;
00E4 ; PORTD|=0x80;
00E4 979A sbi 0x12,7
00E6 .dbline 99
00E6 ; delay_run();
00E6 D7DF xcall _delay_run
00E8 .dbline 100
00E8 ; PORTD&=0x3f;
00E8 82B3 in R24,0x12
00EA 8F73 andi R24,63
00EC 82BB out 0x12,R24
00EE .dbline 103
00EE ;
00EE ;
00EE ; PORTD|=0x40;
00EE 969A sbi 0x12,6
00F0 .dbline 104
00F0 ; delay_back();
00F0 DFDF xcall _delay_back
00F2 .dbline 105
00F2 ; PORTD&=0x3f;
00F2 82B3 in R24,0x12
00F4 8F73 andi R24,63
00F6 82BB out 0x12,R24
00F8 .dbline 109
00F8 ;
00F8 ;
00F8 ;
00F8 ; delay_conver();
00F8 B4DF xcall _delay_conver
00FA .dbline -2
00FA L34:
00FA .dbline 0 ; func end
00FA 0895 ret
00FC .dbend
00FC .dbfunc e run_back _run_back fV
.even
00FC _run_back::
00FC .dbline -1
00FC .dbline 113
00FC ;
00FC ; }
00FC ; void run_back(void)
00FC ; {
00FC .dbline 114
00FC ; PORTD&=0x3f;
00FC 82B3 in R24,0x12
00FE 8F73 andi R24,63
0100 82BB out 0x12,R24
0102 .dbline 115
0102 ; delay_20ms();
0102 95DF xcall _delay_20ms
0104 .dbline 118
0104 ;
0104 ;
0104 ; PORTD|=0x80;
0104 979A sbi 0x12,7
0106 .dbline 119
0106 ; delay_back();
0106 D4DF xcall _delay_back
0108 .dbline 120
0108 ; PORTD&=0x3f;
0108 82B3 in R24,0x12
010A 8F73 andi R24,63
010C 82BB out 0x12,R24
010E .dbline 123
010E ;
010E ;
010E ; PORTD|=0x40;
010E 969A sbi 0x12,6
0110 .dbline 124
0110 ; delay_run();
0110 C2DF xcall _delay_run
0112 .dbline 125
0112 ; PORTD&=0x3f;
0112 82B3 in R24,0x12
0114 8F73 andi R24,63
0116 82BB out 0x12,R24
0118 .dbline 127
0118 ;
0118 ; delay_conver();
0118 A4DF xcall _delay_conver
011A .dbline -2
011A L35:
011A .dbline 0 ; func end
011A 0895 ret
011C .dbend
011C .dbfunc e turn_left _turn_left fV
.even
011C _turn_left::
011C .dbline -1
011C .dbline 130
011C ; }
011C ; void turn_left(void)
011C ; {
011C .dbline 131
011C ; PORTD&=0x3f;
011C 82B3 in R24,0x12
011E 8F73 andi R24,63
0120 82BB out 0x12,R24
0122 .dbline 132
0122 ; delay_20ms();
0122 85DF xcall _delay_20ms
0124 .dbline 133
0124 ; PORTD|=0x80;
0124 979A sbi 0x12,7
0126 .dbline 134
0126 ; delay_run();
0126 B7DF xcall _delay_run
0128 .dbline 135
0128 ; PORTD&=0x3f;
0128 82B3 in R24,0x12
012A 8F73 andi R24,63
012C 82BB out 0x12,R24
012E .dbline -2
012E L36:
012E .dbline 0 ; func end
012E 0895 ret
0130 .dbend
0130 .dbfunc e turn_right _turn_right fV
.even
0130 _turn_right::
0130 .dbline -1
0130 .dbline 139
0130 ; //delay_turn();
0130 ; }
0130 ; void turn_right(void)
0130 ; {
0130 .dbline 140
0130 ; PORTD&=0x3f;
0130 82B3 in R24,0x12
0132 8F73 andi R24,63
0134 82BB out 0x12,R24
0136 .dbline 141
0136 ; delay_20ms();
0136 7BDF xcall _delay_20ms
0138 .dbline 142
0138 ; PORTD|=0x40;
0138 969A sbi 0x12,6
013A .dbline 143
013A ; delay_run();
013A ADDF xcall _delay_run
013C .dbline 144
013C ; PORTD&=0x3f;
013C 82B3 in R24,0x12
013E 8F73 andi R24,63
0140 82BB out 0x12,R24
0142 .dbline -2
0142 L37:
0142 .dbline 0 ; func end
0142 0895 ret
0144 .dbend
0144 .dbfunc e display_time _display_time fV
0144 ; j -> R20
0144 ; display -> R22
0144 ; point -> R12
0144 ; second -> R10
0144 ; minute -> R14
0144 ; n1 -> R20
.even
0144 _display_time::
0144 0E940000 xcall push_gset5
0148 E22E mov R14,R18
014A 402F mov R20,R16
014C AA84 ldd R10,y+10
014E CC84 ldd R12,y+12
0150 .dbline -1
0150 .dbline 157
0150 ; //delay_turn();
0150 ; }
0150 ; /////////////////小车运动////////////////////////////////////////
0150 ;
0150 ;
0150 ; /////////////液晶屏显示函数/////////////////////////////////////
0150 ;
0150 ;
0150 ; void display_time(unsigned char n1,unsigned char minute,unsigned char second,unsigned char point)
0150 ; //参数n1为控制是否显示冒号,11为不显示,10为显示.
0150 ; //minute\second为两个最大为99的整数
0150 ; //point为控制是否显示小数点,0为不显示,1为显示.
0150 ; {
0150 .dbline 159
0150 ; unsigned char j,display;
0150 ; display=number[n1];
0150 80E0 ldi R24,<_number
0152 90E0 ldi R25,>_number
0154 E42F mov R30,R20
0156 FF27 clr R31
0158 E80F add R30,R24
015A F91F adc R31,R25
015C 6081 ldd R22,z+0
015E .dbline 160
015E ; for(j=0;j<8;j++)
015E 4427 clr R20
0160 1AC0 xjmp L42
0162 L39:
0162 .dbline 161
0162 .dbline 162
0162 AC9A sbi 0x15,4
0164 .dbline 163
0164 85B3 in R24,0x15
0166 877F andi R24,247
0168 85BB out 0x15,R24
016A .dbline 163
016A 05E0 ldi R16,5
016C 10E0 ldi R17,0
016E 48DF xcall _delay_us
0170 .dbline 164
0170 862F mov R24,R22
0172 8170 andi R24,1
0174 880F lsl R24
0176 880F lsl R24
0178 880F lsl R24
017A 25B2 in R2,0x15
017C 282A or R2,R24
017E 25BA out 0x15,R2
0180 .dbline 164
0180 05E0 ldi R16,5
0182 10E0 ldi R17,0
0184 3DDF xcall _delay_us
0186 .dbline 165
0186 85B3 in R24,0x15
0188 8F7E andi R24,239
018A 85BB out 0x15,R24
018C .dbline 165
018C 05E0 ldi R16,5
018E 10E0 ldi R17,0
0190 37DF xcall _delay_us
0192 .dbline 166
0192 6695 lsr R22
0194 .dbline 167
0194 L40:
0194 .dbline 160
0194 4395 inc R20
0196 L42:
0196 .dbline 160
0196 4830 cpi R20,8
0198 20F3 brlo L39
019A .dbline 168
019A ; {
019A ; PORTC|=0x10;
019A ; PORTC&=0xf7;delay_us(5);
019A ; PORTC|=((display&0x01)<<3);delay_us(5);
019A ; PORTC&=0xef;delay_us(5);
019A ; display>>=1;
019A ; }
019A ; display=number[minute/10];
019A 2AE0 ldi R18,10
019C 30E0 ldi R19,0
019E 0E2D mov R16,R14
01A0 1127 clr R17
01A2 0E940000 xcall div16s
01A6 F801 movw R30,R16
01A8 80E0 ldi R24,<_number
01AA 90E0 ldi R25,>_number
01AC E80F add R30,R24
01AE F91F adc R31,R25
01B0 6081 ldd R22,z+0
01B2 .dbline 169
01B2 ; for(j=0;j<8;j++)
01B2 4427 clr R20
01B4 1DC0 xjmp L46
01B6 L43:
01B6 .dbline 170
01B6 .dbline 171
01B6 AC9A sbi 0x15,4
01B8 .dbline 171
01B8 05E0 ldi R16,5
01BA 10E0 ldi R17,0
01BC 21DF xcall _delay_us
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -