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

📄 lcd.lis

📁 这是用C编的nrf905的通讯程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0048 12D0              xcall _display_lcd
 004A                   .dbline 169
 004A           ; 
 004A           ; locat_lcd(0,0);
 004A 2227              clr R18
 004C 0027              clr R16
 004E 1CD0              xcall _locat_lcd
 0050                   .dbline 170
 0050           ; for (i=0; i<504; i++)
 0050 4427              clr R20
 0052 5527              clr R21
 0054 05C0              xjmp L6
 0056           L3:
 0056                   .dbline 171
 0056 21E0              ldi R18,1
 0058 0027              clr R16
 005A 09D0              xcall _display_lcd
 005C           L4:
 005C                   .dbline 170
 005C 4F5F              subi R20,255  ; offset = 1
 005E 5F4F              sbci R21,255
 0060           L6:
 0060                   .dbline 170
 0060 483F              cpi R20,248
 0062 E1E0              ldi R30,1
 0064 5E07              cpc R21,R30
 0066 B8F3              brlo L3
 0068                   .dbline -2
 0068           L2:
 0068 0E940000          xcall pop_gset1
 006C                   .dbline 0 ; func end
 006C 0895              ret
 006E                   .dbsym r i 20 i
 006E                   .dbend
 006E                   .dbfunc e display_lcd _display_lcd fV
 006E           ;           mode -> R18
 006E           ;           data -> R16
                        .even
 006E           _display_lcd::
 006E                   .dbline -1
 006E                   .dbline 176
 006E           ; display_lcd(0, 1); 
 006E           ; }
 006E           ; //
 006E           ; //
 006E           ; void display_lcd(unsigned char data,unsigned char mode)
 006E           ; {
 006E                   .dbline 177
 006E           ; PORTD&=~CE;
 006E 9198              cbi 0x12,1
 0070                   .dbline 178
 0070           ; if(mode==0)PORTD&=~DC;
 0070 2223              tst R18
 0072 11F4              brne L8
 0074                   .dbline 178
 0074 9298              cbi 0x12,2
 0076 01C0              xjmp L9
 0078           L8:
 0078                   .dbline 179
 0078           ; else PORTD|=DC;
 0078 929A              sbi 0x12,2
 007A           L9:
 007A                   .dbline 181
 007A           ; 
 007A           ; SPDR=data;
 007A 0FB9              out 0xf,R16
 007C           L10:
 007C                   .dbline 182
 007C           L11:
 007C                   .dbline 182
 007C           ; while((SPSR&0x80)!=0x80);
 007C 8EB1              in R24,0xe
 007E 8078              andi R24,128
 0080 8038              cpi R24,128
 0082 E1F7              brne L10
 0084                   .dbline 184
 0084           ; 
 0084           ; PORTD|=CE;
 0084 919A              sbi 0x12,1
 0086                   .dbline -2
 0086           L7:
 0086                   .dbline 0 ; func end
 0086 0895              ret
 0088                   .dbsym r mode 18 c
 0088                   .dbsym r data 16 c
 0088                   .dbend
 0088                   .dbfunc e locat_lcd _locat_lcd fV
 0088           ;              y -> R20
 0088           ;              x -> R22
                        .even
 0088           _locat_lcd::
 0088 0E940000          xcall push_gset2
 008C 422F              mov R20,R18
 008E 602F              mov R22,R16
 0090                   .dbline -1
 0090                   .dbline 189
 0090           ; }
 0090           ; //
 0090           ; //
 0090           ; void locat_lcd(unsigned char x,unsigned char y)
 0090           ; {
 0090                   .dbline 190
 0090           ; display_lcd(0x80|x,0); // set initial column
 0090 2227              clr R18
 0092 062F              mov R16,R22
 0094 0068              ori R16,128
 0096 EBDF              xcall _display_lcd
 0098                   .dbline 191
 0098           ; display_lcd(0x40|y,0); // set initial row
 0098 2227              clr R18
 009A 042F              mov R16,R20
 009C 0064              ori R16,64
 009E E7DF              xcall _display_lcd
 00A0                   .dbline -2
 00A0           L13:
 00A0 0E940000          xcall pop_gset2
 00A4                   .dbline 0 ; func end
 00A4 0895              ret
 00A6                   .dbsym r y 20 c
 00A6                   .dbsym r x 22 c
 00A6                   .dbend
 00A6                   .dbfunc e PutChar _PutChar fV
 00A6           ;              i -> R20
 00A6           ;             ch -> R22
                        .even
 00A6           _PutChar::
 00A6 0E940000          xcall push_gset2
 00AA 602F              mov R22,R16
 00AC                   .dbline -1
 00AC                   .dbline 196
 00AC           ; }
 00AC           ; //
 00AC           ; //
 00AC           ; void PutChar (unsigned char ch)
 00AC           ; {     unsigned char i;
 00AC                   .dbline 197
 00AC           ;       ch-=32;
 00AC 6052              subi R22,32
 00AE                   .dbline 198
 00AE           ;       for(i=0;i<5;i++)
 00AE 4427              clr R20
 00B0 0FC0              xjmp L18
 00B2           L15:
 00B2                   .dbline 199
 00B2 21E0              ldi R18,1
 00B4 85E0              ldi R24,5
 00B6 869F              mul R24,R22
 00B8 1001              movw R2,R0
 00BA 80E0              ldi R24,<_CharList
 00BC 90E0              ldi R25,>_CharList
 00BE 280E              add R2,R24
 00C0 391E              adc R3,R25
 00C2 E42F              mov R30,R20
 00C4 FF27              clr R31
 00C6 E20D              add R30,R2
 00C8 F31D              adc R31,R3
 00CA 0491              lpm R16,Z
 00CC D0DF              xcall _display_lcd
 00CE           L16:
 00CE                   .dbline 198
 00CE 4395              inc R20
 00D0           L18:
 00D0                   .dbline 198
 00D0 4530              cpi R20,5
 00D2 78F3              brlo L15
 00D4                   .dbline -2
 00D4           L14:
 00D4 0E940000          xcall pop_gset2
 00D8                   .dbline 0 ; func end
 00D8 0895              ret
 00DA                   .dbsym r i 20 c
 00DA                   .dbsym r ch 22 c
 00DA                   .dbend
 00DA                   .dbfunc e LCD _LCD fV
 00DA           ;           data -> R20
                        .even
 00DA           _LCD::
 00DA 0E940000          xcall push_gset1
 00DE 402F              mov R20,R16
 00E0                   .dbline -1
 00E0                   .dbline 205
 00E0           ;     display_lcd(CharList[ch][i],1);
 00E0           ; }
 00E0           ; //
 00E0           ; //
 00E0           ; 
 00E0           ; void LCD(unsigned char data)
 00E0           ; {
 00E0                   .dbline 207
 00E0           ;     
 00E0           ;     if((X+=10)>=80){Y++;X=1;}
 00E0 80910000          lds R24,_X
 00E4 865F              subi R24,246    ; addi 10
 00E6 282E              mov R2,R24
 00E8 20920000          sts _X,R2
 00EC 8035              cpi R24,80
 00EE 40F0              brlo L20
 00F0                   .dbline 207
 00F0                   .dbline 207
 00F0 80910100          lds R24,_Y
 00F4 8F5F              subi R24,255    ; addi 1
 00F6 80930100          sts _Y,R24
 00FA                   .dbline 207
 00FA 81E0              ldi R24,1
 00FC 80930000          sts _X,R24
 0100                   .dbline 207
 0100           L20:
 0100                   .dbline 208
 0100           ;       if(Y>5){Y=0;}
 0100 85E0              ldi R24,5
 0102 20900100          lds R2,_Y
 0106 8215              cp R24,R2
 0108 18F4              brsh L22
 010A                   .dbline 208
 010A                   .dbline 208
 010A 2224              clr R2
 010C 20920100          sts _Y,R2
 0110                   .dbline 208
 0110           L22:
 0110                   .dbline 209
 0110           ;       locat_lcd(X,Y);
 0110 20910100          lds R18,_Y
 0114 00910000          lds R16,_X
 0118 B7DF              xcall _locat_lcd
 011A                   .dbline 213
 011A           ;       
 011A           ;       
 011A           ;     
 011A           ;     data+=48;
 011A 405D              subi R20,208    ; addi 48
 011C                   .dbline 214
 011C           ;       if(data>57)data+=7;
 011C 89E3              ldi R24,57
 011E 8417              cp R24,R20
 0120 08F4              brsh L24
 0122                   .dbline 214
 0122 495F              subi R20,249    ; addi 7
 0124           L24:
 0124                   .dbline 215
 0124           ;     PutChar(data);
 0124 042F              mov R16,R20
 0126 BFDF              xcall _PutChar
 0128                   .dbline 216
 0128           ;     DISLCD(); 
 0128 919A              sbi 0x12,1
 012A                   .dbline 217
 012A           ;     EN905(); 
 012A C498              cbi 0x18,4
 012C                   .dbline -2
 012C           L19:
 012C 0E940000          xcall pop_gset1
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbsym r data 20 c
 0132                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\charon\MYDOCU~1\AVR\NRF905\lcd.c
 0000           _key:
 0000                   .blkb 1
 0001                   .dbfile C:\DOCUME~1\charon\MYDOCU~1\AVR\NRF905/config.h
 0001                   .dbsym s key _key c

⌨️ 快捷键说明

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