📄 main.lis
字号:
.module main.c
.area lit(rom, con, rel)
0000 _you1::
0000 0010 .byte 0,16
0002 1010 .byte 16,16
0004 1010 .byte 16,16
0006 FF10 .byte 255,16
0008 10F2 .byte 16,242
000A 141C .byte 20,28
000C 1010 .byte 16,16
000E 1000 .byte 16,0
0010 .dbfile C:\DOCUME~1\zhuji\桌面\新建文~2/chinese.h
0010 .dbsym e you1 _you1 A[16:16]kc
0010 _you2::
0010 0080 .byte 0,128
0012 4020 .byte 64,32
0014 1806 .byte 24,6
0016 0100 .byte 1,0
0018 003F .byte 0,63
001A 4040 .byte 64,64
001C 4040 .byte 64,64
001E 7800 .byte 'x,0
0020 .dbsym e you2 _you2 A[16:16]kc
0020 _xuan1::
0020 4040 .byte 64,64
0022 42CC .byte 'B,204
0024 0050 .byte 0,'P
0026 4EC8 .byte 'N,200
0028 487F .byte 'H,127
002A C848 .byte 200,'H
002C 4840 .byte 'H,64
002E 0000 .byte 0,0
0030 .dbsym e xuan1 _xuan1 A[16:16]kc
0030 _xuan2::
0030 0040 .byte 0,64
0032 201F .byte 32,31
0034 2048 .byte 32,'H
0036 4641 .byte 'F,'A
0038 4040 .byte 64,64
003A 4748 .byte 'G,'H
003C 484E .byte 'H,'N
003E 4000 .byte 64,0
0040 .dbsym e xuan2 _xuan2 A[16:16]kc
0040 _ze1::
0040 0808 .byte 8,8
0042 FF88 .byte 255,136
0044 4808 .byte 'H,8
0046 4246 .byte 'B,'F
0048 2AD2 .byte 42,210
004A 2A46 .byte 42,'F
004C 4280 .byte 'B,128
004E 8000 .byte 128,0
0050 .dbsym e ze1 _ze1 A[16:16]kc
0050 _ze2::
0050 4281 .byte 'B,129
0052 7F00 .byte 127,0
0054 0008 .byte 0,8
0056 0909 .byte 9,9
0058 09FF .byte 9,255
005A 0909 .byte 9,9
005C 0908 .byte 9,8
005E 0800 .byte 8,0
0060 .dbsym e ze2 _ze2 A[16:16]kc
0060 _gong1::
0060 0004 .byte 0,4
0062 0404 .byte 4,4
0064 FC04 .byte 252,4
0066 1414 .byte 20,20
0068 1090 .byte 16,144
006A 7F10 .byte 127,16
006C 10F0 .byte 16,240
006E 0000 .byte 0,0
0070 .dbsym e gong1 _gong1 A[16:16]kc
0070 _gong2::
0070 040C .byte 4,12
0072 0404 .byte 4,4
0074 0342 .byte 3,'B
0076 2211 .byte 34,17
0078 0C23 .byte 12,35
007A 2060 .byte 32,96
007C 201F .byte 32,31
007E 0000 .byte 0,0
0080 .dbsym e gong2 _gong2 A[16:16]kc
0080 _hu1::
0080 0000 .byte 0,0
0082 F808 .byte 248,8
0084 4848 .byte 'H,'H
0086 48FF .byte 'H,255
0088 AAAA .byte 170,170
008A AA8A .byte 170,138
008C D808 .byte 216,8
008E 0000 .byte 0,0
0090 .dbsym e hu1 _hu1 A[16:16]kc
0090 _hu2::
0090 8060 .byte 128,96
0092 1F80 .byte 31,128
0094 403E .byte 64,62
0096 0202 .byte 2,2
0098 023E .byte 2,62
009A 4040 .byte 64,64
009C 4078 .byte 64,'x
009E 2000 .byte 32,0
00A0 .dbsym e hu2 _hu2 A[16:16]kc
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\zhuji\桌面\新建文~2/chinese.h
0000 .dbfile C:\DOCUME~1\zhuji\桌面\新建文~2\main.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 18
0000 ; // Project :12864 LCD Display
0000 ; // ICC-AVR application builder :2008-3-23
0000 ; // Target : M128
0000 ; // Crystal: 8.0000Mhz
0000 ; // Description : display chinese
0000 ; // 纵向取模方式 16*16字体
0000 ;
0000 ; #include <iom128v.h>
0000 ; #include <macros.h>
0000 ; #include "chinese.h"
0000 ; #include "main.h"
0000 ; typedef unsigned char uchar;
0000 ; typedef unsigned int uint;
0000 ;
0000 ; unsigned char flag;
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 20
0000 ; //访问外部ram的总线端口
0000 ; PORTA = 0x00;
0000 2224 clr R2
0002 2BBA out 0x1b,R2
0004 .dbline 21
0004 ; DDRA = 0x00;
0004 2ABA out 0x1a,R2
0006 .dbline 22
0006 ; PORTC = 0x00;
0006 25BA out 0x15,R2
0008 .dbline 23
0008 ; DDRC = 0xFF;
0008 8FEF ldi R24,255
000A 84BB out 0x14,R24
000C .dbline -2
000C .dbline 24
000C ; }
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbend
000E .dbfunc e check_busy _check_busy fV
000E ; temp -> R20
000E ; cs -> R16
.even
000E _check_busy::
000E 0E940000 xcall push_gset1
0012 .dbline -1
0012 .dbline 27
0012 ;
0012 ; void check_busy(uchar cs) //查忙函数
0012 ; {
0012 09C0 xjmp L4
0014 L3:
0014 .dbline 30
0014 ; uchar temp;
0014 ; while(temp)
0014 ; {
0014 .dbline 31
0014 ; if(cs)
0014 0023 tst R16
0016 21F0 breq L6
0018 .dbline 32
0018 ; temp=R_staus&0X80; //将忙状态读到temp中进行确定
0018 40910520 lds R20,8197
001C 4078 andi R20,128
001E 03C0 xjmp L7
0020 L6:
0020 .dbline 34
0020 ; else
0020 ; temp=L_staus&0X80;
0020 40910920 lds R20,8201
0024 4078 andi R20,128
0026 L7:
0026 .dbline 35
0026 L4:
0026 .dbline 29
0026 4423 tst R20
0028 A9F7 brne L3
002A .dbline -2
002A .dbline 36
002A ; }
002A ; }
002A L2:
002A 0E940000 xcall pop_gset1
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbsym r temp 20 c
0030 .dbsym r cs 16 c
0030 .dbend
0030 .dbfunc e LCD_Clean _LCD_Clean fV
0030 ; page -> R20
0030 ; y -> R22
.even
0030 _LCD_Clean::
0030 0E940000 xcall push_gset2
0034 .dbline -1
0034 .dbline 39
0034 ;
0034 ; void LCD_Clean(void)
0034 ; {
0034 .dbline 40
0034 ; unsigned char page=0,y; //定义表示页和列的局部变量
0034 4427 clr R20
0036 .dbline 42
0036 ;
0036 ; for(page=0;page<8;page++)
0036 21C0 xjmp L12
0038 L9:
0038 .dbline 43
0038 ; {
0038 .dbline 45
0038 ; //LCD左半屏的操作
0038 ; check_busy(0);
0038 0027 clr R16
003A E9DF xcall _check_busy
003C .dbline 46
003C ; L_command=LCD_PAGE+page; //设置LCD左半屏页地址
003C 842F mov R24,R20
003E 8854 subi R24,72 ; addi 184
0040 80930820 sts 8200,R24
0044 .dbline 47
0044 ; check_busy(0);
0044 0027 clr R16
0046 E3DF xcall _check_busy
0048 .dbline 48
0048 ; L_command=LCD_Y;
0048 80E4 ldi R24,64
004A 80930820 sts 8200,R24
004E .dbline 50
004E ; //LCD右半屏的操作
004E ; check_busy(1);
004E 01E0 ldi R16,1
0050 DEDF xcall _check_busy
0052 .dbline 51
0052 ; R_command=LCD_PAGE+page; //设置LCD右半屏页地址
0052 842F mov R24,R20
0054 8854 subi R24,72 ; addi 184
0056 80930420 sts 8196,R24
005A .dbline 52
005A ; check_busy(1);
005A 01E0 ldi R16,1
005C D8DF xcall _check_busy
005E .dbline 53
005E ; R_command=LCD_Y;
005E 80E4 ldi R24,64
0060 80930420 sts 8196,R24
0064 .dbline 55
0064 ;
0064 ; for(y=0;y<64;y++)
0064 6627 clr R22
0066 06C0 xjmp L16
0068 L13:
0068 .dbline 56
0068 .dbline 57
0068 2224 clr R2
006A 20920A20 sts 8202,R2
006E .dbline 58
006E 20920620 sts 8198,R2
0072 .dbline 59
0072 L14:
0072 .dbline 55
0072 6395 inc R22
0074 L16:
0074 .dbline 55
0074 6034 cpi R22,64
0076 C0F3 brlo L13
0078 .dbline 60
0078 L10:
0078 .dbline 42
0078 4395 inc R20
007A L12:
007A .dbline 42
007A 4830 cpi R20,8
007C E8F2 brlo L9
007E .dbline -2
007E .dbline 61
007E ; {
007E ; L_data=0x00;
007E ; R_data=0x00;
007E ; }
007E ; }
007E ; }
007E L8:
007E 0E940000 xcall pop_gset2
0082 .dbline 0 ; func end
0082 0895 ret
0084 .dbsym r page 20 c
0084 .dbsym r y 22 c
0084 .dbend
0084 .dbfunc e LCD_Init _LCD_Init fV
.even
0084 _LCD_Init::
0084 .dbline -1
0084 .dbline 64
0084 ;
0084 ; void LCD_Init(void) //LCD初始化子函数
0084 ; {
0084 .dbline 66
0084 ; /*首先关闭12864的显示*/
0084 ; check_busy(0); //LCD左半屏正在工作,等待......
0084 0027 clr R16
0086 C3DF xcall _check_busy
0088 .dbline 67
0088 ; L_command=LCD_OFF; //先关闭LCD左半屏的显示
0088 8EE3 ldi R24,62
008A 80930820 sts 8200,R24
008E .dbline 68
008E ; check_busy(1); //LCD右半屏正在工作,等待......
008E 01E0 ldi R16,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -