📄 ac13-1.lis
字号:
.module ac13-1.c
.area text(rom, con, rel)
0000 .dbfile d:\MYDOCU~1\ac13-1\ac13-1.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 5
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; //==================================
0000 ; void port_init(void)
0000 ; {
0000 .dbline 6
0000 ; PORTA = 0xFF;
0000 8FEF ldi R24,255
0002 8BBB out 0x1b,R24
0004 .dbline 7
0004 ; DDRA = 0x00;
0004 2224 clr R2
0006 2ABA out 0x1a,R2
0008 .dbline 8
0008 ; PORTB = 0xFF;
0008 88BB out 0x18,R24
000A .dbline 9
000A ; DDRB = 0xFF;
000A 87BB out 0x17,R24
000C .dbline 10
000C ; PORTC = 0xFF;
000C 85BB out 0x15,R24
000E .dbline 11
000E ; DDRC = 0x00;
000E 24BA out 0x14,R2
0010 .dbline 12
0010 ; PORTD = 0xFF;
0010 82BB out 0x12,R24
0012 .dbline 13
0012 ; DDRD = 0x02;
0012 82E0 ldi R24,2
0014 81BB out 0x11,R24
0016 .dbline -2
0016 L1:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e uart0_init _uart0_init fV
.even
0018 _uart0_init::
0018 .dbline -1
0018 .dbline 17
0018 ; }
0018 ; //**********************************************
0018 ; void uart0_init(void)
0018 ; {
0018 .dbline 18
0018 ; UCSRB = 0x00;
0018 2224 clr R2
001A 2AB8 out 0xa,R2
001C .dbline 19
001C ; UCSRA = 0x02;
001C 82E0 ldi R24,2
001E 8BB9 out 0xb,R24
0020 .dbline 20
0020 ; UCSRC = 0x06;
0020 86E0 ldi R24,6
0022 80BD out 0x20,R24
0024 .dbline 21
0024 ; UBRRL = 0x67;
0024 87E6 ldi R24,103
0026 89B9 out 0x9,R24
0028 .dbline 22
0028 ; UBRRH = 0x00;
0028 20BC out 0x20,R2
002A .dbline 23
002A ; UCSRB = 0x18;
002A 88E1 ldi R24,24
002C 8AB9 out 0xa,R24
002E .dbline -2
002E L2:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbend
0030 .dbfunc e init_devices _init_devices fV
.even
0030 _init_devices::
0030 .dbline -1
0030 .dbline 27
0030 ; }
0030 ; //**********************************************
0030 ; void init_devices(void)
0030 ; {
0030 .dbline 28
0030 ; port_init();
0030 E7DF xcall _port_init
0032 .dbline 29
0032 ; uart0_init();
0032 F2DF xcall _uart0_init
0034 .dbline -2
0034 L3:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbend
0036 .dbfunc e uart0_send _uart0_send fV
0036 ; i -> R16
.even
0036 _uart0_send::
0036 .dbline -1
0036 .dbline 33
0036 ; }
0036 ; //**********************************************
0036 ; void uart0_send(unsigned char i)
0036 ; {
0036 L5:
0036 .dbline 34
0036 L6:
0036 .dbline 34
0036 ; while(!(UCSRA&(1<<UDRE)));
0036 5D9B sbis 0xb,5
0038 FECF rjmp L5
003A .dbline 35
003A ; UDR=i;
003A 0CB9 out 0xc,R16
003C .dbline -2
003C L4:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbsym r i 16 c
003E .dbend
003E .dbfunc e uart0_receive _uart0_receive fc
.even
003E _uart0_receive::
003E .dbline -1
003E .dbline 39
003E ; }
003E ; //************************************************
003E ; unsigned char uart0_receive(void)
003E ; {
003E L9:
003E .dbline 40
003E L10:
003E .dbline 40
003E ; while(!(UCSRA&(1<<RXC)));
003E 5F9B sbis 0xb,7
0040 FECF rjmp L9
0042 .dbline 41
0042 ; return UDR;
0042 0CB1 in R16,0xc
0044 .dbline -2
0044 L8:
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbend
0046 .dbfunc e main _main fV
0046 ; temp -> R20
.even
0046 _main::
0046 .dbline -1
0046 .dbline 45
0046 ; }
0046 ; //---------------------------------------------------------------
0046 ; void main(void)
0046 ; {
0046 .dbline 47
0046 ; unsigned char temp;
0046 ; init_devices();
0046 F4DF xcall _init_devices
0048 06C0 xjmp L14
004A L13:
004A .dbline 49
004A .dbline 50
004A F9DF xcall _uart0_receive
004C 402F mov R20,R16
004E .dbline 51
004E 242E mov R2,R20
0050 2094 com R2
0052 28BA out 0x18,R2
0054 .dbline 52
0054 F0DF xcall _uart0_send
0056 .dbline 53
0056 L14:
0056 .dbline 48
0056 F9CF xjmp L13
0058 X0:
0058 .dbline -2
0058 L12:
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbsym r temp 20 c
005A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -