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

📄 main.lis

📁 LCD128*64 atmega16驱动 带仿真文件
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -