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

📄 ylf240128a-3.lis

📁 自己编制的北京友力发公司的液晶显示模块驱动程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module YLF240128A-3.c
                        .area lit(rom, con, rel)
 0000           _EXTCG::
 0000 0101              .byte 1,1
 0002 FF01              .byte 255,1
 0004 3F21              .byte 63,33
 0006 3F21              .byte 63,33
 0008 0000              .byte 0,0
 000A FF00              .byte 255,0
 000C FC04              .byte 252,4
 000E FC04              .byte 252,4
 0010 213F              .byte 33,63
 0012 050D              .byte 5,13
 0014 1931              .byte 25,49
 0016 E101              .byte 225,1
 0018 04FC              .byte 4,252
 001A 4060              .byte 64,96
 001C 301C              .byte 48,28
 001E 0700              .byte 7,0
 0020 0808              .byte 8,8
 0022 FF08              .byte 255,8
 0024 0901              .byte 9,1
 0026 017F              .byte 1,127
 0028 1010              .byte 16,16
 002A FF10              .byte 255,16
 002C 1000              .byte 16,0
 002E 00FC              .byte 0,252
 0030 0000              .byte 0,0
 0032 0001              .byte 0,1
 0034 073C              .byte 7,60
 0036 E700              .byte 231,0
 0038 1830              .byte 24,48
 003A 60C0              .byte 96,192
 003C 0000              .byte 0,0
 003E E03F              .byte 224,63
 0040                   .dbfile D:\单片机编程\iccavr\YLF240128A\YLF240128A-3.c
 0040                   .dbsym e EXTCG _EXTCG A[64:64]kc
 0040           _TXPRT::
 0040 3400              .byte 52,0
 0042 2F00              .byte 47,0
 0044 3300              .byte 51,0
 0046 2800              .byte 40,0
 0048 2900              .byte 41,0
 004A 2200              .byte 34,0
 004C 21                .byte 33
 004D                   .dbsym e TXPRT _TXPRT A[13:13]kc
 004D           _EXPRT1::
 004D 8081              .byte 128,129
 004F 0000              .byte 0,0
 0051 8485              .byte 132,133
 0053                   .dbsym e EXPRT1 _EXPRT1 A[6:6]kc
 0053           _EXPRT2::
 0053 8283              .byte 130,131
 0055 0000              .byte 0,0
 0057 8687              .byte 134,135
 0059                   .dbsym e EXPRT2 _EXPRT2 A[6:6]kc
                        .area text(rom, con, rel)
 0000                   .dbfile D:\单片机编程\iccavr\YLF240128A\YLF240128A-3.c
 0000                   .dbfunc e readstate _readstate fc
 0000           ;      lcd_state -> R16
                        .even
 0000           _readstate::
 0000                   .dbline -1
 0000                   .dbline 61
 0000           ; /*ATMega16 */
 0000           ; /* T6963C LCD Controller */
 0000           ; /*
 0000           ; D0-D7     --  PORTB
 0000           ; C/D       --  PORTA.1
 0000           ; RD        --  PORTA.2
 0000           ; WR        --  PORTA.3
 0000           ; */
 0000           ; /***********************************************************
 0000           ; 内置T6963C液晶控制器驱动程序(间接方式)
 0000           ; ***********************************************************/
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #define uchar unsigned char
 0000           ; #define uint unsigned int 
 0000           ; 
 0000           ; //文字地址
 0000           ; #define TXHOME 0x40
 0000           ; 
 0000           ; //文字区域
 0000           ; #define TXAREA 0x41
 0000           ; 
 0000           ; //图形地址
 0000           ; #define GRHOME 0x42
 0000           ; 
 0000           ; //图形区域
 0000           ; #define GRAREA 0x43
 0000           ; 
 0000           ; //偏移****特别注意
 0000           ; #define OFFSET 0x22
 0000           ; 
 0000           ; //设置指针
 0000           ; #define ADPSET 0x24
 0000           ; 
 0000           ; //自动写打开
 0000           ; #define AWRON  0xB0
 0000           ; 
 0000           ; //自动写关闭
 0000           ; #define AWROFF 0xB2
 0000           ; 
 0000           ; //偏移地址量
 0000           ; #define OFFSET 0x22
 0000           ; 
 0000           ; const uchar EXTCG[64]={0x01,0x01,0xff,0x01,0x3f,0x21,0x3f,0x21,//upper left dong 80H
 0000           ;                          0x00,0x00,0xff,0x00,0xfc,0x04,0xfc,0x04,//upper right dong 81H
 0000           ;                          0x21,0x3f,0x05,0x0d,0x19,0x31,0xe1,0x01,//lower left dong 82H
 0000           ;                          0x04,0xfc,0x40,0x60,0x30,0x1c,0x07,0x00,//lower right dong 83
 0000           ;                          0x08,0x08,0xff,0x08,0x09,0x01,0x01,0x7f,//upper left zhi 84H
 0000           ;                          0x10,0x10,0xff,0x10,0x10,0x00,0x00,0xfc,//upper right zhi 85H
 0000           ;                          0x00,0x00,0x00,0x01,0x07,0x3c,0xe7,0x00,//lower left zhi 86H
 0000           ;                          0x18,0x30,0x60,0xc0,0x00,0x00,0xe0,0x3f};//lower right zhi 87H
 0000           ;                          
 0000           ; const uchar TXPRT[13]={0x34,0x00,0x2f,0x00,0x33,0x00,
 0000           ;                        0x28,0x00,0x29,0x00,0x22,0x00,0x21};//TOSHIBA
 0000           ;                        
 0000           ; const uchar EXPRT1[6]={0x80,0x81,0x00,0x00,0x84,0x85};//东芝上半部分
 0000           ; const uchar EXPRT2[6]={0x82,0x83,0x00,0x00,0x86,0x87};//东芝下半部分
 0000           ; 
 0000           ; //读取LCD状态字
 0000           ; uchar readstate(void)
 0000           ; {
 0000                   .dbline 63
 0000           ;     uchar lcd_state;
 0000           ;     DDRB=0x00;
 0000 2224              clr R2
 0002 27BA              out 0x17,R2
 0004                   .dbline 64
 0004           ;     DDRA|=(1<<1);
 0004 D19A              sbi 0x1a,1
 0006                   .dbline 65
 0006           ;     DDRA|=(1<<2);   // /RD
 0006 D29A              sbi 0x1a,2
 0008                   .dbline 66
 0008           ;     PORTA|=(1<<1); // C/D=1
 0008 D99A              sbi 0x1b,1
 000A                   .dbline 67
 000A           ;     PORTA&=~(1<<2); // /RD=0
 000A DA98              cbi 0x1b,2
 000C                   .dbline 68
 000C           ;     lcd_state=PINB&0xff; // 读取引脚B物理电平
 000C 06B3              in R16,0x16
 000E 0F7F              andi R16,255
 0010                   .dbline 69
 0010           ;     NOP();
 0010 0000              nop
 0012                   .dbline 70
 0012           ;     NOP();
 0012 0000              nop
 0014                   .dbline 71
 0014           ;     PORTA|=(1<<2); // /RD=1
 0014 DA9A              sbi 0x1b,2
 0016                   .dbline 72
 0016           ;     return lcd_state;
 0016                   .dbline -2
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbsym r lcd_state 16 c
 0018                   .dbend
 0018                   .dbfunc e st01 _st01 fV
                        .even
 0018           _st01::
 0018                   .dbline -1
 0018                   .dbline 77
 0018           ; }
 0018           ; 
 0018           ; //判断指令(数据)读写状态
 0018           ; void st01(void)
 0018           ; {
 0018           L3:
 0018                   .dbline 79
 0018           L4:
 0018                   .dbline 78
 0018           ;     while((readstate()&0x03)!=3)
 0018 F3DF              xcall _readstate
 001A 802F              mov R24,R16
 001C 8370              andi R24,3
 001E 8330              cpi R24,3
 0020 D9F7              brne L3
 0022                   .dbline -2
 0022           L2:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
 0024                   .dbfunc e st2 _st2 fV
                        .even
 0024           _st2::
 0024                   .dbline -1
 0024                   .dbline 84
 0024           ;         ;
 0024           ; }
 0024           ; 
 0024           ; //判断数据自动读状态
 0024           ; void st2(void)
 0024           ; {
 0024           L7:
 0024                   .dbline 86
 0024           L8:
 0024                   .dbline 85
 0024           ;     while((readstate()&0x04)!=4)
 0024 EDDF              xcall _readstate
 0026 802F              mov R24,R16
 0028 8470              andi R24,4
 002A 8430              cpi R24,4
 002C D9F7              brne L7
 002E                   .dbline -2
 002E           L6:
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbend
 0030                   .dbfunc e st3 _st3 fV
                        .even
 0030           _st3::
 0030                   .dbline -1
 0030                   .dbline 91
 0030           ;         ;
 0030           ; }
 0030           ; 
 0030           ; //判断数据自动写状态
 0030           ; void st3(void)
 0030           ; {
 0030           L11:
 0030                   .dbline 93
 0030           L12:
 0030                   .dbline 92
 0030           ;     while((readstate()&0x08)!=8)
 0030 E7DF              xcall _readstate
 0032 802F              mov R24,R16
 0034 8870              andi R24,8
 0036 8830              cpi R24,8
 0038 D9F7              brne L11
 003A                   .dbline -2
 003A           L10:
 003A                   .dbline 0 ; func end
 003A 0895              ret
 003C                   .dbend
 003C                   .dbfunc e writecode _writecode fV
 003C           ;          comd0 -> R20
                        .even
 003C           _writecode::
 003C 0E940000          xcall push_gset1
 0040 402F              mov R20,R16
 0042                   .dbline -1
 0042                   .dbline 98
 0042           ;         ;
 0042           ; }
 0042           ; 
 0042           ; //指令写入函数
 0042           ; void writecode(uchar comd0)
 0042           ; {
 0042                   .dbline 99
 0042           ;     st01();
 0042 EADF              xcall _st01
 0044                   .dbline 100
 0044           ;     DDRA|=(1<<1);
 0044 D19A              sbi 0x1a,1
 0046                   .dbline 101
 0046           ;     PORTA|=(1<<1); // C/D=0,数据通道
 0046 D99A              sbi 0x1b,1
 0048                   .dbline 102
 0048           ;     DDRB=0xff; //B口方向为输出
 0048 8FEF              ldi R24,255
 004A 87BB              out 0x17,R24
 004C                   .dbline 103
 004C           ;     PORTB=comd0; //送数据到B口寄存器
 004C 48BB              out 0x18,R20
 004E                   .dbline 104
 004E           ;     DDRA|=(1<<3);
 004E D39A              sbi 0x1a,3
 0050                   .dbline 105
 0050           ;     PORTA&=~(1<<3); // /WR=0
 0050 DB98              cbi 0x1b,3
 0052                   .dbline 106
 0052           ;     NOP();
 0052 0000              nop

⌨️ 快捷键说明

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