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

📄 soc_test.lis

📁 atmega128串口通信
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module soc_test.c
                        .area vector(rom, abs)
                        .org 72
 0048 0C947200          jmp _usart0_receive
                        .area code(ram, con, rel)
                        .area lit(rom, con, rel)
 0000           _work_state_succeed::
 0000 7E5F              .byte 126,95
 0002 0301              .byte 3,1
 0004 0063              .byte 0,'c
 0006 7E                .byte 126
 0007                   .dbfile F:\chengxu128L/soc_test.H
 0007                   .dbsym e work_state_succeed _work_state_succeed A[7:7]kc
 0007           _work_state_fail::
 0007 7E5F              .byte 126,95
 0009 0301              .byte 3,1
 000B 0164              .byte 1,'d
 000D 7E                .byte 126
 000E                   .dbsym e work_state_fail _work_state_fail A[7:7]kc
 000E           _state_normal::
 000E 7E5F              .byte 126,95
 0010 0303              .byte 3,3
 0012 0065              .byte 0,'e
 0014 7E                .byte 126
 0015                   .dbsym e state_normal _state_normal A[7:7]kc
 0015           _state_abnormal::
 0015 7E5F              .byte 126,95
 0017 0303              .byte 3,3
 0019 0166              .byte 1,'f
 001B 7E                .byte 126
 001C                   .dbsym e state_abnormal _state_abnormal A[7:7]kc
 001C           _test_normal::
 001C 7E5F              .byte 126,95
 001E 0304              .byte 3,4
 0020 0066              .byte 0,'f
 0022 7E                .byte 126
 0023                   .dbsym e test_normal _test_normal A[7:7]kc
 0023           _test_abnormal::
 0023 7E5F              .byte 126,95
 0025 0304              .byte 3,4
 0027 0167              .byte 1,'g
 0029 7E                .byte 126
 002A                   .dbsym e test_abnormal _test_abnormal A[7:7]kc
 002A           _FREQ_WORD::
 002A 88B5              .byte 136,181
 002C F814              .byte 248,20
 002E FE19              .byte 254,25
 0030 B816              .byte 184,22
 0032 E211              .byte 226,17
 0034 EF13              .byte 239,19
 0036                   .dbsym e FREQ_WORD _FREQ_WORD A[12:3:4]kc
 0036           _T_PROCESS_CLK::
 0036 FF02              .byte 255,2
 0038 0F                .byte 15
 0039 7F02              .byte 127,2
 003B 0E                .byte 14
 003C 3F02              .byte 63,2
 003E 0C                .byte 12
 003F 1F02              .byte 31,2
 0041 08                .byte 8
 0042 0F01              .byte 15,1
 0044 0C                .byte 12
 0045 0701              .byte 7,1
 0047 08                .byte 8
 0048 0300              .byte 3,0
 004A 0E                .byte 14
 004B 0100              .byte 1,0
 004D 0C                .byte 12
 004E 0000              .byte 0,0
 0050 08                .byte 8
 0051                   .dbsym e T_PROCESS_CLK _T_PROCESS_CLK A[27:9:3]kc
                        .area data(ram, con, rel)
 0000                   .dbfile F:\chengxu128L/soc_test.H
 0000                   .define  temp   R16
 0000           
                        .area text(rom, con, rel)
 0000                   .dbfile F:\chengxu128L/soc_test.H
 0000                   .dbfile F:\chengxu128L\soc_test.c
 0000                   .dbfunc e NOP5 _NOP5 fV
                        .even
 0000           _NOP5::
 0000                   .dbline -1
 0000                   .dbline 14
 0000           ; #include  <iom128v.h>
 0000           ; //单片机ATmega128
 0000           ; #include  <macros.h>
 0000           ; //单片机ATmega128
 0000           ; #include  "soc_test.H"
 0000           ; //对应头文件
 0000           ; //寄存器更名
 0000           ; asm(".define  temp   R16");
 0000           ; //--------------------------------------------------------
 0000           ; /*********************************************************
 0000           ; 连续5个NOP
 0000           ; *********************************************************/
 0000           ; void  NOP5(void)
 0000           ; {
 0000                   .dbline 15
 0000           ;       NOP();
 0000 0000              nop
 0002                   .dbline 16
 0002           ;       NOP();
 0002 0000              nop
 0004                   .dbline 17
 0004           ;       NOP();
 0004 0000              nop
 0006                   .dbline 18
 0006           ;       NOP();
 0006 0000              nop
 0008                   .dbline 19
 0008           ;       NOP();
 0008 0000              nop
 000A                   .dbline -2
 000A                   .dbline 20
 000A           ; }
 000A           L1:
 000A                   .dbline 0 ; func end
 000A 0895              ret
 000C                   .dbend
 000C                   .dbfunc e initial_work _initial_work fV
                        .even
 000C           _initial_work::
 000C                   .dbline -1
 000C                   .dbline 26
 000C           ; //--------------------------------------------------------
 000C           ; /*********************************************************
 000C           ; 初始化程序    
 000C           ; *********************************************************/
 000C           ; void  initial_work(void)
 000C           ; {
 000C                   .dbline 35
 000C           ;       /*********************************
 000C           ;                                       初始化IO口
 000C           ;   *********************************/
 000C           ;   //初始化B口
 000C           ;   //DDRB|=BIT(FQUD)+BIT(RESET)+BIT(RESET_FPGA)+BIT(W_CLK)+BIT(SDATA);
 000C           ;   //初始化D口
 000C           ;   //DDRD|=BIT(INT_DSP);  
 000C           ;   //初始化E口
 000C           ;   DDRE|=BIT(NBUS_CLK)+BIT(BUSWEN)+BIT(SAMPLE_START)+BIT(MCUREAD_START);
 000C 82B1              in R24,0x2
 000E 8C63              ori R24,60
 0010 82B9              out 0x2,R24
 0012                   .dbline 39
 0012           ;       
 0012           ;   /*********************************
 0012           ;   *********************************/
 0012           ;   NOP5();
 0012 F6DF              xcall _NOP5
 0014                   .dbline 43
 0014           ;   /*********************************
 0014           ;                                       初始化串口                                                                                              
 0014           ;   *********************************/
 0014           ;       UCSR0B=0x00;
 0014 2224              clr R2
 0016 2AB8              out 0xa,R2
 0018                   .dbline 44
 0018           ;       UCSR0A=0x00;
 0018 2BB8              out 0xb,R2
 001A                   .dbline 45
 001A           ;       UCSR0C=0x06; //8bit,1 stop bit,no check
 001A 86E0              ldi R24,6
 001C 80939500          sts 149,R24
 0020                   .dbline 46
 0020           ;       UBRR0L=0x0B; //现:设置波特率为38.4Kbps(外部晶振时钟7372.8KHz)
 0020 8BE0              ldi R24,11
 0022 89B9              out 0x9,R24
 0024                   .dbline 47
 0024           ;       UBRR0H=0x00;
 0024 20929000          sts 144,R2
 0028                   .dbline 48
 0028           ;       UCSR0B=0x98; //一开始就打开发送使能,是为了使TXC脚电平变高
 0028 88E9              ldi R24,152
 002A 8AB9              out 0xa,R24
 002C                   .dbline -2
 002C                   .dbline 49
 002C           ; }//end initial_work
 002C           L2:
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbend
 002E                   .dbfunc e process_00workmode _process_00workmode fV
 002E           ;              i -> R20
                        .even
 002E           _process_00workmode::
 002E 0E940000          xcall push_gset1
 0032                   .dbline -1
 0032                   .dbline 57
 0032           ; //--------------------------------------------------------
 0032           ; /*********************************************************
 0032           ; 
 0032           ; 
 0032           ; 
 0032           ; *********************************************************/
 0032           ; void  process_00workmode(void)
 0032           ; {
 0032                   .dbline 59
 0032           ;       unsigned char i;
 0032           ;       if(1)
 0032                   .dbline 60
 0032           ;       {
 0032                   .dbline 61
 0032           ;               for(i=0;i<L00;i++)
 0032 4427              clr R20
 0034 0FC0              xjmp L9
 0036           L6:
 0036                   .dbline 62
 0036                   .dbline 63
 0036 80E0              ldi R24,<_work_state_succeed
 0038 90E0              ldi R25,>_work_state_succeed
 003A E42F              mov R30,R20
 003C FF27              clr R31
 003E E80F              add R30,R24
 0040 F91F              adc R31,R25
 0042 E491              lpm R30,Z
 0044 80E0              ldi R24,<_reply_buffer
 0046 90E0              ldi R25,>_reply_buffer
 0048 A42F              mov R26,R20
 004A BB27              clr R27
 004C A80F              add R26,R24
 004E B91F              adc R27,R25
 0050 EC93              st x,R30
 0052                   .dbline 64
 0052           L7:
 0052                   .dbline 61
 0052 4395              inc R20
 0054           L9:
 0054                   .dbline 61
 0054 4730              cpi R20,7
 0056 78F3              brlo L6
 0058                   .dbline 65
 0058 07E0              ldi R16,7
 005A 28D0              xcall _usart0_send
 005C                   .dbline 66
 005C           L4:
 005C                   .dbline -2
 005C                   .dbline 67
 005C           ;               {
 005C           ;                       reply_buffer[i]=work_state_succeed[i];
 005C           ;               }
 005C           ;               usart0_send(L00);
 005C           ;       }
 005C           ; }//end process_00workmode
 005C           L3:
 005C 0E940000          xcall pop_gset1
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbsym r i 20 c
 0062                   .dbend
 0062                   .dbfunc e process_01wait _process_01wait fV
                        .even
 0062           _process_01wait::
 0062                   .dbline -1
 0062                   .dbline 73
 0062           ; //--------------------------------------------------------
 0062           ; /*********************************************************
 0062           ; 等待
 0062           ; *********************************************************/
 0062           ; void  process_01wait(void)
 0062           ; {
 0062                   .dbline -2
 0062                   .dbline 75
 0062           ;       
 0062           ; }//end process_01wait
 0062           L10:
 0062                   .dbline 0 ; func end
 0062 0895              ret
 0064                   .dbend
 0064                   .dbfunc e delay1 _delay1 fV
                        .even
 0064           _delay1::
 0064                   .dbline -1
 0064                   .dbline 87
 0064           ; //--------------------------------------------------------
 0064           ; 
 0064           ; 
 0064           ; 
 0064           ; 
 0064           ; 
 0064           ; 
 0064           ; /*********************************************************
 0064           ; 通用延时子程序
 0064           ; *********************************************************/
 0064           ; void delay1(void)
 0064           ; {
 0064                   .dbline 88
 0064           ;       asm("DELAY1:"); 
 0064           	DELAY1:
 0064                   .dbline 89
 0064           ;       asm("push r16");
 0064 0F93              push r16
 0066                   .dbline 90
 0066           ;       asm("CC0:  push r16");
 0066 0F93              CC0:  push r16
 0068                   .dbline 91
 0068           ;       asm("CC1:  push r16");
 0068 0F93              CC1:  push r16
 006A                   .dbline 92
 006A           ;       asm("CC2:  push r16");
 006A 0F93              CC2:  push r16
 006C                   .dbline 93
 006C           ;       asm("CC3:  dec  r16");
 006C 0A95              CC3:  dec  r16
 006E                   .dbline 94
 006E           ;       asm("brne CC3");
 006E F1F7              brne CC3
 0070                   .dbline 95
 0070           ;       asm("pop r16");
 0070 0F91              pop r16
 0072                   .dbline 96
 0072           ;       asm("dec r16");
 0072 0A95              dec r16
 0074                   .dbline 97
 0074           ;       asm("brne CC2");
 0074 D1F7              brne CC2
 0076                   .dbline 98

⌨️ 快捷键说明

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