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

📄 251.lis

📁 卡车仪表的单片机程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module _251.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\prog251/spi.h
 0000                   .dbfunc e SPIOutput _SPIOutput fV
 0000           ;           data -> R16
                        .even
 0000           _SPIOutput::
 0000                   .dbline -1
 0000                   .dbline 6
 0000           ; //ICC-AVR application builder : 2008-7-3 10:08:15
 0000           ; // Target : M8
 0000           ; // Crystal: 4.0000Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000                   .dbline 7
 0000           ; #include "spi.h"
 0000 0FB9              out 0xf,R16
 0002           L2:
 0002                   .dbline 8
 0002           L3:
 0002                   .dbline 8
 0002           ; #include "lcd.h"
 0002 779B              sbis 0xe,7
 0004 FECF              rjmp L2
 0006                   .dbline -2
 0006           L1:
 0006                   .dbline 0 ; func end
 0006 0895              ret
 0008                   .dbsym r data 16 c
 0008                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\prog251/spi.h
 0000           _lcdshow::
 0000                   .blkb 2
                        .area idata
 0000 FBB0              .byte 251,176
                        .area data(ram, con, rel)
 0002                   .dbfile D:\prog251/spi.h
 0002                   .blkb 2
                        .area idata
 0002 EDFC              .byte 237,252
                        .area data(ram, con, rel)
 0004                   .dbfile D:\prog251/spi.h
 0004                   .blkb 2
                        .area idata
 0004 B6DE              .byte 182,222
                        .area data(ram, con, rel)
 0006                   .dbfile D:\prog251/spi.h
 0006                   .blkb 2
                        .area idata
 0006 DFF2              .byte 223,242
                        .area data(ram, con, rel)
 0008                   .dbfile D:\prog251/spi.h
 0008                   .blkb 2
                        .area idata
 0008 7FFE              .byte 127,254
                        .area data(ram, con, rel)
 000A                   .dbfile D:\prog251/spi.h
 000A                   .blkb 1
                        .area idata
 000A 00                .byte 0
                        .area data(ram, con, rel)
 000B                   .dbfile D:\prog251/spi.h
 000B                   .dbfile D:\prog251/lcd.h
 000B                   .dbsym e lcdshow _lcdshow A[11:11]c
                        .area text(rom, con, rel)
 0008                   .dbfile D:\prog251/lcd.h
 0008                   .dbfunc e delay _delay fV
                        .even
 0008           _delay::
 0008                   .dbline -1
 0008                   .dbline 31
 0008           ; #include "EEPROM.h"
 0008           ; 
 0008           ; #define uchar unsigned char
 0008           ; #define unint unsigned int
 0008           ; 
 0008           ; //Global
 0008           ; #define MaxAngle 2880
 0008           ; #define RefreshFreq 10
 0008           ; #define ClockwiseMotor  0x80 //00000001
 0008           ; 
 0008           ; //Speed
 0008           ; #define SpeedAvgSamples 4
 0008           ; #define MaxSpeed 140
 0008           ; #define PoleNum 16
 0008           ; #define Timer1Unit 2e-6
 0008           ; #define Timer1UnitMaxSpeed 202
 0008           ; 
 0008           ; //N
 0008           ; #define NAvgSamples 4
 0008           ; #define MaxN 4000
 0008           ; #define PulseFreqper100Rpm 30 
 0008           ; #define MaxNPulse  (MaxN*PulseFreqper100Rpm/100/RefreshFreq) //1200Hz=120Pulses
 0008           ; 
 0008                   .dbline 32
 0008           ; //Small meter
 0008 0000              nop
 000A                   .dbline 33
 000A           ; #define VoltageMotorBias 2 //AD0<-->MOTOR_BIT(2);
 000A 0000              nop
 000C                   .dbline 34
 000C           ; #define VoltageAvgSamples 4
 000C 0000              nop
 000E                   .dbline 35
 000E           ; 
 000E 0000              nop
 0010                   .dbline 36
 0010           ; 
 0010 0000              nop
 0012                   .dbline -2
 0012           L5:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbend
 0014                   .dbfunc e send _send fV
 0014           ;           temp -> R20
 0014           ;              n -> R22
 0014           ;          sdata -> R10
                        .even
 0014           _send::
 0014 00D0              rcall push_gset3
 0016 622F              mov R22,R18
 0018 A02E              mov R10,R16
 001A                   .dbline -1
 001A                   .dbline 40
 001A           ; 
 001A           ; void motor(void);
 001A           ; void Calculate(void);
 001A           ; void MileageSaving(void);
 001A                   .dbline 42
 001A           ; void MileageLoding(void);
 001A           ; void Parallel(void);
 001A 0CC0              rjmp L10
 001C           L7:
 001C                   .dbline 43
 001C           ; 
 001C                   .dbline 44
 001C           ; void LCDDecoding(void);
 001C 4A2D              mov R20,R10
 001E 4078              andi R20,128
 0020                   .dbline 45
 0020           ; void ParallelOutput(void);
 0020 11F0              breq L11
 0022                   .dbline 46
 0022           ; void KeyMileageCurrentClear(void);
 0022 919A              sbi 0x12,1
 0024 01C0              rjmp L12
 0026           L11:
 0026                   .dbline 48
 0026           ; void AlarmCalculate(void);
 0026           ; 
 0026 9198              cbi 0x12,1
 0028           L12:
 0028                   .dbline 49
 0028 9098              cbi 0x12,0
 002A                   .dbline 50
 002A EEDF              rcall _delay
 002C                   .dbline 51
 002C 909A              sbi 0x12,0
 002E                   .dbline 52
 002E ECDF              rcall _delay
 0030                   .dbline 54
 0030 AA0C              lsl R10
 0032                   .dbline 55
 0032           L8:
 0032                   .dbline 42
 0032 6A95              dec R22
 0034           L10:
 0034                   .dbline 42
 0034 2224              clr R2
 0036 2616              cp R2,R22
 0038 88F3              brlo L7
 003A                   .dbline -2
 003A           L6:
 003A 00D0              rcall pop_gset3
 003C                   .dbline 0 ; func end
 003C 0895              ret
 003E                   .dbsym r temp 20 c
 003E                   .dbsym r n 22 c
 003E                   .dbsym r sdata 10 c
 003E                   .dbend
 003E                   .dbfunc e init_lcd _init_lcd fV
                        .even
 003E           _init_lcd::
 003E                   .dbline -1
 003E                   .dbline 59
 003E           ; //GLOBAL VARIABLES
 003E           ; //SIGNALS
 003E           ; uchar MotorBlocked = 0;
 003E           ; uchar CalculateBlocked = 0;
 003E           ; uchar ParallelBlocked = 0;
 003E           ; uchar Timer0Div = 0;
 003E           ; uchar MileageSaveBlocked = 1;
 003E           ; 
 003E           ; //For speed calculation
 003E           ; uchar TimeIntervalRefreshed = 0;
 003E           ; uchar SpeedUltraLow = 1;
 003E                   .dbline 60
 003E           ; unsigned long int TimeInterval = 100000*5;
 003E C198              cbi 0x18,1
 0040                   .dbline 61
 0040           ; unsigned long int TimeIntervalAvg = 100000*5;
 0040 23E0              ldi R18,3
 0042 00E8              ldi R16,128
 0044 E7DF              rcall _send
 0046                   .dbline 62
 0046           ; //For N calculation
 0046 29E0              ldi R18,9
 0048 01E0              ldi R16,1
 004A E4DF              rcall _send
 004C                   .dbline 63
 004C           ; unint NPulseCnt = 0;
 004C 29E0              ldi R18,9
 004E 03E0              ldi R16,3
 0050 E1DF              rcall _send
 0052                   .dbline 64
 0052           ; unint NPulse = 0;
 0052 29E0              ldi R18,9
 0054 09E2              ldi R16,41
 0056 DEDF              rcall _send
 0058                   .dbline 66
 0058           ; unint NPulseAvg = 0;
 0058           ; 
 0058 C19A              sbi 0x18,1
 005A                   .dbline 67
 005A           ; //Small meters
 005A 909A              sbi 0x12,0
 005C                   .dbline -2
 005C           L13:
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbend
 005E                   .dbfunc e lcd_display _lcd_display fV
 005E           ;       showdata -> R20
 005E           ;              m -> R22
 005E           ;              p -> R10,R11
 005E           ;        lcdshow -> R12,R13
                        .even
 005E           _lcd_display::
 005E 00D0              rcall push_gset4
 0060 5901              movw R10,R18
 0062 6801              movw R12,R16
 0064 6885              ldd R22,y+8
 0066                   .dbline -1
 0066                   .dbline 71
 0066           ; uchar ADCCurrentChannel = 0;
 0066           ; unint Voltage[6]={0,0,0,0,0,0};
 0066           ; unint VoltageAvg[6]={0,0,0,0,0,0};
 0066           ; uchar VoltageRefreshed[6]={0,0,0,0,0,0};
 0066                   .dbline 73
 0066           ; #include "251SmallMeterDataTable.h"
 0066           ; 
 0066 C198              cbi 0x18,1
 0068                   .dbline 74
 0068           ; //Mileage
 0068 29E0              ldi R18,9
 006A 00EA              ldi R16,160
 006C D3DF              rcall _send
 006E                   .dbline 75
 006E           ; unsigned long int mileage = 0,MileageCurrent = 0;
 006E 0DC0              rjmp L18
 0070           L15:
 0070                   .dbline 76
 0070                   .dbline 77
 0070 F501              movw R30,R10
 0072 E081              ldd R30,z+0
 0074 FF27              clr R31
 0076 EC0D              add R30,R12
 0078 FD1D              adc R31,R13
 007A 4081              ldd R20,z+0
 007C                   .dbline 78
 007C 28E0              ldi R18,8
 007E 042F              mov R16,R20
 0080 C9DF              rcall _send
 0082                   .dbline 79
 0082 C501              movw R24,R10
 0084 0196              adiw R24,1
 0086 5C01              movw R10,R24
 0088                   .dbline 80
 0088           L16:
 0088                   .dbline 75
 0088 6A95              dec R22
 008A           L18:
 008A                   .dbline 75
 008A 2224              clr R2
 008C 2616              cp R2,R22
 008E 80F3              brlo L15
 0090                   .dbline 81
 0090           ; unint MileagePulseCnt = 0;
 0090           ; uchar MileageSaved = 1;
 0090           ; 
 0090           ; 
 0090           ; //MOTOR POSITION
 0090           ; SpeedMotorCurrent = MaxAngle; //for initialize
 0090 C19A              sbi 0x18,1
 0092                   .dbline 82
 0092           ; SpeedMotorSetting = 0; 
 0092 909A              sbi 0x12,0
 0094                   .dbline -2
 0094           L14:
 0094 00D0              rcall pop_gset4
 0096                   .dbline 0 ; func end
 0096 0895              ret
 0098                   .dbsym r showdata 20 c
 0098                   .dbsym r m 22 c
 0098                   .dbsym r p 10 pc
 0098                   .dbsym r lcdshow 12 pc
 0098                   .dbend
 0098                   .dbfile D:\prog251/EEPROM.h
 0098                   .dbfunc e EEPROM_write _EEPROM_write fV
 0098           ;         ucData -> R18
 0098           ;      uiAddress -> R16,R17
                        .even
 0098           _EEPROM_write::
 0098                   .dbline -1
 0098                   .dbline 2
 0098           L20:
 0098                   .dbline 5
 0098           L21:
 0098                   .dbline 4
 0098 E199              sbic 0x1c,1
 009A FECF              rjmp L20
 009C                   .dbline 7
 009C 1FBB              out 0x1f,R17
 009E 0EBB              out 0x1e,R16
 00A0                   .dbline 8
 00A0 2DBB              out 0x1d,R18
 00A2                   .dbline 10

⌨️ 快捷键说明

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