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

📄 main.lis

📁 atmega16与lcd1604的的代码
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真/KeyScay.h
 0000                   .dbfunc e key_scay _key_scay fc
 0000           ;            key -> R20
                        .even
 0000           _key_scay::
 0000 0E940000          xcall push_gset1
 0004                   .dbline -1
 0004                   .dbline 8
 0004           ; //ICC-AVR application builder : 2008-4-19 16:50:18
 0004           ; // Target : M16
 0004           ; // Crystal: 8.0000Mhz
 0004           ; 
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h>
 0004           ; #include "delay.h"
 0004           ; #include "lcd.h"
 0004                   .dbline 10
 0004           ; #include "KeyScay.h"
 0004           ; 
 0004 80EF              ldi R24,240
 0006 81BB              out 0x11,R24
 0008                   .dbline 11
 0008           ; void port_init(void)
 0008 8FE0              ldi R24,15
 000A 82BB              out 0x12,R24
 000C                   .dbline 13
 000C           ; {
 000C           ;  PORTA = 0x00;
 000C 839B              sbis 0x10,3
 000E 02C0              rjmp L2
 0010                   .dbline 14
 0010           ;  DDRA  = 0x00;
 0010 4427              clr R20
 0012 0BC0              xjmp L3
 0014           L2:
 0014                   .dbline 15
 0014           ;  PORTB = 0x00;
 0014 829B              sbis 0x10,2
 0016 02C0              rjmp L4
 0018                   .dbline 16
 0018           ;  DDRB  = 0x00;
 0018 44E0              ldi R20,4
 001A 07C0              xjmp L5
 001C           L4:
 001C                   .dbline 17
 001C           ;  PORTC = 0x00; //m103 output only
 001C 819B              sbis 0x10,1
 001E 02C0              rjmp L6
 0020                   .dbline 18
 0020           ;  DDRC  = 0x0F;
 0020 48E0              ldi R20,8
 0022 03C0              xjmp L7
 0024           L6:
 0024                   .dbline 19
 0024           ;  PORTD = 0x0F;
 0024 809B              sbis 0x10,0
 0026 01C0              rjmp L8
 0028                   .dbline 20
 0028           ;  DDRD  = 0xF0;
 0028 4CE0              ldi R20,12
 002A           L8:
 002A           L7:
 002A           L5:
 002A           L3:
 002A                   .dbline 21
 002A           ; }
 002A 8FE0              ldi R24,15
 002C 81BB              out 0x11,R24
 002E                   .dbline 22
 002E           ; 
 002E 80EF              ldi R24,240
 0030 82BB              out 0x12,R24
 0032                   .dbline 23
 0032           ; #pragma interrupt_handler int0_isr:2
 0032 04E1              ldi R16,20
 0034 10E0              ldi R17,0
 0036 0E940000          xcall _delay_nms
 003A                   .dbline 25
 003A           ; void int0_isr(void)
 003A           ; {
 003A 879B              sbis 0x10,7
 003C 01C0              rjmp L10
 003E                   .dbline 26
 003E           ;  //external interupt on INT0
 003E 0BC0              xjmp L11
 0040           L10:
 0040                   .dbline 27
 0040           ; }
 0040 869B              sbis 0x10,6
 0042 02C0              rjmp L12
 0044                   .dbline 28
 0044           ; 
 0044 4395              inc R20
 0046 07C0              xjmp L13
 0048           L12:
 0048                   .dbline 29
 0048           ; //call this routine to initialize all peripherals
 0048 859B              sbis 0x10,5
 004A 02C0              rjmp L14
 004C                   .dbline 30
 004C           ; void init_devices(void)
 004C 4E5F              subi R20,254    ; addi 2
 004E 03C0              xjmp L15
 0050           L14:
 0050                   .dbline 31
 0050           ; {
 0050 849B              sbis 0x10,4
 0052 01C0              rjmp L16
 0054                   .dbline 32
 0054           ;  //stop errant interrupts until set up
 0054 4D5F              subi R20,253    ; addi 3
 0056           L16:
 0056           L15:
 0056           L13:
 0056           L11:
 0056                   .dbline 33
 0056           ;  CLI(); //disable all interrupts
 0056 80EF              ldi R24,240
 0058 81BB              out 0x11,R24
 005A                   .dbline 34
 005A           ;  port_init();
 005A 8FE0              ldi R24,15
 005C 82BB              out 0x12,R24
 005E                   .dbline 35
 005E           ; 
 005E 042F              mov R16,R20
 0060                   .dbline -2
 0060           L1:
 0060 0E940000          xcall pop_gset1
 0064                   .dbline 0 ; func end
 0064 0895              ret
 0066                   .dbsym r key 20 c
 0066                   .dbend
 0066                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真\main.c
 0066                   .dbfunc e port_init _port_init fV
                        .even
 0066           _port_init::
 0066                   .dbline -1
 0066                   .dbline 12
 0066                   .dbline 13
 0066 2224              clr R2
 0068 2BBA              out 0x1b,R2
 006A                   .dbline 14
 006A 2ABA              out 0x1a,R2
 006C                   .dbline 15
 006C 28BA              out 0x18,R2
 006E                   .dbline 16
 006E 27BA              out 0x17,R2
 0070                   .dbline 17
 0070 25BA              out 0x15,R2
 0072                   .dbline 18
 0072 8FE0              ldi R24,15
 0074 84BB              out 0x14,R24
 0076                   .dbline 19
 0076 82BB              out 0x12,R24
 0078                   .dbline 20
 0078 80EF              ldi R24,240
 007A 81BB              out 0x11,R24
 007C                   .dbline -2
 007C           L18:
 007C                   .dbline 0 ; func end
 007C 0895              ret
 007E                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 0C943F00          jmp _int0_isr
                        .area text(rom, con, rel)
 007E                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真\main.c
 007E                   .dbfunc e int0_isr _int0_isr fV
                        .even
 007E           _int0_isr::
 007E                   .dbline -1
 007E                   .dbline 25
 007E                   .dbline -2
 007E           L19:
 007E                   .dbline 0 ; func end
 007E 1895              reti
 0080                   .dbend
 0080                   .dbfunc e init_devices _init_devices fV
                        .even
 0080           _init_devices::
 0080                   .dbline -1
 0080                   .dbline 31
 0080                   .dbline 33
 0080 F894              cli
 0082                   .dbline 34
 0082 F1DF              xcall _port_init
 0084                   .dbline 36
 0084           ;  MCUCR = 0x00;
 0084 2224              clr R2
 0086 25BE              out 0x35,R2
 0088                   .dbline 37
 0088           ;  GICR  = 0x40;
 0088 80E4              ldi R24,64
 008A 8BBF              out 0x3b,R24
 008C                   .dbline 38
 008C           ;  TIMSK = 0x00; //timer interrupt sources
 008C 29BE              out 0x39,R2
 008E                   .dbline 39
 008E           ;  SEI(); //re-enable interrupts
 008E 7894              sei
 0090                   .dbline -2
 0090           L20:
 0090                   .dbline 0 ; func end
 0090 0895              ret
 0092                   .dbend
 0092                   .dbfunc e main _main fV
 0092           ;       key_vale -> R20
                        .even
 0092           _main::
 0092 2297              sbiw R28,2
 0094                   .dbline -1
 0094                   .dbline 45
 0094           ;  //all peripherals are now initialized
 0094           ; } 
 0094           ;  
 0094           ;  void main(void)
 0094           ;  
 0094           ;  {
 0094                   .dbline 48
 0094           ;    unsigned char key_vale;
 0094           ;    
 0094           ;    init_devices();
 0094 F5DF              xcall _init_devices
 0096                   .dbline 50
 0096           ;    
 0096           ;    LCD16xx_init();
 0096 0E940000          xcall _LCD16xx_init
 009A                   .dbline 51
 009A           ;    LCD16xx_clr();                     //显示清屏
 009A 0E940000          xcall _LCD16xx_clr
 009E                   .dbline 52
 009E           ;    delay_nms(100); 
 009E 04E6              ldi R16,100
 00A0 10E0              ldi R17,0
 00A2 0E940000          xcall _delay_nms
 00A6                   .dbline 53
 00A6           ;    LCD16xx_write_string(3,0,"Welcome to");
 00A6 80E0              ldi R24,<L22
 00A8 90E0              ldi R25,>L22
 00AA 9983              std y+1,R25
 00AC 8883              std y+0,R24
 00AE 2227              clr R18
 00B0 03E0              ldi R16,3
 00B2 0E940000          xcall _LCD16xx_write_string
 00B6                   .dbline 54
 00B6           ;    LCD16xx_write_string(1,1,"SEE MY work");
 00B6 80E0              ldi R24,<L23
 00B8 90E0              ldi R25,>L23
 00BA 9983              std y+1,R25
 00BC 8883              std y+0,R24
 00BE 21E0              ldi R18,1
 00C0 01E0              ldi R16,1
 00C2 0E940000          xcall _LCD16xx_write_string
 00C6                   .dbline 55
 00C6           ;    LCD16xx_write_string(4,2,"By kang");
 00C6 80E0              ldi R24,<L24
 00C8 90E0              ldi R25,>L24
 00CA 9983              std y+1,R25
 00CC 8883              std y+0,R24
 00CE 22E0              ldi R18,2
 00D0 04E0              ldi R16,4
 00D2 0E940000          xcall _LCD16xx_write_string
 00D6                   .dbline 56
 00D6           ;    LCD16xx_write_string(3,3,"2006.04.11");
 00D6 80E0              ldi R24,<L25
 00D8 90E0              ldi R25,>L25
 00DA 9983              std y+1,R25
 00DC 8883              std y+0,R24
 00DE 23E0              ldi R18,3
 00E0 03E0              ldi R16,3
 00E2 0E940000          xcall _LCD16xx_write_string
 00E6                   .dbline 57
 00E6           ;    delay_nms(1000);
 00E6 08EE              ldi R16,1000
 00E8 13E0              ldi R17,3
 00EA 0E940000          xcall _delay_nms
 00EE                   .dbline 58
 00EE           ;    LCD16xx_clr();                     //显示清屏
 00EE 0E940000          xcall _LCD16xx_clr
 00F2                   .dbline 59
 00F2           ;    delay_nms(500);
 00F2 04EF              ldi R16,500
 00F4 11E0              ldi R17,1
 00F6 0E940000          xcall _delay_nms
 00FA 0CC0              xjmp L27
 00FC           L26:
 00FC                   .dbline 62
 00FC                   .dbline 63
 00FC 81DF              xcall _key_scay
 00FE 402F              mov R20,R16
 0100                   .dbline 65
 0100 242E              mov R2,R20
 0102 3324              clr R3
 0104 3982              std y+1,R3
 0106 2882              std y+0,R2
 0108 2227              clr R18
 010A 3327              clr R19
 010C 03E0              ldi R16,3
 010E 10E0              ldi R17,0
 0110 0E940000          xcall _LCD16xx_display_char
 0114                   .dbline 66
 0114           L27:
 0114                   .dbline 60
 0114 F3CF              xjmp L26
 0116           X0:
 0116                   .dbline -2
 0116           L21:
 0116 2296              adiw R28,2
 0118                   .dbline 0 ; func end
 0118 0895              ret
 011A                   .dbsym r key_vale 20 c
 011A                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真\main.c
 0000           L25:
 0000                   .blkb 11
                        .area idata
 0000 323030362E30342E313100    .byte 50,48,48,54,46,48,52,46,49,49,0
                        .area data(ram, con, rel)
 000B                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真\main.c
 000B           L24:
 000B                   .blkb 8
                        .area idata
 000B 4279206B616E6700  .byte 'B,'y,32,'k,'a,'n,'g,0
                        .area data(ram, con, rel)
 0013                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真\main.c
 0013           L23:
 0013                   .blkb 12
                        .area idata
 0013 534545204D5920776F726B00  .byte 'S,'E,'E,32,'M,'Y,32,'w,'o,'r,'k,0
                        .area data(ram, con, rel)
 001F                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真\main.c
 001F           L22:
 001F                   .blkb 11
                        .area idata
 001F 57656C636F6D6520746F00    .byte 'W,'e,'l,'c,'o,'m,'e,32,'t,'o,0
                        .area data(ram, con, rel)
 002A                   .dbfile D:\各种模块设计\模块程序集\atmega16+1604仿真\main.c

⌨️ 快捷键说明

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