📄 1602.lis
字号:
021E L38:
021E .dbline 269
021E ; }
021E L36:
021E .dbline 270
021E ; table_2[7]=dispbuf[second%10];
021E 2AE0 ldi R18,10
0220 30E0 ldi R19,0
0222 00910500 lds R16,_second
0226 1127 clr R17
0228 0E940000 xcall mod16s
022C F801 movw R30,R16
022E 80E0 ldi R24,<_dispbuf
0230 90E0 ldi R25,>_dispbuf
0232 E80F add R30,R24
0234 F91F adc R31,R25
0236 2080 ldd R2,z+0
0238 20920700 sts _table_2+7,R2
023C .dbline 271
023C ; table_2[6]=dispbuf[second/10];
023C 2AE0 ldi R18,10
023E 30E0 ldi R19,0
0240 00910500 lds R16,_second
0244 1127 clr R17
0246 0E940000 xcall div16s
024A F801 movw R30,R16
024C 80E0 ldi R24,<_dispbuf
024E 90E0 ldi R25,>_dispbuf
0250 E80F add R30,R24
0252 F91F adc R31,R25
0254 2080 ldd R2,z+0
0256 20920600 sts _table_2+6,R2
025A .dbline 272
025A ; table_2[4]=dispbuf[minite%10];
025A 2AE0 ldi R18,10
025C 30E0 ldi R19,0
025E 00910400 lds R16,_minite
0262 1127 clr R17
0264 0E940000 xcall mod16s
0268 F801 movw R30,R16
026A 80E0 ldi R24,<_dispbuf
026C 90E0 ldi R25,>_dispbuf
026E E80F add R30,R24
0270 F91F adc R31,R25
0272 2080 ldd R2,z+0
0274 20920400 sts _table_2+4,R2
0278 .dbline 273
0278 ; table_2[3]=dispbuf[minite/10];
0278 2AE0 ldi R18,10
027A 30E0 ldi R19,0
027C 00910400 lds R16,_minite
0280 1127 clr R17
0282 0E940000 xcall div16s
0286 F801 movw R30,R16
0288 80E0 ldi R24,<_dispbuf
028A 90E0 ldi R25,>_dispbuf
028C E80F add R30,R24
028E F91F adc R31,R25
0290 2080 ldd R2,z+0
0292 20920300 sts _table_2+3,R2
0296 .dbline 274
0296 ; table_2[1]=dispbuf[hour%10];
0296 2AE0 ldi R18,10
0298 30E0 ldi R19,0
029A 00910300 lds R16,_hour
029E 1127 clr R17
02A0 0E940000 xcall mod16s
02A4 F801 movw R30,R16
02A6 80E0 ldi R24,<_dispbuf
02A8 90E0 ldi R25,>_dispbuf
02AA E80F add R30,R24
02AC F91F adc R31,R25
02AE 2080 ldd R2,z+0
02B0 20920100 sts _table_2+1,R2
02B4 .dbline 275
02B4 ; table_2[0]=dispbuf[hour/10];
02B4 2AE0 ldi R18,10
02B6 30E0 ldi R19,0
02B8 00910300 lds R16,_hour
02BC 1127 clr R17
02BE 0E940000 xcall div16s
02C2 F801 movw R30,R16
02C4 80E0 ldi R24,<_dispbuf
02C6 90E0 ldi R25,>_dispbuf
02C8 E80F add R30,R24
02CA F91F adc R31,R25
02CC 2080 ldd R2,z+0
02CE 20920000 sts _table_2,R2
02D2 .dbline 277
02D2 ;
02D2 ; }
02D2 L34:
02D2 .dbline 278
02D2 ; DisplayOneChar(i, 1, table_2[i]); //显示单个字符
02D2 30900000 lds R3,_i
02D6 80E0 ldi R24,<_table_2
02D8 90E0 ldi R25,>_table_2
02DA E32D mov R30,R3
02DC FF27 clr R31
02DE E80F add R30,R24
02E0 F91F adc R31,R25
02E2 2080 ldd R2,z+0
02E4 2882 std y+0,R2
02E6 21E0 ldi R18,1
02E8 032D mov R16,R3
02EA EBDE xcall _DisplayOneChar
02EC .dbline 280
02EC ;
02EC ; i++;
02EC 80910000 lds R24,_i
02F0 8F5F subi R24,255 ; addi 1
02F2 80930000 sts _i,R24
02F6 .dbline 281
02F6 ; if(i==8)
02F6 8830 cpi R24,8
02F8 19F4 brne L47
02FA X12:
02FA .dbline 282
02FA ; {
02FA .dbline 283
02FA ; i=0;
02FA 2224 clr R2
02FC 20920000 sts _i,R2
0300 .dbline 284
0300 ; }
0300 L47:
0300 .dbline 287
0300 ;
0300 ;
0300 ; TCNT0 = 0x83; //reload counter value
0300 83E8 ldi R24,131
0302 82BF out 0x32,R24
0304 .dbline -2
0304 L33:
0304 .dbline 0 ; func end
0304 2196 adiw R28,1
0306 0990 ld R0,y+
0308 0FBE out 0x3f,R0
030A F991 ld R31,y+
030C E991 ld R30,y+
030E B991 ld R27,y+
0310 A991 ld R26,y+
0312 9991 ld R25,y+
0314 8991 ld R24,y+
0316 3991 ld R19,y+
0318 2991 ld R18,y+
031A 1991 ld R17,y+
031C 0991 ld R16,y+
031E 9990 ld R9,y+
0320 8990 ld R8,y+
0322 7990 ld R7,y+
0324 6990 ld R6,y+
0326 5990 ld R5,y+
0328 4990 ld R4,y+
032A 3990 ld R3,y+
032C 2990 ld R2,y+
032E 1990 ld R1,y+
0330 0990 ld R0,y+
0332 1895 reti
0334 .dbend
0334 .dbfunc e init_devices _init_devices fV
.even
0334 _init_devices::
0334 .dbline -1
0334 .dbline 292
0334 ; }
0334 ;
0334 ; //call this routine to initialize all peripherals
0334 ; void init_devices(void)
0334 ; {
0334 .dbline 294
0334 ; //stop errant interrupts until set up
0334 ; CLI(); //disable all interrupts
0334 F894 cli
0336 .dbline 295
0336 ; port_init();
0336 19DF xcall _port_init
0338 .dbline 296
0338 ; timer0_init();
0338 23DF xcall _timer0_init
033A .dbline 298
033A ;
033A ; MCUCR = 0x00;
033A 2224 clr R2
033C 25BE out 0x35,R2
033E .dbline 299
033E ; GICR = 0x00;
033E 2BBE out 0x3b,R2
0340 .dbline 300
0340 ; TIMSK = 0x01; //timer interrupt sources
0340 81E0 ldi R24,1
0342 89BF out 0x39,R24
0344 .dbline 301
0344 ; SEI(); //re-enable interrupts
0344 7894 sei
0346 .dbline -2
0346 L49:
0346 .dbline 0 ; func end
0346 0895 ret
0348 .dbend
0348 .dbfunc e main _main fV
0348 ; i -> <dead>
.even
0348 _main::
0348 2297 sbiw R28,2
034A .dbline -1
034A .dbline 309
034A ; //all peripherals are now initialized
034A ; }
034A ;
034A ;
034A ; /*******************************************************************************/
034A ;
034A ; void main(void)
034A ; {
034A .dbline 311
034A ; unsigned char i;
034A ; DDRD=0XFF;//PD设为输出
034A 8FEF ldi R24,255
034C 81BB out 0x11,R24
034E .dbline 312
034E ; DDRB=0XFF;//PB设为输出
034E 87BB out 0x17,R24
0350 .dbline 313
0350 ; Delay400Ms(); //启动等待,等LCM讲入工作状态
0350 FBDE xcall _Delay400Ms
0352 .dbline 314
0352 ; LCMInit(); //LCM初始化
0352 99DE xcall _LCMInit
0354 .dbline 315
0354 ; Delay5Ms(); //延时片刻(可不要)
0354 EFDE xcall _Delay5Ms
0356 .dbline 317
0356 ;
0356 ; DisplayListChar(0, 0, table_1);
0356 80E0 ldi R24,<_table_1
0358 90E0 ldi R25,>_table_1
035A 9983 std y+1,R25
035C 8883 std y+0,R24
035E 2227 clr R18
0360 0027 clr R16
0362 C4DE xcall _DisplayListChar
0364 .dbline 335
0364 ; /*Delay400Ms(); //启动等待,等LCM进入工作状态
0364 ; WriteCommandLCM(0x08,1); //关闭显示
0364 ; WriteCommandLCM(0x01,1); //显示清屏
0364 ; WriteCommandLCM(0x06,1); // 显示光标移动设置
0364 ; WriteCommandLCM(0x0f,1); // 显示开及光标设置,闪
0364 ; for(i=0;i<8;i++)
0364 ; {
0364 ; DisplayOneChar(i, 0, table_1[i]); //显示单个字符
0364 ; }
0364 ; WriteCommandLCM(0x07,1); // 显示光标移动设置
0364 ;
0364 ; for(i=0;i<8;i++)
0364 ; {
0364 ; DisplayOneChar(i, 1, table_2[i]); //显示单个字符
0364 ; }
0364 ; //WriteCommandLCM(0x0c,1); // 显示开及光标设置,不闪
0364 ; //ReadDataLCM();//测试用句无意义*/
0364 ; init_devices();
0364 E7DF xcall _init_devices
0366 L51:
0366 .dbline 336
0366 ; while(1);
0366 L52:
0366 .dbline 336
0366 FFCF xjmp L51
0368 X14:
0368 .dbline -2
0368 L50:
0368 .dbline 0 ; func end
0368 2296 adiw R28,2
036A 0895 ret
036C .dbsym l i 3 c
036C .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\学习工具\单片机程序\1602液晶\1602.c
0000 _i::
0000 .blkb 1
0001 .dbsym e i _i c
0001 _tcnt::
0001 .blkb 2
0003 .dbsym e tcnt _tcnt i
0003 _hour::
0003 .blkb 1
0004 .dbsym e hour _hour c
0004 _minite::
0004 .blkb 1
0005 .dbsym e minite _minite c
0005 _second::
0005 .blkb 1
0006 .dbsym e second _second c
0006 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -