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

📄 pwm.s

📁 MEGA16 开发包3
💻 S
字号:
	.module pwm.c
	.area text(rom, con, rel)
	.dbfile F:\开发\C程序开发\AVR\PWM\pwm.c
	.dbfunc e timer0_init _timer0_init fV
	.even
_timer0_init::
	.dbline -1
	.dbline 10
; #include <iom16v.h> 
; #include <macros.h> 
; 
; #define PWM0     PORTD3  //OC0   PB3
; 
; volatile unsigned char T0OCR;       //设置T0的时间值
; 
; /*相位修正模式输出方波,64分频*/
; void timer0_init(void) 
; {
	.dbline 11
;  OCR0  = T0OCR;       //设定TOP
	lds R2,_T0OCR
	out 0x3c,R2
	.dbline 14
;                       // TOP=8000000/(2*64*1000)-1=61.5  选61  1.008KHz(0.992mS)
;                       // TOP=8000000/(2*64*2000)-1=30.25 选30  2.016KHz(0.496ms)
;  TCCR0 = (0<<WGM01)|(1<<WGM00)|(1<<COM01)|(0<<COM00)|(0<<CS02)|(1<<CS01)|(1<<CS00);
	ldi R24,99
	out 0x33,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 18
; }
; 
; void main(void)
; {
	.dbline 20
;                                 //上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻
;     PORTA =0xFF;                //不用的管脚使能内部上拉电阻。
	ldi R24,255
	out 0x1b,R24
	.dbline 21
;     PORTC =0xFF;
	out 0x15,R24
	.dbline 22
;     PORTB =~ (1<<PWM0);         
	ldi R24,247
	out 0x18,R24
	.dbline 23
;     DDRB  =  (1<<PWM0);         
	ldi R24,8
	out 0x17,R24
	.dbline 25
; 
;     T0OCR=0x40;
	ldi R24,64
	sts _T0OCR,R24
	.dbline 26
;     timer0_init();
	xcall _timer0_init
	.dbline 27
;     SEI();                          //使能全局中断
	sei
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\开发\C程序开发\AVR\PWM\pwm.c
_T0OCR::
	.blkb 1
	.dbsym e T0OCR _T0OCR c

⌨️ 快捷键说明

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