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

📄 main.s

📁 用Attiny24的T1定时器产生10位PWM波形
💻 S
字号:
	.module main.c
	.area text(rom, con, rel)
	.dbfile F:\Programme\软件备份\PWM1\main.c
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 18
; /*--------------------------------------------------------
;    Atiny24-PWM:  此版本使用T1的两路PWM输出
;    PWM mode:  
;      TCCR0A:  COM0A1-COM0A0-COM0B1-COM0B0 - - WGM01-WGM00 
; 	 TCCR0B:  FOC0A-FOC0B - - WGM02-CS02-CS01-CS00
; 	 TCCR1A:  COM1A1-COM1A0-COM1B1-COM1B0 - - WGM11-WGM10
;      TCCR1B:  ICNC1-ICES1 - WGM13-WGM12-CS12-CS11-CS10                          
; ---------------------------------------------------------*/
; #include "iot24v.h"
; #include "macros.h"
; #include "selffile.h"
; 
; unsigned int OCR1A_temp,OCR1B_temp;
; /*----------------------------------------
;   主程序
; ----------------------------------------*/
; void  main(void)
; {
	.dbline 19
;     NOP();
	nop
	.dbline 20
;     CLI();
	cli
	.dbline 22
; 	//WTCHDOG_init();
; 	OCR1A_temp=0;
	clr R2
	clr R3
	sts _OCR1A_temp+1,R3
	sts _OCR1A_temp,R2
	.dbline 23
; 	OCR1B_temp=0;
	sts _OCR1B_temp+1,R3
	sts _OCR1B_temp,R2
	.dbline 25
; 	
;     MCU_init();
	xcall _MCU_init
	.dbline 26
; 	SEI();
	sei
L2:
	.dbline 28
; 	while(1)
; 	;
L3:
	.dbline 27
	xjmp L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e timer1_init _timer1_init fV
	.even
_timer1_init::
	.dbline -1
	.dbline 47
; 	/*{
; 	   Delay_nms(200);
; 	   OCR1A_temp+=2;
; 	   OCR1B_temp+=4;
; 	   if(OCR1A_temp>=0x3ff)
; 	      OCR1A_temp=0;
; 	   if(OCR1B_temp>=0x3ff)
; 	      OCR1B_temp=0;
; 	   
; 	   OCR1A=OCR1A_temp;
; 	   OCR1B=OCR1B_temp;
; 	}*/
; }
; 
; /*----------------------------------------
;   系统初始化
; ----------------------------------------*/
; void  timer1_init(void)
; {
	.dbline 48
; 	TCNT1H=0x00;
	clr R2
	out 0x2d,R2
	.dbline 49
; 	TCNT1L=0x00;
	out 0x2c,R2
	.dbline 50
; 	OCR1AH=0x01;             
	ldi R24,1
	out 0x2b,R24
	.dbline 51
; 	OCR1AL=0x99;
	ldi R24,153
	out 0x2a,R24
	.dbline 52
; 	OCR1BH=0x02;
	ldi R24,2
	out 0x29,R24
	.dbline 53
; 	OCR1BL=0x65;
	ldi R24,101
	out 0x28,R24
	.dbline 54
; 	TIMSK1=0x00;
	out 0xc,R2
	.dbline 55
; 	TCCR1A=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM10)|(1<<WGM11);    
	ldi R24,163
	out 0x2f,R24
	.dbline 56
; 	TCCR1B=(1<<CS10);        //不分频,否则波形较差
	ldi R24,1
	out 0x2e,R24
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e MCU_init _MCU_init fV
	.even
_MCU_init::
	.dbline -1
	.dbline 60
; }
; 
; void  MCU_init(void)
; {
	.dbline 61
;     DDRA=(1<<PA6)|(1<<PA5);
	ldi R24,96
	out 0x1a,R24
	.dbline 62
; 	MCUCR = 0x00;
	clr R2
	out 0x35,R2
	.dbline 63
;     GIMSK = 0x00;
	out 0x3b,R2
	.dbline 64
; 	timer1_init();
	xcall _timer1_init
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\Programme\软件备份\PWM1\main.c
_OCR1B_temp::
	.blkb 2
	.dbsym e OCR1B_temp _OCR1B_temp i
_OCR1A_temp::
	.blkb 2
	.dbsym e OCR1A_temp _OCR1A_temp i
; }
; 
; /*----------------------------------------
;   看门狗设置
; ----------------------------------------*/
; /*void  WTCHDOG_init(void)     //WTCHDOG: use the least frequency,about 2S
; {
;     WDR();
; 	WDTCSR=0x9f;
; 	WDTCSR=0x0f;
; }*/
; 

⌨️ 快捷键说明

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