📄 cymometer.lst
字号:
00A8 933A st -y,R19
00A9 932A st -y,R18
00AA 931A st -y,R17
00AB 930A st -y,R16
00AC 2D02 mov R16,R2
00AD 2D13 mov R17,R3
00AE 2D24 mov R18,R4
00AF 2D35 mov R19,R5
00B0 D150 rcall div32u
00B1 93100069 sts _count+1,R17
00B3 93000068 sts _count,R16
00B5 9330006B sts _count+2+1,R19
00B7 9320006A sts _count+2,R18
00B9 .dbline 65
00B9 L9:
00B9 .dbline 61
00B9 94C3 inc R12
00BA L11:
00BA .dbline 61
00BA 2D8C mov R24,R12
00BB 3086 cpi R24,6
00BC F408 brsh X0
00BD CFBA rjmp L8
00BE X0:
00BE .dbline 66}
; {temp=count%10;
; ledbuff[i]=tabel[temp];
; count=count/10;
; }
; }
00BE L7:
00BE D0E5 rcall pop_gset4
00BF 9508 ret
00C0 .dbsym r temp 10 c
00C0 .dbsym r i 12 c
00C0 .dbfunc s main _main fI
; j -> <dead>
; i -> <dead>
.even
00C0 _main::
00C0 .dbline 71{
; /*****************************
; 主程序
; ******************************/
; void main(void)
; {
00C0 .dbline 73
; unsigned char i,j;
; MCUCR=0;
00C0 2422 clr R2
00C1 BE25 out 0x35,R2
00C2 .dbline 74
; port_init(); //端口初始化
00C2 DF7D rcall _port_init
00C3 .dbline 75
; count=0;
00C3 E302 ldi R16,<L14
00C4 E010 ldi R17,>L14
00C5 D0E0 rcall lpm32
00C6 93100069 sts _count+1,R17
00C8 93000068 sts _count,R16
00CA 9330006B sts _count+2+1,R19
00CC 9320006A sts _count+2,R18
00CE .dbline 76
; SEI();
00CE 9478 sei
00CF C001 rjmp L16
00D0 L15:
00D0 .dbline 78
00D0 .dbline 79
00D0 DF87 rcall _display
00D1 .dbline 80
00D1 L16:
00D1 .dbline 77
; while(1)
00D1 CFFE rjmp L15
00D2 X1:
00D2 .dbline 81}
; {
; display();
; }
; }
00D2 L13:
00D2 9508 ret
00D3 .dbsym l j 1 c
00D3 .dbsym l i 1 c
00D3 .dbfunc s timer0 _timer0 fI
.even
00D3 _timer0::
00D3 D080 rcall push_lset
00D4 .dbline 86{
; /**************************************
; T0溢出中断,完成测量闸门控制和数字转换
; ***************************************/
; void timer0(void)
; {
00D4 .dbline 87
; if (--timecount==0)
00D4 91900067 lds R25,_timecount+1
00D6 91800066 lds R24,_timecount
00D8 9701 sbiw R24,1
00D9 2E28 mov R2,R24
00DA 2E39 mov R3,R25
00DB 92300067 sts _timecount+1,R3
00DD 92200066 sts _timecount,R2
00DF 2022 tst R2
00E0 F559 brne L19
00E1 2033 tst R3
00E2 F549 brne L19
00E3 .dbline 88
; {
00E3 .dbline 89
; CLI();
00E3 94F8 cli
00E4 .dbline 90
; hextobcd();
00E4 DF90 rcall _hextobcd
00E5 .dbline 91
; if (count>999999)
00E5 E20E ldi R16,<L23
00E6 E010 ldi R17,>L23
00E7 D0BE rcall lpm32
00E8 9050006B lds R5,_count+2+1
00EA 9040006A lds R4,_count+2
00EC 90300069 lds R3,_count+1
00EE 90200068 lds R2,_count
00F0 1502 cp R16,R2
00F1 0513 cpc R17,R3
00F2 0524 cpc R18,R4
00F3 0535 cpc R19,R5
00F4 F428 brsh L21
00F5 .dbline 92
; ledbuff[0]|=0x80;
00F5 91800060 lds R24,_ledbuff
00F7 6880 ori R24,128
00F8 93800060 sts _ledbuff,R24
00FA L21:
00FA .dbline 93
; count=0;
00FA E302 ldi R16,<L14
00FB E010 ldi R17,>L14
00FC D0A9 rcall lpm32
00FD 93100069 sts _count+1,R17
00FF 93000068 sts _count,R16
0101 9330006B sts _count+2+1,R19
0103 9320006A sts _count+2,R18
0105 .dbline 94
; timecount=1000;
0105 EE88 ldi R24,1000
0106 E093 ldi R25,3
0107 93900067 sts _timecount+1,R25
0109 93800066 sts _timecount,R24
010B .dbline 95
; SEI();
010B 9478 sei
010C .dbline 96
; }
010C L19:
010C .dbline 97
; TCNT0=0x84;
010C E884 ldi R24,132
010D BF82 out 0x32,R24
010E .dbline 98}
; }
010E L18:
010E D05C rcall pop_lset
010F 9518 reti
0110 .dbfunc s timer1 _timer1 fI
.even
0110 _timer1::
0110 922A st -y,R2
0111 923A st -y,R3
0112 924A st -y,R4
0113 925A st -y,R5
0114 930A st -y,R16
0115 931A st -y,R17
0116 932A st -y,R18
0117 933A st -y,R19
0118 B62F in R2,0x3f
0119 922A st -y,R2
011A .dbline 103{
; /*****************************
; T1捕捉中断,完成脉冲计数
; ******************************/
; void timer1(void)
; {
011A .dbline 104
; count++;
011A E20A ldi R16,<L25
011B E010 ldi R17,>L25
011C D089 rcall lpm32
011D 9050006B lds R5,_count+2+1
011F 9040006A lds R4,_count+2
0121 90300069 lds R3,_count+1
0123 90200068 lds R2,_count
0125 0E20 add R2,R16
0126 1E31 adc R3,R17
0127 1E42 adc R4,R18
0128 1E53 adc R5,R19
0129 92300069 sts _count+1,R3
012B 92200068 sts _count,R2
012D 9250006B sts _count+2+1,R5
012F 9240006A sts _count+2,R4
0131 .dbline 105}
; }
0131 L24:
0131 9029 ld R2,y+
0132 BE2F out 0x3f,R2
0133 9139 ld R19,y+
0134 9129 ld R18,y+
0135 9119 ld R17,y+
0136 9109 ld R16,y+
0137 9059 ld R5,y+
0138 9049 ld R4,y+
0139 9039 ld R3,y+
013A 9029 ld R2,y+
013B 9518 reti
.area bss(ram, con, rel)
--- 0000 .dbfile D:\ICC-AVR\examples.sl\cymometer\cymometer.c
0033 _timecount::
0033 .blkb 2
0034 .dbsym s timecount _timecount i
0034 _count::
0034 .blkb 4
0036 .dbsym s count _count l
.area lit(rom, con, rel)
--- 0008 L25:
--- 0008 01000000 .word 1,0
--- 000A L23:
--- 000A 3F420F00 .word 16959,15
--- 000C L14:
--- 000C 00000000 .word 0,0
--- 000E L12:
--- 000E 0A000000 .word 10,0
.module delay.c
.area text(rom, con, rel)
--- 0000 .dbfile D:\ICC-AVR\examples.sl\cymometer\delay.c
--- 0000 .dbfunc s delay_1ms _delay_1ms fI
; i -> R16,R17
.even
013C _delay_1ms::
013C .dbline 10{
; /****************************************/
; /* 延时函数(mS),在本文件中应定义:xtal
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -