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

📄 main.lis

📁 meg16 的所有功能实例
💻 LIS
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _GET_TxBUF1::
 0000                   .blkb 18
                        .area idata
 0000 7777772E6164656D6265642E636F6D20  .byte 'w,'w,'w,46,'a,'d,'e,'m,'b,'e,'d,46,'c,'o,'m,32
 0010 2020              .byte 32,32
                        .area data(ram, con, rel)
 0012                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
 0012                   .dbsym e GET_TxBUF1 _GET_TxBUF1 A[18:18]c
 0012           _GET_TxBUF2::
 0012                   .blkb 18
                        .area idata
 0012 5541525420547820546573742E2E2E2E  .byte 'U,'A,'R,'T,32,'T,'x,32,'T,'e,'s,'t,46,46,46,46
 0022 2E2E              .byte 46,46
                        .area data(ram, con, rel)
 0024                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
 0024                   .dbsym e GET_TxBUF2 _GET_TxBUF2 A[18:18]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
 0000                   .dbfunc e Delay_us _Delay_us fV
 0000           ;           time -> R16,R17
                        .even
 0000           _Delay_us::
 0000                   .dbline -1
 0000                   .dbline 42
 0000           ; /****************************************Copyright (c)**************************************************
 0000           ; **                               ADEmbed Development Co.,LTD.                                    
 0000           ; **                                 http://www.adembed.com
 0000           ; **--------------File Info-------------------------------------------------------------------------------
 0000           ; ** File name:                 main.c
 0000           ; ** Last modified Date:  2008-12-13
 0000           ; ** Last Version:              1.0
 0000           ; ** Descriptions:              UART Tx Test.
 0000           ; ** 
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; ** Created by:                        junbolu
 0000           ; ** Created date:              2008-12-13
 0000           ; ** Version:                           1.0
 0000           ; ** Descriptions:              
 0000           ; **
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; ** Modified by:
 0000           ; ** Modified date:
 0000           ; ** Version:
 0000           ; ** Descriptions:
 0000           ; **
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; **ICC-AVR application builder : 2008-12-13
 0000           ; **Target : M16
 0000           ; **Crystal: 7.3728Mhz
 0000           ; *******************************************************************************************************/
 0000           ; 
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include "main.h"
 0000           ; #include "Define.h"
 0000           ; 
 0000           ; unsigned char GET_TxNum;
 0000           ; unsigned char GET_TxBUF1[18]="www.adembed.com   ";
 0000           ; unsigned char GET_TxBUF2[18]="UART Tx Test......";
 0000           ; 
 0000           ; 
 0000           ; void Uart_Init(void); 
 0000           ; void USART_TXD(uint8 data);
 0000           ; 
 0000           ; void Delay_us(unsigned int time)
 0000           ; {
 0000           L2:
 0000                   .dbline 43
 0000           L3:
 0000                   .dbline 43
 0000           ; while(time--);
 0000 1801              movw R2,R16
 0002 0150              subi R16,1
 0004 1040              sbci R17,0
 0006 2220              tst R2
 0008 D9F7              brne L2
 000A 3320              tst R3
 000C C9F7              brne L2
 000E           X0:
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r time 16 i
 0010                   .dbend
 0010                   .dbfunc e Delay_ms _Delay_ms fV
 0010           ;           time -> R20,R21
                        .even
 0010           _Delay_ms::
 0010 0E940000          xcall push_gset1
 0014 A801              movw R20,R16
 0016                   .dbline -1
 0016                   .dbline 47
 0016           ; }
 0016           ; 
 0016           ; void Delay_ms(unsigned int time)
 0016           ; {
 0016 03C0              xjmp L7
 0018           L6:
 0018                   .dbline 49
 0018                   .dbline 50
 0018 08EE              ldi R16,1000
 001A 13E0              ldi R17,3
 001C F1DF              xcall _Delay_us
 001E                   .dbline 51
 001E           L7:
 001E                   .dbline 48
 001E           ; while(time--)
 001E 1A01              movw R2,R20
 0020 4150              subi R20,1
 0022 5040              sbci R21,0
 0024 2220              tst R2
 0026 C1F7              brne L6
 0028 3320              tst R3
 002A B1F7              brne L6
 002C           X1:
 002C                   .dbline -2
 002C           L5:
 002C 0E940000          xcall pop_gset1
 0030                   .dbline 0 ; func end
 0030 0895              ret
 0032                   .dbsym r time 20 i
 0032                   .dbend
 0032                   .dbfunc e main _main fV
                        .even
 0032           _main::
 0032                   .dbline -1
 0032                   .dbline 55
 0032           ;       {
 0032           ;       Delay_us(1000);
 0032           ;       }
 0032           ; }
 0032           ; 
 0032           ; void main(void)
 0032           ; {
 0032                   .dbline 56
 0032           ;  Uart_Init();                 //TART初始化
 0032 35D0              xcall _Uart_Init
 0034                   .dbline 57
 0034           ;  SEI();                       //全局中断使能
 0034 7894              sei
 0036 31C0              xjmp L11
 0038           L10:
 0038                   .dbline 59
 0038           ;  while(1)
 0038           ;      {
 0038                   .dbline 60
 0038           ;      for(GET_TxNum=0;GET_TxNum<18;GET_TxNum++)
 0038 2224              clr R2
 003A 20920000          sts _GET_TxNum,R2
 003E 0EC0              xjmp L16
 0040           L13:
 0040                   .dbline 61
 0040                   .dbline 62
 0040 80E0              ldi R24,<_GET_TxBUF1
 0042 90E0              ldi R25,>_GET_TxBUF1
 0044 E0910000          lds R30,_GET_TxNum
 0048 FF27              clr R31
 004A E80F              add R30,R24
 004C F91F              adc R31,R25
 004E 0081              ldd R16,z+0
 0050 2FD0              xcall _USART_TXD
 0052                   .dbline 63
 0052           L14:
 0052                   .dbline 60
 0052 80910000          lds R24,_GET_TxNum
 0056 8F5F              subi R24,255    ; addi 1
 0058 80930000          sts _GET_TxNum,R24
 005C           L16:
 005C                   .dbline 60
 005C 80910000          lds R24,_GET_TxNum
 0060 8231              cpi R24,18
 0062 70F3              brlo L13
 0064                   .dbline 64
 0064           ;        {
 0064           ;                USART_TXD(GET_TxBUF1[GET_TxNum]); 
 0064           ;        }
 0064           ;        for(GET_TxNum=0;GET_TxNum<18;GET_TxNum++)
 0064 2224              clr R2
 0066 20920000          sts _GET_TxNum,R2
 006A 0EC0              xjmp L20
 006C           L17:
 006C                   .dbline 65
 006C                   .dbline 66
 006C 80E0              ldi R24,<_GET_TxBUF2
 006E 90E0              ldi R25,>_GET_TxBUF2
 0070 E0910000          lds R30,_GET_TxNum
 0074 FF27              clr R31
 0076 E80F              add R30,R24
 0078 F91F              adc R31,R25
 007A 0081              ldd R16,z+0
 007C 19D0              xcall _USART_TXD
 007E                   .dbline 67
 007E           L18:
 007E                   .dbline 64
 007E 80910000          lds R24,_GET_TxNum
 0082 8F5F              subi R24,255    ; addi 1
 0084 80930000          sts _GET_TxNum,R24
 0088           L20:
 0088                   .dbline 64
 0088 80910000          lds R24,_GET_TxNum
 008C 8231              cpi R24,18
 008E 70F3              brlo L17
 0090                   .dbline 68
 0090 0AE0              ldi R16,10
 0092 0ED0              xcall _USART_TXD
 0094                   .dbline 69
 0094 00ED              ldi R16,2000
 0096 17E0              ldi R17,7
 0098 BBDF              xcall _Delay_ms
 009A                   .dbline 70
 009A           L11:
 009A                   .dbline 58
 009A CECF              xjmp L10
 009C           X2:
 009C                   .dbline -2
 009C           L9:
 009C                   .dbline 0 ; func end
 009C 0895              ret
 009E                   .dbend
 009E                   .dbfunc e Uart_Init _Uart_Init fV
                        .even
 009E           _Uart_Init::
 009E                   .dbline -1
 009E                   .dbline 75
 009E           ;          {
 009E           ;                USART_TXD(GET_TxBUF2[GET_TxNum]); 
 009E           ;        }
 009E           ;        USART_TXD(0x0A);
 009E           ;        Delay_ms(2000);
 009E           ;      }
 009E           ; }
 009E           ; 
 009E           ; //===============================================================
 009E           ; void Uart_Init(void)          //UART初始化
 009E           ;   { 
 009E                   .dbline 79
 009E           ;      
 009E           ;     //设置侦格式
 009E           ;       //异步,8位数据,无奇偶校验,一个停止位,无倍速
 009E           ;       UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
 009E 86E8              ldi R24,134
 00A0 80BD              out 0x20,R24
 00A2                   .dbline 82
 00A2           ;       
 00A2           ;     //设置波特率
 00A2           ;     UBRRL= (F_osc/Baud_rate/16-1)%256;
 00A2 8FE2              ldi R24,47
 00A4 89B9              out 0x9,R24
 00A6                   .dbline 83
 00A6           ;     UBRRH= (F_osc/Baud_rate/16-1)/256;
 00A6 2224              clr R2
 00A8 20BC              out 0x20,R2
 00AA                   .dbline 86
 00AA           ; 
 00AA           ;       //使能接收中断,使能接收,使能发送
 00AA           ;     UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
 00AA 88E9              ldi R24,152
 00AC 8AB9              out 0xa,R24
 00AE                   .dbline -2
 00AE           L21:
 00AE                   .dbline 0 ; func end
 00AE 0895              ret
 00B0                   .dbend
 00B0                   .dbfunc e USART_TXD _USART_TXD fV
 00B0           ;           data -> R16
                        .even
 00B0           _USART_TXD::
 00B0                   .dbline -1
 00B0                   .dbline 92
 00B0           ;   }
 00B0           ;   
 00B0           ; 
 00B0           ; //===============================================================
 00B0           ; void USART_TXD(uint8 data) //发送采用查询方式
 00B0           ; {
 00B0           L23:
 00B0                   .dbline 93
 00B0           L24:
 00B0                   .dbline 93
 00B0           ;       while( !(UCSRA & BIT(UDRE)) );
 00B0 5D9B              sbis 0xb,5
 00B2 FECF              rjmp L23
 00B4                   .dbline 94
 00B4           ;       UDR=data;
 00B4 0CB9              out 0xc,R16
 00B6           L26:
 00B6                   .dbline 95
 00B6           L27:
 00B6                   .dbline 95
 00B6           ;       while( !(UCSRA & BIT(TXC )) );
 00B6 5E9B              sbis 0xb,6
 00B8 FECF              rjmp L26
 00BA                   .dbline 96
 00BA           ;       UCSRA|=BIT(TXC);
 00BA 5E9A              sbi 0xb,6
 00BC                   .dbline -2
 00BC           L22:
 00BC                   .dbline 0 ; func end
 00BC 0895              ret
 00BE                   .dbsym r data 16 c
 00BE                   .dbend
                        .area vector(rom, abs)
                        .org 44
 002C 0C945F00          jmp _USART_RXC
                        .area text(rom, con, rel)
 00BE                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
 00BE                   .dbfunc e USART_RXC _USART_RXC fV
                        .even
 00BE           _USART_RXC::
 00BE                   .dbline -1
 00BE                   .dbline 103
 00BE           ; }
 00BE           ; 
 00BE           ; //=======================================================================
 00BE           ; 
 00BE           ; #pragma interrupt_handler USART_RXC:12
 00BE           ; void USART_RXC(void)
 00BE           ; {
 00BE                   .dbline -2
 00BE           L29:
 00BE                   .dbline 0 ; func end
 00BE 1895              reti
 00C0                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
 0000           _GET_TxNum::
 0000                   .blkb 1
 0001                   .dbsym e GET_TxNum _GET_TxNum c

⌨️ 快捷键说明

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