📄 cymometer.lis
字号:
00C0 50900500 lds R5,_count+2+1
00C4 40900400 lds R4,_count+2
00C8 30900300 lds R3,_count+1
00CC 20900200 lds R2,_count
00D0 3A93 st -y,R19
00D2 2A93 st -y,R18
00D4 1A93 st -y,R17
00D6 0A93 st -y,R16
00D8 022D mov R16,R2
00DA 132D mov R17,R3
00DC 242D mov R18,R4
00DE 352D mov R19,R5
00E0 00D0 rcall div32u
00E2 10930300 sts _count+1,R17
00E6 00930200 sts _count,R16
00EA 30930500 sts _count+2+1,R19
00EE 20930400 sts _count+2,R18
00F2 .dbline 65
00F2 L9:
00F2 .dbline 61
00F2 C394 inc R12
00F4 L11:
00F4 .dbline 61
00F4 8C2D mov R24,R12
00F6 8630 cpi R24,6
00F8 08F4 brsh X0
00FA BACF rjmp L8
00FC X0:
00FC .dbline 66}
; {temp=count%10;
; ledbuff[i]=tabel[temp];
; count=count/10;
; }
; }
00FC L7:
00FC 00D0 rcall pop_gset4
00FE 0895 ret
0100 .dbsym r temp 10 c
0100 .dbsym r i 12 c
0100 .dbfunc s main _main fI
; j -> <dead>
; i -> <dead>
.even
0100 _main::
0100 .dbline 71{
; /*****************************
; 主程序
; ******************************/
; void main(void)
; {
0100 .dbline 73
; unsigned char i,j;
; MCUCR=0;
0100 2224 clr R2
0102 25BE out 0x35,R2
0104 .dbline 74
; port_init(); //端口初始化
0104 7DDF rcall _port_init
0106 .dbline 75
; count=0;
0106 00E0 ldi R16,<L14
0108 10E0 ldi R17,>L14
010A 00D0 rcall lpm32
010C 10930300 sts _count+1,R17
0110 00930200 sts _count,R16
0114 30930500 sts _count+2+1,R19
0118 20930400 sts _count+2,R18
011C .dbline 76
; SEI();
011C 7894 sei
011E 01C0 rjmp L16
0120 L15:
0120 .dbline 78
0120 .dbline 79
0120 87DF rcall _display
0122 .dbline 80
0122 L16:
0122 .dbline 77
; while(1)
0122 FECF rjmp L15
0124 X1:
0124 .dbline 81}
; {
; display();
; }
; }
0124 L13:
0124 0895 ret
0126 .dbsym l j 1 c
0126 .dbsym l i 1 c
0126 .dbfunc s timer0 _timer0 fI
.even
0126 _timer0::
0126 00D0 rcall push_lset
0128 .dbline 86{
; /**************************************
; T0溢出中断,完成测量闸门控制和数字转换
; ***************************************/
; void timer0(void)
; {
0128 .dbline 87
; if (--timecount==0)
0128 90910100 lds R25,_timecount+1
012C 80910000 lds R24,_timecount
0130 0197 sbiw R24,1
0132 282E mov R2,R24
0134 392E mov R3,R25
0136 30920100 sts _timecount+1,R3
013A 20920000 sts _timecount,R2
013E 2220 tst R2
0140 59F5 brne L19
0142 3320 tst R3
0144 49F5 brne L19
0146 .dbline 88
; {
0146 .dbline 89
; CLI();
0146 F894 cli
0148 .dbline 90
; hextobcd();
0148 90DF rcall _hextobcd
014A .dbline 91
; if (count>999999)
014A 00E0 ldi R16,<L23
014C 10E0 ldi R17,>L23
014E 00D0 rcall lpm32
0150 50900500 lds R5,_count+2+1
0154 40900400 lds R4,_count+2
0158 30900300 lds R3,_count+1
015C 20900200 lds R2,_count
0160 0215 cp R16,R2
0162 1305 cpc R17,R3
0164 2405 cpc R18,R4
0166 3505 cpc R19,R5
0168 28F4 brsh L21
016A .dbline 92
; ledbuff[0]|=0x80;
016A 80910000 lds R24,_ledbuff
016E 8068 ori R24,128
0170 80930000 sts _ledbuff,R24
0174 L21:
0174 .dbline 93
; count=0;
0174 00E0 ldi R16,<L14
0176 10E0 ldi R17,>L14
0178 00D0 rcall lpm32
017A 10930300 sts _count+1,R17
017E 00930200 sts _count,R16
0182 30930500 sts _count+2+1,R19
0186 20930400 sts _count+2,R18
018A .dbline 94
; timecount=1000;
018A 88EE ldi R24,1000
018C 93E0 ldi R25,3
018E 90930100 sts _timecount+1,R25
0192 80930000 sts _timecount,R24
0196 .dbline 95
; SEI();
0196 7894 sei
0198 .dbline 96
; }
0198 L19:
0198 .dbline 97
; TCNT0=0x84;
0198 84E8 ldi R24,132
019A 82BF out 0x32,R24
019C .dbline 98}
; }
019C L18:
019C 00D0 rcall pop_lset
019E 1895 reti
01A0 .dbfunc s timer1 _timer1 fI
.even
01A0 _timer1::
01A0 2A92 st -y,R2
01A2 3A92 st -y,R3
01A4 4A92 st -y,R4
01A6 5A92 st -y,R5
01A8 0A93 st -y,R16
01AA 1A93 st -y,R17
01AC 2A93 st -y,R18
01AE 3A93 st -y,R19
01B0 2FB6 in R2,0x3f
01B2 2A92 st -y,R2
01B4 .dbline 103{
; /*****************************
; T1捕捉中断,完成脉冲计数
; ******************************/
; void timer1(void)
; {
01B4 .dbline 104
; count++;
01B4 00E0 ldi R16,<L25
01B6 10E0 ldi R17,>L25
01B8 00D0 rcall lpm32
01BA 50900500 lds R5,_count+2+1
01BE 40900400 lds R4,_count+2
01C2 30900300 lds R3,_count+1
01C6 20900200 lds R2,_count
01CA 200E add R2,R16
01CC 311E adc R3,R17
01CE 421E adc R4,R18
01D0 531E adc R5,R19
01D2 30920300 sts _count+1,R3
01D6 20920200 sts _count,R2
01DA 50920500 sts _count+2+1,R5
01DE 40920400 sts _count+2,R4
01E2 .dbline 105}
; }
01E2 L24:
01E2 2990 ld R2,y+
01E4 2FBE out 0x3f,R2
01E6 3991 ld R19,y+
01E8 2991 ld R18,y+
01EA 1991 ld R17,y+
01EC 0991 ld R16,y+
01EE 5990 ld R5,y+
01F0 4990 ld R4,y+
01F2 3990 ld R3,y+
01F4 2990 ld R2,y+
01F6 1895 reti
.area bss(ram, con, rel)
0000 .dbfile D:\ICC-AVR\examples.sl\cymometer\cymometer.c
0000 _timecount::
0000 .blkb 2
0002 .dbsym s timecount _timecount i
0002 _count::
0002 .blkb 4
0006 .dbsym s count _count l
.area lit(rom, con, rel)
0010 L25:
0010 01000000 .word 1,0
0014 L23:
0014 3F420F00 .word 16959,15
0018 L14:
0018 00000000 .word 0,0
001C L12:
001C 0A000000 .word 10,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -