📄 new_disp.lis
字号:
00AA .dbfunc e SENDCOMB _SENDCOMB fV
00AA ; adr -> R10
.even
00AA _SENDCOMB::
00AA 00D0 rcall push_gset3x
00AC A02E mov R10,R16
00AE .dbline -1
00AE .dbline 98
00AE ; }
00AE ;
00AE ; void SENDCOMB(unsigned char adr)
00AE ; {
00AE .dbline 99
00AE ; Start_spi();
00AE E1DF rcall _Start_spi
00B0 .dbline 100
00B0 ; SendBit(0XA0,3); /*发送写显示RAM 命令ID=101 */
00B0 23E0 ldi R18,3
00B2 00EA ldi R16,160
00B4 C4DF rcall _SendBit
00B6 .dbline 101
00B6 ; SendBit(adr,6); /*指定写入地址*/
00B6 26E0 ldi R18,6
00B8 0A2D mov R16,R10
00BA C1DF rcall _SendBit
00BC .dbline -2
00BC L20:
00BC 00D0 rcall pop_gset3x
00BE .dbline 0 ; func end
00BE 0895 ret
00C0 .dbsym r adr 10 c
00C0 .dbend
00C0 .dbfunc e disp_init _disp_init fV
00C0 ; i -> R10
.even
00C0 _disp_init::
00C0 00D0 rcall push_gset3x
00C2 .dbline -1
00C2 .dbline 104
00C2 ; }
00C2 ; void disp_init(void)
00C2 ; {
00C2 .dbline 106
00C2 ; unsigned char i;
00C2 ; SENDCOMA(0X0a); /*禁止WDT溢出标志输出*/
00C2 0AE0 ldi R16,10
00C4 E8DF rcall _SENDCOMA
00C6 .dbline 107
00C6 ; SENDCOMA(0X52); //设置偏压,背极数 定义1/3 偏压4背极
00C6 02E5 ldi R16,82
00C8 E6DF rcall _SENDCOMA
00CA .dbline 108
00CA ; SENDCOMA(0X30); //*使用内部256KRC 振荡器*
00CA 00E3 ldi R16,48
00CC E4DF rcall _SENDCOMA
00CE .dbline 109
00CE ; SENDCOMA(0X02); //*启动振荡器*
00CE 02E0 ldi R16,2
00D0 E2DF rcall _SENDCOMA
00D2 .dbline 110
00D2 ; SENDCOMA(0X06); //LCDON
00D2 06E0 ldi R16,6
00D4 E0DF rcall _SENDCOMA
00D6 .dbline 111
00D6 ; SENDCOMA(0X08);//timer dis
00D6 08E0 ldi R16,8
00D8 DEDF rcall _SENDCOMA
00DA .dbline 112
00DA ; SENDCOMB(0x00); //*把数据指针指回0 接着写入数据*
00DA 0027 clr R16
00DC E6DF rcall _SENDCOMB
00DE .dbline 113
00DE ; for(i=0;i<15;i++) /*写入16 字节数据*/
00DE AA24 clr R10
00E0 03C0 rjmp L25
00E2 L22:
00E2 .dbline 114
00E2 .dbline 115
00E2 0027 clr R16
00E4 D1DF rcall _SendByte
00E6 .dbline 116
00E6 L23:
00E6 .dbline 113
00E6 A394 inc R10
00E8 L25:
00E8 .dbline 113
00E8 8A2D mov R24,R10
00EA 8F30 cpi R24,15
00EC D0F3 brlo L22
00EE .dbline -2
00EE L21:
00EE 00D0 rcall pop_gset3x
00F0 .dbline 0 ; func end
00F0 0895 ret
00F2 .dbsym r i 10 c
00F2 .dbend
00F2 .dbfunc e disp_off _disp_off fV
.even
00F2 _disp_off::
00F2 .dbline -1
00F2 .dbline 119
00F2 ; {
00F2 ; SendByte(0x0); /*写入数据*/
00F2 ; }
00F2 ; }
00F2 ; void disp_off(void)
00F2 ; {
00F2 .dbline 120
00F2 ; SENDCOMA(0X04);//lcdoff
00F2 04E0 ldi R16,4
00F4 D0DF rcall _SENDCOMA
00F6 .dbline 121
00F6 ; SENDCOMA(0X00);//sys dis
00F6 0027 clr R16
00F8 CEDF rcall _SENDCOMA
00FA .dbline -2
00FA L26:
00FA .dbline 0 ; func end
00FA 0895 ret
00FC .dbend
00FC .dbfunc e disp _disp fV
00FC ; dat -> R10
00FC ; add -> R12
.even
00FC _disp::
00FC 00D0 rcall push_gset5x
00FE A22E mov R10,R18
0100 C02E mov R12,R16
0102 .dbline -1
0102 .dbline 125
0102 ; //SENDCOMA(0X0c);//timer en
0102 ; }
0102 ; void disp(char add,char dat)
0102 ; {
0102 .dbline 126
0102 ; switch(add)
0102 EC2C mov R14,R12
0104 FF24 clr R15
0106 C701 movw R24,R14
0108 8130 cpi R24,1
010A E0E0 ldi R30,0
010C 9E07 cpc R25,R30
010E 09F1 breq L31
0110 8230 cpi R24,2
0112 E0E0 ldi R30,0
0114 9E07 cpc R25,R30
0116 01F1 breq L32
0118 8330 cpi R24,3
011A E0E0 ldi R30,0
011C 9E07 cpc R25,R30
011E F9F0 breq L33
0120 8430 cpi R24,4
0122 E0E0 ldi R30,0
0124 9E07 cpc R25,R30
0126 F1F0 breq L34
0128 8530 cpi R24,5
012A E0E0 ldi R30,0
012C 9E07 cpc R25,R30
012E E9F0 breq L35
0130 8630 cpi R24,6
0132 E0E0 ldi R30,0
0134 9E07 cpc R25,R30
0136 E1F0 breq L36
0138 8730 cpi R24,7
013A E0E0 ldi R30,0
013C 9E07 cpc R25,R30
013E D9F0 breq L37
0140 8830 cpi R24,8
0142 E0E0 ldi R30,0
0144 9E07 cpc R25,R30
0146 D1F0 breq L38
0148 8930 cpi R24,9
014A E0E0 ldi R30,0
014C 9E07 cpc R25,R30
014E C9F0 breq L39
0150 1AC0 rjmp L28
0152 X1:
0152 .dbline 127
0152 ; {
0152 L31:
0152 .dbline 128
0152 ; case 1: add=a1;break;
0152 84E0 ldi R24,4
0154 C82E mov R12,R24
0156 .dbline 128
0156 17C0 rjmp L29
0158 L32:
0158 .dbline 129
0158 ; case 2: add=a2;break;
0158 8CE0 ldi R24,12
015A C82E mov R12,R24
015C .dbline 129
015C 14C0 rjmp L29
015E L33:
015E .dbline 130
015E ; case 3: add=a3;break;
015E 84E1 ldi R24,20
0160 C82E mov R12,R24
0162 .dbline 130
0162 11C0 rjmp L29
0164 L34:
0164 .dbline 131
0164 ; case 4: add=a4;break;
0164 8CE1 ldi R24,28
0166 C82E mov R12,R24
0168 .dbline 131
0168 0EC0 rjmp L29
016A L35:
016A .dbline 132
016A ; case 5: add=a5;break;
016A 84E2 ldi R24,36
016C C82E mov R12,R24
016E .dbline 132
016E 0BC0 rjmp L29
0170 L36:
0170 .dbline 133
0170 ; case 6: add=a6;break;
0170 8CE2 ldi R24,44
0172 C82E mov R12,R24
0174 .dbline 133
0174 08C0 rjmp L29
0176 L37:
0176 .dbline 134
0176 ; case 7: add=a7;break;
0176 84E3 ldi R24,52
0178 C82E mov R12,R24
017A .dbline 134
017A 05C0 rjmp L29
017C L38:
017C .dbline 135
017C ; case 8: add=a8;break;
017C 8CE3 ldi R24,60
017E C82E mov R12,R24
0180 .dbline 135
0180 02C0 rjmp L29
0182 L39:
0182 .dbline 136
0182 ; case 9: add=a9;break;
0182 84E4 ldi R24,68
0184 C82E mov R12,R24
0186 .dbline 136
0186 L28:
0186 L29:
0186 .dbline 138
0186 ; }
0186 ; SENDCOMB(add); //write address
0186 0C2D mov R16,R12
0188 90DF rcall _SENDCOMB
018A .dbline 139
018A ; SendByte(S[dat]); //write data
018A 80E0 ldi R24,<_S
018C 90E0 ldi R25,>_S
018E EA2D mov R30,R10
0190 FF27 clr R31
0192 E80F add R30,R24
0194 F91F adc R31,R25
0196 0491 lpm R16,Z
0198 77DF rcall _SendByte
019A .dbline -2
019A L27:
019A 00D0 rcall pop_gset5x
019C .dbline 0 ; func end
019C 0895 ret
019E .dbsym r dat 10 c
019E .dbsym r add 12 c
019E .dbend
019E .dbfunc e main _main fV
019E ; j -> R10
019E ; i -> R12
.even
019E _main::
019E .dbline -1
019E .dbline 143
019E ; //SendByte(S[dat]); //write data
019E ; }
019E ; void main(void)
019E ; {
019E .dbline 145
019E ; char i,j;
019E ; port_init();
019E 30DF rcall _port_init
01A0 .dbline 146
01A0 ; disp_init();
01A0 8FDF rcall _disp_init
01A2 .dbline 147
01A2 CC24 clr R12
01A4 C394 inc R12
01A6 AA24 clr R10
01A8 A394 inc R10
01AA 05C0 rjmp L44
01AC L41:
01AC .dbline 147
01AC 2A2D mov R18,R10
01AE 0C2D mov R16,R12
01B0 A5DF rcall _disp
01B2 L42:
01B2 .dbline 147
01B2 C394 inc R12
01B4 A394 inc R10
01B6 L44:
01B6 .dbline 147
01B6 ; for(i=1,j=1;i<10;i++,j++) disp(i,j);
01B6 8C2D mov R24,R12
01B8 8A30 cpi R24,10
01BA C0F3 brlo L41
01BC L45:
01BC .dbline 149
01BC L46:
01BC .dbline 149
01BC FFCF rjmp L45
01BE X2:
01BE .dbline -2
01BE L40:
01BE .dbline 0 ; func end
01BE 0895 ret
01C0 .dbsym r j 10 c
01C0 .dbsym r i 12 c
01C0 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -