📄 wave50%.lis
字号:
.module Wave50%.c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\hb\MYDOCU~1\喷吗机--2代\单片机程序\定时器(方波输出,TC0控制)\Wave50%.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 11
0000 ; //ICC-AVR application builder : 2006-12-10 11:12:46
0000 ; // Target : M8
0000 ; // Crystal: 4.0000Mhz
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ; long Ddummy;
0000 ; char Settings_PerDotGroupNum,Settings_PrintPhase;
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 12
0000 ; PORTB = 0x00;
0000 2224 clr R2
0002 28BA out 0x18,R2
0004 .dbline 13
0004 ; DDRB = 0xFF;
0004 8FEF ldi R24,255
0006 87BB out 0x17,R24
0008 .dbline 14
0008 ; PORTC = 0x7F; //m103 output only
0008 8FE7 ldi R24,127
000A 85BB out 0x15,R24
000C .dbline 15
000C ; DDRC = 0x00;
000C 24BA out 0x14,R2
000E .dbline 16
000E ; PORTD = 0xFF;
000E 8FEF ldi R24,255
0010 82BB out 0x12,R24
0012 .dbline 17
0012 ; DDRD = 0x00;
0012 21BA out 0x11,R2
0014 .dbline -2
0014 .dbline 18
0014 ; }
0014 L1:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbend
0016 .dbfunc e timer0_init _timer0_init fV
.even
0016 _timer0_init::
0016 .dbline -1
0016 .dbline 25
0016 ;
0016 ; //TIMER0 initialisation - prescale:1
0016 ; // WGM: Normal
0016 ; // desired value: 125KHz
0016 ; // actual value: 125.000KHz (0.0%)
0016 ; void timer0_init(void)
0016 ; {
0016 .dbline 26
0016 ; TCCR0 = 0x00; //stop
0016 2224 clr R2
0018 23BE out 0x33,R2
001A .dbline 27
001A ; TCNT0 = 0xE0; //set count
001A 80EE ldi R24,224
001C 82BF out 0x32,R24
001E .dbline 28
001E ; TCCR0 = 0x01; //start timer
001E 81E0 ldi R24,1
0020 83BF out 0x33,R24
0022 .dbline -2
0022 .dbline 29
0022 ; }
0022 L2:
0022 .dbline 0 ; func end
0022 0895 ret
0024 .dbend
.area vector(rom, abs)
.org 18
0012 12C0 rjmp _timer0_ovf_isr
.area text(rom, con, rel)
0024 .dbfile C:\DOCUME~1\hb\MYDOCU~1\喷吗机--2代\单片机程序\定时器(方波输出,TC0控制)\Wave50%.c
0024 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
0024 _timer0_ovf_isr::
0024 2A92 st -y,R2
0026 3A92 st -y,R3
0028 4A92 st -y,R4
002A 5A92 st -y,R5
002C 6A92 st -y,R6
002E 7A92 st -y,R7
0030 8A92 st -y,R8
0032 9A92 st -y,R9
0034 0A93 st -y,R16
0036 1A93 st -y,R17
0038 2A93 st -y,R18
003A 3A93 st -y,R19
003C 8A93 st -y,R24
003E 9A93 st -y,R25
0040 AA93 st -y,R26
0042 BA93 st -y,R27
0044 EA93 st -y,R30
0046 2FB6 in R2,0x3f
0048 2A92 st -y,R2
004A 00D0 rcall push_gset2
004C .dbline -1
004C .dbline 33
004C ;
004C ; #pragma interrupt_handler timer0_ovf_isr:10
004C ; void timer0_ovf_isr(void)
004C ; {
004C .dbline 34
004C ; Ddummy++;
004C 41E0 ldi R20,1
004E 50E0 ldi R21,0
0050 60E0 ldi R22,0
0052 70E0 ldi R23,0
0054 40900400 lds R4,_Ddummy+2
0058 50900500 lds R5,_Ddummy+2+1
005C 20900200 lds R2,_Ddummy
0060 30900300 lds R3,_Ddummy+1
0064 240E add R2,R20
0066 351E adc R3,R21
0068 461E adc R4,R22
006A 571E adc R5,R23
006C 30920300 sts _Ddummy+1,R3
0070 20920200 sts _Ddummy,R2
0074 50920500 sts _Ddummy+2+1,R5
0078 40920400 sts _Ddummy+2,R4
007C .dbline 35
007C ; if(2*(Ddummy/2)==Ddummy){PORTB &=0xFD;} //PB1脚置低电平
007C 42E0 ldi R20,2
007E 50E0 ldi R21,0
0080 60E0 ldi R22,0
0082 70E0 ldi R23,0
0084 7A93 st -y,R23
0086 6A93 st -y,R22
0088 5A93 st -y,R21
008A 4A93 st -y,R20
008C 8101 movw R16,R2
008E 9201 movw R18,R4
0090 00D0 rcall div32s
0092 42E0 ldi R20,2
0094 50E0 ldi R21,0
0096 60E0 ldi R22,0
0098 70E0 ldi R23,0
009A 3A93 st -y,R19
009C 2A93 st -y,R18
009E 1A93 st -y,R17
00A0 0A93 st -y,R16
00A2 8A01 movw R16,R20
00A4 9B01 movw R18,R22
00A6 00D0 rcall empy32s
00A8 40900400 lds R4,_Ddummy+2
00AC 50900500 lds R5,_Ddummy+2+1
00B0 20900200 lds R2,_Ddummy
00B4 30900300 lds R3,_Ddummy+1
00B8 0215 cp R16,R2
00BA 1305 cpc R17,R3
00BC 2405 cpc R18,R4
00BE 3505 cpc R19,R5
00C0 21F4 brne L4
00C2 .dbline 35
00C2 .dbline 35
00C2 88B3 in R24,0x18
00C4 8D7F andi R24,253
00C6 88BB out 0x18,R24
00C8 .dbline 35
00C8 01C0 rjmp L5
00CA L4:
00CA .dbline 36
00CA ; else{PORTB |=0X02;} //PB1脚置高电平
00CA .dbline 36
00CA C19A sbi 0x18,1
00CC .dbline 36
00CC L5:
00CC .dbline 38
00CC ;
00CC ; if(Ddummy==1) PORTB &=0xFE; //PB0脚置低电平
00CC 41E0 ldi R20,1
00CE 50E0 ldi R21,0
00D0 60E0 ldi R22,0
00D2 70E0 ldi R23,0
00D4 40900400 lds R4,_Ddummy+2
00D8 50900500 lds R5,_Ddummy+2+1
00DC 20900200 lds R2,_Ddummy
00E0 30900300 lds R3,_Ddummy+1
00E4 2416 cp R2,R20
00E6 3506 cpc R3,R21
00E8 4606 cpc R4,R22
00EA 5706 cpc R5,R23
00EC 19F4 brne L6
00EE .dbline 38
00EE 88B3 in R24,0x18
00F0 8E7F andi R24,254
00F2 88BB out 0x18,R24
00F4 L6:
00F4 .dbline 39
00F4 ; if(Ddummy >=Settings_PerDotGroupNum){
00F4 20900100 lds R2,_Settings_PerDotGroupNum
00F8 3324 clr R3
00FA 4424 clr R4
00FC 5524 clr R5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -