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

📄 main.lis

📁 meg16 的所有功能实例
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTEC~1\main.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 41
 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 Echo 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_Rx;
 0000           ; unsigned char GET_RxNum;
 0000           ; unsigned char GET_RxBUF[10];
 0000           ; 
 0000           ; void Uart_Init(void); 
 0000           ; void USART_TXD(uint8 data);
 0000           ;  
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 42
 0000           ;  Uart_Init();                 //TART初始化
 0000 10D0              xcall _Uart_Init
 0002                   .dbline 43
 0002           ;  SEI();                       //全局中断使能
 0002 7894              sei
 0004                   .dbline 45
 0004           ;  
 0004           ;  GET_Rx=False;
 0004 2224              clr R2
 0006 20920B00          sts _GET_Rx,R2
 000A                   .dbline 46
 000A           ;  for(;;)
 000A           L2:
 000A                   .dbline 47
 000A                   .dbline 48
 000A 80910B00          lds R24,_GET_Rx
 000E 8130              cpi R24,1
 0010 E1F7              brne L2
 0012                   .dbline 49
 0012                   .dbline 50
 0012 00910000          lds R16,_GET_RxBUF
 0016 0ED0              xcall _USART_TXD
 0018                   .dbline 51
 0018 2224              clr R2
 001A 20920B00          sts _GET_Rx,R2
 001E                   .dbline 52
 001E                   .dbline 53
 001E                   .dbline 46
 001E                   .dbline 46
 001E F5CF              xjmp L2
 0020           X0:
 0020                   .dbline -2
 0020           L1:
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbend
 0022                   .dbfunc e Uart_Init _Uart_Init fV
                        .even
 0022           _Uart_Init::
 0022                   .dbline -1
 0022                   .dbline 58
 0022           ;      {
 0022           ;      if(GET_Rx==True)
 0022           ;            {
 0022           ;                USART_TXD(GET_RxBUF[0]);
 0022           ;                GET_Rx=False;
 0022           ;                } 
 0022           ;      }
 0022           ; }
 0022           ; 
 0022           ; //===============================================================
 0022           ; void Uart_Init(void)          //UART初始化
 0022           ;   { 
 0022                   .dbline 62
 0022           ;      
 0022           ;     //设置侦格式
 0022           ;       //异步,8位数据,无奇偶校验,一个停止位,无倍速
 0022           ;       UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
 0022 86E8              ldi R24,134
 0024 80BD              out 0x20,R24
 0026                   .dbline 65
 0026           ;       
 0026           ;     //设置波特率
 0026           ;     UBRRL= (F_osc/Baud_rate/16-1)%256;
 0026 8FE2              ldi R24,47
 0028 89B9              out 0x9,R24
 002A                   .dbline 66
 002A           ;     UBRRH= (F_osc/Baud_rate/16-1)/256;
 002A 2224              clr R2
 002C 20BC              out 0x20,R2
 002E                   .dbline 69
 002E           ; 
 002E           ;       //使能接收中断,使能接收,使能发送
 002E           ;     UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
 002E 88E9              ldi R24,152
 0030 8AB9              out 0xa,R24
 0032                   .dbline -2
 0032           L8:
 0032                   .dbline 0 ; func end
 0032 0895              ret
 0034                   .dbend
 0034                   .dbfunc e USART_TXD _USART_TXD fV
 0034           ;           data -> R16
                        .even
 0034           _USART_TXD::
 0034                   .dbline -1
 0034                   .dbline 75
 0034           ;   }
 0034           ;   
 0034           ; 
 0034           ; //===============================================================
 0034           ; void USART_TXD(uint8 data) //发送采用查询方式
 0034           ; {
 0034           L10:
 0034                   .dbline 76
 0034           L11:
 0034                   .dbline 76
 0034           ;       while( !(UCSRA & BIT(UDRE)) );
 0034 5D9B              sbis 0xb,5
 0036 FECF              rjmp L10
 0038                   .dbline 77
 0038           ;       UDR=data;
 0038 0CB9              out 0xc,R16
 003A           L13:
 003A                   .dbline 78
 003A           L14:
 003A                   .dbline 78
 003A           ;       while( !(UCSRA & BIT(TXC )) );
 003A 5E9B              sbis 0xb,6
 003C FECF              rjmp L13
 003E                   .dbline 79
 003E           ;       UCSRA|=BIT(TXC);
 003E 5E9A              sbi 0xb,6
 0040                   .dbline -2
 0040           L9:
 0040                   .dbline 0 ; func end
 0040 0895              ret
 0042                   .dbsym r data 16 c
 0042                   .dbend
                        .area vector(rom, abs)
                        .org 44
 002C 0C942100          jmp _USART_RXC
                        .area text(rom, con, rel)
 0042                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTEC~1\main.c
 0042                   .dbfunc e USART_RXC _USART_RXC fV
                        .even
 0042           _USART_RXC::
 0042 2A92              st -y,R2
 0044 8A93              st -y,R24
 0046 2FB6              in R2,0x3f
 0048 2A92              st -y,R2
 004A                   .dbline -1
 004A                   .dbline 86
 004A           ; }
 004A           ; 
 004A           ; //=======================================================================
 004A           ; 
 004A           ; #pragma interrupt_handler USART_RXC:12
 004A           ; void USART_RXC(void)
 004A           ; {
 004A                   .dbline 87
 004A           ;  GET_RxBUF[0]=UDR;
 004A 2CB0              in R2,0xc
 004C 20920000          sts _GET_RxBUF,R2
 0050                   .dbline 88
 0050           ;  GET_Rx=True;
 0050 81E0              ldi R24,1
 0052 80930B00          sts _GET_Rx,R24
 0056                   .dbline -2
 0056           L16:
 0056 2990              ld R2,y+
 0058 2FBE              out 0x3f,R2
 005A 8991              ld R24,y+
 005C 2990              ld R2,y+
 005E                   .dbline 0 ; func end
 005E 1895              reti
 0060                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\UARTEC~1\main.c
 0000           _GET_RxBUF::
 0000                   .blkb 10
 000A                   .dbsym e GET_RxBUF _GET_RxBUF A[10:10]c
 000A           _GET_RxNum::
 000A                   .blkb 1
 000B                   .dbsym e GET_RxNum _GET_RxNum c
 000B           _GET_Rx::
 000B                   .blkb 1
 000C                   .dbsym e GET_Rx _GET_Rx c

⌨️ 快捷键说明

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