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

📄 time01.s

📁 步进电机的控制程序
💻 S
字号:
	.module time01.c
	.area vector(rom, abs)
	.org 18
	rjmp _TIME0
	.area data(ram, con, rel)
_i::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\ICCAVR编程学习\步进电机驱动\time01.c
	.dbsym e i _i c
	.area text(rom, con, rel)
	.dbfile E:\ICCAVR编程学习\步进电机驱动\time01.c
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 18
; /*AD转换需要隔段时间采样一次,用这个方法可以粗略实现1秒定时,
; 我也时刚刚学习AVR 吧刚做的拿出来和新入门的朋友分享  或许有
; 帮助。存在问题的地方还请朋友门多斧正。*/ 
; 
; //*********************************** 
; //函数功能:基准时间100MS 总计定时1S 
; //编译器类型及版本:ICCAVR  6.31 
; 
; /************************************************************************/
;        
; #include<iom8v.h>               //包含定义ATmega8寄存器的头文件 
; #include<macros.h>           //包含一些常用的宏定义 
; #pragma interrupt_handler TIME0:10        //中断向量号码 
; char i=0;                   //调整累加基准定时次数的全局变量 
; //***********************************************************************/ 
; //主函数 
; void main() 
; {TCCR0=0X05;                 //时钟1024分频 
	.dbline 18
	ldi R24,5
	out 0x33,R24
	.dbline 19
;  TCNT0=0X3A;                 //定时器计数初始值 100ms 
	ldi R24,58
	out 0x32,R24
	.dbline 20
;  TIMSK=0X01;            //允许定时器0中断 
	ldi R24,1
	out 0x39,R24
	.dbline 21
;  SEI();                    //开全局中断 
	sei
	.dbline 22
;  DDRB=0XFF; 
	ldi R24,255
	out 0x17,R24
	.dbline 23
;  DDRD=0XFF; 
	out 0x11,R24
	.dbline 24
;  PORTB=0Xff; 
	out 0x18,R24
	.dbline 25
;  PORTD=0XFF; 
	out 0x12,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e TIME0 _TIME0 fV
	.even
_TIME0::
	st -y,R2
	st -y,R24
	st -y,R25
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 30
; } 
; //***********************************************************************/
; //定时器中断函数 
; void TIME0() 
; {if(i<20)                    //i决定循环基准时间的次数 
	.dbline 30
	lds R24,_i
	cpi R24,20
	brsh L3
	.dbline 31
;   {TCNT0=0X3A;                 //重设初始值  100ms 
	.dbline 31
	ldi R24,58
	out 0x32,R24
	.dbline 32
;    i++;                    //累加基准时间 
	lds R24,_i
	subi R24,255    ; addi 1
	sts _i,R24
	.dbline 33
;   } 
	rjmp L4
L3:
	.dbline 35
	.dbline 35
	ldi R24,1
	in R2,0x12
	eor R2,R24
	out 0x12,R2
	.dbline 36
	clr R2
	sts _i,R2
	.dbline 37
L4:
	.dbline -2
L2:
	ld R2,y+
	out 0x3f,R2
	ld R25,y+
	ld R24,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend

⌨️ 快捷键说明

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