我实验板带的实验程序

源代码在线查看: p33pa.asm

软件大小: 4942 K
上传用户: zxyxwd6
关键词: 实验板 实验 程序
下载地址: 免注册下载 普通下载 VIP

相关代码

				;小喇叭的爬音演奏,即do,rui,mi,fa,so,la,xi,do
				;30h=步进值,21h低8位 22h高8位
				;***************************************************************************
				;*  sxj1974@163.com		     (51c51 test web)     www.8951.com     *
				;*  Create by :石学军      www.51c51.com 更多例程请登陆网站        	   *
				;***************************************************************************
					org	0000h
					ajmp	main
					org	000bh
					jmp	tim0
					org	0030h
				main:					;主程序
					mov	tmod,#01h		;设定时方式
					mov	ie,#82h			;开中断
				start0:
					mov	30h,#00h		;
				next:	mov	a,30h
				
					jnz	sing			;根据音调决定是否演奏.
				 clr	tr0
					jmp	d1
				sing:	dec	a
					mov	22h,a			;将音调存入22H.
					rl	a
					mov	dptr,#table1
					movc	a,@a+dptr	;根据音调决定定时器初值.
					mov	th0,a			;放入TH0
					mov	21h,a
					mov	a,22h
					rl	a
					inc	a
					movc	a,@a+dptr
					mov	tl0,a			;放入TL0
					mov	20h,a
				    jz end0            ;如果到了00则停止发音
					setb	tr0			;启动定时
				d1:	call	delay
					inc	30h          ;取下一个码
					jmp	next
				end0:	clr	tr0
					jmp	start0   ;重新开始
				
				tim0:					;定时器中断服务程序
					push	acc
					push	psw
					mov	tl0,20h			;重赋初值.
					mov	th0,21h
					cpl	p3.3
					pop	psw
					pop	acc
					reti
				
				delay:	mov	r7,#03h			;延时子程序 决定每个音的时间
				d2:	mov	r4,#187
				d3:	mov	r3,#248
					djnz	r3,$
					djnz	r4,d3
					djnz	r7,d2
					ret
				table1:					;决定音调的定时初值.
					dw	64260,64400,64524,64580
					dw	64684,64777,64820,64898
					dw	64968,65030,65058,65110
					dw	65157,65178,65217,00
					end
				
				
				
				
				
				
				
				
				
							

相关资源