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

📄 12864_example.lis

📁 我们编写了一个支持位操作、普通端口操作、并行操作、串行操作等多种模式的12864驱动
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00B8 0895              ret
 00BA                   .dbsym r BIT 20 c
 00BA                   .dbend
 00BA                   .dbfunc e clearBIT _clearBIT fc
 00BA           ;            BIT -> R20
                        .even
 00BA           _clearBIT::
 00BA 0E940000          xcall push_gset1
 00BE 402F              mov R20,R16
 00C0                   .dbline -1
 00C0                   .dbline 173
 00C0           ; 
 00C0           ; /***********************
 00C0           ; *    系统函数声明区    *
 00C0           ; ***********************/
 00C0           ; void SystemInit(void);
 00C0           ; void PortInit(void);
 00C0           ; void Timer0Init(void);
 00C0           ; 
 00C0           ; /********************************************************
 00C0                   .dbline 174
 00C0           ; *  函数说明:端口初始化                                 *
 00C0 4031              cpi R20,16
 00C2 10F0              brlo L6
 00C4                   .dbline 175
 00C4           ; ********************************************************/
 00C4                   .dbline 176
 00C4           ; void PortInit(void)
 00C4 0027              clr R16
 00C6 18C0              xjmp L5
 00C8           L6:
 00C8                   .dbline 179
 00C8           ; {
 00C8           ;     DDRD = 0xff;
 00C8           ;       PORTD = 0xff;
 00C8 242F              mov R18,R20
 00CA 3327              clr R19
 00CC 01E0              ldi R16,1
 00CE 10E0              ldi R17,0
 00D0 0E940000          xcall lsl16
 00D4 1801              movw R2,R16
 00D6 2094              com R2
 00D8 3094              com R3
 00DA 40900000          lds R4,_VPORT
 00DE 50900100          lds R5,_VPORT+1
 00E2 4220              and R4,R2
 00E4 5320              and R5,R3
 00E6 50920100          sts _VPORT+1,R5
 00EA 40920000          sts _VPORT,R4
 00EE                   .dbline 180
 00EE           ;       
 00EE 81E0              ldi R24,1
 00F0 80930400          sts _IfPortChange,R24
 00F4                   .dbline 181
 00F4           ;       DDRA = 0xff;
 00F4 04D0              xcall _VirtualPORTProccess
 00F6                   .dbline 182
 00F6           ;       PORTA = 0xff;
 00F6 01E0              ldi R16,1
 00F8                   .dbline -2
 00F8           L5:
 00F8 0E940000          xcall pop_gset1
 00FC                   .dbline 0 ; func end
 00FC 0895              ret
 00FE                   .dbsym r BIT 20 c
 00FE                   .dbend
 00FE                   .dbfunc e VirtualPORTProccess _VirtualPORTProccess fV
                        .even
 00FE           _VirtualPORTProccess::
 00FE                   .dbline -1
 00FE                   .dbline 189
 00FE                   .dbline 190
 00FE 20900400          lds R2,_IfPortChange
 0102 2220              tst R2
 0104 21F0              breq L9
 0106                   .dbline 191
 0106                   .dbline 192
 0106 04D0              xcall _refreshVirtualPORT
 0108                   .dbline 193
 0108 2224              clr R2
 010A 20920400          sts _IfPortChange,R2
 010E                   .dbline 194
 010E           L9:
 010E                   .dbline -2
 010E           L8:
 010E                   .dbline 0 ; func end
 010E 0895              ret
 0110                   .dbend
 0110                   .dbfunc e refreshVirtualPORT _refreshVirtualPORT fV
 0110           ;       TempData -> R20
 0110           ;              n -> R22
                        .even
 0110           _refreshVirtualPORT::
 0110 0E940000          xcall push_gset2
 0114                   .dbline -1
 0114                   .dbline 201
 0114           ;       
 0114           ;       DDRC = 0xff;
 0114           ;       PORTC = 0xff;
 0114           ;       
 0114           ;       PORTDefine();
 0114           ; }
 0114           ; 
 0114           ; /********************************************************
 0114           ; *  函数说明:定时器0初始化函数                          *
 0114           ; ********************************************************/
 0114           ; void Timer0Init(void)
 0114           ; {
 0114           ;     TCCR0 = 0x00;                                        //stop       
 0114           ;     TCNT0 = 0x83;                                        //set count  
 0114           ;     TCCR0 = 0x03;                                        //start timer
 0114           ; }
 0114           ; 
 0114           ; /********************************************************
 0114           ; *  函数说明:定时器0中断处理函数                        *
 0114                   .dbline 202
 0114           ; ********************************************************/
 0114 6627              clr R22
 0116                   .dbline 203
 0116           ; void Timer0OvfIsr(void)
 0116 4427              clr R20
 0118                   .dbline 205
 0118           ; {
 0118           ;      TCNT0 = 0x83;
 0118 E0911000          lds R30,_PORTD_BIT
 011C F0911100          lds R31,_PORTD_BIT+1
 0120 8081              ldd R24,z+0
 0122 877F              andi R24,247
 0124 8083              std z+0,R24
 0126                   .dbline 206
 0126           ;        
 0126 14C0              xjmp L15
 0128           L12:
 0128                   .dbline 207
 0128                   .dbline 208
 0128 262F              mov R18,R22
 012A 3327              clr R19
 012C 220F              lsl R18
 012E 331F              rol R19
 0130 220F              lsl R18
 0132 331F              rol R19
 0134 220F              lsl R18
 0136 331F              rol R19
 0138 00910000          lds R16,_VPORT
 013C 10910100          lds R17,_VPORT+1
 0140 0E940000          xcall lsl16
 0144 A801              movw R20,R16
 0146 452F              mov R20,R21
 0148 5527              clr R21
 014A                   .dbline 209
 014A 042F              mov R16,R20
 014C 10D0              xcall _sendBITS
 014E                   .dbline 210
 014E           L13:
 014E                   .dbline 206
 014E 6395              inc R22
 0150           L15:
 0150                   .dbline 206
 0150 6230              cpi R22,2
 0152 50F3              brlo L12
 0154                   .dbline 211
 0154           ;      FlashGIFStringCounter ++;
 0154           ;        FlashTimeCounter ++; 
 0154           ;        
 0154           ; }
 0154           ; 
 0154 E0911000          lds R30,_PORTD_BIT
 0158 F0911100          lds R31,_PORTD_BIT+1
 015C 8081              ldd R24,z+0
 015E 8860              ori R24,8
 0160 8083              std z+0,R24
 0162                   .dbline 212
 0162           ; /********************************************************
 0162 2224              clr R2
 0164 20920400          sts _IfPortChange,R2
 0168                   .dbline -2
 0168           L11:
 0168 0E940000          xcall pop_gset2
 016C                   .dbline 0 ; func end
 016C 0895              ret
 016E                   .dbsym r TempData 20 c
 016E                   .dbsym r n 22 c
 016E                   .dbend
 016E                   .dbfunc e sendBITS _sendBITS fV
 016E           ;              n -> R20
 016E           ;           Data -> R22
                        .even
 016E           _sendBITS::
 016E 0E940000          xcall push_gset2
 0172 602F              mov R22,R16
 0174                   .dbline -1
 0174                   .dbline 220
 0174           ; *  函数说明:系统初始化函数                             *
 0174           ; ********************************************************/
 0174           ; void SystemInit(void)
 0174           ; {
 0174           ;     CLI();
 0174           ;       
 0174           ;       PortInit();
 0174           ;       Timer0Init();
 0174                   .dbline 221
 0174           ;       
 0174 4427              clr R20
 0176                   .dbline 222
 0176           ;       LCD12864Init();
 0176 25C0              xjmp L20
 0178           L17:
 0178                   .dbline 223
 0178           ;       
 0178                   .dbline 224
 0178           ;       TIMSK = 0x01
 0178 E0911000          lds R30,_PORTD_BIT
 017C F0911100          lds R31,_PORTD_BIT+1
 0180 8081              ldd R24,z+0
 0182 8F7E              andi R24,239
 0184 8083              std z+0,R24
 0186                   .dbline 225
 0186           ;       
 0186 062F              mov R16,R22
 0188 142F              mov R17,R20
 018A 0E940000          xcall lsl8
 018E 802F              mov R24,R16
 0190 8078              andi R24,128
 0192 41F4              brne L21
 0194                   .dbline 226
 0194           ;       SEI();
 0194                   .dbline 227
 0194           ; }
 0194 E0911000          lds R30,_PORTD_BIT
 0198 F0911100          lds R31,_PORTD_BIT+1
 019C 8081              ldd R24,z+0
 019E 8F7D              andi R24,223
 01A0 8083              std z+0,R24
 01A2                   .dbline 228
 01A2           ; 
 01A2 07C0              xjmp L22
 01A4           L21:
 01A4                   .dbline 230
 01A4           ; 
 01A4           ; 
 01A4                   .dbline 231
 01A4           ; void main(void)
 01A4 E0911000          lds R30,_PORTD_BIT
 01A8 F0911100          lds R31,_PORTD_BIT+1
 01AC 8081              ldd R24,z+0
 01AE 8062              ori R24,32
 01B0 8083              std z+0,R24
 01B2                   .dbline 232
 01B2           ; {
 01B2           L22:
 01B2                   .dbline 233
 01B2 E0911000          lds R30,_PORTD_BIT
 01B6 F0911100          lds R31,_PORTD_BIT+1
 01BA 8081              ldd R24,z+0
 01BC 8061              ori R24,16
 01BE 8083              std z+0,R24
 01C0                   .dbline 235
 01C0           L18:
 01C0                   .dbline 222
 01C0 4395              inc R20
 01C2           L20:
 01C2                   .dbline 222
 01C2 4830              cpi R20,8
 01C4 08F4              brsh X0
 01C6 D8CF              xjmp L17
 01C8           X0:
 01C8                   .dbline -2
 01C8           L16:
 01C8 0E940000          xcall pop_gset2
 01CC                   .dbline 0 ; func end
 01CC 0895              ret
 01CE                   .dbsym r n 20 c
 01CE                   .dbsym r Data 22 c
 01CE                   .dbend
 01CE                   .dbfile G:\单片机\源程序\液晶12864驱动\CGM12864\LCD12864_Example/RD_LCD12864.h
 01CE                   .dbfunc e waitForLCDReady _waitForLCDReady fV
 01CE           ;              a -> R16
                        .even
 01CE           _waitForLCDReady::
 01CE                   .dbline -1
 01CE                   .dbline 96
 01CE                   .dbline 107
 01CE 0027              clr R16
 01D0                   .dbline 108
 01D0 02C0              xjmp L27
 01D2           L24:
 01D2                   .dbline 109
 01D2                   .dbline 110
 01D2 0000              nop
 01D4                   .dbline 111
 01D4           L25:
 01D4                   .dbline 108
 01D4 0395              inc R16
 01D6           L27:
 01D6                   .dbline 108
 01D6 0130              cpi R16,1
 01D8 E0F3              brlo L24
 01DA                   .dbline -2
 01DA           L23:
 01DA                   .dbline 0 ; func end
 01DA 0895              ret
 01DC                   .dbsym r a 16 c
 01DC                   .dbend
 01DC                   .dbfunc e sendDataToLCD _sendDataToLCD fV
 01DC           ;           Data -> R20
                        .even
 01DC           _sendDataToLCD::
 01DC 0E940000          xcall push_gset1
 01E0 402F              mov R20,R16
 01E2                   .dbline -1
 01E2                   .dbline 121
 01E2                   .dbline 122
 01E2 F5DF              xcall _waitForLCDReady
 01E4                   .dbline 125

⌨️ 快捷键说明

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