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

📄 7920_16.lis

📁 avr驱动显示屏LCD12864R(7920)
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module _7920_16.c
                        .area lit(rom, con, rel)
 0000           _mynew1::
 0000 373932305F3377697265735F64656D6F  .byte 55,57,50,48,95,51,'w,'i,'r,'e,'s,95,'d,'e,'m,'o
 0010 00                .byte 0
 0011                   .dbfile E:\YM200\DEMO\LCD12864R(7920)\7920_16.c
 0011                   .dbsym e mynew1 _mynew1 A[17:17]kc
 0011           _mynew2::
 0011 4372656174652062793A43414E5900    .byte 'C,'r,'e,'a,'t,'e,32,'b,'y,58,'C,'A,'N,'Y,0
 0020                   .dbsym e mynew2 _mynew2 A[15:15]kc
 0020           _mynew3::
 0020 455F6D61696C3A43414E595F39393940  .byte 'E,95,'m,'a,'i,'l,58,'C,'A,'N,'Y,95,57,57,57,64
 0030 00                .byte 0
 0031                   .dbsym e mynew3 _mynew3 A[17:17]kc
 0031           _mynew4::
 0031 3136332E636F6D00  .byte 49,54,51,46,'c,'o,'m,0
 0039                   .dbsym e mynew4 _mynew4 A[8:8]kc
                        .area text(rom, con, rel)
 0000                   .dbfile E:\YM200\DEMO\LCD12864R(7920)\7920_16.c
 0000                   .dbfunc e main _main fV
 0000           ;              i -> R20
                        .even
 0000           _main::
 0000 2197              sbiw R28,1
 0002                   .dbline -1
 0002                   .dbline 40
 0002           ; //12864液晶(ST7920驱动)的3线串行驱动 MCU=ATMega16(L)
 0002           ; 
 0002           ; /***********************************************************************
 0002           ; 工    程:ST7920驱动的12864液晶的3线串行驱动模式
 0002           ; 引脚定义:
 0002           ;       RS(CS)=====>PB0
 0002           ;       RW(SID)====>PB1
 0002           ;         EN(SCLK)===>PB2
 0002           ;       PSB为硬件控制,接高电平为8位或4位的并行模式,接低电平为串行模式
 0002           ; ************************************************************************/
 0002           ; #include <iom16v.h>
 0002           ; #include <macros.h>
 0002           ; 
 0002           ; #define uchar unsigned char
 0002           ; #define uint unsigned int 
 0002           ; #define nop()  NOP()
 0002           ; #define xtal 8
 0002           ; 
 0002           ; #define Set_CS() DDRB |= (1<<0);PORTB |= (1<<0)
 0002           ; #define Set_SID() DDRB |= (1<<1);PORTB |= (1<<1)
 0002           ; #define Set_SCLK() DDRB |= (1<<2);PORTB |= (1<<2)
 0002           ; 
 0002           ; #define Clr_CS() DDRB |= (1<<0);PORTB &=~(1<<0)
 0002           ; #define Clr_SID() DDRB |= (1<<1);PORTB &=~(1<<1)
 0002           ; #define Clr_SCLK() DDRB |= (1<<2);PORTB &=~(1<<2)
 0002           ; 
 0002           ; //====================================================================
 0002           ; //函数声明
 0002           ; void Delay(uint ms);      //延时子程序
 0002           ; void W_1byte(uchar RW, uchar RS, uchar W_data);
 0002           ; void Write_8bits(uint W_bits);
 0002           ; void LCD_Init(void);
 0002           ; /*********************************************************************/ 
 0002           ; const uchar mynew1[]={"7920_3wires_demo"};
 0002           ; const uchar mynew2[]={"Create by:CANY"};
 0002           ; const uchar mynew3[]={"E_mail:CANY_999@"};
 0002           ; const uchar mynew4[]={"163.com"};
 0002           ; /*********************************************************************/
 0002           ; void main()
 0002           ; {
 0002                   .dbline 41
 0002           ;       uchar i = 0;
 0002 4427              clr R20
 0004                   .dbline 42
 0004           ;       Clr_CS();
 0004 B89A              sbi 0x17,0
 0006                   .dbline 42
 0006 C098              cbi 0x18,0
 0008                   .dbline 43
 0008           ;       Clr_SID();
 0008 B99A              sbi 0x17,1
 000A                   .dbline 43
 000A C198              cbi 0x18,1
 000C                   .dbline 44
 000C           ;       Clr_SCLK();
 000C BA9A              sbi 0x17,2
 000E                   .dbline 44
 000E C298              cbi 0x18,2
 0010                   .dbline 45
 0010           ;       LCD_Init();
 0010 79D0              xcall _LCD_Init
 0012 75C0              xjmp L3
 0014           L2:
 0014                   .dbline 47
 0014           ;       while(1)
 0014           ;       { 
 0014                   .dbline 48
 0014           ;               nop();
 0014 0000              nop
 0016                   .dbline 49
 0016           ;               nop();
 0016 0000              nop
 0018                   .dbline 50
 0018           ;               W_1byte(0,0,0x80);                      //显示的地址0x80
 0018 80E8              ldi R24,128
 001A 8883              std y+0,R24
 001C 2227              clr R18
 001E 0027              clr R16
 0020 A0D0              xcall _W_1byte
 0022                   .dbline 51
 0022           ;               nop();
 0022 0000              nop
 0024                   .dbline 52
 0024           ;               for(i=0;mynew1[i]!='\0';i++)
 0024 4427              clr R20
 0026 0CC0              xjmp L8
 0028           L5:
 0028                   .dbline 53
 0028                   .dbline 54
 0028 80E0              ldi R24,<_mynew1
 002A 90E0              ldi R25,>_mynew1
 002C E42F              mov R30,R20
 002E FF27              clr R31
 0030 E80F              add R30,R24
 0032 F91F              adc R31,R25
 0034 E491              lpm R30,Z
 0036 E883              std y+0,R30
 0038 21E0              ldi R18,1
 003A 0027              clr R16
 003C 92D0              xcall _W_1byte
 003E                   .dbline 55
 003E           L6:
 003E                   .dbline 52
 003E 4395              inc R20
 0040           L8:
 0040                   .dbline 52
 0040 80E0              ldi R24,<_mynew1
 0042 90E0              ldi R25,>_mynew1
 0044 E42F              mov R30,R20
 0046 FF27              clr R31
 0048 E80F              add R30,R24
 004A F91F              adc R31,R25
 004C E491              lpm R30,Z
 004E EE23              tst R30
 0050 59F7              brne L5
 0052                   .dbline 56
 0052           ;               {
 0052           ;                       W_1byte(0,1,mynew1[i]);
 0052           ;                 }
 0052           ;               W_1byte(0,0,0x90);                      //显示的地址0x90
 0052 80E9              ldi R24,144
 0054 8883              std y+0,R24
 0056 2227              clr R18
 0058 0027              clr R16
 005A 83D0              xcall _W_1byte
 005C                   .dbline 57
 005C           ;               for(i=0;mynew2[i]!='\0';i++)
 005C 4427              clr R20
 005E 0CC0              xjmp L12
 0060           L9:
 0060                   .dbline 58
 0060                   .dbline 59
 0060 80E0              ldi R24,<_mynew2
 0062 90E0              ldi R25,>_mynew2
 0064 E42F              mov R30,R20
 0066 FF27              clr R31
 0068 E80F              add R30,R24
 006A F91F              adc R31,R25
 006C E491              lpm R30,Z
 006E E883              std y+0,R30
 0070 21E0              ldi R18,1
 0072 0027              clr R16
 0074 76D0              xcall _W_1byte
 0076                   .dbline 60
 0076           L10:
 0076                   .dbline 57
 0076 4395              inc R20
 0078           L12:
 0078                   .dbline 57
 0078 80E0              ldi R24,<_mynew2
 007A 90E0              ldi R25,>_mynew2
 007C E42F              mov R30,R20
 007E FF27              clr R31
 0080 E80F              add R30,R24
 0082 F91F              adc R31,R25
 0084 E491              lpm R30,Z
 0086 EE23              tst R30
 0088 59F7              brne L9
 008A                   .dbline 61
 008A           ;               {
 008A           ;                       W_1byte(0,1,mynew2[i]); 
 008A           ;               }
 008A           ;               W_1byte(0,0,0x88);                      //显示的地址0x88
 008A 88E8              ldi R24,136
 008C 8883              std y+0,R24
 008E 2227              clr R18
 0090 0027              clr R16
 0092 67D0              xcall _W_1byte
 0094                   .dbline 62
 0094           ;               for(i=0;mynew3[i]!='\0';i++)
 0094 4427              clr R20
 0096 0CC0              xjmp L16
 0098           L13:
 0098                   .dbline 63
 0098                   .dbline 64
 0098 80E0              ldi R24,<_mynew3
 009A 90E0              ldi R25,>_mynew3
 009C E42F              mov R30,R20
 009E FF27              clr R31
 00A0 E80F              add R30,R24
 00A2 F91F              adc R31,R25
 00A4 E491              lpm R30,Z
 00A6 E883              std y+0,R30
 00A8 21E0              ldi R18,1
 00AA 0027              clr R16
 00AC 5AD0              xcall _W_1byte
 00AE                   .dbline 65
 00AE           L14:
 00AE                   .dbline 62
 00AE 4395              inc R20
 00B0           L16:
 00B0                   .dbline 62
 00B0 80E0              ldi R24,<_mynew3
 00B2 90E0              ldi R25,>_mynew3
 00B4 E42F              mov R30,R20
 00B6 FF27              clr R31
 00B8 E80F              add R30,R24
 00BA F91F              adc R31,R25
 00BC E491              lpm R30,Z
 00BE EE23              tst R30
 00C0 59F7              brne L13
 00C2                   .dbline 66
 00C2           ;               {
 00C2           ;                       W_1byte(0,1,mynew3[i]);
 00C2           ;               }
 00C2           ;               W_1byte(0,0,0x98);                      //显示的地址0x98
 00C2 88E9              ldi R24,152
 00C4 8883              std y+0,R24
 00C6 2227              clr R18
 00C8 0027              clr R16
 00CA 4BD0              xcall _W_1byte
 00CC                   .dbline 67
 00CC           ;               for(i=0;mynew4[i]!='\0';i++)
 00CC 4427              clr R20
 00CE 0CC0              xjmp L20
 00D0           L17:
 00D0                   .dbline 68
 00D0                   .dbline 69
 00D0 80E0              ldi R24,<_mynew4
 00D2 90E0              ldi R25,>_mynew4
 00D4 E42F              mov R30,R20
 00D6 FF27              clr R31
 00D8 E80F              add R30,R24
 00DA F91F              adc R31,R25
 00DC E491              lpm R30,Z
 00DE E883              std y+0,R30
 00E0 21E0              ldi R18,1
 00E2 0027              clr R16
 00E4 3ED0              xcall _W_1byte
 00E6                   .dbline 70
 00E6           L18:
 00E6                   .dbline 67
 00E6 4395              inc R20
 00E8           L20:
 00E8                   .dbline 67
 00E8 80E0              ldi R24,<_mynew4
 00EA 90E0              ldi R25,>_mynew4
 00EC E42F              mov R30,R20
 00EE FF27              clr R31
 00F0 E80F              add R30,R24
 00F2 F91F              adc R31,R25
 00F4 E491              lpm R30,Z
 00F6 EE23              tst R30
 00F8 59F7              brne L17
 00FA                   .dbline 71
 00FA           ;               {
 00FA           ;                       W_1byte(0,1,mynew4[i]);
 00FA           ;               }
 00FA           ;               nop();
 00FA 0000              nop
 00FC                   .dbline 72
 00FC                   .dbline 73
 00FC                   .dbline 74
 00FC           L22:
 00FC                   .dbline 72
 00FC                   .dbline 72
 00FC FFCF              xjmp L22
 00FE           L3:
 00FE                   .dbline 46
 00FE 8ACF              xjmp L2
 0100           X0:
 0100                   .dbline -2
 0100           L1:
 0100 2196              adiw R28,1
 0102                   .dbline 0 ; func end
 0102 0895              ret
 0104                   .dbsym r i 20 c
 0104                   .dbend
 0104                   .dbfunc e LCD_Init _LCD_Init fV
 0104           ;            cmd -> R20
                        .even
 0104           _LCD_Init::
 0104 0E940000          xcall push_gset1
 0108 2197              sbiw R28,1
 010A                   .dbline -1
 010A                   .dbline 80
 010A           ;               for(;;)
 010A           ;               {
 010A           ;                       continue;
 010A           ;               } 
 010A           ;  }
 010A           ; }
 010A           ; /******************************************************************/
 010A           ; void LCD_Init(void)
 010A           ; {
 010A                   .dbline 82
 010A           ;       uchar cmd;
 010A           ;       cmd=0x30;                               //功能设置 8位数据,基本指令
 010A 40E3              ldi R20,48
 010C                   .dbline 83
 010C           ;       W_1byte(0,0,cmd);
 010C 4883              std y+0,R20
 010E 2227              clr R18
 0110 0027              clr R16
 0112 27D0              xcall _W_1byte
 0114                   .dbline 84
 0114           ;       Delay(2);
 0114 02E0              ldi R16,2
 0116 10E0              ldi R17,0
 0118 89D0              xcall _Delay
 011A                   .dbline 85
 011A           ;       cmd=0x0C;                               //显示状态 ON,游标OFF,反白OFF
 011A 4CE0              ldi R20,12
 011C                   .dbline 86
 011C           ;       W_1byte(0,0,cmd);                       //写指令
 011C 4883              std y+0,R20
 011E 2227              clr R18
 0120 0027              clr R16
 0122 1FD0              xcall _W_1byte
 0124                   .dbline 87
 0124           ;       Delay(2);
 0124 02E0              ldi R16,2
 0126 10E0              ldi R17,0
 0128 81D0              xcall _Delay
 012A                   .dbline 88
 012A           ;       cmd=0x01;                               //清除显示
 012A 41E0              ldi R20,1
 012C                   .dbline 89
 012C           ;       W_1byte(0,0,cmd);                       //写指令
 012C 4883              std y+0,R20
 012E 2227              clr R18
 0130 0027              clr R16
 0132 17D0              xcall _W_1byte
 0134                   .dbline 90
 0134           ;       Delay(2);
 0134 02E0              ldi R16,2
 0136 10E0              ldi R17,0
 0138 79D0              xcall _Delay
 013A                   .dbline 91
 013A           ;       cmd=0x02;                               //地址归位
 013A 42E0              ldi R20,2
 013C                   .dbline 92
 013C           ;       W_1byte(0,0,cmd);                       //写指令
 013C 4883              std y+0,R20
 013E 2227              clr R18
 0140 0027              clr R16
 0142 0FD0              xcall _W_1byte
 0144                   .dbline 93
 0144           ;       Delay(2);

⌨️ 快捷键说明

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