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

📄 宝贝机器人.lis

📁 基于atmel公司的mega16单片机做的机器人控制程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -