使用80c51单片机at89s52芯片、汇编语言编写“世上只有妈妈好”的音乐播放代码

使用80c51单片机at89s52芯片、汇编语言编写“世上只有妈妈好”的音乐播放代码利用定时程序产生不同频率的方法,组成乐谱由单片机进行信息处理,经过放大利用P2.0口输... 使用80c51单片机at89s52芯片、汇编语言编写“世上只有妈妈好”的音乐播放代码

利用定时程序产生不同频率的方法,组成乐谱由单片机进行信息处理,经过放大利用P2.0口输出音乐。
在播放音乐的同时设置LED等随动闪烁。
利用P1.2的麦克风,用拍手来启动音乐播放,用复位来停止音乐播放。
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
liuzhou_huang
推荐于2016-04-27 · TA获得超过980个赞
知道小有建树答主
回答量:795
采纳率:93%
帮助的人:260万
展开全部
//=转自人家。。
SPEAKER EQU P2.0 ;定义喇叭驱动口
ORG 0000H ;伪地址
LJMP MAIN ;长跳转,执行Main函数
ORG 000BH
LJMP DSQT0
MAIN: MOV SP,#50H ;向SP写入50
MOV TMOD,#01H ;定时器设置
MOV TH0,#0F8H ;低音1-261HZ;定时器高位初值装入
MOV TL0,#39H ;定时器低位初值装入
SETB EA ;允许中断
SETB ET0 ;在EA打开的前提下,打开T0定时器中断
CLR TR0 ;不启用T0计数器/定时器LOOP: NOP ;开始循环播放了。程序不完整
; -------------------------------
; 1-|6. 5 3 5 | ;第一段
LCALL DY6 ;长跳转到低音6标号那里,程序不完整,没有写出来。以下同理
SETB TR0 ;开始启用T0计数器/定时器
LCALL DEL11
LCALL DEL12
LCALL ZY5
LCALL DEL12
LCALL ZY3
LCALL DEL11
LCALL ZY5
LCALL DEL11
; -----------------------
; 2-|1 6 5 6- | ;第二段
LCALL GY1
SETB TR0
LCALL DEL11
LCALL ZY6
LCALL DEL12
LCALL ZY5
LCALL DEL12
LCALL ZY6
LCALL DEL11
LCALL DEL11
; -----------------------
; 3-|3 5 6 5 3 |
LCALL ZY3
SETB TR0
LCALL DEL11
LCALL ZY5
LCALL DEL12
LCALL ZY6
LCALL DEL12
LCALL ZY5
LCALL DEL11
LCALL ZY3
LCALL DEL11
; -----------------------
; 4-|1 6 5 3 2- |
LCALL ZY1
SETB TR0
LCALL DEL12
LCALL DY6
LCALL DEL12
LCALL ZY5
LCALL DEL12
LCALL ZY3
LCALL DEL12
LCALL ZY2
LCALL DEL11
LCALL DEL11
; -----------------------
; 5-|2. 3 5 5 6 |
LCALL ZY2
SETB TR0
LCALL DEL11
LCALL DEL12
LCALL ZY3
LCALL DEL12
LCALL ZY5
LCALL DEL11
LCALL ZY5
LCALL DEL12
LCALL ZY6
LCALL DEL12
; -----------------------
; 6-|3 2 1 -|
LCALL ZY3
SETB TR0
LCALL DEL11
LCALL ZY2
LCALL DEL11
LCALL ZY1
LCALL DEL11
LCALL DEL11
; -----------------------
; 7-|5. 3 2 1 6 1 |
LCALL ZY5
SETB TR0
LCALL DEL11
LCALL ZY3
LCALL DEL12
LCALL ZY2
LCALL DEL12
LCALL ZY1
LCALL DEL12
LCALL DY6
LCALL DEL12
LCALL ZY1
LCALL DEL12
; -----------------------
; 8-|5 - - - |
LCALL DY5
SETB TR0
LCALL DEL11
LCALL DEL11
LCALL DEL11
LCALL DEL11

LJMP LOOP 跳转到loop那里重新播放
; ===========================================
; 低音音符频率对应16位定时器初值装置子程序
DY1: MOV 30H,#0F8H ;低音1-262HZ 把F8放在30的地址里面
MOV 40H,#89H
NOP
RET
DY2: MOV 30H,#0F9H ;低音2-294HZ
MOV 40H,#59H
RET
NOP
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式