📄 zlg7290_avr.lis
字号:
00B2 0C2D mov R16,R12
00B4 D0DF xcall _TWI_writeB
00B6 .dbline 110
00B6 ; 功能:测试下载数据功能
00B6 042F mov R16,R20
00B8 CEDF xcall _TWI_writeB
00BA .dbline 111
00BA ; */
00BA 41E0 ldi R20,1
00BC 06C0 xjmp L32
00BE L29:
00BE .dbline 112
00BE .dbline 115
00BE FB01 movw R30,R22
00C0 0081 ldd R16,z+0
00C2 C9DF xcall _TWI_writeB
00C4 .dbline 116
00C4 6F5F subi R22,255 ; offset = 1
00C6 7F4F sbci R23,255
00C8 .dbline 117
00C8 L30:
00C8 .dbline 111
00C8 4395 inc R20
00CA L32:
00CA .dbline 111
00CA A416 cp R10,R20
00CC C0F7 brsh L29
00CE .dbline 118
00CE ; void Test_Download()
00CE ; {
00CE ; uchar x;
00CE ; uchar dp;
00CE ; uchar f;
00CE ; uchar dat;
00CE ; //点亮所有数码管
00CE BFDF xcall _TWI_stop
00D0 .dbline 119
00D0 ; dp = 1;
00D0 00E5 ldi R16,80
00D2 10E0 ldi R17,0
00D4 95DF xcall _delay
00D6 .dbline -2
00D6 .dbline 120
00D6 ; f= 0;
00D6 L28:
00D6 0E940000 xcall pop_gset4
00DA .dbline 0 ; func end
00DA 0895 ret
00DC .dbsym r i 20 c
00DC .dbsym r arr 22 pc
00DC .dbsym r n 10 c
00DC .dbsym r addr 20 c
00DC .dbsym r devadd 12 c
00DC .dbend
00DC .dbfunc e TWI_write _TWI_write fc
00DC ; n_tmp -> R14
00DC ; arr -> R20,R21
00DC ; n -> R22
00DC ; addr -> R10
00DC ; devadd -> R12
.even
00DC _TWI_write::
00DC 0E940000 xcall push_gset5
00E0 A22E mov R10,R18
00E2 C02E mov R12,R16
00E4 2497 sbiw R28,4
00E6 6E85 ldd R22,y+14
00E8 4889 ldd R20,y+16
00EA 5989 ldd R21,y+17
00EC .dbline -1
00EC .dbline 138
00EC ; dat = 8;
00EC ; for ( x=0; x<8; x++ )
00EC ; {
00EC ; ZLG7290_Download(x,dp,f,dat);
00EC ; }
00EC ; delay1(100);
00EC ; //依次显示所有字型
00EC ; dp = 0;
00EC ; f = 0;
00EC ; for ( dat=0; dat<32; dat++ )
00EC ; {
00EC ; for ( x=0; x<8; x++ )
00EC ; {
00EC ; ZLG7290_Download(x,dp,f,dat);
00EC ; }
00EC ; delay1(50);
00EC ; }
00EC ; }
00EC .dbline 140
00EC ;
00EC ; /*
00EC 8A2D mov R24,R10
00EE 9927 clr R25
00F0 8770 andi R24,7
00F2 9070 andi R25,0
00F4 98E0 ldi R25,8
00F6 E92E mov R14,R25
00F8 E81A sub R14,R24
00FA .dbline 141
00FA ; 函数:Test_ScanNum()
00FA E616 cp R14,R22
00FC E0F4 brsh L37
00FE EE20 tst R14
0100 D1F0 breq L37
0102 .dbline 142
0102 ; 功能:测试不同扫描位数
0102 .dbline 143
0102 ; 说明:扫描位数越少,数码管就越亮
0102 4A83 std y+2,R20
0104 5B83 std y+3,R21
0106 E882 std y+0,R14
0108 2A2D mov R18,R10
010A 0C2D mov R16,R12
010C CADF xcall _TWI_page_write
010E .dbline 144
010E ; */
010E AE0C add R10,R14
0110 .dbline 145
0110 ; void Test_ScanNum()
0110 6E19 sub R22,R14
0112 .dbline 146
0112 ; {
0112 2E2C mov R2,R14
0114 3324 clr R3
0116 420D add R20,R2
0118 531D adc R21,R3
011A .dbline 147
011A ; uchar x;
011A 0DC0 xjmp L37
011C L36:
011C .dbline 149
011C .dbline 150
011C 4A83 std y+2,R20
011E 5B83 std y+3,R21
0120 88E0 ldi R24,8
0122 8883 std y+0,R24
0124 2A2D mov R18,R10
0126 0C2D mov R16,R12
0128 BCDF xcall _TWI_page_write
012A .dbline 151
012A 8A2D mov R24,R10
012C 885F subi R24,248 ; addi 8
012E A82E mov R10,R24
0130 .dbline 152
0130 6850 subi R22,8
0132 .dbline 153
0132 485F subi R20,248 ; offset = 8
0134 5F4F sbci R21,255
0136 .dbline 154
0136 L37:
0136 .dbline 148
0136 6830 cpi R22,8
0138 88F7 brsh L36
013A .dbline 155
013A 6623 tst R22
013C 31F0 breq L39
013E .dbline 156
013E 4A83 std y+2,R20
0140 5B83 std y+3,R21
0142 6883 std y+0,R22
0144 2A2D mov R18,R10
0146 0C2D mov R16,R12
0148 ACDF xcall _TWI_page_write
014A L39:
014A .dbline -2
014A .dbline 157
014A ; for ( x=0; x<8; x++ )
014A ; {
014A ; ZLG7290_Download(x,1,0,8);
014A ; }
014A ; delay1(100);
014A ; for ( x=0; x<8; x++ )
014A ; {
014A ; ZLG7290_WriteReg(ZLG7290_ScanNum,x);
014A ; delay(100);
014A ; }
014A L33:
014A 2496 adiw R28,4
014C 0E940000 xcall pop_gset5
0150 .dbline 0 ; func end
0150 0895 ret
0152 .dbsym r n_tmp 14 c
0152 .dbsym r arr 20 pc
0152 .dbsym r n 22 c
0152 .dbsym r addr 10 c
0152 .dbsym r devadd 12 c
0152 .dbend
0152 .dbfunc e TWI_read _TWI_read fc
0152 ; i -> R20
0152 ; arr -> R22,R23
0152 ; n -> R10
0152 ; addr -> R12
0152 ; devadd -> R20
.even
0152 _TWI_read::
0152 0E940000 xcall push_gset4
0156 C22E mov R12,R18
0158 402F mov R20,R16
015A A884 ldd R10,y+8
015C 6A85 ldd R22,y+10
015E 7B85 ldd R23,y+11
0160 .dbline -1
0160 .dbline 175
0160 ; }
0160 ;
0160 ; /*
0160 ; 函数:Test_Flash()
0160 ; 功能:测试闪烁功能
0160 ; */
0160 ; void Test_Flash()
0160 ; {
0160 ; uchar dat = 0x01;
0160 ; uchar x;
0160 ; //显示01234567
0160 ; for ( x=0; x<8; x++ )
0160 ; {
0160 ; ZLG7290_Download(x,0,0,x);
0160 ; }
0160 ; //设置闪烁控制寄存器
0160 ; ZLG7290_WriteReg(ZLG7290_FlashOnOff,0x11);
0160 ; //闪烁演示
0160 .dbline 177
0160 ; for ( x=0; x<8; x++ )
0160 ; {
0160 6DDF xcall _TWI_start
0162 .dbline 178
0162 ; ZLG7290_Flash(dat);
0162 042F mov R16,R20
0164 78DF xcall _TWI_writeB
0166 .dbline 179
0166 ; dat <<= 1;
0166 0C2D mov R16,R12
0168 76DF xcall _TWI_writeB
016A .dbline 180
016A ; delay1(300);
016A 68DF xcall _TWI_start
016C .dbline 181
016C ; }
016C 042F mov R16,R20
016E 0160 ori R16,1
0170 72DF xcall _TWI_writeB
0172 .dbline 182
0172 ; //数码管的8个位一起闪烁
0172 41E0 ldi R20,1
0174 07C0 xjmp L45
0176 L42:
0176 .dbline 183
0176 .dbline 184
0176 01E0 ldi R16,1
0178 84DF xcall _TWI_readB
017A FB01 movw R30,R22
017C 0083 std z+0,R16
017E .dbline 185
017E 6F5F subi R22,255 ; offset = 1
0180 7F4F sbci R23,255
0182 .dbline 186
0182 L43:
0182 .dbline 182
0182 4395 inc R20
0184 L45:
0184 .dbline 182
0184 8A2D mov R24,R10
0186 8150 subi R24,1
0188 8417 cp R24,R20
018A A8F7 brsh L42
018C .dbline 187
018C ; ZLG7290_Flash(0xFF);
018C ; delay1(350);
018C ; //停止闪烁
018C ; ZLG7290_Flash(0x00);
018C ; delay1(50);
018C 0027 clr R16
018E 79DF xcall _TWI_readB
0190 FB01 movw R30,R22
0192 0083 std z+0,R16
0194 .dbline 188
0194 ; }
0194 5CDF xcall _TWI_stop
0196 .dbline -2
0196 .dbline 189
0196 ;
0196 L41:
0196 0E940000 xcall pop_gset4
019A .dbline 0 ; func end
019A 0895 ret
019C .dbsym r i 20 c
019C .dbsym r arr 22 pc
019C .dbsym r n 10 c
019C .dbsym r addr 12 c
019C .dbsym r devadd 20 c
019C .dbend
019C .dbfile E:\PQ-1A\我的AVR\zlg7290/zlg7290.c
019C .dbfunc e ZLG7290_WriteReg _ZLG7290_WriteReg fV
019C ; dat -> y+6
019C ; RegAddr -> R20
.even
019C _ZLG7290_WriteReg::
019C 3A93 st -y,r19
019E 2A93 st -y,r18
01A0 0E940000 xcall push_gset1
01A4 402F mov R20,R16
01A6 2497 sbiw R28,4
01A8 .dbline -1
01A8 .dbline 23
01A8 .dbline 24
01A8 CE01 movw R24,R28
01AA 0696 adiw R24,6
01AC 8A83 std y+2,R24
01AE 9B83 std y+3,R25
01B0 81E0 ldi R24,1
01B2 8883 std y+0,R24
01B4 242F mov R18,R20
01B6 00E7 ldi R16,112
01B8 91DF xcall _TWI_write
01BA .dbline -2
01BA .dbline 25
01BA L46:
01BA 2496 adiw R28,4
01BC 0E940000 xcall pop_gset1
01C0 2296 adiw R28,2
01C2 .dbline 0 ; func end
01C2 0895 ret
01C4 .dbsym l dat 6 I
01C4 .dbsym l dat 6 c
01C4 .dbsym r RegAddr 20 c
01C4 .dbend
01C4 .dbfunc e ZLG7290_ReadReg _ZLG7290_ReadReg fV
01C4 ; dat -> R22,R23
01C4 ; RegAddr -> R20
.even
01C4 _ZLG7290_ReadReg::
01C4 0E940000 xcall push_gset2
01C8 B901 movw R22,R18
01CA 402F mov R20,R16
01CC 2497 sbiw R28,4
01CE .dbline -1
01CE .dbline 38
01CE .dbline 39
01CE 6A83 std y+2,R22
01D0 7B83 std y+3,R23
01D2 81E0 ldi R24,1
01D4 8883 std y+0,R24
01D6 242F mov R18,R20
01D8 00E7 ldi R16,112
01DA BBDF xcall _TWI_read
01DC .dbline -2
01DC .dbline 40
01DC L47:
01DC 2496 adiw R28,4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -