?? main.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 + -