单片机音乐盒c语言源程序,51单片机八音盒源程序(汇编语言)

这是一个51单片机实现的八音盒程序,通过P1口选择音乐,P3.4作为音乐输出口。程序使用了中断服务子程序,通过T0定时器和外部中断0来控制音乐播放。音乐数据存储在内存的表中,通过改变表头地址来选择不同的音乐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

;//*****************************************************

;文件名:  八音盒.asm

;描  述:  八音盒,P1选择音乐,低电平有效,P3.0音乐输出口。

;         本程序使用的寄存器有R1至R7,40H,41H,42H单元。

;         标号TAB1处为T0的定时常数数据表。

;//*****************************************************

Speaker     BIT   P3.4

FLAG1       BIT   20H

FLAG2       BIT   21H

ORG        0000H

LJMP        Start

ORG        0003H

LJMP    EXINT0

ORG        000BH

LJMP    INT_T0

ORG        0013H

LJMP    EXINT1

ORG        001BH

DJNZ        R4,GOON                ;中断次数不够,继续。

CLR     ET1                ;持续时间到,该音符停止。

CLR     ET0

SJMP        RE01

GOON:        MOV        TL1,40H

MOV        TH1,41H

RE01:        RETI

INT_T0: MOV     C,FLAG1

JC      TORET

DJNZ    R0,TORET

MOV     R0,#6

MOV     C,FLAG2

JC      TOADD

SJMP    TOSUB

TOADD:  MOV     A,R3

CJNE    A,#0FEH,ADD1

CLR     FLAG2

SJMP    TORET

ADD1:  MOV     A,R2

ADD     A,#1

MOV     R2,A

MOV     A,R3

ADDC    A,#0

MOV     R3,A

SJMP    TORET

TOSUB:  MOV     A,R3

CJNE    A,#0FBH,SUB1

SETB 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值