📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\ICCAVR~1\模块化~1\src\main.c
0000 .dbfunc e Init_Port _Init_Port fV
.even
0000 _Init_Port::
0000 .dbline -1
0000 .dbline 19
0000 ; /********************************************************************************************
0000 ; *项目名:ATMEGA128控制4×6矩阵键盘,LCD1602
0000 ; *项目描述:4×6键盘,通过按键来开启发光二极管,显示液晶1602屏幕
0000 ; *硬件条件:1.CPU:ATMEGA128
0000 ; 2.晶振:1MHz
0000 ; *作者:cheungman
0000 ; *日期:2007.11.12
0000 ; *********************************************************************************************/
0000 ; #include "common.h"
0000 ;
0000 ; /********************************************************************************************
0000 ; * 函数名称:Init_Port()
0000 ; * 功 能:I/O口初始化
0000 ; * 入口参数:无
0000 ; * 出口参数:无
0000 ; * 说 明:
0000 ; *********************************************************************************************/
0000 ; void Init_Port(void)
0000 ; {
0000 .dbline 20
0000 ; PORTB=0xff;
0000 8FEF ldi R24,255
0002 88BB out 0x18,R24
0004 .dbline 21
0004 ; DDRB=0xff;
0004 87BB out 0x17,R24
0006 .dbline 22
0006 ; PORTD=0xff;
0006 82BB out 0x12,R24
0008 .dbline 23
0008 ; DDRB=0xc0;
0008 80EC ldi R24,192
000A 87BB out 0x17,R24
000C .dbline 24
000C ; PORTF=0xff;
000C 8FEF ldi R24,255
000E 80936200 sts 98,R24
0012 .dbline 25
0012 ; DDRF=0xff;
0012 80936100 sts 97,R24
0016 .dbline -2
0016 L1:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e main _main fV
0018 ; table -> y+2
0018 ; temp -> R20
.even
0018 _main::
0018 2797 sbiw R28,7
001A .dbline -1
001A .dbline 29
001A ; }
001A ;
001A ; void main(void)
001A ; {
001A .dbline 33
001A ; unsigned char temp;
001A ; //unsigned char *p;
001A ; unsigned char table[5];
001A ; Init_LCD();
001A 0E940000 xcall _Init_LCD
001E .dbline 34
001E ; Init_Port();
001E F0DF xcall _Init_Port
0020 .dbline 35
0020 ; LCD_DisplayString(1,1,"key scan test start");
0020 80E0 ldi R24,<L3
0022 90E0 ldi R25,>L3
0024 9983 std y+1,R25
0026 8883 std y+0,R24
0028 21E0 ldi R18,1
002A 01E0 ldi R16,1
002C 0E940000 xcall _LCD_DisplayString
0030 .dbline 36
0030 ; delay_nms(200);
0030 08EC ldi R16,200
0032 10E0 ldi R17,0
0034 0E940000 xcall _delay_nms
0038 .dbline 37
0038 ; LCD_Clear();
0038 0E940000 xcall _LCD_Clear
003C 3BC0 xjmp L5
003E L4:
003E .dbline 39
003E ; while(1)
003E ; {
003E .dbline 40
003E ; LCD_DisplayString(1,1,"The number of key is");
003E 80E0 ldi R24,<L7
0040 90E0 ldi R25,>L7
0042 9983 std y+1,R25
0044 8883 std y+0,R24
0046 21E0 ldi R18,1
0048 01E0 ldi R16,1
004A 0E940000 xcall _LCD_DisplayString
004E .dbline 41
004E ; temp=key_scan();
004E 0E940000 xcall _key_scan
0052 402F mov R20,R16
0054 .dbline 42
0054 ; if(temp==1)
0054 0130 cpi R16,1
0056 71F4 brne L8
0058 X0:
0058 .dbline 43
0058 ; {
0058 .dbline 44
0058 ; LCD_Clear();
0058 0E940000 xcall _LCD_Clear
005C .dbline 45
005C ; LCD_DisplayString(2,1,"zhangwen");
005C 80E0 ldi R24,<L10
005E 90E0 ldi R25,>L10
0060 9983 std y+1,R25
0062 8883 std y+0,R24
0064 21E0 ldi R18,1
0066 02E0 ldi R16,2
0068 0E940000 xcall _LCD_DisplayString
006C .dbline 46
006C ; led(temp);
006C 042F mov R16,R20
006E 0E940000 xcall _led
0072 .dbline 47
0072 ; }
0072 20C0 xjmp L9
0074 L8:
0074 .dbline 48
0074 ; else if(temp==2)
0074 4230 cpi R20,2
0076 71F4 brne L11
0078 X1:
0078 .dbline 49
0078 ; {
0078 .dbline 50
0078 ; LCD_Clear();
0078 0E940000 xcall _LCD_Clear
007C .dbline 51
007C ; LCD_DisplayString(2,1,"Creator");
007C 80E0 ldi R24,<L13
007E 90E0 ldi R25,>L13
0080 9983 std y+1,R25
0082 8883 std y+0,R24
0084 21E0 ldi R18,1
0086 02E0 ldi R16,2
0088 0E940000 xcall _LCD_DisplayString
008C .dbline 52
008C ; led(temp);
008C 042F mov R16,R20
008E 0E940000 xcall _led
0092 .dbline 53
0092 ; }
0092 10C0 xjmp L12
0094 L11:
0094 .dbline 54
0094 ; else if(temp==3)
0094 4330 cpi R20,3
0096 71F4 brne L14
0098 X2:
0098 .dbline 55
0098 ; {
0098 .dbline 56
0098 ; LCD_Clear();
0098 0E940000 xcall _LCD_Clear
009C .dbline 57
009C ; table[0]=temp;
009C 4A83 std y+2,R20
009E .dbline 58
009E ; table[1]=temp+1;
009E 842F mov R24,R20
00A0 8F5F subi R24,255 ; addi 1
00A2 8B83 std y+3,R24
00A4 .dbline 59
00A4 ; LCD_DisplayString(2,1,table);
00A4 CE01 movw R24,R28
00A6 0296 adiw R24,2
00A8 9983 std y+1,R25
00AA 8883 std y+0,R24
00AC 21E0 ldi R18,1
00AE 02E0 ldi R16,2
00B0 0E940000 xcall _LCD_DisplayString
00B4 .dbline 60
00B4 ; }
00B4 L14:
00B4 L12:
00B4 L9:
00B4 .dbline 61
00B4 ; }
00B4 L5:
00B4 .dbline 38
00B4 C4CF xjmp L4
00B6 X3:
00B6 .dbline -2
00B6 L2:
00B6 .dbline 0 ; func end
00B6 2796 adiw R28,7
00B8 0895 ret
00BA .dbsym l table 2 A[5:5]c
00BA .dbsym r temp 20 c
00BA .dbend
.area data(ram, con, rel)
0000 .dbfile D:\ICCAVR~1\模块化~1\src\main.c
0000 L13:
0000 .blkb 8
.area idata
0000 43726561746F7200 .byte 'C,'r,'e,'a,'t,'o,'r,0
.area data(ram, con, rel)
0008 .dbfile D:\ICCAVR~1\模块化~1\src\main.c
0008 L10:
0008 .blkb 9
.area idata
0008 7A68616E6777656E00 .byte 'z,'h,'a,'n,'g,'w,'e,'n,0
.area data(ram, con, rel)
0011 .dbfile D:\ICCAVR~1\模块化~1\src\main.c
0011 L7:
0011 .blkb 21
.area idata
0011 546865206E756D626572206F66206B65 .byte 'T,'h,'e,32,'n,'u,'m,'b,'e,'r,32,'o,'f,32,'k,'e
0021 7920697300 .byte 'y,32,'i,'s,0
.area data(ram, con, rel)
0026 .dbfile D:\ICCAVR~1\模块化~1\src\main.c
0026 L3:
0026 .blkb 20
.area idata
0026 6B6579207363616E2074657374207374 .byte 'k,'e,'y,32,'s,'c,'a,'n,32,'t,'e,'s,'t,32,'s,'t
0036 61727400 .byte 'a,'r,'t,0
.area data(ram, con, rel)
003A .dbfile D:\ICCAVR~1\模块化~1\src\main.c
003A ; }
003A ;
003A ;
003A ;
003A ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -