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

📄 12864_example.lis

📁 我们编写了一个支持位操作、普通端口操作、并行操作、串行操作等多种模式的12864驱动
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module _12864_Example.c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/RD_ATMega16L.h
 0000                   .dbfunc e PORTDefine _PORTDefine fV
                        .even
 0000           _PORTDefine::
 0000                   .dbline -1
 0000                   .dbline 76
 0000           ; /********************************************************
 0000           ; *  函数库说明:12864LCD显示示例程序                     *
 0000           ; *  版本:      v1.0                                     *
 0000           ; *  作者:      傻孩子                                   *
 0000           ; *  日期:      2006年2月15日                            *
 0000           ; *  修改:      傻孩子                                   *
 0000           ; *  修改日期:  2006年2月15日                            *
 0000           ; *                                                       *
 0000           ; *  说明:                                               *
 0000           ; *          1、提供基本的现实函数。                      *
 0000           ; *          2、支持小组编程规范0.9版的要求。             *
 0000           ; *          3、对外提供接口,支持位操作。                *
 0000           ; *          4、注意,这里的X/Y是屏幕竖方时候的坐标轴,   *
 0000           ; *             如果使用字库,要使用转制过后竖向扫描的    *
 0000           ; *             字库。                                    *
 0000           ; *          5、为了兼容串行扫描方式,所以使用宏定义接口  *
 0000           ; *             的方法。同时也支持非位操作的方式。        *
 0000           ; ********************************************************/
 0000           ; # include "RD_ATMega16L.h"
 0000           ; 
 0000           ; /***********************
 0000           ; *    系 统 宏 定 义    *
 0000           ; ***********************/
 0000           ; # pragma interrupt_handler Timer0OvfIsr:10
 0000           ; /*---------------------*
 0000           ; *    常 量 宏 定 义    *
 0000           ; *---------------------*/
 0000           ; #ifndef True
 0000           ;     # define True       0x01
 0000           ; #endif
 0000           ; #ifndef False
 0000           ;     # define False      0x00
 0000           ; #endif
 0000           ; #ifndef High
 0000           ;     # define High       0x01
 0000           ; #endif
 0000           ; #ifndef Low
 0000           ;     # define Low        0x00
 0000           ; #endif
 0000           ; #ifndef NULL
 0000           ;     # define NULL       0x00
 0000           ; #endif
 0000           ; /*---------------------*
 0000           ; *    动 作 宏 定 义    *
 0000           ; *---------------------*/
 0000           ; 
 0000           ; /*---------------------*
 0000           ; * SerialToCollateral.h *
 0000           ; * 配置宏定义           *
 0000           ; *---------------------*/
 0000           ; # define VSCK           _PD4
 0000           ; # define VRCK           _PD3
 0000           ; # define VSI            _PD5
 0000           ; /*--- 定义_Use_16Bit_VitualPORT 选择两个595模式 ---*/
 0000           ; # define _Use_16Bit_VitualPORT
 0000           ; 
 0000           ; # include "SerialToCollateral.h"
 0000           ; 
 0000           ; 
 0000           ; # define LCD12864_RS            PV0
 0000           ; # define LCD12864_RW            PV1
 0000           ; # define LCD12864_E             PV2
 0000           ; # define LCD12864_CSA           PV3
 0000           ; # define LCD12864_CSB           PV4
 0000           ; # define LCD12864_RST           PV5
 0000           ; 
 0000           ; # define SETBIT_RS         LCD12864_RS = High;
 0000           ; # define CLRBIT_RS         LCD12864_RS = Low;
 0000           ; # define SETBIT_RW         LCD12864_RW = High;
 0000           ; # define CLRBIT_RW         LCD12864_RW = Low;
 0000           ; # define SETBIT_E          LCD12864_E  = High;refreshVirtualPORT();
 0000           ; # define CLRBIT_E          LCD12864_E  = Low;refreshVirtualPORT();
 0000           ; # define SETBIT_CS1        LCD12864_CSA = High;
 0000           ; # define CLRBIT_CS1        LCD12864_CSA = Low;
 0000           ; # define SETBIT_CS2        LCD12864_CSB = High;
 0000           ; # define CLRBIT_CS2        LCD12864_CSB = Low;
 0000                   .dbline 77
 0000           ; # define SETBIT_RST        LCD12864_RST = High;refreshVirtualPORT();
 0000 8BE3              ldi R24,59
 0002 90E0              ldi R25,0
 0004 90931700          sts _PORTA_BIT+1,R25
 0008 80931600          sts _PORTA_BIT,R24
 000C                   .dbline 78
 000C           ; # define CLRBIT_RST        LCD12864_RST = Low;refreshVirtualPORT();
 000C 88E3              ldi R24,56
 000E 90931500          sts _PORTB_BIT+1,R25
 0012 80931400          sts _PORTB_BIT,R24
 0016                   .dbline 79
 0016           ; 
 0016 85E3              ldi R24,53
 0018 90931300          sts _PORTC_BIT+1,R25
 001C 80931200          sts _PORTC_BIT,R24
 0020                   .dbline 80
 0020           ; # define LCD12864_DataTransfer(a)  VPORT &= 0x00ff;VPORT |= (a<<8); refreshVirtualPORT();         
 0020 82E3              ldi R24,50
 0022 90931100          sts _PORTD_BIT+1,R25
 0026 80931000          sts _PORTD_BIT,R24
 002A                   .dbline 82
 002A           ; 
 002A           ; # define ReadDataPORT
 002A 8AE3              ldi R24,58
 002C 90930F00          sts _DDRA_BIT+1,R25
 0030 80930E00          sts _DDRA_BIT,R24
 0034                   .dbline 83
 0034           ; # define SetDataPORTDirection_READ
 0034 87E3              ldi R24,55
 0036 90930D00          sts _DDRB_BIT+1,R25
 003A 80930C00          sts _DDRB_BIT,R24
 003E                   .dbline 84
 003E           ; # define SetDataPORTDirection_WRITE
 003E 84E3              ldi R24,52
 0040 90930B00          sts _DDRC_BIT+1,R25
 0044 80930A00          sts _DDRC_BIT,R24
 0048                   .dbline 85
 0048           ; 
 0048 81E3              ldi R24,49
 004A 90930900          sts _DDRD_BIT+1,R25
 004E 80930800          sts _DDRD_BIT,R24
 0052                   .dbline 87
 0052           ; 
 0052           ; # define _LCD12864_WriteOnly
 0052 89E3              ldi R24,57
 0054 90930700          sts _PINA_BIT+1,R25
 0058 80930600          sts _PINA_BIT,R24
 005C                   .dbline 88
 005C           ; # define LCD12864_WaitTime 1
 005C 86E3              ldi R24,54
 005E 90930500          sts _PINB_BIT+1,R25
 0062 80930400          sts _PINB_BIT,R24
 0066                   .dbline 89
 0066           ; # include "RD_LCD12864.h"
 0066 83E3              ldi R24,51
 0068 90930300          sts _PINC_BIT+1,R25
 006C 80930200          sts _PINC_BIT,R24
 0070                   .dbline 90
 0070           ; 
 0070 80E3              ldi R24,48
 0072 90930100          sts _PIND_BIT+1,R25
 0076 80930000          sts _PIND_BIT,R24
 007A                   .dbline -2
 007A           L1:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C947002          jmp _Timer0OvfIsr
                        .area text(rom, con, rel)
 007C                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/RD_ATMega16L.h
                        .area data(ram, con, rel)
 0000                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/RD_ATMega16L.h
 0000           _VPORT::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/RD_ATMega16L.h
 0002                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/SerialToCollateral.h
 0002                   .dbsym e VPORT _VPORT i
 0002           _VPORTBit::
 0002                   .blkw 1
                        .area idata
 0002 0000              .word _VPORT
                        .area data(ram, con, rel)
 0004                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/SerialToCollateral.h
 0004                   .dbstruct 0 2 VirtualPORT
 0004                   .dbfield 0 BIT0 F[0:1]
 0004                   .dbfield 0 BIT1 F[1:1]
 0004                   .dbfield 0 BIT2 F[2:1]
 0004                   .dbfield 0 BIT3 F[3:1]
 0004                   .dbfield 0 BIT4 F[4:1]
 0004                   .dbfield 0 BIT5 F[5:1]
 0004                   .dbfield 0 BIT6 F[6:1]
 0004                   .dbfield 0 BIT7 F[7:1]
 0004                   .dbfield 0 BIT8 F[8:1]
 0004                   .dbfield 0 BIT9 F[9:1]
 0004                   .dbfield 0 BIT10 F[10:1]
 0004                   .dbfield 0 BIT11 F[11:1]
 0004                   .dbfield 0 BIT12 F[12:1]
 0004                   .dbfield 0 BIT13 F[13:1]
 0004                   .dbfield 0 BIT14 F[14:1]
 0004                   .dbfield 0 BIT15 F[15:1]
 0004                   .dbend
 0004                   .dbsym e VPORTBit _VPORTBit pS[VirtualPORT]
 0004           _IfPortChange::
 0004                   .blkb 1
                        .area idata
 0004 00                .byte 0
                        .area data(ram, con, rel)
 0005                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/SerialToCollateral.h
 0005                   .dbsym e IfPortChange _IfPortChange c
                        .area text(rom, con, rel)
 007C                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/SerialToCollateral.h
 007C                   .dbfunc e setBIT _setBIT fc
 007C           ;            BIT -> R20
                        .even
 007C           _setBIT::
 007C 0E940000          xcall push_gset1
 0080 402F              mov R20,R16
 0082                   .dbline -1
 0082                   .dbline 155
 0082           ; 
 0082           ; /***********************
 0082           ; *    全局变量声明区    *
 0082           ; ***********************/
 0082           ; unsigned int FlashGIFStringCounter = 0;
 0082           ; unsigned int FlashTimeCounter = 0;
 0082           ; 
 0082           ; flash char LOGO[1024] = {
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xC0,0xC0,0xE0,0xE0,0x60,
 0082           ; 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,
 0082           ; 0xF8,0xF8,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
 0082           ; 0x40,0xE0,0xF0,0xB0,0xA0,0xA0,0xE0,0x40,0x00,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00,0xF0,0xF0,0x80,0x80,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xE0,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x90,
 0082           ; 0xB8,0xF0,0xE0,0xB8,0x98,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x78,0xF0,0x10,0xF8,0xFC,0x8C,0xC8,0xFF,0x8F,
 0082           ; 0x86,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x11,0x5B,0xFF,
 0082           ; 0xFF,0xFF,0xFE,0xA6,0x04,0x04,0xFC,0xF8,0x08,0x00,0x00,0x00,0x00,0x04,0x0E,0x6E,
 0082           ; 0x7E,0xFF,0xFF,0x1D,0x2F,0x27,0x37,0x1A,0x0C,0xFF,0xFF,0x02,0x02,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x08,0x9C,0xDC,0xFE,0x7F,0x3B,0x2C,0x66,0xEE,0xDF,0xFB,0xB1,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0xF8,0xFC,0x7F,0x1F,0x4F,0xC7,
 0082           ; 0x83,0x83,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x1E,0x07,0x81,0x81,0xD9,
 0082           ; 0xFD,0xFC,0xFC,0xEE,0x43,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
 0082           ; 0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,
 0082           ; 0x07,0x07,0x02,0x02,0x06,0x06,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x01,0x01,0x03,0x07,0x01,0x01,0x03,0x01,0x01,0x01,0x03,0x03,0x07,
 0082           ; 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x03,0x03,0x01,0x00,0x00,0x00,0x00,
 0082           ; 0x01,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,
 0082           ; 0x08,0x0C,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x78,0x88,
 0082           ; 0x8E,0x0F,0x01,0x81,0x8E,0x8E,0xFA,0x72,0x02,0xE2,0xE2,0x02,0x02,0xFE,0xFC,0x00,
 0082           ; 0x00,0x00,0x00,0xFE,0xFF,0x81,0x81,0x91,0x81,0xC1,0x7F,0x7F,0x41,0x41,0x41,0x91,
 0082           ; 0x81,0x81,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFE,0x03,0x01,
 0082           ; 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x70,0x10,0x10,
 0082           ; 0x10,0xFE,0xFF,0x01,0x01,0x3F,0x3E,0x10,0x10,0x70,0xE0,0x00,0x00,0xC0,0xF0,0x3C,
 0082           ; 0x0E,0x03,0x01,0x11,0x1C,0x1E,0xE2,0x02,0x02,0x22,0x22,0x02,0x02,0x02,0xFE,0xFC,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x3E,0x23,
 0082           ; 0xE1,0xE0,0x00,0x00,0xF8,0xF9,0x0F,0x06,0x00,0xFF,0xFF,0x00,0x08,0x0F,0x0F,0xF8,
 0082           ; 0x00,0x00,0x00,0xCC,0xC4,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x0D,0x01,0x02,0x03,
 0082           ; 0x00,0x00,0xC4,0xC8,0x00,0x00,0xC0,0xE0,0x30,0x18,0x0C,0x06,0x03,0x00,0x00,0x30,
 0082           ; 0x78,0xC0,0x80,0x00,0x00,0x00,0x10,0x20,0x00,0x00,0x18,0x3E,0x63,0x40,0xC0,0xE0,
 0082           ; 0x38,0x3F,0x3F,0x00,0x00,0xFC,0xFC,0x40,0x80,0x80,0xC3,0x7E,0x30,0xD8,0xFD,0x27,
 0082           ; 0x20,0x20,0x20,0xE0,0x72,0x3F,0x0C,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x3F,0xFF,
 0082           ; 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,
 0082           ; 0x05,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x04,0x05,0x07,0x06,0x06,0x06,0x07,0x05,
 0082           ; 0x04,0x04,0x04,0x05,0x07,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x06,
 0082           ; 0x06,0x06,0x07,0x05,0x04,0x04,0x04,0x07,0x06,0x06,0x06,0x06,0x05,0x04,0x04,0x04,
 0082           ; 0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x07,
 0082           ; 0x06,0x06,0x06,0x06,0x06,0x07,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x07,0x06,
 0082           ; 0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,
 0082           ; 0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x78,0x48,0xC8,0x98,0xB8,0x38,0x00,0x08,
 0082           ; 0xF8,0xF8,0xC8,0xC8,0xF8,0xF8,0x08,0x08,0xF8,0xF8,0x08,0x08,0xF8,0xF8,0x08,0x00,
 0082           ; 0x30,0x78,0x48,0xC8,0x98,0xB8,0x38,0x00,0x18,0x18,0x08,0xF8,0xF8,0x08,0x18,0x18,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x08,0xF8,0xF8,0x88,0x88,0xF8,0x70,0x00,0x00,0xF0,0xF8,
 0082           ; 0x08,0x08,0x08,0xF8,0xF0,0x00,0x08,0xF8,0xF8,0x48,0x48,0xF8,0xB0,0x00,0x00,0xF0,
 0082           ; 0xF8,0x08,0x08,0x08,0xF8,0xF0,0x00,0x18,0x18,0x08,0xF8,0xF8,0x08,0x18,0x18,0x08,
 0082           ; 0xF8,0xF8,0x48,0xE8,0xF8,0x18,0x00,0x00,0x00,0xC8,0xF8,0xF8,0xC0,0x00,0x00,0x08,
 0082           ; 0xF8,0xF8,0xF0,0xF0,0xF8,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0082           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x04,0x04,0x07,0x03,0x00,0x00,
 0082                   .dbline 156
 0082           ; 0x01,0x07,0x07,0x07,0x07,0x01,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0x00,0x00,
 0082 4031              cpi R20,16
 0084 10F0              brlo L3
 0086                   .dbline 157
 0086           ; 0x07,0x07,0x06,0x04,0x04,0x07,0x03,0x00,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00,
 0086                   .dbline 158
 0086           ; 0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x07,0x00,0x04,0x07,0x07,0x04,0x00,0x03,0x07,
 0086 0027              clr R16
 0088 15C0              xjmp L2
 008A           L3:
 008A                   .dbline 161
 008A           ; 0x04,0x04,0x04,0x07,0x03,0x00,0x04,0x07,0x07,0x04,0x04,0x07,0x03,0x00,0x00,0x03,
 008A           ; 0x07,0x04,0x04,0x04,0x07,0x03,0x00,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00,0x04,
 008A           ; 0x07,0x07,0x04,0x04,0x06,0x06,0x00,0x04,0x07,0x07,0x05,0x05,0x07,0x07,0x04,0x04,
 008A 242F              mov R18,R20
 008C 3327              clr R19
 008E 01E0              ldi R16,1
 0090 10E0              ldi R17,0
 0092 0E940000          xcall lsl16
 0096 20900000          lds R2,_VPORT
 009A 30900100          lds R3,_VPORT+1
 009E 202A              or R2,R16
 00A0 312A              or R3,R17
 00A2 30920100          sts _VPORT+1,R3
 00A6 20920000          sts _VPORT,R2
 00AA                   .dbline 162
 00AA           ; 0x07,0x07,0x04,0x04,0x07,0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
 00AA 81E0              ldi R24,1
 00AC 80930400          sts _IfPortChange,R24
 00B0                   .dbline 163
 00B0           ;                         };
 00B0 26D0              xcall _VirtualPORTProccess
 00B2                   .dbline 164
 00B2           ; 
 00B2 01E0              ldi R16,1
 00B4                   .dbline -2
 00B4           L2:
 00B4 0E940000          xcall pop_gset1
 00B8                   .dbline 0 ; func end

⌨️ 快捷键说明

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