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

📄 音符声.asm

📁 用AVR 的I/O口发出1234567音符声
💻 ASM
字号:
;************* 应用笔记SLAVR14.ASM  ************************
;*
;* 标题:		音符
;* 版本:		1.0
;*最后更新日期:	2000.08.08
;*
;* 支援 E-mail:	gzsl@sl.com.cn
;*
;* 描述
;*  用AVR 的I/O口发出1234567音符声
;* 作者: SL.
;*程序适用于所有单片机
;***************************************************************************

.include "8515def.inc"		;器件配置文件
.org  $0000
	rjmp	RESET		

.org $0010
RESET:  ldi    r16,0x02
        out    sph,r16
        ldi    r16,0x5f
        out    spl,r16 		;设堆栈为0X025F

        ldi     r16,0xff	;设口为输出状态
        out     ddra,r16
        out     ddrb,r16
        out     ddrc,r16
        out     ddrd,r16

	out     porta,r16	;关口,灭LED灯
        out     portb,r16
	out     portc,r16
        out     portd,r16

        ldi     r18,0x20	;设延时常数
        ldi     r17,0x01
        ldi     r19,0x60 
loop:   mov     r16,r19 
        rcall   delay            ;调用延时子程序 
        eor     r18,r17		;异或
        out     portc,r18	;输出AT90S8515的C口引脚
        dec     r20		;-1
        brne    loop		;R20不为0转,为0顺执
        subi    r19,0x05	;R19减立即数
        cpi     r19,0x1f	;R19与立即数比
        brne    loop		;R19不0为转
	RJMP	RESET

delay:  push    r16              ;2t
delay1: dec     r16              ;1t
        brne    delay1           ;1t/2t
        pop     r16              ;2t
        dec     r16              ;1t 
        brne    delay            ;1t/2t
        ret                      ;4t

⌨️ 快捷键说明

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