admin 管理员组

文章数量: 1086019


2024年3月21日发(作者:正弦波逆变器开源程序)

;本程序实现蜂鸣器演奏歌曲功能

;乐曲名称:生日快乐

;///////////////////////////////////////////

BUZZER EQU P2.3

org 0000h ;主程序起始地址

ajmp main ;跳至主程序

org 000bh ;timer0中断起始地址

jmp tim0 ;跳至timer0中断子程序

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

org 0030h

main:

mov tmod,#01h ;设timer0在MODE1

mov ie,#82h ;中断使能

start0:

mov 30h,#00h ;取简谱码指针

next: mov a,30h ;简谱码指针载入A

mov dptr,#table ;至table取简谱码

movc a,@a+dptr

mov r2,a ;取到的简谱码暂存于R2

jz end0 ;是否取到00(结束码)?

anl a,#0fh ;不是,则取低4位(节拍码)

mov r5,a ;将节拍码存入R5

mov a,r2 ;将取到的简谱码再载入A

swap a ;高低四位交换

anl a,#0fh ;取低四位(音符码)

jnz sing ;取到的音符码是否为零?


本文标签: 取到 中断 正弦波 起始 地址