?? 音符聲.asm
字號(hào):
;************* 應(yīng)用筆記SLAVR14.ASM ************************
;*
;* 標(biāo)題: 音符
;* 版本: 1.0
;*最后更新日期: 2000.08.08
;*
;* 支援 E-mail: gzsl@sl.com.cn
;*
;* 描述
;* 用AVR 的I/O口發(fā)出1234567音符聲
;* 作者: SL.
;*程序適用于所有單片機(jī)
;***************************************************************************
.include "8515def.inc" ;器件配置文件
.org $0000
rjmp RESET
.org $0010
RESET: ldi r16,0x02
out sph,r16
ldi r16,0x5f
out spl,r16 ;設(shè)堆棧為0X025F
ldi r16,0xff ;設(shè)口為輸出狀態(tài)
out ddra,r16
out ddrb,r16
out ddrc,r16
out ddrd,r16
out porta,r16 ;關(guān)口,滅LED燈
out portb,r16
out portc,r16
out portd,r16
ldi r18,0x20 ;設(shè)延時(shí)常數(shù)
ldi r17,0x01
ldi r19,0x60
loop: mov r16,r19
rcall delay ;調(diào)用延時(shí)子程序
eor r18,r17 ;異或
out portc,r18 ;輸出AT90S8515的C口引腳
dec r20 ;-1
brne loop ;R20不為0轉(zhuǎn),為0順執(zhí)
subi r19,0x05 ;R19減立即數(shù)
cpi r19,0x1f ;R19與立即數(shù)比
brne loop ;R19不0為轉(zhuǎn)
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
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -