📄 main.lis
字号:
0094 9927 clr R25
0096 8F70 andi R24,15
0098 9070 andi R25,0
009A 90931A00 sts _time_array+10+1,R25
009E 80931900 sts _time_array+10,R24
00A2 .dbline 45
00A2 ; Draw_NtoArab(0x00,0x28,time_array[0]);
00A2 20900F00 lds R2,_time_array
00A6 30901000 lds R3,_time_array+1
00AA 2882 std y+0,R2
00AC 28E2 ldi R18,40
00AE 0027 clr R16
00B0 0E940000 xcall _Draw_NtoArab
00B4 .dbline 46
00B4 ; Draw_NtoArab(0x00,0x30,time_array[1]);
00B4 20901100 lds R2,_time_array+2
00B8 30901200 lds R3,_time_array+2+1
00BC 2882 std y+0,R2
00BE 20E3 ldi R18,48
00C0 0027 clr R16
00C2 0E940000 xcall _Draw_NtoArab
00C6 .dbline 47
00C6 ; Draw_NtoArab(0x00,0x40,time_array[2]);
00C6 20901300 lds R2,_time_array+4
00CA 30901400 lds R3,_time_array+4+1
00CE 2882 std y+0,R2
00D0 20E4 ldi R18,64
00D2 0027 clr R16
00D4 0E940000 xcall _Draw_NtoArab
00D8 .dbline 48
00D8 ; Draw_NtoArab(0x00,0x48,time_array[3]);
00D8 20901500 lds R2,_time_array+6
00DC 30901600 lds R3,_time_array+6+1
00E0 2882 std y+0,R2
00E2 28E4 ldi R18,72
00E4 0027 clr R16
00E6 0E940000 xcall _Draw_NtoArab
00EA .dbline 49
00EA ; Draw_NtoArab(0x00,0x58,time_array[4]);
00EA 20901700 lds R2,_time_array+8
00EE 30901800 lds R3,_time_array+8+1
00F2 2882 std y+0,R2
00F4 28E5 ldi R18,88
00F6 0027 clr R16
00F8 0E940000 xcall _Draw_NtoArab
00FC .dbline 50
00FC ; Draw_NtoArab(0x00,0x60,time_array[5]);
00FC 20901900 lds R2,_time_array+10
0100 30901A00 lds R3,_time_array+10+1
0104 2882 std y+0,R2
0106 20E6 ldi R18,96
0108 0027 clr R16
010A 0E940000 xcall _Draw_NtoArab
010E .dbline -2
010E L1:
010E 2196 adiw R28,1
0110 0E940000 xcall pop_gset3
0114 .dbline 0 ; func end
0114 0895 ret
0116 .dbsym r sec 20 c
0116 .dbsym r min 22 c
0116 .dbsym r hour 10 c
0116 .dbend
0116 .dbfunc e show_canbi _show_canbi fV
.even
0116 _show_canbi::
0116 2197 sbiw R28,1
0118 .dbline -1
0118 .dbline 54
0118 ; }
0118 ;
0118 ; void show_canbi(void)
0118 ; {
0118 .dbline 55
0118 ; Draw_NtoArab(0x04,0x40,canbi_array[1]);
0118 20900700 lds R2,_canbi_array+2
011C 30900800 lds R3,_canbi_array+2+1
0120 2882 std y+0,R2
0122 20E4 ldi R18,64
0124 04E0 ldi R16,4
0126 0E940000 xcall _Draw_NtoArab
012A .dbline 56
012A ; Draw_NtoArab(0x04,0x48,canbi_array[2]);
012A 20900900 lds R2,_canbi_array+4
012E 30900A00 lds R3,_canbi_array+4+1
0132 2882 std y+0,R2
0134 28E4 ldi R18,72
0136 04E0 ldi R16,4
0138 0E940000 xcall _Draw_NtoArab
013C .dbline 57
013C ; Draw_NtoArab(0x04,0x58,canbi_array[3]);
013C 20900B00 lds R2,_canbi_array+6
0140 30900C00 lds R3,_canbi_array+6+1
0144 2882 std y+0,R2
0146 28E5 ldi R18,88
0148 04E0 ldi R16,4
014A 0E940000 xcall _Draw_NtoArab
014E .dbline 58
014E ; Draw_NtoArab(0x04,0x60,canbi_array[4]);
014E 20900D00 lds R2,_canbi_array+8
0152 30900E00 lds R3,_canbi_array+8+1
0156 2882 std y+0,R2
0158 20E6 ldi R18,96
015A 04E0 ldi R16,4
015C 0E940000 xcall _Draw_NtoArab
0160 .dbline -2
0160 L12:
0160 2196 adiw R28,1
0162 .dbline 0 ; func end
0162 0895 ret
0164 .dbend
0164 .dbfunc e data_init _data_init fV
0164 ; i -> R16
.even
0164 _data_init::
0164 .dbline -1
0164 .dbline 62
0164 ; }
0164 ;
0164 ; void data_init(void)
0164 ; {
0164 .dbline 64
0164 ; unsigned char i;
0164 ; entercount=0;
0164 2224 clr R2
0166 20922200 sts _entercount,R2
016A .dbline 65
016A ; leftcount=0;
016A 20922100 sts _leftcount,R2
016E .dbline 66
016E ; rightcount=0;
016E 20922000 sts _rightcount,R2
0172 .dbline 67
0172 ; position1302=0;
0172 20921F00 sts _position1302,R2
0176 .dbline 68
0176 ; positioncanbi=0x02;
0176 82E0 ldi R24,2
0178 80931C00 sts _positioncanbi,R24
017C .dbline 69
017C ; for(i=1;i<5;i++)
017C 01E0 ldi R16,1
017E 0CC0 xjmp L21
0180 L18:
0180 .dbline 70
0180 82E0 ldi R24,2
0182 809F mul R24,R16
0184 F001 movw R30,R0
0186 80E0 ldi R24,<_canbi_array
0188 90E0 ldi R25,>_canbi_array
018A E80F add R30,R24
018C F91F adc R31,R25
018E 2224 clr R2
0190 3324 clr R3
0192 3182 std z+1,R3
0194 2082 std z+0,R2
0196 L19:
0196 .dbline 69
0196 0395 inc R16
0198 L21:
0198 .dbline 69
0198 0530 cpi R16,5
019A 90F3 brlo L18
019C .dbline -2
019C L17:
019C .dbline 0 ; func end
019C 0895 ret
019E .dbsym r i 16 c
019E .dbend
019E .dbfunc e main _main fV
.even
019E _main::
019E .dbline -1
019E .dbline 74
019E ; canbi_array[i]=0x00;
019E ; }
019E ;
019E ; void main(void)
019E ; {
019E .dbline 75
019E ; Initial_MCU(); //初始化mcu
019E 0E940000 xcall _Initial_MCU
01A2 .dbline 76
01A2 ; Initial_LCD(); //初始化LCD
01A2 0E940000 xcall _Initial_LCD
01A6 .dbline 77
01A6 ; Com0_Init(); //初始化串口
01A6 0E940000 xcall _Com0_Init
01AA .dbline 78
01AA ; pDS1302_Init(); //初始化1302
01AA 0E940000 xcall _pDS1302_Init
01AE .dbline 79
01AE ; data_init();
01AE DADF xcall _data_init
01B0 .dbline 80
01B0 ; Clear_DDRAM(0x00,0x07); //清除lcd的所有显示内容
01B0 27E0 ldi R18,7
01B2 0027 clr R16
01B4 0E940000 xcall _Clear_DDRAM
01B8 .dbline 81
01B8 ; Draw_Menu_Interface(); //绘制主菜单
01B8 0E940000 xcall _Draw_Menu_Interface
01BC 0BC0 xjmp L24
01BE L23:
01BE .dbline 83
01BE .dbline 84
01BE 01E6 ldi R16,97
01C0 0E940000 xcall _Uart_Transmit
01C4 .dbline 85
01C4 1DDF xcall _show_time
01C6 .dbline 86
01C6 0E940000 xcall _show_temperature
01CA .dbline 87
01CA A5DF xcall _show_canbi
01CC .dbline 88
01CC 0E940000 xcall _checkkey
01D0 .dbline 89
01D0 0E940000 xcall _display7135
01D4 .dbline 90
01D4 L24:
01D4 .dbline 82
01D4 F4CF xjmp L23
01D6 X0:
01D6 .dbline -2
01D6 L22:
01D6 .dbline 0 ; func end
01D6 0895 ret
01D8 .dbend
.area vector(rom, abs)
.org 20
0014 0C94EC00 jmp _timer1_capt_isr
.area text(rom, con, rel)
01D8 .dbfile D:\zhangyu\H2test\program\main.c
01D8 .dbfunc e timer1_capt_isr _timer1_capt_isr fV
.even
01D8 _timer1_capt_isr::
01D8 2A92 st -y,R2
01DA 3A92 st -y,R3
01DC 8A93 st -y,R24
01DE 2FB6 in R2,0x3f
01E0 2A92 st -y,R2
01E2 .dbline -1
01E2 .dbline 97
01E2 ; while(1)
01E2 ; {
01E2 ; Uart_Transmit('a');
01E2 ; show_time();
01E2 ; show_temperature();
01E2 ; show_canbi();
01E2 ; checkkey();
01E2 ; display7135();
01E2 ; }
01E2 ; }
01E2 ;
01E2 ;
01E2 ; //测7135的busy信号所需的定时器捕获中断函数
01E2 ; #pragma interrupt_handler timer1_capt_isr:6
01E2 ; void timer1_capt_isr(void)
01E2 ; {
01E2 .dbline 98
01E2 ; if(ICP)
01E2 969B sbis 0x12,6
01E4 07C0 rjmp L27
01E6 .dbline 99
01E6 ; {
01E6 .dbline 100
01E6 ; endflag=0;
01E6 2224 clr R2
01E8 20920400 sts _endflag,R2
01EC .dbline 101
01EC ; TCCR1B&=0xbf; //下降沿捕获
01EC 8EB5 in R24,0x2e
01EE 8F7B andi R24,191
01F0 8EBD out 0x2e,R24
01F2 .dbline 102
01F2 ; }
01F2 0BC0 xjmp L28
01F4 L27:
01F4 .dbline 104
01F4 .dbline 105
01F4 26B4 in R2,0x26
01F6 37B4 in R3,0x27
01F8 30920100 sts _pulse+1,R3
01FC 20920000 sts _pulse,R2
0200 .dbline 106
0200 81E0 ldi R24,1
0202 80930400 sts _endflag,R24
0206 .dbline 107
0206 2224 clr R2
0208 2EBC out 0x2e,R2
020A .dbline 108
020A L28:
020A .dbline -2
020A L26:
020A 2990 ld R2,y+
020C 2FBE out 0x3f,R2
020E 8991 ld R24,y+
0210 3990 ld R3,y+
0212 2990 ld R2,y+
0214 .dbline 0 ; func end
0214 1895 reti
0216 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\zhangyu\H2test\program\main.c
0000 _pulse::
0000 .blkb 2
0002 .dbsym e pulse _pulse i
0002 _ovcounter::
0002 .blkb 2
0004 .dbsym e ovcounter _ovcounter i
0004 _endflag::
0004 .blkb 1
0005 .dbsym e endflag _endflag c
0005 _canbi_array::
0005 .blkb 10
000F .dbsym e canbi_array _canbi_array A[10:5]i
000F _time_array::
000F .blkb 12
001B .dbsym e time_array _time_array A[12:6]i
001B _canbianjian::
001B .blkb 1
001C .dbsym e canbianjian _canbianjian c
001C _positioncanbi::
001C .blkb 1
001D .dbsym e positioncanbi _positioncanbi c
001D _mm::
001D .blkb 1
001E .dbsym e mm _mm c
001E _hh::
001E .blkb 1
001F .dbsym e hh _hh c
001F _position1302::
001F .blkb 1
0020 .dbsym e position1302 _position1302 c
0020 _rightcount::
0020 .blkb 1
0021 .dbsym e rightcount _rightcount c
0021 _leftcount::
0021 .blkb 1
0022 .dbsym e leftcount _leftcount c
0022 _entercount::
0022 .blkb 1
0023 .dbsym e entercount _entercount c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -