📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\SOURCE~1\手持gps测量仪\main.c
0000 .dbfile D:\SOURCE~1\手持gps测量仪\delay.h
0000 .dbfunc e Delay_1us _Delay_1us fV
.even
0000 _Delay_1us::
0000 .dbline -1
0000 .dbline 53
0000 ; #ifndef _DELAY_H
0000 ; #define _DELAY_H
0000 ;
0000 ; // mcu:avr crystal=8MHz
0000 ;
0000 ; /**************************************************************
0000 ; **函数功能:延时1us
0000 ; **输入参数:无
0000 ; **返回值:无
0000 ; **在本函数外定义变量:无
0000 ; **调用的函数:NOP()
0000 ; **************************************************************/
0000 ; void Delay_1us(void);
0000 ;
0000 ; /**************************************************************
0000 ; **函数功能:us级延时
0000 ; **输入参数:xus:延时us数
0000 ; **返回值:无
0000 ; **在本函数外定义变量:无
0000 ; **调用的函数:Delay_1us()
0000 ; **************************************************************/
0000 ; void Delay_Us(unsigned char xus);
0000 ;
0000 ; /**************************************************************
0000 ; **函数功能:延时1ms
0000 ; **输入参数:无
0000 ; **返回值:无
0000 ; **在本函数外定义变量:无
0000 ; **调用的函数:NOP()
0000 ; **************************************************************/
0000 ; void Delay_1ms(void);
0000 ;
0000 ; /**************************************************************
0000 ; **函数功能:ms级延时
0000 ; **输入参数:xms:延时ms数
0000 ; **返回值:无
0000 ; **在本函数外定义变量:无
0000 ; **调用的函数:Delay_1ms()
0000 ; **************************************************************/
0000 ; void Delay_Ms(unsigned int xms);
0000 ;
0000 ; /**************************************************************
0000 ; **函数功能:10us级延时
0000 ; **输入参数:x10us:延时x10us数
0000 ; **返回值:无
0000 ; **在本函数外定义变量:无
0000 ; **调用的函数:无
0000 ; **************************************************************/
0000 ; void Delay10us(Word x10us);
0000 ;
0000 ;
0000 ; void Delay_1us()
0000 ; {
0000 .dbline 54
0000 ; NOP();
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e Delay_Us _Delay_Us fV
0004 ; i -> R10
0004 ; xus -> R12
.even
0004 _Delay_Us::
0004 AA92 st -y,R10
0006 CA92 st -y,R12
0008 C02E mov R12,R16
000A .dbline -1
000A .dbline 58
000A ; }
000A ;
000A ; void Delay_Us(unsigned char xus)
000A ; {
000A .dbline 60
000A ; unsigned char i;
000A ; for(i=0;i<xus;i++)
000A AA24 clr R10
000C 02C0 xjmp L6
000E L3:
000E .dbline 61
000E ; Delay_1us();
000E F8DF xcall _Delay_1us
0010 L4:
0010 .dbline 60
0010 A394 inc R10
0012 L6:
0012 .dbline 60
0012 AC14 cp R10,R12
0014 E0F3 brlo L3
0016 X0:
0016 .dbline -2
0016 L2:
0016 .dbline 0 ; func end
0016 C990 ld R12,y+
0018 A990 ld R10,y+
001A 0895 ret
001C .dbsym r i 10 c
001C .dbsym r xus 12 c
001C .dbend
001C .dbfunc e Delay_1ms _Delay_1ms fV
001C ; i -> R16,R17
.even
001C _Delay_1ms::
001C .dbline -1
001C .dbline 65
001C ; }
001C ;
001C ; void Delay_1ms(void)
001C ; {
001C .dbline 67
001C ; unsigned int i;
001C ; for(i=0;i<1142;i++)
001C 0027 clr R16
001E 1127 clr R17
0020 02C0 xjmp L11
0022 L8:
0022 .dbline 68
0022 ; ;
0022 L9:
0022 .dbline 67
0022 0F5F subi R16,255 ; offset = 1
0024 1F4F sbci R17,255
0026 L11:
0026 .dbline 67
0026 0637 cpi R16,118
0028 E4E0 ldi R30,4
002A 1E07 cpc R17,R30
002C D0F3 brlo L8
002E X1:
002E .dbline -2
002E L7:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbsym r i 16 i
0030 .dbend
0030 .dbfunc e Delay_Ms _Delay_Ms fV
0030 ; i -> R20,R21
0030 ; j -> R22,R23
0030 ; xms -> R16,R17
.even
0030 _Delay_Ms::
0030 0E940000 xcall push_xgsetF000
0034 .dbline -1
0034 .dbline 72
0034 ; }
0034 ;
0034 ; void Delay_Ms(Word xms) //crystal=8MHz
0034 ; {
0034 .dbline 74
0034 ; Word i,j; //variable:declare Word
0034 ; for(i=0; i<xms; i++)
0034 4427 clr R20
0036 5527 clr R21
0038 14C0 xjmp L16
003A L13:
003A .dbline 75
003A ; for(j=0; j<498;j++)
003A 6627 clr R22
003C 7727 clr R23
003E 0BC0 xjmp L20
0040 L17:
0040 .dbline 76
0040 ; {
0040 .dbline 77
0040 ; NOP();
0040 0000 nop
0042 .dbline 78
0042 ; NOP();
0042 0000 nop
0044 .dbline 79
0044 ; NOP();
0044 0000 nop
0046 .dbline 80
0046 ; NOP();
0046 0000 nop
0048 .dbline 81
0048 ; NOP();
0048 0000 nop
004A .dbline 82
004A ; NOP();
004A 0000 nop
004C .dbline 83
004C ; NOP();
004C 0000 nop
004E .dbline 84
004E ; NOP();
004E 0000 nop
0050 .dbline 85
0050 ; NOP();
0050 0000 nop
0052 .dbline 86
0052 ; }
0052 L18:
0052 .dbline 75
0052 6F5F subi R22,255 ; offset = 1
0054 7F4F sbci R23,255
0056 L20:
0056 .dbline 75
0056 623F cpi R22,242
0058 E1E0 ldi R30,1
005A 7E07 cpc R23,R30
005C 88F3 brlo L17
005E X2:
005E L14:
005E .dbline 74
005E 4F5F subi R20,255 ; offset = 1
0060 5F4F sbci R21,255
0062 L16:
0062 .dbline 74
0062 4017 cp R20,R16
0064 5107 cpc R21,R17
0066 48F3 brlo L13
0068 X3:
0068 .dbline -2
0068 L12:
0068 .dbline 0 ; func end
0068 0C940000 xjmp pop_xgsetF000
006C .dbsym r i 20 i
006C .dbsym r j 22 i
006C .dbsym r xms 16 i
006C .dbend
006C .dbfunc e Delay10us _Delay10us fV
006C ; i -> R20,R21
006C ; j -> R22
006C ; x10us -> R16,R17
.even
006C _Delay10us::
006C 0E940000 xcall push_xgsetF000
0070 .dbline -1
0070 .dbline 90
0070 ; }
0070 ;
0070 ; void Delay10us(Word x10us)//crystal=8MHz
0070 ; {
0070 .dbline 92
0070 ; Word i;Byte j; //variable:declare Word
0070 ; for(i=0; i<x10us; i++)
0070 4427 clr R20
0072 5527 clr R21
0074 0AC0 xjmp L25
0076 L22:
0076 .dbline 93
0076 ; {
0076 .dbline 94
0076 ; for(j=0;j<2;j++)
0076 6627 clr R22
0078 04C0 xjmp L29
007A L26:
007A .dbline 95
007A ; {
007A .dbline 96
007A ; NOP();
007A 0000 nop
007C .dbline 97
007C ; NOP();
007C 0000 nop
007E .dbline 98
007E ; NOP();
007E 0000 nop
0080 .dbline 99
0080 ; }
0080 L27:
0080 .dbline 94
0080 6395 inc R22
0082 L29:
0082 .dbline 94
0082 6230 cpi R22,2
0084 D0F3 brlo L26
0086 X4:
0086 .dbline 100
0086 ; }
0086 L23:
0086 .dbline 92
0086 4F5F subi R20,255 ; offset = 1
0088 5F4F sbci R21,255
008A L25:
008A .dbline 92
008A 4017 cp R20,R16
008C 5107 cpc R21,R17
008E 98F3 brlo L22
0090 X5:
0090 .dbline -2
0090 L21:
0090 .dbline 0 ; func end
0090 0C940000 xjmp pop_xgsetF000
0094 .dbsym r i 20 i
0094 .dbsym r j 22 c
0094 .dbsym r x10us 16 i
0094 .dbend
0094 .dbfile D:\SOURCE~1\手持gps测量仪\usart128.h
0094 .dbfunc e Uart0_Init _Uart0_Init fV
.even
0094 _Uart0_Init::
0094 .dbline -1
0094 .dbline 15
0094 ; #ifndef _USART_H
0094 ; #define _USART_H
0094 ;
0094 ; void Uart0_Init(void);
0094 ; void Usart_tarnsmit0(Byte x);
0094 ; void Uart1_Init(void);
0094 ; void Usart_tarnsmit1(Byte x);
0094 ;
0094 ; //UART0 initialize
0094 ; // desired baud rate: 9600
0094 ; // actual: baud rate:9615 (0.2%)
0094 ; // char size: 5 bits
0094 ; // parity: Disabled
0094 ; void Uart0_Init(void)
0094 ; {
0094 .dbline 16
0094 ; UCSR0B = 0x00; //disable while setting baud rate
0094 2224 clr R2
0096 2AB8 out 0xa,R2
0098 .dbline 17
0098 ; UCSR0A = 0x00;
0098 2BB8 out 0xb,R2
009A .dbline 18
009A ; UCSR0C = 0x06;
009A 86E0 ldi R24,6
009C 80939500 sts 149,R24
00A0 .dbline 19
00A0 ; UBRR0L = 0x33; //set baud rate lo baud rate = 19200 0.2%
00A0 83E3 ldi R24,51
00A2 89B9 out 0x9,R24
00A4 .dbline 20
00A4 ; UBRR0H = 0x00; //set baud rate hi
00A4 20929000 sts 144,R2
00A8 .dbline 22
00A8 ; //UCSR0B = 0x98;
00A8 ; UCSR0B |= BIT(TXEN0) | BIT(RXEN0) | BIT(RXCIE0);
00A8 8AB1 in R24,0xa
00AA 8869 ori R24,152
00AC 8AB9 out 0xa,R24
00AE .dbline -2
00AE L30:
00AE .dbline 0 ; func end
00AE 0895 ret
00B0 .dbend
00B0 .dbfunc e Usart_tarnsmit0 _Usart_tarnsmit0 fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -