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

📄 uart.lis

📁 AVR单片机解码普通PC键盘码值
💻 LIS
字号:
                        .module uart.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\AVRchengcu\PS2--AVR\uart.c
 0000                   .dbfunc e init_USART _init_USART fV
                        .even
 0000           _init_USART::
 0000                   .dbline -1
 0000                   .dbline 11
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; //常量定义
 0000           ; #define BAUDRATE              9600    //波特率
 0000           ; #define F_CPU                         16000000 //这个已经在makefile里面定义了
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; void init_USART(void)//USART 初始化
 0000           ; {
 0000                   .dbline 12
 0000           ;     UCSRC = (1<<URSEL) | 0x06;
 0000 86E8              ldi R24,134
 0002 80BD              out 0x20,R24
 0004                   .dbline 13
 0004           ;     UBRRL= (F_CPU/BAUDRATE/16-1)%256;
 0004 87E6              ldi R24,103
 0006 89B9              out 0x9,R24
 0008                   .dbline 14
 0008           ;     UBRRH= (F_CPU/BAUDRATE/16-1)/256;
 0008 2224              clr R2
 000A 20BC              out 0x20,R2
 000C                   .dbline 15
 000C           ;     UCSRA = 0x00;
 000C 2BB8              out 0xb,R2
 000E                   .dbline 16
 000E           ;     UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
 000E 88E9              ldi R24,152
 0010 8AB9              out 0xa,R24
 0012                   .dbline -2
 0012                   .dbline 17
 0012           ; }
 0012           L1:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbend
 0014                   .dbfunc e put_c _put_c fV
 0014           ;              c -> R16
                        .even
 0014           _put_c::
 0014                   .dbline -1
 0014                   .dbline 20
 0014           ; 
 0014           ; void put_c(unsigned char c) //发送采用查询方式
 0014           ; {
 0014           L3:
 0014                   .dbline 21
 0014           L4:
 0014                   .dbline 21
 0014           ;       while( !(UCSRA & (1<<UDRE)) );
 0014 5D9B              sbis 0xb,5
 0016 FECF              rjmp L3
 0018                   .dbline 22
 0018           ;       UDR=c;
 0018 0CB9              out 0xc,R16
 001A                   .dbline -2
 001A                   .dbline 23
 001A           ; }
 001A           L2:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbsym r c 16 c
 001C                   .dbend
 001C                   .dbfunc e put_s _put_s fV
 001C           ;            ptr -> R20,R21
                        .even
 001C           _put_s::
 001C 00D0              rcall push_gset1
 001E 402F              mov R20,R16
 0020 512F              mov R21,R17
 0022                   .dbline -1
 0022                   .dbline 26
 0022           ; 
 0022           ; void put_s(unsigned char *ptr)
 0022           ; {
 0022 06C0              rjmp L8
 0024           L7:
 0024                   .dbline 28
 0024                   .dbline 29
 0024 E42F              mov R30,R20
 0026 F52F              mov R31,R21
 0028 0191              ld R16,Z+
 002A 4E2F              mov R20,R30
 002C 5F2F              mov R21,R31
 002E F2DF              rcall _put_c
 0030                   .dbline 30
 0030           L8:
 0030                   .dbline 27
 0030           ;       while (*ptr)
 0030 E42F              mov R30,R20
 0032 F52F              mov R31,R21
 0034 2080              ldd R2,z+0
 0036 2220              tst R2
 0038 A9F7              brne L7
 003A                   .dbline 31
 003A           ;       {
 003A           ;               put_c(*ptr++);
 003A           ;       }
 003A           ;       put_c(0x0D);
 003A 0DE0              ldi R16,13
 003C EBDF              rcall _put_c
 003E                   .dbline 32
 003E           ;       put_c(0x0A);  //结尾发送回车换行
 003E 0AE0              ldi R16,10
 0040 E9DF              rcall _put_c
 0042                   .dbline -2
 0042                   .dbline 33
 0042           ; }
 0042           L6:
 0042 00D0              rcall pop_gset1
 0044                   .dbline 0 ; func end
 0044 0895              ret
 0046                   .dbsym r ptr 20 pc
 0046                   .dbend

⌨️ 快捷键说明

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