?? main.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\開發(fā)設(shè)計\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\開發(fā)設(shè)計\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\開發(fā)設(shè)計\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--)
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 ; //設(shè)置偵格式
009E ; //異步,8位數(shù)據(jù),無奇偶校驗,一個停止位,無倍速
009E ; UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
009E 86E8 ldi R24,134
00A0 80BD out 0x20,R24
00A2 .dbline 82
00A2 ;
00A2 ; //設(shè)置波特率
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 ; //使能接收中斷,使能接收,使能發(fā)送
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) //發(fā)送采用查詢方式
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\開發(fā)設(shè)計\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\開發(fā)設(shè)計\EasyAVR\程序范例\Mega16程序包\完成整理\UARTTX~1\main.c
0000 _GET_TxNum::
0000 .blkb 1
0001 .dbsym e GET_TxNum _GET_TxNum c
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -