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

📄 12864.lis

📁 12864.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module _12864.C
                        .area text(rom, con, rel)
 0000                   .dbfile F:\BBIBBI/delay.h
 0000                   .dbfunc e delay_nms _delay_nms fV
 0000           ;              i -> R20,R21
 0000           ;              n -> R22,R23
                        .even
 0000           _delay_nms::
 0000 0E940000          xcall push_gset2
 0004 B801              movw R22,R16
 0006                   .dbline -1
 0006                   .dbline 2
 0006           ; 
 0006           ; //*****************利用LCD液晶显示图形和文字******************//
 0006                   .dbline 3
 0006           ; #include <iom16v.h> 
 0006 4427              clr R20
 0008 5527              clr R21
 000A                   .dbline 4
 000A           ; #include <macros.h>
 000A 03C0              xjmp L5
 000C           L2:
 000C                   .dbline 5
 000C 24D0              xcall _delay_1ms
 000E           L3:
 000E                   .dbline 4
 000E 4F5F              subi R20,255  ; offset = 1
 0010 5F4F              sbci R21,255
 0012           L5:
 0012                   .dbline 4
 0012 4617              cp R20,R22
 0014 5707              cpc R21,R23
 0016 D0F3              brlo L2
 0018                   .dbline -2
 0018           L1:
 0018 0E940000          xcall pop_gset2
 001C                   .dbline 0 ; func end
 001C 0895              ret
 001E                   .dbsym r i 20 i
 001E                   .dbsym r n 22 i
 001E                   .dbend
 001E                   .dbfunc e delay _delay fV
 001E           ;              i -> R20
 001E           ;              n -> R16
                        .even
 001E           _delay::
 001E 0E940000          xcall push_gset1
 0022                   .dbline -1
 0022                   .dbline 8
 0022           ; #include "delay.h"
 0022           ; #define LCD12864 TRUE 
 0022           ; //************数据端口为PA1,时钟端口为PA3********************//             
 0022           ; 
 0022                   .dbline 10
 0022           ; #define LCD_DATAL PORTA&=~BIT(1)        
 0022           ; #define LCD_DATAH PORTA|=BIT(1) 
 0022 4427              clr R20
 0024 02C0              xjmp L10
 0026           L7:
 0026                   .dbline 11
 0026                   .dbline 11
 0026 0000              nop
 0028                   .dbline 11
 0028           L8:
 0028                   .dbline 10
 0028 4395              inc R20
 002A           L10:
 002A                   .dbline 10
 002A 4017              cp R20,R16
 002C E0F3              brlo L7
 002E                   .dbline -2
 002E           L6:
 002E 0E940000          xcall pop_gset1
 0032                   .dbline 0 ; func end
 0032 0895              ret
 0034                   .dbsym r i 20 c
 0034                   .dbsym r n 16 c
 0034                   .dbend
 0034                   .dbfunc e delay_1us _delay_1us fV
                        .even
 0034           _delay_1us::
 0034                   .dbline -1
 0034                   .dbline 14
 0034           ; #define LCD_CLKL PORTA&=~BIT(3)
 0034           ; #define LCD_CLKH PORTA|=BIT(3)
 0034           ; 
 0034           ; /*******************************************************/
 0034                   .dbline 15
 0034           ; /******   函数名称: lcd_out                       ******/
 0034 0000              nop
 0036                   .dbline -2
 0036           L11:
 0036                   .dbline 0 ; func end
 0036 0895              ret
 0038                   .dbend
 0038                   .dbfunc e delay_nus _delay_nus fV
 0038           ;              i -> R20,R21
 0038           ;              n -> R22,R23
                        .even
 0038           _delay_nus::
 0038 0E940000          xcall push_gset2
 003C B801              movw R22,R16
 003E                   .dbline -1
 003E                   .dbline 18
 003E           ; /******   功    能: 将每一位送入到LCD中           ******/
 003E           ; /******   参    数: 无                            ******/
 003E           ; /******   返回值  : 无                            ******/
 003E                   .dbline 19
 003E           ; /*******************************************************/
 003E 4427              clr R20
 0040 5527              clr R21
 0042                   .dbline 20
 0042           ; void lcd_out(unsigned char send_byte)
 0042 03C0              xjmp L16
 0044           L13:
 0044                   .dbline 21
 0044 F7DF              xcall _delay_1us
 0046           L14:
 0046                   .dbline 20
 0046 4F5F              subi R20,255  ; offset = 1
 0048 5F4F              sbci R21,255
 004A           L16:
 004A                   .dbline 20
 004A 4617              cp R20,R22
 004C 5707              cpc R21,R23
 004E D0F3              brlo L13
 0050                   .dbline -2
 0050           L12:
 0050 0E940000          xcall pop_gset2
 0054                   .dbline 0 ; func end
 0054 0895              ret
 0056                   .dbsym r i 20 i
 0056                   .dbsym r n 22 i
 0056                   .dbend
 0056                   .dbfunc e delay_1ms _delay_1ms fV
 0056           ;              i -> R16,R17
                        .even
 0056           _delay_1ms::
 0056                   .dbline -1
 0056                   .dbline 24
 0056           ; {    
 0056           ;     unsigned char i,s;
 0056           ;       for (i=0;i<8;i++)
 0056           ;       {
 0056                   .dbline 26
 0056 0027              clr R16
 0058 1127              clr R17
 005A 02C0              xjmp L21
 005C           L18:
 005C                   .dbline 26
 005C           L19:
 005C                   .dbline 26
 005C 0F5F              subi R16,255  ; offset = 1
 005E 1F4F              sbci R17,255
 0060           L21:
 0060                   .dbline 26
 0060           ;        if((send_byte&0x80)==0)
 0060           ;        {
 0060 0437              cpi R16,116
 0062 E4E0              ldi R30,4
 0064 1E07              cpc R17,R30
 0066 D0F3              brlo L18
 0068                   .dbline -2
 0068           L17:
 0068                   .dbline 0 ; func end
 0068 0895              ret
 006A                   .dbsym r i 16 i
 006A                   .dbend
 006A                   .dbfile F:\BBIBBI\12864.C
 006A                   .dbfunc e lcd_out _lcd_out fV
 006A           ;              s -> <dead>
 006A           ;              i -> R20
 006A           ;      send_byte -> R22
                        .even
 006A           _lcd_out::
 006A 0E940000          xcall push_gset2
 006E 602F              mov R22,R16
 0070                   .dbline -1
 0070                   .dbline 21
 0070                   .dbline 23
 0070 4427              clr R20
 0072 09C0              xjmp L26
 0074           L23:
 0074                   .dbline 24
 0074                   .dbline 25
 0074 67FD              sbrc R22,7
 0076 02C0              rjmp L27
 0078                   .dbline 26
 0078                   .dbline 27
 0078           ;            LCD_DATAL;
 0078 D998              cbi 0x1b,1
 007A                   .dbline 28
 007A           ;        }
 007A 01C0              xjmp L28
 007C           L27:
 007C                   .dbline 30
 007C           ;        else
 007C           ;        {
 007C                   .dbline 31
 007C           ;            LCD_DATAH;
 007C D99A              sbi 0x1b,1
 007E                   .dbline 32
 007E           ;        }      //送数据
 007E           L28:
 007E                   .dbline 33
 007E DB98              cbi 0x1b,3
 0080                   .dbline 34
 0080 DB9A              sbi 0x1b,3
 0082                   .dbline 35
 0082 660F              lsl R22
 0084                   .dbline 36
 0084           L24:
 0084                   .dbline 23
 0084 4395              inc R20
 0086           L26:
 0086                   .dbline 23
 0086 4830              cpi R20,8
 0088 A8F3              brlo L23
 008A                   .dbline 37
 008A           ;        LCD_CLKL;
 008A           ;        LCD_CLKH;
 008A           ;        send_byte=send_byte<<1;
 008A           ;       }
 008A           ;       delay(256);
 008A 00E0              ldi R16,0
 008C C8DF              xcall _delay
 008E                   .dbline -2
 008E           L22:
 008E 0E940000          xcall pop_gset2
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbsym l s 1 c
 0094                   .dbsym r i 20 c
 0094                   .dbsym r send_byte 22 c
 0094                   .dbend
 0094                   .dbfunc e WR_dat _WR_dat fV
 0094           ;              s -> R20
 0094           ;            dat -> R22
                        .even
 0094           _WR_dat::
 0094 0E940000          xcall push_gset2
 0098 602F              mov R22,R16
 009A                   .dbline -1
 009A                   .dbline 47
 009A           ; }
 009A           ; /*******************************************************/
 009A           ; /******   函数名称: WR_dat                        ******/
 009A           ; /******   功    能: 将数据写入LCD                  ******/
 009A           ; /******   参    数: 无                            ******/
 009A           ; /******   返回值  : 无                            ******/
 009A           ; /*******************************************************/
 009A           ; 
 009A           ; void WR_dat(unsigned char dat)
 009A           ; {
 009A                   .dbline 49
 009A           ;      unsigned char s;
 009A           ;        s=dat&0xf0;
 009A 462F              mov R20,R22
 009C 407F              andi R20,240
 009E                   .dbline 50
 009E           ;        lcd_out(0xfa);
 009E 0AEF              ldi R16,250
 00A0 E4DF              xcall _lcd_out
 00A2                   .dbline 51
 00A2           ;        lcd_out(s);
 00A2 042F              mov R16,R20
 00A4 E2DF              xcall _lcd_out
 00A6                   .dbline 52
 00A6           ;        s=dat&0x0f;
 00A6 462F              mov R20,R22
 00A8 4F70              andi R20,15
 00AA                   .dbline 53
 00AA           ;        s<<=4;
 00AA 842F              mov R24,R20
 00AC 8F70              andi R24,#0x0F
 00AE 8295              swap R24
 00B0 482F              mov R20,R24
 00B2                   .dbline 54
 00B2           ;        lcd_out(s);
 00B2 082F              mov R16,R24
 00B4 DADF              xcall _lcd_out
 00B6                   .dbline -2
 00B6           L29:
 00B6 0E940000          xcall pop_gset2
 00BA                   .dbline 0 ; func end
 00BA 0895              ret
 00BC                   .dbsym r s 20 c
 00BC                   .dbsym r dat 22 c
 00BC                   .dbend
 00BC                   .dbfunc e WR_control _WR_control fV
 00BC           ;              s -> R20
 00BC           ;            dat -> R22
                        .even
 00BC           _WR_control::
 00BC 0E940000          xcall push_gset2
 00C0 602F              mov R22,R16
 00C2                   .dbline -1
 00C2                   .dbline 63
 00C2           ; }
 00C2           ; /*******************************************************/
 00C2           ; /******   函数名称: WR_control                     ******/
 00C2           ; /******   功    能: 将指令写入LCD                  ******/
 00C2           ; /******   参    数: 无                            ******/
 00C2           ; /******   返回值  : 无                            ******/
 00C2           ; /*******************************************************/
 00C2           ; void WR_control(unsigned char dat)
 00C2           ; {
 00C2                   .dbline 65
 00C2           ;      unsigned char s;
 00C2           ;        s=dat&0xf0;
 00C2 462F              mov R20,R22
 00C4 407F              andi R20,240

⌨️ 快捷键说明

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