成语大全网 - 汉语词典 - 使用80c51单片机at89s52芯片、汇编语言编写“世上只有妈妈好”的音乐播放代码

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

//=转自人家。。

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