新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机音乐程序

单片机音乐程序

作者:时间:2013-03-08来源:网络收藏

利用(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从的基本发间实验出发,谈谈的设计原理,并给出具体实例,以供参考。下面提供2个列子,大家根据 需要自行选择

最小系统,两位LED数码管由串口输出接两个164驱动,Lout,Rout为左右声道输出,
SET, ALT0, ALT1为三个按键,也可自己在开始的I/O定义改成你想用的I/O口;12M晶振
若用89C51则只可装下约14首歌曲,用则可装下近40曲

源程序
; Electronic Music
; Version 4.50
; Copyright (c) XAJ 2001
;============================
LOUT BIT P1.0 ;左声道输出
ROUT BIT P1.2 ;右声道输出
SET BIT P3.3 ;SET按键
ALT0 BIT P3.6 ;ALT0按键
ALT1 BIT P3.7 ;ALT1按键

;REPNUM EQU 09H重复段编号
STATU EQU 0AH;状态寄存器
LDYDSR EQU 0BH;左低音度数
RDYDSR EQU 0CH;右低音度数
LDYAR EQU 0DH;左低音协助
RDYAR EQU 0EH;右低音协助
JPCLK EQU 0FH;节拍时钟
GENCLK EQU 10H;通用时钟
SNSDCLK EQU 11H;搜、存显示时钟
GEN16T0 EQU 12H;通用16位时钟
GEN16T1 EQU 13H;
SETST0 EQU 14H;设置状态
SETST1 EQU 15H; 定时时钟
DISNUM0 EQU 16H;显示数值
DISNUM1 EQU 17H;寄存器(2位)
CSN EQU 18H;当前曲曲号
REP0L EQU 19H;0号重复段地址
REP0H EQU 1AH;
REP1L EQU 1BH;1号重复段地址
REP1H EQU 1CH;
REP2L EQU 1DH;2号重复段地址
REP2H EQU 1EH
REP3L EQU 1FH;3号重复段地址
REP3H EQU 23H;
COSPEEDN EQU 24H;
SPENR EQU 25H;

LOCF BIT 00H;左声道开关标志
ROCF BIT 01H;右声道开关标志
SECHSTOF BIT 02H;搜索、存储标志
NEXTSF BIT 03H;下一曲标志
CSBESTOF BIT 04H;当前曲锁存/释放
CUYFD BIT 05H;当前音符显示
KSETF BIT 06H;SET键按下标志
KALT0F BIT 07H;ALT0键按下标志
KALT1F BIT 08H;ALT1键按下标志
SPEEDF BIT 09H;速度增/减标志
TONEF BIT 0AH;音调增/减标志
YPBIT BIT 0BH;音频逻辑输出
KBDISF BIT 0CH;键盘显示标志
REP0F BIT 0DH;0号重复段控制
REP1F BIT 0EH;1号重复段控制
REP2F BIT 0FH;2号重复段控制
REP3F BIT 10H;3号重复段控制

SBOTM EQU 25H;堆栈区(栈底)
BUFF0 EQU 43H;锁存曲数
BUFF EQU 44H;锁存曲缓冲区
;============================

;=========BEGIN==============
ORG 0000H
LJMP MAIN
;---------T0INT--------------
ORG 000BH
LJMP T0INT

;---------T1INT--------------
ORG 001BH
LJMP T1INT
;1.音频发生器
;---------YPFSQ(01)----------
ORG 0030H
T0INT: MOV TL0,R4
MOV TH0,R5
PUSH PSW
PUSH ACC
PUSH 01H
JB LOCF,ROPER
MOV R1,#00H
MOV A,LDYAR
T0LLOP: RRC A
MOV YPBIT,C
XCH A,R1
CJNE A,LDYDSR,T0LNEXT
MOV C,YPBIT
MOV LOUT,C
INC LDYAR
; INC P0
SJMP ROPER
T0LNEXT: XCH A,R1
INC R1
SJMP T0LLOP
ROPER: JB ROCF,T0RETI
MOV R1,#00H
MOV A,RDYAR
T0RLOP: RRC A
MOV YPBIT,C
XCH A,R1
CJNE A,RDYDSR,T0RNEXT
MOV C,YPBIT
MOV ROUT,C
INC RDYAR
; INC P2
SJMP T0RETI
T0RNEXT: XCH A,R1
INC R1
SJMP T0RLOP
T0RETI: POP 01H
POP ACC
POP PSW
RETI
;2.通用时钟


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭