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

📄 lcd1602显示.lis

📁 ICC mega8例子
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 008C 01E0              ldi R16,1
 008E DBDF              rcall _com_lcd
 0090                   .dbline 83
 0090           ;        delay(5);
 0090 05E0              ldi R16,5
 0092 10E0              ldi R17,0
 0094 C5DF              rcall _delay
 0096                   .dbline 84
 0096           ;        com_lcd(0x0C);//文字不动,光标自动右移
 0096 0CE0              ldi R16,12
 0098 D6DF              rcall _com_lcd
 009A                   .dbline 85
 009A           ;        delay(5);
 009A 05E0              ldi R16,5
 009C 10E0              ldi R17,0
 009E C0DF              rcall _delay
 00A0                   .dbline 86
 00A0           ;        com_lcd(0x06);//开显示
 00A0 06E0              ldi R16,6
 00A2 D1DF              rcall _com_lcd
 00A4                   .dbline 87
 00A4           ;        delay(5);
 00A4 05E0              ldi R16,5
 00A6 10E0              ldi R17,0
 00A8 BBDF              rcall _delay
 00AA                   .dbline -2
 00AA           L14:
 00AA                   .dbline 0 ; func end
 00AA 0895              ret
 00AC                   .dbend
 00AC                   .dbfunc e LCD1602_clear _LCD1602_clear fV
                        .even
 00AC           _LCD1602_clear::
 00AC                   .dbline -1
 00AC                   .dbline 91
 00AC           ; }
 00AC           ; //清屏
 00AC           ; void LCD1602_clear()
 00AC           ; {
 00AC                   .dbline 92
 00AC           ;        com_lcd(0x01); //清屏
 00AC 01E0              ldi R16,1
 00AE CBDF              rcall _com_lcd
 00B0                   .dbline 93
 00B0           ;        delay(5);
 00B0 05E0              ldi R16,5
 00B2 10E0              ldi R17,0
 00B4 B5DF              rcall _delay
 00B6                   .dbline -2
 00B6           L15:
 00B6                   .dbline 0 ; func end
 00B6 0895              ret
 00B8                   .dbend
 00B8                   .dbfunc e LCD1602_goxy _LCD1602_goxy fV
 00B8           ;            row -> R10
 00B8           ;           line -> R20
                        .even
 00B8           _LCD1602_goxy::
 00B8 00D0              rcall push_xgset300C
 00BA A22E              mov R10,R18
 00BC 402F              mov R20,R16
 00BE                   .dbline -1
 00BE                   .dbline 97
 00BE           ; }
 00BE           ; //定位x,y(x-列,y-行)
 00BE           ; void LCD1602_goxy(unsigned char line,unsigned char row)
 00BE           ; {
 00BE                   .dbline 98
 00BE           ;  if (row==0)
 00BE AA20              tst R10
 00C0 11F4              brne L17
 00C2           X2:
 00C2                   .dbline 99
 00C2           ;       line+=0x81;
 00C2 4F57              subi R20,127    ; addi 129
 00C4 01C0              rjmp L18
 00C6           L17:
 00C6                   .dbline 101
 00C6           ;  else
 00C6           ;       line+=0xc0;
 00C6 4054              subi R20,64    ; addi 192
 00C8           L18:
 00C8                   .dbline 102
 00C8           ;  com_lcd(line);//第二行首地址
 00C8 042F              mov R16,R20
 00CA BDDF              rcall _com_lcd
 00CC                   .dbline 103
 00CC           ;  delay(5);
 00CC 05E0              ldi R16,5
 00CE 10E0              ldi R17,0
 00D0 A7DF              rcall _delay
 00D2                   .dbline -2
 00D2           L16:
 00D2                   .dbline 0 ; func end
 00D2 00C0              rjmp pop_xgset300C
 00D4                   .dbsym r row 10 c
 00D4                   .dbsym r line 20 c
 00D4                   .dbend
 00D4                   .dbfunc e LCD1602_print _LCD1602_print fI
 00D4           ;            str -> R20,R21
                        .even
 00D4           _LCD1602_print::
 00D4 4A93              st -y,R20
 00D6 5A93              st -y,R21
 00D8 A801              movw R20,R16
 00DA                   .dbline -1
 00DA                   .dbline 107
 00DA           ; }
 00DA           ; //显示字符串
 00DA           ; LCD1602_print(char *str)
 00DA           ; {
 00DA 08C0              rjmp L21
 00DC           L20:
 00DC                   .dbline 109
 00DC           ;  while(*str)
 00DC           ;  {
 00DC                   .dbline 110
 00DC           ;   data_lcd(*str);
 00DC FA01              movw R30,R20
 00DE 0081              ldd R16,z+0
 00E0 BEDF              rcall _data_lcd
 00E2                   .dbline 111
 00E2           ;   delay(10);
 00E2 0AE0              ldi R16,10
 00E4 10E0              ldi R17,0
 00E6 9CDF              rcall _delay
 00E8                   .dbline 112
 00E8           ;   str++;
 00E8 4F5F              subi R20,255  ; offset = 1
 00EA 5F4F              sbci R21,255
 00EC                   .dbline 113
 00EC           ;  }
 00EC           L21:
 00EC                   .dbline 108
 00EC FA01              movw R30,R20
 00EE 2080              ldd R2,z+0
 00F0 2220              tst R2
 00F2 A1F7              brne L20
 00F4           X3:
 00F4                   .dbline -2
 00F4           L19:
 00F4                   .dbline 0 ; func end
 00F4 5991              ld R21,y+
 00F6 4991              ld R20,y+
 00F8 0895              ret
 00FA                   .dbsym r str 20 pc
 00FA                   .dbend
 00FA                   .dbfunc e LCD1602_printD _LCD1602_printD fI
 00FA           ;              n -> R10
                        .even
 00FA           _LCD1602_printD::
 00FA AA92              st -y,R10
 00FC A02E              mov R10,R16
 00FE                   .dbline -1
 00FE                   .dbline 117
 00FE           ; }
 00FE           ; //显示一个二位十位数
 00FE           ; LCD1602_printD(unsigned char n)
 00FE           ; {
 00FE                   .dbline 118
 00FE           ;  data_lcd(n/10+0x30);
 00FE 1AE0              ldi R17,10
 0100 0A2D              mov R16,R10
 0102 00D0              rcall div8u
 0104 005D              subi R16,208    ; addi 48
 0106 ABDF              rcall _data_lcd
 0108                   .dbline 119
 0108           ;  delay(10);
 0108 0AE0              ldi R16,10
 010A 10E0              ldi R17,0
 010C 89DF              rcall _delay
 010E                   .dbline 120
 010E           ;  data_lcd(n%10+0x30);
 010E 1AE0              ldi R17,10
 0110 0A2D              mov R16,R10
 0112 00D0              rcall mod8u
 0114 005D              subi R16,208    ; addi 48
 0116 A3DF              rcall _data_lcd
 0118                   .dbline 121
 0118           ;  delay(10);
 0118 0AE0              ldi R16,10
 011A 10E0              ldi R17,0
 011C 81DF              rcall _delay
 011E                   .dbline -2
 011E           L23:
 011E                   .dbline 0 ; func end
 011E A990              ld R10,y+
 0120 0895              ret
 0122                   .dbsym r n 10 c
 0122                   .dbend
 0122                   .dbfunc e main _main fV
 0122           ;              i -> R20
                        .even
 0122           _main::
 0122                   .dbline -1
 0122                   .dbline 126
 0122           ; }
 0122           ; //**************************************************************************  
 0122           ; 
 0122           ; void main()
 0122           ; {
 0122                   .dbline 127
 0122           ;  unsigned char i=23;
 0122 47E1              ldi R20,23
 0124                   .dbline 128
 0124           ;  port_init();
 0124 6DDF              rcall _port_init
 0126                   .dbline 129
 0126           ;  init_devices();
 0126 74DF              rcall _init_devices
 0128                   .dbline 131
 0128           ;  
 0128           ;  LCD1602_init();
 0128 A6DF              rcall _LCD1602_init
 012A                   .dbline 132
 012A           ;  LCD1602_goxy(2,0);
 012A 2227              clr R18
 012C 02E0              ldi R16,2
 012E C4DF              rcall _LCD1602_goxy
 0130                   .dbline 133
 0130           ;  LCD1602_print("xiaozhiyong");
 0130 00E0              ldi R16,<L25
 0132 10E0              ldi R17,>L25
 0134 CFDF              rcall _LCD1602_print
 0136                   .dbline 134
 0136           ;  LCD1602_goxy(2,1);
 0136 21E0              ldi R18,1
 0138 02E0              ldi R16,2
 013A BEDF              rcall _LCD1602_goxy
 013C                   .dbline 135
 013C           ;  LCD1602_printD(i);
 013C 042F              mov R16,R20
 013E DDDF              rcall _LCD1602_printD
 0140           L26:
 0140                   .dbline 138
 0140           ;  
 0140           ;  while(1)
 0140           ;  {
 0140                   .dbline 139
 0140           ;   ;
 0140                   .dbline 140
 0140           ;  }
 0140           L27:
 0140                   .dbline 137
 0140 FFCF              rjmp L26
 0142           X4:
 0142                   .dbline -2
 0142           L24:
 0142                   .dbline 0 ; func end
 0142 0895              ret
 0144                   .dbsym r i 20 c
 0144                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile E:\xiaozhiyong2009\设计资料\项目设计\ICCAVR_mega8_C\ICCAVR_mega8_LCD1602显示\LCD1602显示.c
 0000           L25:
 0000                   .blkb 12
                        .area idata
 0000 7869616F7A6869796F6E6700  .byte 'x,'i,'a,'o,'z,'h,'i,'y,'o,'n,'g,0
                        .area data(ram, con, rel)
 000C                   .dbfile E:\xiaozhiyong2009\设计资料\项目设计\ICCAVR_mega8_C\ICCAVR_mega8_LCD1602显示\LCD1602显示.c
 000C           ; }

⌨️ 快捷键说明

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