📄 m16pwm-led.lis
字号:
.module m16pwm-led.c
.area data(ram, con, rel)
0000 _AdResult::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0001 .dbsym e AdResult _AdResult c
0001 _SpeedMode::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0002 .dbsym e SpeedMode _SpeedMode c
0002 _SpeedVal::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0003 .dbsym e SpeedVal _SpeedVal c
0003 _M8Mode::
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0004 .dbsym e M8Mode _M8Mode c
0004 _LedTab::
0004 .blkb 2
.area idata
0004 EB41 .byte 235,'A
.area data(ram, con, rel)
0006 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0006 .blkb 2
.area idata
0006 B3BA .byte 179,186
.area data(ram, con, rel)
0008 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0008 .blkb 2
.area idata
0008 78DA .byte 'x,218
.area data(ram, con, rel)
000A .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
000A .blkb 2
.area idata
000A DBA8 .byte 219,168
.area data(ram, con, rel)
000C .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
000C .blkb 2
.area idata
000C FBFA .byte 251,250
.area data(ram, con, rel)
000E .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
000E .blkb 2
.area idata
000E F9FB .byte 249,251
.area data(ram, con, rel)
0010 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0010 .blkb 2
.area idata
0010 C3EB .byte 195,235
.area data(ram, con, rel)
0012 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0012 .blkb 2
.area idata
0012 D3D1 .byte 211,209
.area data(ram, con, rel)
0014 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0014 .dbsym e LedTab _LedTab A[16:16]c
0014 _LedBuf::
0014 .blkb 2
.area idata
0014 0000 .byte 0,0
.area data(ram, con, rel)
0016 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0016 .dbsym e LedBuf _LedBuf A[2:2]c
0016 _LedDp::
0016 .blkb 1
.area idata
0016 00 .byte 0
.area data(ram, con, rel)
0017 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0017 .dbsym e LedDp _LedDp c
0017 _UartBufCount::
0017 .blkb 1
.area idata
0017 00 .byte 0
.area data(ram, con, rel)
0018 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0018 .dbsym e UartBufCount _UartBufCount c
0018 _LRledReg::
0018 .blkb 1
.area idata
0018 00 .byte 0
.area data(ram, con, rel)
0019 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0019 .dbsym e LRledReg _LRledReg c
.area text(rom, con, rel)
0000 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 44
0000 ; ////////////////////////////////////////////////////////////////////////////////
0000 ; //ICC-AVR application builder : 2006-8-1 上午 08:05:37
0000 ; // Target : M16
0000 ; // Crystal: 16.0000Mhz
0000 ; // ADc2采集转把信号
0000 ; ////////////////////////////////////////////////////////////////////////////////
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; #define fre 125
0000 ; #define uchar unsigned char
0000 ; #define uint unsigned int
0000 ; unsigned char kk;
0000 ; int k;
0000 ; uchar temp_data,hour_data,minut_data,second_data,second_flag;
0000 ; uchar AdResult=0;
0000 ; uchar SpeedMode=0;//SpeedMode=0 手动模式;SpeedMode=0x55 巡航模式
0000 ; uchar SpeedVal=0;//保存当前速度参数,用于巡航模式
0000 ; uchar M8Mode=0x0;//M8控制字=Rev,Rev,Rev,RevMode,Rev,Rev,LEFT_LED,RIGHT_LED
0000 ; uchar LedTab[16]={0xEB,0x41,0xB3,0xBA,0x78,0xDA,0xDB,0xA8,0xFB,0xFA,
0000 ; 0xF9,0xFB,0xC3,0xEB,0xD3,0xD1};
0000 ; uchar LedBuf[2]={0,0};
0000 ; uchar LedDp=0;
0000 ; uchar UartBuf[10],UartBufCount=0;
0000 ; uchar LRledReg=0;
0000 ;
0000 ;
0000 ; ////////////////////////////////////////////////////////////////////////////////
0000 ; //function declare
0000 ; void port_init(void);
0000 ; void uart0_init(void);
0000 ; void uart0_rx_isr(void);
0000 ; void uart0_tx(uchar tdata);
0000 ; void tx_pack(void);
0000 ; void timer1_init(void);
0000 ; void timer1_comp_isr(void);
0000 ; void led_display(uchar delay);
0000 ; void HexToDec(uchar hex,uchar dec);
0000 ; void ms_delay(uint delay);
0000 ; void init_devices(void);
0000 ; void adc_init(void);
0000 ; ////////////////////////////////////////////////////////////////////////////////
0000 ; void port_init(void)
0000 ; {
0000 .dbline 45
0000 ; PORTA = 0xFF;
0000 8FEF ldi R24,255
0002 8BBB out 0x1b,R24
0004 .dbline 46
0004 ; DDRA = 0xFB; //PA2=ADC2,输入
0004 8BEF ldi R24,251
0006 8ABB out 0x1a,R24
0008 .dbline 47
0008 ; PORTB = 0xFF;
0008 8FEF ldi R24,255
000A 88BB out 0x18,R24
000C .dbline 48
000C ; DDRB = 0x1F; //数码管片选信号,低有效,常态为高,PB4=LED-dp
000C 8FE1 ldi R24,31
000E 87BB out 0x17,R24
0010 .dbline 49
0010 ; PORTC = 0xFF; //m103 output only
0010 8FEF ldi R24,255
0012 85BB out 0x15,R24
0014 .dbline 50
0014 ; DDRC = 0x00; //PC0,1=RL_in
0014 2224 clr R2
0016 24BA out 0x14,R2
0018 .dbline 51
0018 ; PORTD = 0x9F;
0018 8FE9 ldi R24,159
001A 82BB out 0x12,R24
001C .dbline 52
001C ; DDRD = 0x78;
001C 88E7 ldi R24,120
001E 81BB out 0x11,R24
0020 .dbline -2
0020 L1:
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbend
0022 .dbfunc e timer1_init _timer1_init fV
.even
0022 _timer1_init::
0022 .dbline -1
0022 .dbline 61
0022 ; }
0022 ;
0022 ;
0022 ; //TIMER1 initialisation - prescale:1
0022 ; // WGM: 0) Normal, TOP=0xFFFF
0022 ; // desired value: 1Sec
0022 ; // actual value: 1.000Sec (0.0%)
0022 ; void timer1_init(void)
0022 ; {
0022 .dbline 62
0022 ; TCCR1B = 0x00; //stop
0022 2224 clr R2
0024 2EBC out 0x2e,R2
0026 .dbline 63
0026 ; TCNT1H = 0xC2; //setup
0026 82EC ldi R24,194
0028 8DBD out 0x2d,R24
002A .dbline 64
002A ; TCNT1L = 0xF7;
002A 87EF ldi R24,247
002C 8CBD out 0x2c,R24
002E .dbline 65
002E ; OCR1AH = 0x3D;
002E 8DE3 ldi R24,61
0030 8BBD out 0x2b,R24
0032 .dbline 66
0032 ; OCR1AL = 0x09;
0032 89E0 ldi R24,9
0034 8ABD out 0x2a,R24
0036 .dbline 67
0036 ; OCR1BH = 0x3D;
0036 8DE3 ldi R24,61
0038 89BD out 0x29,R24
003A .dbline 68
003A ; OCR1BL = 0x09;
003A 89E0 ldi R24,9
003C 88BD out 0x28,R24
003E .dbline 71
003E ; //OCR1CH = $OCR1CH$;
003E ; //OCR1CL = $OCR1CL$;
003E ; ICR1H = 0x3D;
003E 8DE3 ldi R24,61
0040 87BD out 0x27,R24
0042 .dbline 72
0042 ; ICR1L = 0x09;
0042 89E0 ldi R24,9
0044 86BD out 0x26,R24
0046 .dbline 73
0046 ; TCCR1A = 0x00;
0046 2FBC out 0x2f,R2
0048 .dbline 74
0048 ; TCCR1B = 0x05; //start Timer
0048 85E0 ldi R24,5
004A 8EBD out 0x2e,R24
004C .dbline -2
004C L2:
004C .dbline 0 ; func end
004C 0895 ret
004E .dbend
004E .dbfunc e uart0_init _uart0_init fV
.even
004E _uart0_init::
004E .dbline -1
004E .dbline 85
004E ; }
004E ; /***************************************************************************
004E ;
004E ; ****************************************************************************/
004E ; //UART0 initialize
004E ; // desired baud rate: 9600
004E ; // actual: baud rate:9615 (0.2%)
004E ; // char size: 8 bit
004E ; // parity: Disabled
004E ; void uart0_init(void)
004E ; {
004E .dbline 86
004E ; UCSRB = 0x00; //disable while setting baud rate
004E 2224 clr R2
0050 2AB8 out 0xa,R2
0052 .dbline 87
0052 ; UCSRA = 0x00;
0052 2BB8 out 0xb,R2
0054 .dbline 88
0054 ; UCSRC = BIT(URSEL) | 0x06;
0054 86E8 ldi R24,134
0056 80BD out 0x20,R24
0058 .dbline 89
0058 ; UBRRL = 0x67; //set baud rate lo
0058 87E6 ldi R24,103
005A 89B9 out 0x9,R24
005C .dbline 90
005C ; UBRRH = 0x00; //set baud rate hi
005C 20BC out 0x20,R2
005E .dbline 91
005E ; UCSRB = 0x98;
005E 88E9 ldi R24,152
0060 8AB9 out 0xa,R24
0062 .dbline -2
0062 L3:
0062 .dbline 0 ; func end
0062 0895 ret
0064 .dbend
.area vector(rom, abs)
.org 44
002C 0C943200 jmp _uart0_rx_isr
.area text(rom, con, rel)
0064 .dbfile D:\EBIKE\eb_pro\M16PWM_led\m16pwm-led.c
0064 .dbfunc e uart0_rx_isr _uart0_rx_isr fV
0064 ; voldata -> R20
.even
0064 _uart0_rx_isr::
0064 0A92 st -y,R0
0066 1A92 st -y,R1
0068 2A92 st -y,R2
006A 3A92 st -y,R3
006C 0A93 st -y,R16
006E 1A93 st -y,R17
0070 2A93 st -y,R18
0072 3A93 st -y,R19
0074 8A93 st -y,R24
0076 9A93 st -y,R25
0078 EA93 st -y,R30
007A FA93 st -y,R31
007C 0FB6 in R0,0x3f
007E 0A92 st -y,R0
0080 0E940000 xcall push_gset1
0084 .dbline -1
0084 .dbline 98
0084 ; }
0084 ; /***************************************************************************
0084 ;
0084 ; ****************************************************************************/
0084 ; #pragma interrupt_handler uart0_rx_isr:12
0084 ; void uart0_rx_isr(void)
0084 ; {
0084 .dbline 101
0084 ; uchar voldata;
0084 ; //uart has received a character in UDR
0084 ; UartBuf[UartBufCount++]= UDR;
0084 20901700 lds R2,_UartBufCount
0088 3324 clr R3
008A 822D mov R24,R2
008C 8F5F subi R24,255 ; addi 1
008E 80931700 sts _UartBufCount,R24
0092 80E0 ldi R24,<_UartBuf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -