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

📄 251.lis

📁 卡车仪表的单片机程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00E0                   .dbline -2
 00E0           L28:
 00E0                   .dbline 0 ; func end
 00E0 0895              ret
 00E2                   .dbend
 00E2                   .dbfunc e timer1_init _timer1_init fV
                        .even
 00E2           _timer1_init::
 00E2                   .dbline -1
 00E2                   .dbline 149
 00E2           ; }
 00E2           ; 
 00E2           ; 
 00E2           ; //TIMER1 initialize - prescale:8
 00E2           ; // WGM: 0) Normal, TOP=0xFFFF
 00E2           ; // 1.0485s Overflow
 00E2           ; // actual value:  0.100Sec (0.0%)
 00E2           ; // For speed meter time counting
 00E2           ; void timer1_init(void)
 00E2           ; {
 00E2                   .dbline 150
 00E2           ;  TCCR1B = 0x00; //stop
 00E2 2224              clr R2
 00E4 2EBC              out 0x2e,R2
 00E6                   .dbline 151
 00E6           ;  TCNT1H = 0x00; //setup
 00E6 2DBC              out 0x2d,R2
 00E8                   .dbline 152
 00E8           ;  TCNT1L = 0x00;
 00E8 2CBC              out 0x2c,R2
 00EA                   .dbline 153
 00EA           ;  OCR1AH = 0xC3;
 00EA 83EC              ldi R24,195
 00EC 8BBD              out 0x2b,R24
 00EE                   .dbline 154
 00EE           ;  OCR1AL = 0x50;
 00EE 80E5              ldi R24,80
 00F0 8ABD              out 0x2a,R24
 00F2                   .dbline 155
 00F2           ;  OCR1BH = 0xC3;
 00F2 83EC              ldi R24,195
 00F4 89BD              out 0x29,R24
 00F6                   .dbline 156
 00F6           ;  OCR1BL = 0x50;
 00F6 80E5              ldi R24,80
 00F8 88BD              out 0x28,R24
 00FA                   .dbline 157
 00FA           ;  ICR1H  = 0xC3;
 00FA 83EC              ldi R24,195
 00FC 87BD              out 0x27,R24
 00FE                   .dbline 158
 00FE           ;  ICR1L  = 0x50;
 00FE 80E5              ldi R24,80
 0100 86BD              out 0x26,R24
 0102                   .dbline 159
 0102           ;  TCCR1A = 0x00;
 0102 2FBC              out 0x2f,R2
 0104                   .dbline 160
 0104           ;  TCCR1B = 0x03; //start Timer
 0104 83E0              ldi R24,3
 0106 8EBD              out 0x2e,R24
 0108                   .dbline -2
 0108           L29:
 0108                   .dbline 0 ; func end
 0108 0895              ret
 010A                   .dbend
 010A                   .dbfunc e timer2_init _timer2_init fV
                        .even
 010A           _timer2_init::
 010A                   .dbline -1
 010A                   .dbline 171
 010A           ; }
 010A           ; 
 010A           ; 
 010A           ; 
 010A           ; //TIMER2 initialize - prescale:32
 010A           ; // WGM: Normal
 010A           ; // desired value: 1KHz
 010A           ; // actual value:  1.000KHz (0.0%)
 010A           ; // for motor
 010A           ; void timer2_init(void)
 010A           ; {
 010A                   .dbline 172
 010A           ;  TCCR2 = 0x00; //stop
 010A 2224              clr R2
 010C 25BC              out 0x25,R2
 010E                   .dbline 173
 010E           ;  ASSR  = 0x00; //set async mode
 010E 22BC              out 0x22,R2
 0110                   .dbline 174
 0110           ;  TCNT2 = 0x83; //setup
 0110 83E8              ldi R24,131
 0112 84BD              out 0x24,R24
 0114                   .dbline 175
 0114           ;  OCR2  = 0x7D;
 0114 8DE7              ldi R24,125
 0116 83BD              out 0x23,R24
 0118                   .dbline 176
 0118           ;  TCCR2 = 0x03; //start
 0118 83E0              ldi R24,3
 011A 85BD              out 0x25,R24
 011C                   .dbline -2
 011C           L30:
 011C                   .dbline 0 ; func end
 011C 0895              ret
 011E                   .dbend
 011E                   .dbfunc e watchdog_init _watchdog_init fV
                        .even
 011E           _watchdog_init::
 011E                   .dbline -1
 011E                   .dbline 182
 011E           ; }
 011E           ; 
 011E           ; //Watchdog initialize
 011E           ; // prescale: 1024K
 011E           ; void watchdog_init(void)
 011E           ; {
 011E                   .dbline 183
 011E           ;  WDR(); //this prevents a timout on enabling
 011E A895              wdr
 0120                   .dbline 184
 0120           ;  WDTCR = 0x0E; //WATCHDOG ENABLED - dont forget to issue WDRs
 0120 8EE0              ldi R24,14
 0122 81BD              out 0x21,R24
 0124                   .dbline -2
 0124           L31:
 0124                   .dbline 0 ; func end
 0124 0895              ret
 0126                   .dbend
                        .area vector(rom, abs)
                        .org 8
 0008 93C0              rjmp _timer2_ovf_isr
                        .area text(rom, con, rel)
 0126                   .dbfile D:\prog251\251.c
 0126                   .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
                        .even
 0126           _timer2_ovf_isr::
 0126 2A92              st -y,R2
 0128 8A93              st -y,R24
 012A 2FB6              in R2,0x3f
 012C 2A92              st -y,R2
 012E                   .dbline -1
 012E                   .dbline 193
 012E           ; }
 012E           ; 
 012E           ; //==========================================================
 012E           ; //=======================ISR==============================
 012E           ; //==========================================================
 012E           ; 
 012E           ; #pragma interrupt_handler timer2_ovf_isr:5
 012E           ; void timer2_ovf_isr(void)
 012E           ; {
 012E                   .dbline 194
 012E           ;  TCNT2 = 0x83; //reload counter value
 012E 83E8              ldi R24,131
 0130 84BD              out 0x24,R24
 0132                   .dbline 196
 0132           ;  //unblock motor
 0132           ;  MotorBlocked = 0;
 0132 2224              clr R2
 0134 20920B00          sts _MotorBlocked,R2
 0138                   .dbline 197
 0138           ;  WDR();
 0138 A895              wdr
 013A                   .dbline -2
 013A           L32:
 013A 2990              ld R2,y+
 013C 2FBE              out 0x3f,R2
 013E 8991              ld R24,y+
 0140 2990              ld R2,y+
 0142                   .dbline 0 ; func end
 0142 1895              reti
 0144                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 A2C0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0144                   .dbfile D:\prog251\251.c
 0144                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0144           _timer1_ovf_isr::
 0144 2A92              st -y,R2
 0146 8A93              st -y,R24
 0148 EA93              st -y,R30
 014A 2FB6              in R2,0x3f
 014C 2A92              st -y,R2
 014E 00D0              rcall push_gset2
 0150                   .dbline -1
 0150                   .dbline 202
 0150                   .dbline 203
 0150 40E2              ldi R20,32
 0152 51EA              ldi R21,161
 0154 67E0              ldi R22,7
 0156 70E0              ldi R23,0
 0158 50931300          sts _TimeInterval+1,R21
 015C 40931200          sts _TimeInterval,R20
 0160 70931500          sts _TimeInterval+2+1,R23
 0164 60931400          sts _TimeInterval+2,R22
 0168                   .dbline 204
 0168 81E0              ldi R24,1
 016A 80931000          sts _TimeIntervalRefreshed,R24
 016E                   .dbline 205
 016E 80931100          sts _SpeedUltraLow,R24
 0172                   .dbline 206
 0172 20906100          lds R2,_MileageSaved
 0176 2220              tst R2
 0178 29F4              brne L34
 017A                   .dbline 207
 017A                   .dbline 208
 017A 2224              clr R2
 017C 20920F00          sts _MileageSaveBlocked,R2
 0180                   .dbline 209
 0180 80936100          sts _MileageSaved,R24
 0184                   .dbline 210
 0184           L34:
 0184                   .dbline -2
 0184           L33:
 0184 00D0              rcall pop_gset2
 0186 2990              ld R2,y+
 0188 2FBE              out 0x3f,R2
 018A E991              ld R30,y+
 018C 8991              ld R24,y+
 018E 2990              ld R2,y+
 0190                   .dbline 0 ; func end
 0190 1895              reti
 0192                   .dbend
                        .area vector(rom, abs)
                        .org 18
 0012 C9C0              rjmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 0192                   .dbfile D:\prog251\251.c
 0192                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 0192           _timer0_ovf_isr::
 0192 2A92              st -y,R2
 0194 3A92              st -y,R3
 0196 8A93              st -y,R24
 0198 9A93              st -y,R25
 019A 2FB6              in R2,0x3f
 019C 2A92              st -y,R2
 019E                   .dbline -1
 019E                   .dbline 215
 019E                   .dbline 217
 019E 8DE3              ldi R24,61
 01A0 82BF              out 0x32,R24
 01A2                   .dbline 219
 01A2 80910E00          lds R24,_Timer0Div
 01A6 8F5F              subi R24,255    ; addi 1
 01A8 80930E00          sts _Timer0Div,R24
 01AC                   .dbline 220
 01AC 8230              cpi R24,2
 01AE A8F0              brlo L37
 01B0                   .dbline 221
 01B0                   .dbline 222
 01B0 2224              clr R2
 01B2 20920E00          sts _Timer0Div,R2
 01B6                   .dbline 226
 01B6 20901A00          lds R2,_NPulseCnt
 01BA 30901B00          lds R3,_NPulseCnt+1
 01BE 30921D00          sts _NPulse+1,R3
 01C2 20921C00          sts _NPulse,R2
 01C6                   .dbline 227
 01C6 2224              clr R2
 01C8 3324              clr R3
 01CA 30921B00          sts _NPulseCnt+1,R3
 01CE 20921A00          sts _NPulseCnt,R2
 01D2                   .dbline 230
 01D2 20920C00          sts _CalculateBlocked,R2
 01D6                   .dbline 231
 01D6 20920D00          sts _ParallelBlocked,R2
 01DA                   .dbline 232
 01DA           L37:
 01DA                   .dbline -2
 01DA           L36:
 01DA 2990              ld R2,y+
 01DC 2FBE              out 0x3f,R2
 01DE 9991              ld R25,y+
 01E0 8991              ld R24,y+
 01E2 3990              ld R3,y+
 01E4 2990              ld R2,y+
 01E6                   .dbline 0 ; func end
 01E6 1895              reti
 01E8                   .dbend
 01E8                   .dbfunc e spi_init _spi_init fV
                        .even
 01E8           _spi_init::
 01E8                   .dbline -1
 01E8                   .dbline 238
 01E8           ; }
 01E8           ; 
 01E8           ; #pragma interrupt_handler timer1_ovf_isr:9
 01E8           ; void timer1_ovf_isr(void)
 01E8           ; {
 01E8           ;  TimeInterval = 100000*5;
 01E8           ;  TimeIntervalRefreshed = 1;
 01E8           ;  SpeedUltraLow = 1; 
 01E8           ;  if(!MileageSaved)
 01E8           ;  {
 01E8           ;    MileageSaveBlocked = 0; //Start Mileage Saving 
 01E8           ;    MileageSaved = 1;
 01E8           ;  }
 01E8           ; }
 01E8           ; 
 01E8           ; #pragma interrupt_handler timer0_ovf_isr:10
 01E8           ; void timer0_ovf_isr(void)
 01E8           ; {
 01E8           ;  //TIMER1 has overflowed
 01E8           ;  TCNT0 = 0x3D; //reload counter 
 01E8           ;  
 01E8           ;  Timer0Div++;
 01E8           ;  if(Timer0Div>=2)   //Divid by 2
 01E8           ;  {
 01E8           ;    Timer0Div = 0;
 01E8           ;    //speed motor is not controled by timer0
 01E8           ;  
 01E8           ;    //N motor pulse count
 01E8           ;    NPulse = NPulseCnt;
 01E8           ;    NPulseCnt = 0;
 01E8           ;    
 01E8           ;    //Wake up calculating
 01E8           ;    CalculateBlocked = 0;
 01E8           ;    ParallelBlocked = 0;
 01E8           ;  }
 01E8           ; }
 01E8           ; 
 01E8           ; //SPI initialize
 01E8           ; // clock rate: 250000hz
 01E8           ; void spi_init(void)
 01E8           ; {
 01E8                   .dbline 239

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -