⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.s

📁 用的avr icc 开发的atmega16的超声波测距仪模型。
💻 S
字号:
	.module pwm.c
	.area text(rom, con, rel)
	.dbfile D:\NEW\ECHO\pwm.c
	.dbfunc e pwm_40KHz _pwm_40KHz fV
;              i -> R20
;              n -> R16
	.even
_pwm_40KHz::
	xcall push_gset1
	.dbline -1
	.dbline 5
; #define PWM_C
; #include "includes.h"
; 
; void pwm_40KHz( unsigned char n)
;   { 
	.dbline 7
;    unsigned char i;
;    for( ;n>0;n--)
	xjmp L5
L2:
	.dbline 8
;     {
	.dbline 9
;      PORTB=0xff;
	ldi R24,255
	out 0x18,R24
	.dbline 10
;      for(i=5;i>0;i--)
	ldi R20,5
	xjmp L9
L6:
	.dbline 11
	.dbline 12
	nop
	.dbline 13
L7:
	.dbline 10
	dec R20
L9:
	.dbline 10
	clr R2
	cp R2,R20
	brlo L6
	.dbline 14
; 	  {
; 	   asm("nop");
;       }		    
;      PORTB=0xfE;
	ldi R24,254
	out 0x18,R24
	.dbline 15
; 	 for(i=5;i>0;i--)
	ldi R20,5
	xjmp L13
L10:
	.dbline 16
	.dbline 17
	nop
	.dbline 18
L11:
	.dbline 15
	dec R20
L13:
	.dbline 15
	clr R2
	cp R2,R20
	brlo L10
	.dbline 19
L3:
	.dbline 7
	dec R16
L5:
	.dbline 7
	clr R2
	cp R2,R16
	brlo L2
	.dbline -2
	.dbline 20
; 	  {
; 	   asm("nop");
;       }
; 	}
;    }
L1:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r n 16 c
	.dbend
	.dbfunc e pwm_30KHz _pwm_30KHz fV
;              i -> R20
;              n -> R16
	.even
_pwm_30KHz::
	xcall push_gset1
	.dbline -1
	.dbline 22
; void pwm_30KHz( unsigned char n)
;   {
	.dbline 24
;     unsigned char i;
;     for( ;n>0;n--)
	xjmp L18
L15:
	.dbline 25
;      {
	.dbline 26
;       PORTB=0xff;
	ldi R24,255
	out 0x18,R24
	.dbline 27
; 	  for(i=8;i>0;i--)
	ldi R20,8
	xjmp L22
L19:
	.dbline 28
	.dbline 29
	nop
	.dbline 30
L20:
	.dbline 27
	dec R20
L22:
	.dbline 27
	clr R2
	cp R2,R20
	brlo L19
	.dbline 31
; 	   {
; 	    asm("nop");
;        }		    
;       PORTB=0xfE;
	ldi R24,254
	out 0x18,R24
	.dbline 32
; 	  for(i=8;i>0;i--)
	ldi R20,8
	xjmp L26
L23:
	.dbline 33
	.dbline 34
	nop
	.dbline 35
L24:
	.dbline 32
	dec R20
L26:
	.dbline 32
	clr R2
	cp R2,R20
	brlo L23
	.dbline 36
L16:
	.dbline 24
	dec R16
L18:
	.dbline 24
	clr R2
	cp R2,R16
	brlo L15
	.dbline -2
	.dbline 37
; 	   {
; 	    asm("nop");
;        }
; 	 }
;    }
L14:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r n 16 c
	.dbend
	.dbfunc e pwm_20KHz _pwm_20KHz fV
;              i -> R20
;              n -> R16
	.even
_pwm_20KHz::
	xcall push_gset1
	.dbline -1
	.dbline 39
; void pwm_20KHz( unsigned char n)
;   {
	.dbline 41
;     unsigned char i;
;     for( ;n>0;n--)
	xjmp L31
L28:
	.dbline 42
;      {
	.dbline 43
;       PORTB=0xff;
	ldi R24,255
	out 0x18,R24
	.dbline 44
; 	  for(i=12;i>0;i--)
	ldi R20,12
	xjmp L35
L32:
	.dbline 45
	.dbline 46
	nop
	.dbline 47
L33:
	.dbline 44
	dec R20
L35:
	.dbline 44
	clr R2
	cp R2,R20
	brlo L32
	.dbline 48
; 	   {
; 	    asm("nop");
;        }		    
;       PORTB=0xfE;
	ldi R24,254
	out 0x18,R24
	.dbline 49
; 	  for(i=12;i>0;i--)
	ldi R20,12
	xjmp L39
L36:
	.dbline 50
	.dbline 51
	nop
	.dbline 52
L37:
	.dbline 49
	dec R20
L39:
	.dbline 49
	clr R2
	cp R2,R20
	brlo L36
	.dbline 53
L29:
	.dbline 41
	dec R16
L31:
	.dbline 41
	clr R2
	cp R2,R16
	brlo L28
	.dbline -2
	.dbline 54
; 	   {
; 	    asm("nop");
;        }
; 	 }
;    }
L27:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r n 16 c
	.dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -