演講者EQU p 2.0;定義喇叭驅動端口
ORG 0000H偽地址
LJMP MAIN跳遠,執行主要功能。
ORG 000BH
LJMP DSQT0
主營: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計數器/定時器環路:NOP開始循環了。不完整程序
;-
;1-|6.5 3 5 | ;第壹段
LCALL DY6長跳轉到bass 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循環跳轉到循環並再次播放。
;===========================================
;16位定時器初始值裝置對應低音音符頻率的子程序
DY1: MOV 30H,# 0F8H低音1-262赫茲把F8放在地址30。
MOV 40H,#89H
nototherwiseprovided(for)除非另有規定
浸水使柔軟
DY2: MOV 30H,# 0F9H低音2-294赫茲
MOV 40小時,# 59小時
浸水使柔軟
nototherwiseprovided(for)除非另有規定