📄 ch452ldriver.lis
字号:
0066 02E3 ldi R16,50
0068 10E0 ldi R17,0
006A .dbline -2
006A L9:
006A .dbline 0 ; func end
006A 0895 ret
006C .dbend
006C .dbfunc e Display_Ch452lBCD _Display_Ch452lBCD fV
006C ; i -> <dead>
006C ; p -> R20,R21
006C ; n -> R22
.even
006C _Display_Ch452lBCD::
006C 00D0 rcall push_gset2
006E A901 movw R20,R18
0070 602F mov R22,R16
0072 .dbline -1
0072 .dbline 162
0072 ; }
0072 ;
0072 ; /***************************************************************************
0072 ; *函数名:
0072 ; *功能:
0072 ; *入口参数:
0072 ; n 要显示的数码管的位数
0072 ; *p 要显示的数码管的值,BCD码,在显示前将要显示的数码管的BCD码存入该数组
0072 ; *出口参数:
0072 ; ****************************************************************************/
0072 ; void Display_Ch452lBCD(unsigned char n,unsigned char *p)
0072 ; {
0072 .dbline 164
0072 ; unsigned char i;
0072 ; switch(n)
0072 7727 clr R23
0074 6130 cpi R22,1
0076 E0E0 ldi R30,0
0078 7E07 cpc R23,R30
007A 01F1 breq L14
007C 6230 cpi R22,2
007E E0E0 ldi R30,0
0080 7E07 cpc R23,R30
0082 19F1 breq L15
0084 6330 cpi R22,3
0086 E0E0 ldi R30,0
0088 7E07 cpc R23,R30
008A 31F1 breq L16
008C 6430 cpi R22,4
008E E0E0 ldi R30,0
0090 7E07 cpc R23,R30
0092 49F1 breq L17
0094 6530 cpi R22,5
0096 E0E0 ldi R30,0
0098 7E07 cpc R23,R30
009A 61F1 breq L18
009C 6630 cpi R22,6
009E E0E0 ldi R30,0
00A0 7E07 cpc R23,R30
00A2 09F4 brne X1
00A4 2EC0 rjmp L19
00A6 X1:
00A6 6730 cpi R22,7
00A8 E0E0 ldi R30,0
00AA 7E07 cpc R23,R30
00AC 09F4 brne X2
00AE 30C0 rjmp L20
00B0 X2:
00B0 6830 cpi R22,8
00B2 E0E0 ldi R30,0
00B4 7E07 cpc R23,R30
00B6 09F4 brne X3
00B8 32C0 rjmp L21
00BA X3:
00BA 37C0 rjmp L12
00BC X0:
00BC .dbline 165
00BC ; {
00BC L14:
00BC .dbline 167
00BC ; case(1):
00BC ; Ch452l_Writecommand(0x0590);//1位显示,BCD译码
00BC 00E9 ldi R16,1424
00BE 15E0 ldi R17,5
00C0 ADDF rcall _Ch452l_Writecommand
00C2 .dbline 168
00C2 ; Delay_Nus(3);
00C2 03E0 ldi R16,3
00C4 10E0 ldi R17,0
00C6 00D0 rcall _Delay_Nus
00C8 .dbline 169
00C8 ; break;
00C8 30C0 rjmp L12
00CA L15:
00CA .dbline 171
00CA ; case(2):
00CA ; Ch452l_Writecommand(0x05a0);//2位显示,BCD译码
00CA 00EA ldi R16,1440
00CC 15E0 ldi R17,5
00CE A6DF rcall _Ch452l_Writecommand
00D0 .dbline 172
00D0 ; Delay_Nus(3);
00D0 03E0 ldi R16,3
00D2 10E0 ldi R17,0
00D4 00D0 rcall _Delay_Nus
00D6 .dbline 173
00D6 ; break;
00D6 29C0 rjmp L12
00D8 L16:
00D8 .dbline 175
00D8 ; case(3):
00D8 ; Ch452l_Writecommand(0x05b0);//3位显示,BCD译码
00D8 00EB ldi R16,1456
00DA 15E0 ldi R17,5
00DC 9FDF rcall _Ch452l_Writecommand
00DE .dbline 176
00DE ; Delay_Nus(3);
00DE 03E0 ldi R16,3
00E0 10E0 ldi R17,0
00E2 00D0 rcall _Delay_Nus
00E4 .dbline 177
00E4 ; break;
00E4 22C0 rjmp L12
00E6 L17:
00E6 .dbline 179
00E6 ; case(4):
00E6 ; Ch452l_Writecommand(0x05c0);//4位显示,BCD译码
00E6 00EC ldi R16,1472
00E8 15E0 ldi R17,5
00EA 98DF rcall _Ch452l_Writecommand
00EC .dbline 180
00EC ; Delay_Nus(3);
00EC 03E0 ldi R16,3
00EE 10E0 ldi R17,0
00F0 00D0 rcall _Delay_Nus
00F2 .dbline 181
00F2 ; break;
00F2 1BC0 rjmp L12
00F4 L18:
00F4 .dbline 183
00F4 ; case(5):
00F4 ; Ch452l_Writecommand(0x05d0);//5位显示,BCD译码
00F4 00ED ldi R16,1488
00F6 15E0 ldi R17,5
00F8 91DF rcall _Ch452l_Writecommand
00FA .dbline 184
00FA ; Delay_Nus(3);
00FA 03E0 ldi R16,3
00FC 10E0 ldi R17,0
00FE 00D0 rcall _Delay_Nus
0100 .dbline 185
0100 ; break;
0100 14C0 rjmp L12
0102 L19:
0102 .dbline 187
0102 ; case(6):
0102 ; Ch452l_Writecommand(0x05e0);//6位显示,BCD译码
0102 00EE ldi R16,1504
0104 15E0 ldi R17,5
0106 8ADF rcall _Ch452l_Writecommand
0108 .dbline 188
0108 ; Delay_Nus(3);
0108 03E0 ldi R16,3
010A 10E0 ldi R17,0
010C 00D0 rcall _Delay_Nus
010E .dbline 189
010E ; break;
010E 0DC0 rjmp L12
0110 L20:
0110 .dbline 191
0110 ; case(7):
0110 ; Ch452l_Writecommand(0x05f0);//7位显示,BCD译码
0110 00EF ldi R16,1520
0112 15E0 ldi R17,5
0114 83DF rcall _Ch452l_Writecommand
0116 .dbline 192
0116 ; Delay_Nus(3);
0116 03E0 ldi R16,3
0118 10E0 ldi R17,0
011A 00D0 rcall _Delay_Nus
011C .dbline 193
011C ; break;
011C 06C0 rjmp L12
011E L21:
011E .dbline 195
011E ; case(8):
011E ; Ch452l_Writecommand(0x0580);//8位显示,BCD译码
011E 00E8 ldi R16,1408
0120 15E0 ldi R17,5
0122 7CDF rcall _Ch452l_Writecommand
0124 .dbline 196
0124 ; Delay_Nus(3);
0124 03E0 ldi R16,3
0126 10E0 ldi R17,0
0128 00D0 rcall _Delay_Nus
012A .dbline 197
012A ; break;
012A .dbline 199
012A ; default:
012A ; break;
012A L12:
012A .dbline 201
012A ; }
012A ; Ch452l_Writecommand(CH452L_DIG7 | p[7]);
012A FA01 movw R30,R20
012C 0781 ldd R16,z+7
012E 1127 clr R17
0130 1F60 ori R17,15
0132 74DF rcall _Ch452l_Writecommand
0134 .dbline 202
0134 ; Ch452l_Writecommand(CH452L_DIG6 | p[6]);
0134 FA01 movw R30,R20
0136 0681 ldd R16,z+6
0138 1127 clr R17
013A 1E60 ori R17,14
013C 6FDF rcall _Ch452l_Writecommand
013E .dbline 203
013E ; Ch452l_Writecommand(CH452L_DIG5 | p[5]);
013E FA01 movw R30,R20
0140 0581 ldd R16,z+5
0142 1127 clr R17
0144 1D60 ori R17,13
0146 6ADF rcall _Ch452l_Writecommand
0148 .dbline 204
0148 ; Ch452l_Writecommand(CH452L_DIG4 | p[4]);
0148 FA01 movw R30,R20
014A 0481 ldd R16,z+4
014C 1127 clr R17
014E 1C60 ori R17,12
0150 65DF rcall _Ch452l_Writecommand
0152 .dbline 205
0152 ; Ch452l_Writecommand(CH452L_DIG3 | p[3]);
0152 FA01 movw R30,R20
0154 0381 ldd R16,z+3
0156 1127 clr R17
0158 1B60 ori R17,11
015A 60DF rcall _Ch452l_Writecommand
015C .dbline 206
015C ; Ch452l_Writecommand(CH452L_DIG2 | p[2]);
015C FA01 movw R30,R20
015E 0281 ldd R16,z+2
0160 1127 clr R17
0162 1A60 ori R17,10
0164 5BDF rcall _Ch452l_Writecommand
0166 .dbline 207
0166 ; Ch452l_Writecommand(CH452L_DIG1 | p[1]);
0166 FA01 movw R30,R20
0168 0181 ldd R16,z+1
016A 1127 clr R17
016C 1960 ori R17,9
016E 56DF rcall _Ch452l_Writecommand
0170 .dbline 208
0170 ; Ch452l_Writecommand(CH452L_DIG0 | p[0]);
0170 FA01 movw R30,R20
0172 0081 ldd R16,z+0
0174 1127 clr R17
0176 1860 ori R17,8
0178 51DF rcall _Ch452l_Writecommand
017A .dbline 209
017A ; Ch452l_Writecommand(CH452L_DIG0 | p[0]);
017A FA01 movw R30,R20
017C 0081 ldd R16,z+0
017E 1127 clr R17
0180 1860 ori R17,8
0182 4CDF rcall _Ch452l_Writecommand
0184 .dbline -2
0184 L10:
0184 00D0 rcall pop_gset2
0186 .dbline 0 ; func end
0186 0895 ret
0188 .dbsym l i 1 c
0188 .dbsym r p 20 pc
0188 .dbsym r n 22 c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -