📄 main.lis
字号:
00E2 .dbline 93
00E2 ; else
00E2 ; NOP();
00E2 0000 nop
00E4 L15:
00E4 .dbline 94
00E4 ; }
00E4 L12:
00E4 .dbline 74
00E4 4D9B sbis 0x9,5
00E6 03C0 rjmp L16
00E8 X4:
00E8 84E6 ldi R24,100
00EA 8A15 cp R24,R10
00EC C0F6 brsh L11
00EE X5:
00EE L16:
00EE .dbline 95
00EE ; SREG=0x00;
00EE 2224 clr R2
00F0 2FBE out 0x3f,R2
00F2 .dbline 96
00F2 ; ep_temp1=eeprom_read(0x0025);//读取EEPROM中用户设定的车速
00F2 05E2 ldi R16,37
00F4 10E0 ldi R17,0
00F6 35D0 rcall _eeprom_read
00F8 A02E mov R10,R16
00FA .dbline 98
00FA ; //delayms(20);
00FA ; ep_temp2=eeprom_read(0x0026);
00FA 06E2 ldi R16,38
00FC 10E0 ldi R17,0
00FE 31D0 rcall _eeprom_read
0100 C02E mov R12,R16
0102 .dbline 99
0102 ; SREG|=0x80;
0102 7894 bset 7
0104 .dbline 100
0104 ; ep_temp=(ep_temp2<<8)+ep_temp1;
0104 BC2C mov R11,R12
0106 .dbline 101
0106 ; speed_temp=data_temp2; //调用测定车速信号
0106 20900000 lds R2,_data_temp2
010A 30900100 lds R3,_data_temp2+1
010E 3982 std y+1,R3
0110 2882 std y+0,R2
0112 .dbline 102
0112 ; sendData(ep_temp2);
0112 82D0 rcall _sendData
0114 .dbline 103
0114 ; delays(1);
0114 01E0 ldi R16,1
0116 40D0 rcall _delays
0118 .dbline 104
0118 ; }
0118 L3:
0118 .dbline 60
0118 89CF rjmp L2
011A X6:
011A .dbline -2
011A L1:
011A .dbline 0 ; func end
011A 2496 adiw R28,4
011C 0895 ret
011E .dbsym r flag 10 c
011E .dbsym r deciMeter 12 c
011E .dbsym r ep_temp 10 i
011E .dbsym r ep_temp1 10 c
011E .dbsym r ep_temp2 12 c
011E .dbsym r speed_temp1 12 i
011E .dbsym r speed2 12 c
011E .dbsym r speed1 14 c
011E .dbsym l timeBlock 2 i
011E .dbsym l speed_temp 0 i
011E .dbsym r temp 10 c
011E .dbend
011E .dbfunc e port_init _port_init fV
.even
011E _port_init::
011E .dbline -1
011E .dbline 107
011E ; }
011E ; void port_init(void)
011E ; {
011E .dbline 108
011E ; DDRB=0x10;
011E 80E1 ldi R24,16
0120 84B9 out 0x4,R24
0122 .dbline 109
0122 ; DDRC=0x02;
0122 82E0 ldi R24,2
0124 87B9 out 0x7,R24
0126 .dbline 110
0126 ; DDRD=0x00;
0126 2224 clr R2
0128 2AB8 out 0xa,R2
012A .dbline 111
012A ; PORTC=0x00;
012A 28B8 out 0x8,R2
012C .dbline 112
012C ; PORTB=0x00;
012C 25B8 out 0x5,R2
012E .dbline 113
012E ; PORTD=0x00;
012E 2BB8 out 0xb,R2
0130 .dbline -2
0130 L17:
0130 .dbline 0 ; func end
0130 0895 ret
0132 .dbend
0132 .dbfunc e time_init _time_init fV
.even
0132 _time_init::
0132 .dbline -1
0132 .dbline 116
0132 ; }
0132 ; void time_init(void)
0132 ; {
0132 .dbline 117
0132 ; TCCR0A=0x00;
0132 2224 clr R2
0134 24BC out 0x24,R2
0136 .dbline 118
0136 ; TCCR0B=0x03;
0136 83E0 ldi R24,3
0138 85BD out 0x25,R24
013A .dbline 119
013A ; TIMSK0=0x01;
013A 81E0 ldi R24,1
013C 80936E00 sts 110,R24
0140 .dbline 120
0140 ; TIFR0=0x01;
0140 85BB out 0x15,R24
0142 .dbline 121
0142 ; TCNT0=0xc0;
0142 80EC ldi R24,192
0144 86BD out 0x26,R24
0146 .dbline 122
0146 ; EICRA=0x01;
0146 81E0 ldi R24,1
0148 80936900 sts 105,R24
014C .dbline 123
014C ; EIMSK=0x01;
014C 8DBB out 0x1d,R24
014E .dbline 124
014E ; EIFR=0x01;
014E 8CBB out 0x1c,R24
0150 .dbline -2
0150 L18:
0150 .dbline 0 ; func end
0150 0895 ret
0152 .dbend
0152 .dbfunc e eeprom_write _eeprom_write fV
0152 ; add -> R18
0152 ; adrw -> R16,R17
.even
0152 _eeprom_write::
0152 .dbline -1
0152 .dbline 127
0152 ; }
0152 ; void eeprom_write(u16 adrw,u08 add)
0152 ; {
0152 L20:
0152 .dbline 129
0152 ; /* 等待上一次写操作结束 */
0152 ; while(EECR & (1<<EEPE));
0152 L21:
0152 .dbline 129
0152 F999 sbic 0x1f,1
0154 FECF rjmp L20
0156 X7:
0156 .dbline 131
0156 ; /* 设置地址和数据寄存器 */
0156 ; EEAR=adrw;
0156 12BD out 0x22,R17
0158 01BD out 0x21,R16
015A .dbline 132
015A ; EEDR=add;
015A 20BD out 0x20,R18
015C .dbline 134
015C ; /* 置位EEMWE */
015C ; EECR|=(1<<EEMPE);
015C FA9A sbi 0x1f,2
015E .dbline 136
015E ; /* 置位EEWE 以启动写操作E */
015E ; EECR|=(1<<EEPE);
015E F99A sbi 0x1f,1
0160 .dbline -2
0160 L19:
0160 .dbline 0 ; func end
0160 0895 ret
0162 .dbsym r add 18 c
0162 .dbsym r adrw 16 i
0162 .dbend
0162 .dbfunc e eeprom_read _eeprom_read fc
0162 ; adrr -> R16,R17
.even
0162 _eeprom_read::
0162 .dbline -1
0162 .dbline 139
0162 ; }
0162 ; u08 eeprom_read(u16 adrr)
0162 ; {
0162 L24:
0162 .dbline 141
0162 ; /* 等待上一次写操作结束 */
0162 ; while(EECR & (1<<EEPE));
0162 L25:
0162 .dbline 141
0162 F999 sbic 0x1f,1
0164 FECF rjmp L24
0166 X8:
0166 .dbline 143
0166 ; /* 设置地址寄存器 */
0166 ; EEAR=adrr;
0166 12BD out 0x22,R17
0168 01BD out 0x21,R16
016A .dbline 145
016A ; /* 设置EERE 以启动读操作 */
016A ; EECR|=(1<<EERE);
016A F89A sbi 0x1f,0
016C .dbline 147
016C ; /* 自数据寄存器返回数据 */
016C ; return EEDR;
016C 00B5 in R16,0x20
016E .dbline -2
016E L23:
016E .dbline 0 ; func end
016E 0895 ret
0170 .dbsym r adrr 16 i
0170 .dbend
0170 .dbfunc e delay _delay fV
0170 ; tick -> R16
.even
0170 _delay::
0170 .dbline -1
0170 .dbline 150
0170 ; }
0170 ; void delay(u08 tick)
0170 ; {
0170 L28:
0170 .dbline 151
0170 ; while(--tick);
0170 L29:
0170 .dbline 151
0170 802F mov R24,R16
0172 8150 subi R24,1
0174 082F mov R16,R24
0176 8823 tst R24
0178 D9F7 brne L28
017A X9:
017A .dbline -2
017A L27:
017A .dbline 0 ; func end
017A 0895 ret
017C .dbsym r tick 16 c
017C .dbend
017C .dbfunc e delayms _delayms fV
017C ; tim1 -> R12
017C ; i -> R10
017C ; time -> R10
.even
017C _delayms::
017C AA92 st -y,R10
017E CA92 st -y,R12
0180 A02E mov R10,R16
0182 .dbline -1
0182 .dbline 154
0182 ; }
0182 ; void delayms(u08 time)
0182 ; {
0182 .dbline 156
0182 ; u08 tim1,i;
0182 ; tim1=time;
0182 CA2C mov R12,R10
0184 .dbline 157
0184 ; for(i=0;i<tim1;i++)
0184 AA24 clr R10
0186 03C0 rjmp L35
0188 L32:
0188 .dbline 158
0188 ; {
0188 .dbline 159
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -