📄 12864_example.lis
字号:
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 + -