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

📄 sl05.asm

📁 单片机开发资料光盘-双龙-686M.zip
💻 ASM
字号:
;*****************************************
;*用声音(PC3) 控制喇叭(PA3)音乐程序发音。
;*AT90S8515      8MHz     
;*双龙电子   www.sl.com.cn
;*	   liqing	2002.05.08
;*****************************************
.include "8515def.inc"
.org	$000
	rjmp	sl05

.def	TEMPDH	=r2
.def	TEMPDL	=r3
.def	CNT	=r10
.def	SCNN	=r11
.def	KEYN	=r12
.def	SCNK	=r13
.def	SCNDP	=r14
.def	KSNI	=r15

.def	TEMP	=r16
.def	TEMP1	=r17
.def	TEMP2	=r18
.def	TEMP3	=r19
.def	SCNTT	=r26	;

.def	MUSN	=r22
.def	TONL	=r21
.def	TONH	=r20

.def	PLYTON	=r25
.def	TONSET	=r24
.def	TONLNG	=r23

 
.cseg
.org	0x06		;TIM1_OVF定时器1溢出中断处理入口地址
intt1:	RJMP	OUTPM	;转定时器1溢出中断处理,发音周期到, 
			;则跳转到发音输出态   

.cseg			;跳过中断区
.org	0x010		;定时器1溢出中断处理程序。
			;发音周期到,重新装入计数值,并由PC0输出
OUTPM:	OUT	TCNT1H,TONH	;重新将TONH新计时值载入TCNT1H内
	OUT	TCNT1L,TONL	;重新将TONH新计时值载入TCNL1H内
	SBIS	PORTA,03	;先检测PA3是否为1而跳转    
	RJMP	SETOP1		;若PA3口为0,则跳转到SETOP1,令PA3转为1
SETOP0:	CBI	PORTA,03	;若PA3为1,则令PA3转为1  
	LDI	MUSN,$00	;同时令MUSN为00值  
	RETI			;回中断前主程序,并令可再次中断返回

SETOP1:	SBI	PORTA,03	;若PA3为1,则令PA3转为1
	LDI	MUSN,$01	;同时令MUSN为01值      
	RETI			;回中断前主程序,并令可再次中断返回

.cseg	
.org	0x020			;

sl05:	
	ldi r17,$02		;栈指针置为$025f
	ldi r16,$5f
	out sph,r17
	out spl,r16
	wdr			;在使用看门狗计时器前需重设看门狗计时器
	ldi	temp,$0F	;WDTCR地址$21设定以TEMP缓冲,令WDE=D3=1
	out	WDTCR,temp	;并令预除为2048ms,设定WDE=D3=1,输出到WDTCR内
	LDI	MUSN,$00	;令MUSN为00值
	ldi	temp,$00	;令TEMP暂存器放入00
	OUT	TCCR1A,TEMP	;将TEMP=00输出到TCCR1A内,禁止比较器及PWM动作 
	OUT	TCCR1B,TEMP	;将TEMP=00输出到TCCR1A内,停止TC1计时及捕捉  

⌨️ 快捷键说明

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