📄 carinit.lis
字号:
0134 .dbline 77
0134 ; }
0134 L11:
0134 .dbline 78
0134 L4:
0134 .dbline -2
0134 .dbline 79
0134 ; }
0134 ; }
0134 L3:
0134 2296 adiw R28,2
0136 00D0 rcall pop_lset
0138 .dbline 0 ; func end
0138 1895 reti
013A .dbend
013A .dbfunc e timer1_init _timer1_init fV
.even
013A _timer1_init::
013A .dbline -1
013A .dbline 86
013A ;
013A ; ////////////////////////////////////////
013A ; // Function : timer1_init()
013A ; // Purpose : T/C1 PWM模式初始化
013A ; //
013A ; void timer1_init(void)
013A ; {
013A .dbline 87
013A ; TCCR1B = 0x00; //stop
013A 2224 clr R2
013C 2EBC out 0x2e,R2
013E .dbline 88
013E ; TCNT1H = 0xE0; //setup
013E 80EE ldi R24,224
0140 8DBD out 0x2d,R24
0142 .dbline 89
0142 ; TCNT1L = 0xC0;
0142 80EC ldi R24,192
0144 8CBD out 0x2c,R24
0146 .dbline 90
0146 ; OCR1AH = 0x1F;
0146 8FE1 ldi R24,31
0148 8BBD out 0x2b,R24
014A .dbline 91
014A ; OCR1AL = 0x40;
014A 80E4 ldi R24,64
014C 8ABD out 0x2a,R24
014E .dbline 92
014E ; OCR1BH = 0xFF;
014E 8FEF ldi R24,255
0150 89BD out 0x29,R24
0152 .dbline 93
0152 ; OCR1BL = 0xFF;
0152 88BD out 0x28,R24
0154 .dbline 94
0154 ; TCCR1A = 0x63;
0154 83E6 ldi R24,99
0156 8FBD out 0x2f,R24
0158 .dbline 95
0158 ; TCCR1B = 0x01; //start Timer
0158 81E0 ldi R24,1
015A 8EBD out 0x2e,R24
015C .dbline -2
015C .dbline 96
015C ; }
015C L28:
015C .dbline 0 ; func end
015C 0895 ret
015E .dbend
.area vector(rom, abs)
.org 2
0002 AFC0 rjmp _int0_isr
.area text(rom, con, rel)
015E .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\CarInit.c
015E .dbfunc e int0_isr _int0_isr fV
.even
015E _int0_isr::
015E 8A93 st -y,R24
0160 9A93 st -y,R25
0162 8FB7 in R24,0x3f
0164 8A93 st -y,R24
0166 .dbline -1
0166 .dbline 104
0166 ;
0166 ; ////////////////////////////////////////
0166 ; // Function : int0_isr()
0166 ; // Purpose : INT0中断服务
0166 ; //
0166 ; #pragma interrupt_handler int0_isr:2
0166 ; void int0_isr(void)
0166 ; {
0166 .dbline 105
0166 ; lcnt++;//检测的线条数目
0166 80910000 lds R24,_lcnt
016A 90910100 lds R25,_lcnt+1
016E 0196 adiw R24,1
0170 90930100 sts _lcnt+1,R25
0174 80930000 sts _lcnt,R24
0178 .dbline -2
0178 .dbline 106
0178 ; }
0178 L29:
0178 8991 ld R24,y+
017A 8FBF out 0x3f,R24
017C 9991 ld R25,y+
017E 8991 ld R24,y+
0180 .dbline 0 ; func end
0180 1895 reti
0182 .dbend
.area vector(rom, abs)
.org 4
0004 C1C0 rjmp _int1_isr
.area text(rom, con, rel)
0182 .dbfile C:\DOCUME~1\Administrator\桌面\自动往返小汽车\源程序\自动往返小车lcd版\CarInit.c
0182 .dbfunc e int1_isr _int1_isr fV
.even
0182 _int1_isr::
0182 00D0 rcall push_lset
0184 2297 sbiw R28,2
0186 .dbline -1
0186 .dbline 113
0186 ; ///////////////////////////////////////
0186 ; // Function : int1_1sr()
0186 ; // Purpose : INT1中断服务
0186 ; //
0186 ; #pragma interrupt_handler int1_isr:3
0186 ; void int1_isr(void)
0186 ; {
0186 .dbline 114
0186 ; qcnt++;
0186 80910000 lds R24,_qcnt
018A 90910100 lds R25,_qcnt+1
018E 0196 adiw R24,1
0190 90930100 sts _qcnt+1,R25
0194 80930000 sts _qcnt,R24
0198 .dbline 115
0198 ; if(juli[0]!=JULI/100)
0198 00910000 lds R16,_juli
019C 10910100 lds R17,_juli+1
01A0 00D0 rcall int2fp
01A2 3A93 st -y,R19
01A4 2A93 st -y,R18
01A6 1A93 st -y,R17
01A8 0A93 st -y,R16
01AA 00E0 ldi R16,<L33
01AC 10E0 ldi R17,>L33
01AE 00D0 rcall lpm32
01B0 3A93 st -y,R19
01B2 2A93 st -y,R18
01B4 1A93 st -y,R17
01B6 0A93 st -y,R16
01B8 00910000 lds R16,_qcnt
01BC 10910100 lds R17,_qcnt+1
01C0 00D0 rcall int2fp
01C2 3A93 st -y,R19
01C4 2A93 st -y,R18
01C6 1A93 st -y,R17
01C8 0A93 st -y,R16
01CA 00D0 rcall mpy32fs
01CC 00E0 ldi R16,<L34
01CE 10E0 ldi R17,>L34
01D0 00D0 rcall lpm32
01D2 3A93 st -y,R19
01D4 2A93 st -y,R18
01D6 1A93 st -y,R17
01D8 0A93 st -y,R16
01DA 00D0 rcall div32fs
01DC 00D0 rcall cmp32f
01DE 31F1 breq L31
01E0 .dbline 116
01E0 ; {
01E0 .dbline 117
01E0 ; juli[0]=JULI/100;
01E0 00E0 ldi R16,<L33
01E2 10E0 ldi R17,>L33
01E4 00D0 rcall lpm32
01E6 3A93 st -y,R19
01E8 2A93 st -y,R18
01EA 1A93 st -y,R17
01EC 0A93 st -y,R16
01EE 00910000 lds R16,_qcnt
01F2 10910100 lds R17,_qcnt+1
01F6 00D0 rcall int2fp
01F8 3A93 st -y,R19
01FA 2A93 st -y,R18
01FC 1A93 st -y,R17
01FE 0A93 st -y,R16
0200 00D0 rcall mpy32fs
0202 00E0 ldi R16,<L34
0204 10E0 ldi R17,>L34
0206 00D0 rcall lpm32
0208 3A93 st -y,R19
020A 2A93 st -y,R18
020C 1A93 st -y,R17
020E 0A93 st -y,R16
0210 00D0 rcall div32f
0212 00D0 rcall fp2int
0214 10930100 sts _juli+1,R17
0218 00930000 sts _juli,R16
021C .dbline 118
021C ; LCD_write(5,1,'0'+juli[0]);
021C 802F mov R24,R16
021E 912F mov R25,R17
0220 C096 adiw R24,48
0222 9983 std y+1,R25
0224 8883 std y+0,R24
0226 21E0 ldi R18,1
0228 05E0 ldi R16,5
022A 00D0 rcall _LCD_write
022C .dbline 119
022C ; }
022C L31:
022C .dbline 120
022C ; if(juli[1]!=(JULI-juli[0]*100)/10)
022C 00910200 lds R16,_juli+2
0230 10910300 lds R17,_juli+2+1
0234 00D0 rcall int2fp
0236 3A93 st -y,R19
0238 2A93 st -y,R18
023A 1A93 st -y,R17
023C 0A93 st -y,R16
023E 00E0 ldi R16,<L33
0240 10E0 ldi R17,>L33
0242 00D0 rcall lpm32
0244 3A93 st -y,R19
0246 2A93 st -y,R18
0248 1A93 st -y,R17
024A 0A93 st -y,R16
024C 00910000 lds R16,_qcnt
0250 10910100 lds R17,_qcnt+1
0254 00D0 rcall int2fp
0256 3A93 st -y,R19
0258 2A93 st -y,R18
025A 1A93 st -y,R17
025C 0A93 st -y,R16
025E 00D0 rcall mpy32fs
0260 20910000 lds R18,_juli
0264 30910100 lds R19,_juli+1
0268 04E6 ldi R16,100
026A 10E0 ldi R17,0
026C 00D0 rcall mpy16s
026E 00D0 rcall int2fp
0270 3A93 st -y,R19
0272 2A93 st -y,R18
0274 1A93 st -y,R17
0276 0A93 st -y,R16
0278 00D0 rcall sub32fs
027A 00E0 ldi R16,<L38
027C 10E0 ldi R17,>L38
027E 00D0 rcall lpm32
0280 3A93 st -y,R19
0282 2A93 st -y,R18
0284 1A93 st -y,R17
0286 0A93 st -y,R16
0288 00D0 rcall div32fs
028A 00D0 rcall cmp32f
028C 99F1 breq L35
028E .dbline 121
028E ; {
028E .dbline 122
028E ; juli[1]=(JULI-juli[0]*100)/10;
028E 00E0 ldi R16,<L33
0290 10E0 ldi R17,>L33
0292 00D0 rcall lpm32
0294 3A93 st -y,R19
0296 2A93 st -y,R18
0298 1A93 st -y,R17
029A 0A93 st -y,R16
029C 00910000 lds R16,_qcnt
02A0 10910100 lds R17,_qcnt+1
02A4 00D0 rcall int2fp
02A6 3A93 st -y,R19
02A8 2A93 st -y,R18
02AA 1A93 st -y,R17
02AC 0A93 st -y,R16
02AE 00D0 rcall mpy32fs
02B0 20910000 lds R18,_juli
02B4 30910100 lds R19,_juli+1
02B8 04E6 ldi R16,100
02BA 10E0 ldi R17,0
02BC 00D0 rcall mpy16s
02BE 00D0 rcall int2fp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -