51单片机音乐程序

本文介绍了一个使用51单片机实现音乐播放的程序,通过定时器T1和中断服务来控制音乐播放,包括音乐定时器的设置、中断处理、音符表的查找和节拍发生器等功能,实现了音乐的播放和延时控制。
摘要由CSDN通过智能技术生成

musich equ 40h      ;音乐定时高位数据
musicl equ 41h      ;音乐定时低位数据
musicstart equ 42h  ;音乐开始首地址
beep bit P3.2

; ************************ 预定义结束 *******************

        org 0000h;程序开始
        jmp main;跳转到主程序
  org 001bh;定时器T1中断入口地址
        jmp timer1;定时器服务程序
        org 0030h;主程序代码开始
  
main:
        mov sp,#30h;设置堆栈
        lcall music;调用音乐程序
        jmp main;重新开始

musdelay:
        mov r0,#20;短时间延时
d:
        djnz r0,d;延时时间 20uS
        ret;返回

; ************ 定时器 服务程序 *******************

timer1:
        clr tr1;停止定时器工作
        mov th1,musich;重新设置定时初值
        mov tl1,musicl;
        cpl beep;从蜂鸣器输出声音
        setb tr1;开始定时工作
        reti;中断返回

;****************************************************
;************ 音乐播放程序 *********************

music:
        mov tmod,#10h;设置定时器T1工作方式1
        setb ea;总的中断

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值