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

📄 3310lcd_function.lis

📁 使用3310液晶的数字频率计 频率计是我们经常会用到的实验仪器之一
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02AE 0201              .byte 2,1
 02B0 0000              .byte 0,0
 02B2 0304              .byte 3,4
 02B4 0404              .byte 4,4
 02B6 0700              .byte 7,0
 02B8 FC00              .byte 252,0
 02BA FF00              .byte 255,0
 02BC 10CC              .byte 16,204
 02BE 47CC              .byte 'G,204
 02C0 5444              .byte 'T,'D
 02C2 C400              .byte 196,0
 02C4 0100              .byte 1,0
 02C6 0700              .byte 7,0
 02C8 0007              .byte 0,7
 02CA 0203              .byte 2,3
 02CC 0202              .byte 2,2
 02CE 0700              .byte 7,0
 02D0 0484              .byte 4,132
 02D2 4424              .byte 'D,36
 02D4 14FF              .byte 20,255
 02D6 1424              .byte 20,36
 02D8 4486              .byte 'D,134
 02DA 0400              .byte 4,0
 02DC 0100              .byte 1,0
 02DE 0101              .byte 1,1
 02E0 0107              .byte 1,7
 02E2 0101              .byte 1,1
 02E4 0100              .byte 1,0
 02E6 0100              .byte 1,0
 02E8 00FF              .byte 0,255
 02EA 4931              .byte 'I,49
 02EC 4D81              .byte 'M,129
 02EE 4931              .byte 'I,49
 02F0 CD01              .byte 205,1
 02F2 FF00              .byte 255,0
 02F4 0007              .byte 0,7
 02F6 0000              .byte 0,0
 02F8 0000              .byte 0,0
 02FA 0000              .byte 0,0
 02FC 0404              .byte 4,4
 02FE 0700              .byte 7,0
 0300 0475              .byte 4,'u
 0302 8674              .byte 134,'t
 0304 04C0              .byte 4,192
 0306 407F              .byte 64,127
 0308 44C4              .byte 'D,196
 030A 0400              .byte 4,0
 030C 0202              .byte 2,2
 030E 0101              .byte 1,1
 0310 0107              .byte 1,7
 0312 0202              .byte 2,2
 0314 0207              .byte 2,7
 0316 0000              .byte 0,0
 0318 001C              .byte 0,28
 031A 7E7E              .byte 126,126
 031C 1C00              .byte 28,0
 031E 0000              .byte 0,0
 0320 0000              .byte 0,0
 0322 0000              .byte 0,0
 0324 0000              .byte 0,0
 0326 0303              .byte 3,3
 0328 0000              .byte 0,0
 032A 0000              .byte 0,0
 032C 0000              .byte 0,0
 032E 0000              .byte 0,0
 0330                   .dbfile D:\AVR\527dz\00--Mega16\3310/move_chinese_string_pixel.h
 0330                   .dbsym e move_chinese_string _move_chinese_string A[192:8:24]kc
                        .area text(rom, con, rel)
 0000                   .dbfile D:\AVR\527dz\00--Mega16\3310/move_chinese_string_pixel.h
 0000                   .dbfile D:\AVR\527dz\00--Mega16\3310\3310LCD_function.c
 0000                   .dbfunc e LCD_init _LCD_init fV
                        .even
 0000           _LCD_init::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include "3310LCD_function.h"
 0000           ; #include "english_6x8_pixel.h"
 0000           ; #include "write_chinese_string_pixel.h"
 0000           ; #include "move_chinese_string_pixel.h"
 0000           ; 
 0000           ; /*-----------------------------------------------------------------------
 0000           ; LCD_init          : 3310LCD初始化
 0000           ; 
 0000           ; 编写日期          :2004-8-10 
 0000           ; 最后修改日期      :2004-8-10 
 0000           ; -----------------------------------------------------------------------*/
 0000           ; void LCD_init(void)
 0000           ;   {
 0000                   .dbline 16
 0000           ;     PORTB &= ~LCD_RST;          // 产生一个让LCD复位的低电平脉冲
 0000 C698              cbi 0x18,6
 0002                   .dbline 17
 0002           ;     delay_1us();
 0002 0E940000          xcall _delay_1us
 0006                   .dbline 18
 0006           ;     PORTB |= LCD_RST;
 0006 C69A              sbi 0x18,6
 0008                   .dbline 20
 0008           ;     
 0008           ;     PORTB &= ~LCD_CE ;                // 关闭LCD
 0008 C498              cbi 0x18,4
 000A                   .dbline 21
 000A           ;     delay_1us();
 000A 0E940000          xcall _delay_1us
 000E                   .dbline 22
 000E           ;     PORTB |= LCD_CE;          // 使能LCD
 000E C49A              sbi 0x18,4
 0010                   .dbline 23
 0010           ;     delay_1us();
 0010 0E940000          xcall _delay_1us
 0014                   .dbline 25
 0014           ; 
 0014           ;     LCD_write_byte(0x21, 0);  // 使用扩展命令设置LCD模式
 0014 2227              clr R18
 0016 01E2              ldi R16,33
 0018 A6D1              xcall _LCD_write_byte
 001A                   .dbline 26
 001A           ;     LCD_write_byte(0xc8, 0);  // 设置偏置电压
 001A 2227              clr R18
 001C 08EC              ldi R16,200
 001E A3D1              xcall _LCD_write_byte
 0020                   .dbline 27
 0020           ;     LCD_write_byte(0x06, 0);  // 温度校正
 0020 2227              clr R18
 0022 06E0              ldi R16,6
 0024 A0D1              xcall _LCD_write_byte
 0026                   .dbline 28
 0026           ;     LCD_write_byte(0x13, 0);  // 1:48
 0026 2227              clr R18
 0028 03E1              ldi R16,19
 002A 9DD1              xcall _LCD_write_byte
 002C                   .dbline 29
 002C           ;     LCD_write_byte(0x20, 0);  // 使用基本命令
 002C 2227              clr R18
 002E 00E2              ldi R16,32
 0030 9AD1              xcall _LCD_write_byte
 0032                   .dbline 30
 0032           ;     LCD_clear();              // 清屏
 0032 05D0              xcall _LCD_clear
 0034                   .dbline 31
 0034           ;     LCD_write_byte(0x0c, 0);  // 设定显示模式,正常显示
 0034 2227              clr R18
 0036 0CE0              ldi R16,12
 0038 96D1              xcall _LCD_write_byte
 003A                   .dbline 33
 003A           ;         
 003A           ;     PORTB &= ~LCD_CE ;          // 关闭LCD
 003A C498              cbi 0x18,4
 003C                   .dbline -2
 003C           L1:
 003C                   .dbline 0 ; func end
 003C 0895              ret
 003E                   .dbend
 003E                   .dbfunc e LCD_clear _LCD_clear fV
 003E           ;              i -> R20,R21
                        .even
 003E           _LCD_clear::
 003E 0E940000          xcall push_gset1
 0042                   .dbline -1
 0042                   .dbline 43
 0042           ;   }
 0042           ; 
 0042           ; /*-----------------------------------------------------------------------
 0042           ; LCD_clear         : LCD清屏函数
 0042           ; 
 0042           ; 编写日期          :2004-8-10 
 0042           ; 最后修改日期      :2004-8-10 
 0042           ; -----------------------------------------------------------------------*/
 0042           ; void LCD_clear(void)
 0042           ;   {
 0042                   .dbline 46
 0042           ;     unsigned int i;
 0042           ; 
 0042           ;     LCD_write_byte(0x0c, 0);                  
 0042 2227              clr R18
 0044 0CE0              ldi R16,12
 0046 8FD1              xcall _LCD_write_byte
 0048                   .dbline 47
 0048           ;     LCD_write_byte(0x80, 0);                  
 0048 2227              clr R18
 004A 00E8              ldi R16,128
 004C 8CD1              xcall _LCD_write_byte
 004E                   .dbline 49
 004E           ; 
 004E           ;     for (i=0; i<504; i++)
 004E 4427              clr R20
 0050 5527              clr R21
 0052 05C0              xjmp L6
 0054           L3:
 0054                   .dbline 50
 0054 21E0              ldi R18,1
 0056 0027              clr R16
 0058 86D1              xcall _LCD_write_byte
 005A           L4:
 005A                   .dbline 49
 005A 4F5F              subi R20,255  ; offset = 1
 005C 5F4F              sbci R21,255
 005E           L6:
 005E                   .dbline 49
 005E 483F              cpi R20,248
 0060 E1E0              ldi R30,1
 0062 5E07              cpc R21,R30
 0064 B8F3              brlo L3
 0066                   .dbline -2
 0066           L2:
 0066 0E940000          xcall pop_gset1
 006A                   .dbline 0 ; func end
 006A 0895              ret
 006C                   .dbsym r i 20 i
 006C                   .dbend
 006C                   .dbfunc e LCD_set_XY _LCD_set_XY fV
 006C           ;              Y -> R22
 006C           ;              X -> R20
                        .even
 006C           _LCD_set_XY::
 006C 0E940000          xcall push_gset2
 0070 622F              mov R22,R18
 0072 402F              mov R20,R16
 0074                   .dbline -1
 0074                   .dbline 63
 0074           ;       LCD_write_byte(0, 1);                   
 0074           ;   }
 0074           ; 
 0074           ; /*-----------------------------------------------------------------------
 0074           ; LCD_set_XY        : 设置LCD坐标函数
 0074           ; 
 0074           ; 输入参数:X       :0-83
 0074           ;           Y       :0-5
 0074           ; 
 0074           ; 编写日期          :2004-8-10 
 0074           ; 最后修改日期      :2004-8-10 
 0074           ; -----------------------------------------------------------------------*/
 0074           ; void LCD_set_XY(unsigned char X, unsigned char Y)
 0074           ;   {
 0074                   .dbline 64
 0074           ;     LCD_write_byte(0x40 | Y, 0);              // column
 0074 2227              clr R18
 0076 062F              mov R16,R22
 0078 0064              ori R16,64
 007A 75D1              xcall _LCD_write_byte
 007C                   .dbline 65
 007C           ;     LCD_write_byte(0x80 | X, 0);              // row
 007C 2227              clr R18
 007E 042F              mov R16,R20
 0080 0068              ori R16,128
 0082 71D1              xcall _LCD_write_byte
 0084                   .dbline -2
 0084           L7:
 0084 0E940000          xcall pop_gset2
 0088                   .dbline 0 ; func end
 0088 0895              ret
 008A                   .dbsym r Y 22 c
 008A                   .dbsym r X 20 c
 008A                   .dbend
 008A                   .dbfunc e LCD_write_char _LCD_write_char fV
 008A           ;           line -> R20
 008A           ;              c -> R22
                        .even
 008A           _LCD_write_char::
 008A 0E940000          xcall push_gset2
 008E 602F              mov R22,R16
 0090                   .dbline -1
 0090                   .dbline 77
 0090           ;   }
 0090           ; 
 0090           ; /*-----------------------------------------------------------------------
 0090           ; LCD_write_char    : 显示英文字符
 0090           ; 
 0090           ; 输入参数:c       :显示的字符;
 0090           ; 
 0090           ; 编写日期          :2004-8-10 
 0090           ; 最后修改日期      :2004-8-10 
 0090           ; -----------------------------------------------------------------------*/
 0090           ; void LCD_write_char(unsigned char c)
 0090           ;   {
 0090                   .dbline 80
 0090           ;     unsigned char line;
 0090           ; 
 0090           ;     c -= 32;
 0090 6052              subi R22,32
 0092                   .dbline 82
 0092           ; 
 0092           ;     for (line=0; line<6; line++)
 0092 4427              clr R20
 0094 0FC0              xjmp L12
 0096           L9:
 0096                   .dbline 83
 0096 21E0              ldi R18,1
 0098 86E0              ldi R24,6
 009A 869F              mul R24,R22
 009C 1001              movw R2,R0
 009E 80E0              ldi R24,<_font6x8
 00A0 90E0              ldi R25,>_font6x8
 00A2 280E              add R2,R24
 00A4 391E              adc R3,R25
 00A6 E42F              mov R30,R20
 00A8 FF27              clr R31
 00AA E20D              add R30,R2
 00AC F31D              adc R31,R3
 00AE 0491              lpm R16,Z
 00B0 5AD1              xcall _LCD_write_byte
 00B2           L10:
 00B2                   .dbline 82
 00B2 4395              inc R20
 00B4           L12:
 00B4                   .dbline 82
 00B4 4630              cpi R20,6
 00B6 78F3              brlo L9
 00B8                   .dbline -2
 00B8           L8:
 00B8 0E940000          xcall pop_gset2
 00BC                   .dbline 0 ; func end
 00BC 0895              ret
 00BE                   .dbsym r line 20 c
 00BE                   .dbsym r c 22 c
 00BE                   .dbend
 00BE                   .dbfunc e LCD_write_english_string _LCD_write_english_string fV
 00BE           ;              s -> R20,R21
 00BE           ;              Y -> R10
 00BE           ;              X -> R22
                        .even
 00BE           _LCD_write_english_string::
 00BE 0E940000          xcall push_gset3
 00C2 A22E              mov R10,R18
 00C4 602F              mov R22,R16
 00C6 4E81              ldd R20,y+6
 00C8 5F81              ldd R21,y+7
 00CA                   .dbline -1
 00CA                   .dbline 96
 00CA           ;       LCD_write_byte(font6x8[c][line], 1);
 00CA           ;   }
 00CA           ; 
 00CA           ; /*-----------------------------------------------------------------------
 00CA           ; LCD_write_english_String  : 英文字符串显示函数
 00CA           ; 
 00CA           ; 输入参数:*s      :英文字符串指针;
 00CA           ;           X、Y    : 显示字符串的位置,x 0-83 ,y 0-5
 00CA           ; 
 00CA           ; 编写日期          :2004-8-10 
 00CA           ; 最后修改日期      :2004-8-10                 
 00CA           ; -----------------------------------------------------------------------*/
 00CA           ; void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
 00CA           ;   {
 00CA                   .dbline 97
 00CA           ;     LCD_set_XY(X,Y);
 00CA 2A2D              mov R18,R10
 00CC 062F              mov R16,R22
 00CE CEDF              xcall _LCD_set_XY
 00D0 05C0              xjmp L15
 00D2           L14:

⌨️ 快捷键说明

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