📄 io_wr.lis
字号:
.module IO_WR.c
.area text(rom, con, rel)
0000 .dbfile G:\猛\avr实践\IO读写\IO_WR.c
0000 .dbfunc e main _main fV
0000 ; achar -> R16
0000 ; i -> R18
.even
0000 _main::
0000 .dbline -1
0000 .dbline 13
0000 ; //
0000 ; /*----------------------------------------------
0000 ;
0000 ; 王猛 2006.10.10
0000 ; 说明: PB口的低四位作为输入,高四位作为输出
0000 ; 输出状态为低四位的输入值,其他口除AC
0000 ; 外,输出PB的状态,E口为取反
0000 ;
0000 ; -----------------------------------------------*/
0000 ; //
0000 ; #include <iom128.h>
0000 ; void main(void)
0000 ; {
0000 .dbline 17
0000 ; unsigned char achar;
0000 ; unsigned char i;
0000 ;
0000 ; DDRB = 0xFF;
0000 8FEF ldi R24,255
0002 87BB out 0x17,R24
0004 .dbline 18
0004 ; DDRE = 0xFF;
0004 82B9 out 0x2,R24
0006 .dbline 19
0006 ; DDRF = 0xFF;
0006 80936100 sts 97,R24
000A .dbline 20
000A ; DDRG = 0xFF;
000A 80936400 sts 100,R24
000E .dbline 21
000E ; DDRD = 0xF0;
000E 80EF ldi R24,240
0010 81BB out 0x11,R24
0012 .dbline 22
0012 ; PORTD = 0x00;
0012 2224 clr R2
0014 22BA out 0x12,R2
0016 .dbline 24
0016 ;
0016 ; achar = PIND;
0016 00B3 in R16,0x10
0018 .dbline 25
0018 ; PORTD |= achar<<4;
0018 802F mov R24,R16
001A 8F70 andi R24,#0x0F
001C 8295 swap R24
001E 22B2 in R2,0x12
0020 282A or R2,R24
0022 22BA out 0x12,R2
0024 .dbline 27
0024 ;
0024 ; for (i = 0; i<3; i++ ) //延时有必要,等待端口写完毕再读出端口的状态
0024 2227 clr R18
0026 01C0 xjmp L5
0028 L2:
0028 .dbline 28
0028 .dbline 29
0028 L3:
0028 .dbline 27
0028 2395 inc R18
002A L5:
002A .dbline 27
002A 2330 cpi R18,3
002C E8F3 brlo L2
002E .dbline 31
002E ; {
002E ; }
002E ;
002E ; achar = PIND;
002E 00B3 in R16,0x10
0030 .dbline 33
0030 ;
0030 ; PORTB = achar;
0030 08BB out 0x18,R16
0032 .dbline 34
0032 ; PORTE = ~achar;
0032 202E mov R2,R16
0034 2094 com R2
0036 23B8 out 0x3,R2
0038 .dbline 35
0038 ; PORTF = achar;
0038 00936200 sts 98,R16
003C .dbline 36
003C ; PORTG = achar;
003C 00936500 sts 101,R16
0040 .dbline 38
0040 ;
0040 ; for(;;)
0040 L6:
0040 .dbline 39
0040 .dbline 40
0040 .dbline 38
0040 .dbline 38
0040 FFCF xjmp L6
0042 X0:
0042 .dbline -2
0042 L1:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbsym r achar 16 c
0044 .dbsym r i 18 c
0044 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -