📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\Program\gps\main.c
0000 .dbfunc e main _main fV
0000 ; i -> R20,R21
.even
0000 _main::
0000 .dbline -1
0000 .dbline 47
0000 ; /*
0000 ; ###############################################################################
0000 ; Include Part
0000 ; ###############################################################################
0000 ; */
0000 ; #include <iom32v.h> // mega16 register definition file
0000 ; #include <lcd.h> // LCD driver file
0000 ; #include "def.h" // Type definition file
0000 ; #include <macros.h>
0000 ; #include <serial.h> //serial port driver file
0000 ;
0000 ;
0000 ; /*
0000 ; ##############################################################
0000 ; define part
0000 ; ##############################################################
0000 ; */
0000 ; // char rcv_buf[1024];
0000 ; char time[10];
0000 ; char status;
0000 ; char latitude[9];
0000 ; char NSind;
0000 ; char longtitude[10];
0000 ; char EWind;
0000 ; char date[6];
0000 ;
0000 ;
0000 ; /*
0000 ; ###############################################################################
0000 ; Function Prototype Definition Part
0000 ; ###############################################################################
0000 ; */
0000 ; void port_init(void);
0000 ; void init_devices(void);
0000 ; void GpsDataParse(void);
0000 ; void Parse (void);
0000 ; //void convert (void);
0000 ;
0000 ;
0000 ;
0000 ; /*
0000 ; ###############################################################################
0000 ; Function Implementation Part
0000 ; ###############################################################################
0000 ; */
0000 ; void main (void)
0000 ; {
0000 .dbline 48
0000 ; int i=0;
0000 4427 clr R20
0002 5527 clr R21
0004 .dbline 50
0004 ; //initial the MCU
0004 ; init_devices();
0004 13D0 xcall _init_devices
0006 03C0 xjmp L3
0008 L2:
0008 .dbline 52
0008 .dbline 54
0008 1BD0 xcall _GpsDataParse
000A .dbline 55
000A 0E940000 xcall _display
000E .dbline 56
000E L3:
000E .dbline 51
000E FCCF xjmp L2
0010 X0:
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbsym r i 20 I
0012 .dbend
0012 .dbfunc e port_init _port_init fV
.even
0012 _port_init::
0012 .dbline -1
0012 .dbline 62
0012 ; while (1)
0012 ; {
0012 ; // for (i=0;i<3000;i++);
0012 ; GpsDataParse(); //get data
0012 ; display(); //display
0012 ; }
0012 ;
0012 ; }
0012 ;
0012 ;
0012 ; void port_init(void)
0012 ; {
0012 .dbline 63
0012 ; PORTA = 0x00;
0012 2224 clr R2
0014 2BBA out 0x1b,R2
0016 .dbline 64
0016 ; DDRA = 0xFC;
0016 8CEF ldi R24,252
0018 8ABB out 0x1a,R24
001A .dbline 65
001A ; PORTB = 0x00;
001A 28BA out 0x18,R2
001C .dbline 66
001C ; DDRB = 0x00;
001C 27BA out 0x17,R2
001E .dbline 67
001E ; PORTC = 0x00; //m103 output only
001E 25BA out 0x15,R2
0020 .dbline 68
0020 ; DDRC = 0x83;
0020 83E8 ldi R24,131
0022 84BB out 0x14,R24
0024 .dbline 69
0024 ; PORTD = 0x00;
0024 22BA out 0x12,R2
0026 .dbline 70
0026 ; DDRD = 0x9C;
0026 8CE9 ldi R24,156
0028 81BB out 0x11,R24
002A .dbline -2
002A L5:
002A .dbline 0 ; func end
002A 0895 ret
002C .dbend
002C .dbfunc e init_devices _init_devices fV
.even
002C _init_devices::
002C .dbline -1
002C .dbline 75
002C ; }
002C ;
002C ; //call this routine to initialize all peripherals
002C ; void init_devices(void)
002C ; {
002C .dbline 77
002C ; //stop errant interrupts until set up
002C ; CLI(); //disable all interrupts
002C F894 cli
002E .dbline 78
002E ; port_init();
002E F1DF xcall _port_init
0030 .dbline 79
0030 ; uart0_init();
0030 0E940000 xcall _uart0_init
0034 .dbline 81
0034 ;
0034 ; MCUCR = 0x00;
0034 2224 clr R2
0036 25BE out 0x35,R2
0038 .dbline 82
0038 ; GICR = 0x00;
0038 2BBE out 0x3b,R2
003A .dbline 83
003A ; TIMSK = 0x00; //timer interrupt sources
003A 29BE out 0x39,R2
003C .dbline 85
003C ; //all peripherals are now initialized
003C ; SEI();
003C 7894 sei
003E .dbline -2
003E L6:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbend
0040 .dbfunc e GpsDataParse _GpsDataParse fV
0040 ; head -> y+0
0040 ; temp -> R20
.even
0040 _GpsDataParse::
0040 0E940000 xcall push_gset1
0044 2397 sbiw R28,3
0046 .dbline -1
0046 .dbline 88
0046 ; }
0046 ; void GpsDataParse(void)
0046 ; {
0046 .dbline 93
0046 ; char head[3];
0046 ; char temp;
0046 ;
0046 ; //CLI();
0046 ; temp=Read_buf();
0046 0E940000 xcall _Read_buf
004A 402F mov R20,R16
004C 03C0 xjmp L9
004E L8:
004E .dbline 95
004E 0E940000 xcall _Read_buf
0052 402F mov R20,R16
0054 L9:
0054 .dbline 94
0054 4432 cpi R20,36
0056 D9F7 brne L8
0058 .dbline 97
0058 0E940000 xcall _Read_buf
005C .dbline 98
005C 0E940000 xcall _Read_buf
0060 402F mov R20,R16
0062 .dbline 101
0062 0E940000 xcall _Read_buf
0066 0883 std y+0,R16
0068 .dbline 102
0068 0E940000 xcall _Read_buf
006C 0983 std y+1,R16
006E .dbline 103
006E 0E940000 xcall _Read_buf
0072 0A83 std y+2,R16
0074 .dbline 104
0074 8881 ldd R24,y+0
0076 8235 cpi R24,82
0078 31F4 brne L13
007A 8981 ldd R24,y+1
007C 8D34 cpi R24,77
007E 19F4 brne L13
0080 0334 cpi R16,67
0082 09F4 brne L13
0084 .dbline 105
0084 .dbline 106
0084 04D0 xcall _Parse
0086 .dbline 107
0086 L13:
0086 .dbline -2
0086 L7:
0086 2396 adiw R28,3
0088 0E940000 xcall pop_gset1
008C .dbline 0 ; func end
008C 0895 ret
008E .dbsym l head 0 A[3:3]c
008E .dbsym r temp 20 c
008E .dbend
008E .dbfunc e Parse _Parse fV
008E ; i -> R20,R21
008E ; temp -> R22
.even
008E _Parse::
008E 0E940000 xcall push_gset2
0092 .dbline -1
0092 .dbline 117
0092 ; while (temp != '$')
0092 ; temp=Read_buf();
0092 ;
0092 ; temp=Read_buf();//first and second character are "GPXXX"
0092 ; temp=Read_buf();
0092 ;
0092 ; //get the header
0092 ; head[0]=Read_buf();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -