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

📄 no.lis

📁 HD7279的程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02BC           ; //      译码方式0及左移指令测试 
 02BC           ; //********************************************* 
 02BC           ;       for (j=0;j<16;j++) 
 02BC 2224              clr R2
 02BE 20920800          sts _j,R2
 02C2 0EC0              xjmp L79
 02C4           L76:
 02C4                   .dbline 203
 02C4                   .dbline 204
 02C4 01EA              ldi R16,161
 02C6 82D0              xcall _send_byte
 02C8                   .dbline 205
 02C8 20910800          lds R18,_j
 02CC 00E8              ldi R16,128
 02CE 6AD0              xcall _write7279
 02D0                   .dbline 206
 02D0 02E3              ldi R16,50
 02D2 10E0              ldi R17,0
 02D4 D7D0              xcall _dely_ms
 02D6                   .dbline 207
 02D6           L77:
 02D6                   .dbline 202
 02D6 80910800          lds R24,_j
 02DA 8F5F              subi R24,255    ; addi 1
 02DC 80930800          sts _j,R24
 02E0           L79:
 02E0                   .dbline 202
 02E0 80910800          lds R24,_j
 02E4 8031              cpi R24,16
 02E6 70F3              brlo L76
 02E8                   .dbline 208
 02E8           ;       { 
 02E8           ;          send_byte(RTL_UNCYL);      // 不循环左移指令 
 02E8           ;          write7279(DECODE0,j);      // 译码方式0指令,显示在第1位 
 02E8           ;          dely_ms(50); 
 02E8           ;       } 
 02E8           ;       dely_ms(150); 
 02E8 06E9              ldi R16,150
 02EA 10E0              ldi R17,0
 02EC CBD0              xcall _dely_ms
 02EE                   .dbline 209
 02EE           ;       send_byte(CMD_RESET); 
 02EE 04EA              ldi R16,164
 02F0 6DD0              xcall _send_byte
 02F2                   .dbline 214
 02F2           ; 
 02F2           ; //********************************************* 
 02F2           ; //      译码方式1及右移指令测试 
 02F2           ; //********************************************* 
 02F2           ;       for (j=0;j<16;j++) 
 02F2 2224              clr R2
 02F4 20920800          sts _j,R2
 02F8 0EC0              xjmp L83
 02FA           L80:
 02FA                   .dbline 215
 02FA                   .dbline 216
 02FA 00EA              ldi R16,160
 02FC 67D0              xcall _send_byte
 02FE                   .dbline 217
 02FE 20910800          lds R18,_j
 0302 0FEC              ldi R16,207
 0304 4FD0              xcall _write7279
 0306                   .dbline 218
 0306 02E3              ldi R16,50
 0308 10E0              ldi R17,0
 030A BCD0              xcall _dely_ms
 030C                   .dbline 219
 030C           L81:
 030C                   .dbline 214
 030C 80910800          lds R24,_j
 0310 8F5F              subi R24,255    ; addi 1
 0312 80930800          sts _j,R24
 0316           L83:
 0316                   .dbline 214
 0316 80910800          lds R24,_j
 031A 8031              cpi R24,16
 031C 70F3              brlo L80
 031E                   .dbline 220
 031E           ;       { 
 031E           ;          send_byte(RTR_UNCYL);      // 不循环左移指令 
 031E           ;          write7279(DECODE1+7,j);      // 译码方式0指令,显示在第8位 
 031E           ;          dely_ms(50); 
 031E           ;       } 
 031E           ;       dely_ms(150); 
 031E 06E9              ldi R16,150
 0320 10E0              ldi R17,0
 0322 B0D0              xcall _dely_ms
 0324                   .dbline 225
 0324           ; 
 0324           ; //********************************************* 
 0324           ; //              消隐指令测试 
 0324           ; //********************************************* 
 0324           ;       k=0xff; 
 0324 8FEF              ldi R24,255
 0326 80930700          sts _k,R24
 032A                   .dbline 226
 032A           ;       for (j=0;j<6;j++) 
 032A 2224              clr R2
 032C 20920800          sts _j,R2
 0330 10C0              xjmp L87
 0332           L84:
 0332                   .dbline 227
 0332                   .dbline 228
 0332 20900700          lds R2,_k
 0336 2694              lsr R2
 0338 20920700          sts _k,R2
 033C                   .dbline 229
 033C 222D              mov R18,R2
 033E 08E9              ldi R16,152
 0340 31D0              xcall _write7279
 0342                   .dbline 230
 0342 04E6              ldi R16,100
 0344 10E0              ldi R17,0
 0346 9ED0              xcall _dely_ms
 0348                   .dbline 231
 0348           L85:
 0348                   .dbline 226
 0348 80910800          lds R24,_j
 034C 8F5F              subi R24,255    ; addi 1
 034E 80930800          sts _j,R24
 0352           L87:
 0352                   .dbline 226
 0352 80910800          lds R24,_j
 0356 8630              cpi R24,6
 0358 60F3              brlo L84
 035A                   .dbline 232
 035A           ;       { 
 035A           ;          k=k/2; 
 035A           ;          write7279(ACTCTL,k);      // 每隔一秒钟增加一个消隐位 
 035A           ;          dely_ms(100); 
 035A           ;       } 
 035A           ;       write7279(ACTCTL,0xff);         // 恢复8位显示 
 035A 2FEF              ldi R18,255
 035C 08E9              ldi R16,152
 035E 22D0              xcall _write7279
 0360                   .dbline 233
 0360           ;       dely_ms(100); 
 0360 04E6              ldi R16,100
 0362 10E0              ldi R17,0
 0364 8FD0              xcall _dely_ms
 0366                   .dbline 234
 0366           ;       send_byte(CMD_RESET);         // 清除显示 
 0366 04EA              ldi R16,164
 0368 31D0              xcall _send_byte
 036A                   .dbline 239
 036A           ; 
 036A           ; //********************************************** 
 036A           ; //         段点亮指令和段关闭指令 
 036A           ; //********************************************** 
 036A           ;       for (j=0;j<64;j++) 
 036A 2224              clr R2
 036C 20920800          sts _j,R2
 0370 11C0              xjmp L91
 0372           L88:
 0372                   .dbline 240
 0372                   .dbline 241
 0372 20910800          lds R18,_j
 0376 00EE              ldi R16,224
 0378 15D0              xcall _write7279
 037A                   .dbline 242
 037A 20910800          lds R18,_j
 037E 2150              subi R18,1
 0380 00EC              ldi R16,192
 0382 10D0              xcall _write7279
 0384                   .dbline 243
 0384 04E1              ldi R16,20
 0386 10E0              ldi R17,0
 0388 7DD0              xcall _dely_ms
 038A                   .dbline 244
 038A           L89:
 038A                   .dbline 239
 038A 80910800          lds R24,_j
 038E 8F5F              subi R24,255    ; addi 1
 0390 80930800          sts _j,R24
 0394           L91:
 0394                   .dbline 239
 0394 80910800          lds R24,_j
 0398 8034              cpi R24,64
 039A 58F3              brlo L88
 039C                   .dbline 245
 039C           L4:
 039C                   .dbline 83
 039C 40CE              xjmp L3
 039E           X0:
 039E                   .dbline 246
 039E           ;       { 
 039E           ;          write7279(SEGON,j);         // 将64个显示段逐个点亮 
 039E           ;          write7279(SEGOFF,j-1);      // 同时将前一个显示段关闭 
 039E           ;          dely_ms(20); 
 039E           ;       } 
 039E           ;    } 
 039E           ;    return 0;
 039E 0027              clr R16
 03A0 1127              clr R17
 03A2                   .dbline -2
 03A2           L2:
 03A2                   .dbline 0 ; func end
 03A2 0895              ret
 03A4                   .dbend
 03A4                   .dbfunc e write7279 _write7279 fV
 03A4           ;            dta -> R20
 03A4           ;            cmd -> R22
                        .even
 03A4           _write7279::
 03A4 0E940000          xcall push_gset2
 03A8 422F              mov R20,R18
 03AA 602F              mov R22,R16
 03AC                   .dbline -1
 03AC                   .dbline 250
 03AC           ; } 
 03AC           ; 
 03AC           ; void write7279(unsigned char cmd, unsigned char dta) 
 03AC           ; { 
 03AC                   .dbline 251
 03AC           ;    send_byte (cmd); 
 03AC 062F              mov R16,R22
 03AE 0ED0              xcall _send_byte
 03B0                   .dbline 252
 03B0           ;    send_byte (dta); 
 03B0 042F              mov R16,R20
 03B2 0CD0              xcall _send_byte
 03B4                   .dbline -2
 03B4                   .dbline 253
 03B4           ; } 
 03B4           L92:
 03B4 0E940000          xcall pop_gset2
 03B8                   .dbline 0 ; func end
 03B8 0895              ret
 03BA                   .dbsym r dta 20 c
 03BA                   .dbsym r cmd 22 c
 03BA                   .dbend
 03BA                   .dbfunc e read7279 _read7279 fc
 03BA           ;        command -> R20
                        .even
 03BA           _read7279::
 03BA 0E940000          xcall push_gset1
 03BE 402F              mov R20,R16
 03C0                   .dbline -1
 03C0                   .dbline 256
 03C0           ; 
 03C0           ; unsigned char read7279(unsigned char command) 
 03C0           ; { 
 03C0                   .dbline 257
 03C0           ;    send_byte(command); 
 03C0 042F              mov R16,R20
 03C2 04D0              xcall _send_byte
 03C4                   .dbline 258
 03C4           ;    return(receive_byte()); 
 03C4 1DD0              xcall _receive_byte
 03C6                   .dbline -2
 03C6           L93:
 03C6 0E940000          xcall pop_gset1
 03CA                   .dbline 0 ; func end
 03CA 0895              ret
 03CC                   .dbsym r command 20 c
 03CC                   .dbend
 03CC                   .dbfunc e send_byte _send_byte fV
 03CC           ;              i -> R20
 03CC           ;       out_byte -> R22
                        .even
 03CC           _send_byte::
 03CC 0E940000          xcall push_gset2
 03D0 602F              mov R22,R16
 03D2                   .dbline -1
 03D2                   .dbline 262
 03D2           ; } 
 03D2           ; 
 03D2           ; void send_byte(   unsigned char out_byte) 
 03D2           ; { 
 03D2                   .dbline 264
 03D2           ;    unsigned char i; 
 03D2           ;    HD7279_CS_L;
 03D2 C298              cbi 0x18,2
 03D4                   .dbline 265
 03D4           ;    long_delay(); 
 03D4 2FD0              xcall _long_delay
 03D6                   .dbline 266
 03D6           ;    for (i=0;i<8;i++) 
 03D6 4427              clr R20
 03D8 0DC0              xjmp L98
 03DA           L95:
 03DA                   .dbline 267
 03DA           ;    { 
 03DA                   .dbline 268
 03DA           ;       if (out_byte&0x80) 
 03DA 67FF              sbrs R22,7
 03DC 02C0              rjmp L99
 03DE                   .dbline 269
 03DE           ;       { 
 03DE                   .dbline 270
 03DE           ;          HD7279_DATA_H; 
 03DE C09A              sbi 0x18,0
 03E0                   .dbline 271
 03E0           ;       } 
 03E0 01C0              xjmp L100
 03E2           L99:
 03E2                   .dbline 273
 03E2           ;       else 
 03E2           ;       { 
 03E2                   .dbline 274
 03E2           ;          HD7279_DATA_L; 
 03E2 C098              cbi 0x18,0
 03E4                   .dbline 275
 03E4           ;       } 
 03E4           L100:
 03E4                   .dbline 276
 03E4 C19A              sbi 0x18,1
 03E6                   .dbline 277
 03E6 2CD0              xcall _short_delay
 03E8                   .dbline 278
 03E8 C198              cbi 0x18,1
 03EA                   .dbline 279
 03EA 2AD0              xcall _short_delay
 03EC                   .dbline 280
 03EC 82E0              ldi R24,2
 03EE 869F              mul R24,R22
 03F0 602D              mov R22,R0

⌨️ 快捷键说明

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