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

📄 io.lis

📁 这是关于AVR单片机学习的初步开发
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module io.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\wu\单片机教学\IO实验程序\io.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2005-3-1 6:11:41
 0000           ; // Target : M8
 0000           ; // Crystal: 11.059Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  PORTB = 0xFF;
 0000 8FEF              ldi R24,255
 0002 88BB              out 0x18,R24
 0004                   .dbline 11
 0004           ;  DDRB  = 0x00;
 0004 2224              clr R2
 0006 27BA              out 0x17,R2
 0008                   .dbline 12
 0008           ;  PORTC = 0x7F; //m103 output only
 0008 8FE7              ldi R24,127
 000A 85BB              out 0x15,R24
 000C                   .dbline 13
 000C           ;  DDRC  = 0x20;
 000C 80E2              ldi R24,32
 000E 84BB              out 0x14,R24
 0010                   .dbline 14
 0010           ;  PORTD = 0xFF;
 0010 8FEF              ldi R24,255
 0012 82BB              out 0x12,R24
 0014                   .dbline 15
 0014           ;  DDRD  = 0xFF;
 0014 81BB              out 0x11,R24
 0016                   .dbline -2
 0016                   .dbline 16
 0016           ; }
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e init_devices _init_devices fV
                        .even
 0018           _init_devices::
 0018                   .dbline -1
 0018                   .dbline 20
 0018           ; 
 0018           ; //call this routine to initialise all peripherals
 0018           ; void init_devices(void)
 0018           ; {
 0018                   .dbline 22
 0018           ;  //stop errant interrupts until set up
 0018           ;  CLI(); //disable all interrupts
 0018 F894              cli
 001A                   .dbline 23
 001A           ;  port_init();
 001A F2DF              rcall _port_init
 001C                   .dbline 25
 001C           ; 
 001C           ;  MCUCR = 0x00;
 001C 2224              clr R2
 001E 25BE              out 0x35,R2
 0020                   .dbline 26
 0020           ;  GICR  = 0x00;
 0020 2BBE              out 0x3b,R2
 0022                   .dbline 27
 0022           ;  TIMSK = 0x00; //timer interrupt sources
 0022 29BE              out 0x39,R2
 0024                   .dbline 28
 0024           ;  SEI(); //re-enable interrupts
 0024 7894              sei
 0026                   .dbline -2
 0026                   .dbline 30
 0026           ;  //all peripherals are now initialised
 0026           ; }
 0026           L2:
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbend
 0028                   .dbfunc e delay _delay fV
 0028           ;              k -> R20,R21
 0028           ;              i -> R22,R23
 0028           ;              j -> R10,R11
 0028           ;           time -> R16
                        .even
 0028           _delay::
 0028 00D0              rcall push_gset3
 002A                   .dbline -1
 002A                   .dbline 33
 002A           ; 
 002A           ; void delay(char time)//延时函数,单位延时0.25s。
 002A           ; {     unsigned int i,j,k;
 002A                   .dbline 34
 002A           ;       for(k=0;k<time;k++)
 002A 4427              clr R20
 002C 5527              clr R21
 002E 16C0              rjmp L7
 0030           L4:
 0030                   .dbline 35
 0030           ;               for(i=0;i<1500;i++)
 0030 6627              clr R22
 0032 7727              clr R23
 0034 0DC0              rjmp L11
 0036           L8:
 0036                   .dbline 36
 0036 AA24              clr R10
 0038 BB24              clr R11
 003A 03C0              rjmp L15
 003C           L12:
 003C                   .dbline 36
 003C           L13:
 003C                   .dbline 36
 003C C501              movw R24,R10
 003E 0196              adiw R24,1
 0040 5C01              movw R10,R24
 0042           L15:
 0042                   .dbline 36
 0042 C501              movw R24,R10
 0044 8436              cpi R24,100
 0046 E0E0              ldi R30,0
 0048 9E07              cpc R25,R30
 004A C0F3              brlo L12
 004C           L9:
 004C                   .dbline 35
 004C 6F5F              subi R22,255  ; offset = 1
 004E 7F4F              sbci R23,255
 0050           L11:
 0050                   .dbline 35
 0050 6C3D              cpi R22,220
 0052 E5E0              ldi R30,5
 0054 7E07              cpc R23,R30
 0056 78F3              brlo L8
 0058           L5:
 0058                   .dbline 34
 0058 4F5F              subi R20,255  ; offset = 1
 005A 5F4F              sbci R21,255
 005C           L7:
 005C                   .dbline 34
 005C 202E              mov R2,R16
 005E 3324              clr R3
 0060 4215              cp R20,R2
 0062 5305              cpc R21,R3
 0064 28F3              brlo L4
 0066                   .dbline -2
 0066                   .dbline 37
 0066           ;                       for(j=0;j<100;j++);
 0066           ; }
 0066           L3:
 0066 00D0              rcall pop_gset3
 0068                   .dbline 0 ; func end
 0068 0895              ret
 006A                   .dbsym r k 20 i
 006A                   .dbsym r i 22 i
 006A                   .dbsym r j 10 i
 006A                   .dbsym r time 16 c
 006A                   .dbend
                        .area lit(rom, con, rel)
 0000           L17:
 0000 3F06              .byte 63,6
 0002 5B4F              .byte 91,'O
 0004 6666              .byte 'f,'f
 0006 7D07              .byte 125,7
 0008 7F                .byte 127
                        .area text(rom, con, rel)
 006A                   .dbfile E:\wu\单片机教学\IO实验程序\io.c
 006A                   .dbfunc e main _main fV
 006A           ;            led -> y+0
 006A           ;           data -> R20
 006A           ;              i -> R22
                        .even
 006A           _main::
 006A 2997              sbiw R28,9
 006C                   .dbline -1
 006C                   .dbline 40
 006C           ; 
 006C           ; void main(void)
 006C           ; {
 006C                   .dbline 43
 006C           ;  char i;
 006C           ;  char data;
 006C           ;  char led[9] = {0x3F,0x06, 0x5B, 0x4F, 0x66 ,0x66, 0x7D, 0x07, 0x7F};                                                                  //数码管码值
 006C 80E0              ldi R24,<L17
 006E 90E0              ldi R25,>L17
 0070 FE01              movw R30,R28
 0072 09E0              ldi R16,9
 0074 10E0              ldi R17,0
 0076 FA93              st -y,R31
 0078 EA93              st -y,R30
 007A 9A93              st -y,R25
 007C 8A93              st -y,R24
 007E 00D0              rcall asgncblk

⌨️ 快捷键说明

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