📄 uart.lis
字号:
.module uart.c
.area text(rom, con, rel)
0000 .dbfile D:\iccv7avr\AVRBOO~1\uart.c
0000 .dbfunc e putChar _putChar fV
0000 ; sentData -> R16
.even
0000 _putChar::
0000 .dbline -1
0000 .dbline 19
0000 ; /****************************************Copyright (c)******************************
0000 ; 文件名: uart.c
0000 ; 修改日期: 2005-7-9 20:36
0000 ; 描述: ATmega16L的操作函数
0000 ; 版本: V1.0
0000 ; 主控 芯片: M16 晶振频率:7.3728MHZ,
0000 ; ********************************************************************************/
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "define.h"
0000 ; #include "function.h"
0000 ; #include "extern.h"
0000 ;
0000 ; /**********************************************************************
0000 ; functionName:putChar(uint8 sentData)
0000 ; description:通过串口发送数据sentData
0000 ; **********************************************************************/
0000 ; void putChar(uint08 sentData)
0000 ; {
0000 L2:
0000 .dbline 20
0000 L3:
0000 .dbline 20
0000 ; while(!(UCSRA&(1<<UDRE)));
0000 5D9B sbis 0xb,5
0002 FECF rjmp L2
0004 .dbline 21
0004 ; UDR=sentData;
0004 0CB9 out 0xc,R16
0006 .dbline -2
0006 L1:
0006 .dbline 0 ; func end
0006 0895 ret
0008 .dbsym r sentData 16 c
0008 .dbend
0008 .dbfunc e getChar _getChar fc
.even
0008 _getChar::
0008 .dbline -1
0008 .dbline 29
0008 ; }
0008 ;
0008 ; /**********************************************************************
0008 ; functionName:putChars(uint08 *sentData)
0008 ; description:通过串口接受数据
0008 ; **********************************************************************/
0008 ; uint08 getChar(void)
0008 ; {
0008 0CC0 xjmp L7
000A L6:
000A .dbline 31
000A ; while(!(UCSRA&BIT(RXC)))
000A ; {
000A .dbline 32
000A ; if(!flag)
000A 20900000 lds R2,_flag
000E 2220 tst R2
0010 41F4 brne L9
0012 .dbline 33
0012 ; if(TCNT1 < 20)
0012 8CB5 in R24,0x2c
0014 9DB5 in R25,0x2d
0016 8431 cpi R24,20
0018 E0E0 ldi R30,0
001A 9E07 cpc R25,R30
001C 10F4 brsh L11
001E .dbline 34
001E ; asm("jmp 0x000000\n");
001E 0C940000 jmp 0x000000
0022
0022 L11:
0022 L9:
0022 .dbline 35
0022 L7:
0022 .dbline 30
0022 5F9B sbis 0xb,7
0024 F2CF rjmp L6
0026 .dbline 35
0026 ; };
0026 .dbline 36
0026 ; return(UDR);
0026 0CB1 in R16,0xc
0028 .dbline -2
0028 L5:
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -