单片机+电子琴设计+八个音调+三首歌+歌词显示.docx

上传人:b****7 文档编号:24949565 上传时间:2023-06-03 格式:DOCX 页数:16 大小:30.50KB
下载 相关 举报
单片机+电子琴设计+八个音调+三首歌+歌词显示.docx_第1页
第1页 / 共16页
单片机+电子琴设计+八个音调+三首歌+歌词显示.docx_第2页
第2页 / 共16页
单片机+电子琴设计+八个音调+三首歌+歌词显示.docx_第3页
第3页 / 共16页
单片机+电子琴设计+八个音调+三首歌+歌词显示.docx_第4页
第4页 / 共16页
单片机+电子琴设计+八个音调+三首歌+歌词显示.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机+电子琴设计+八个音调+三首歌+歌词显示.docx

《单片机+电子琴设计+八个音调+三首歌+歌词显示.docx》由会员分享,可在线阅读,更多相关《单片机+电子琴设计+八个音调+三首歌+歌词显示.docx(16页珍藏版)》请在冰豆网上搜索。

单片机+电子琴设计+八个音调+三首歌+歌词显示.docx

单片机+电子琴设计+八个音调+三首歌+歌词显示

系统功能说明:

1、通过八个按键是否按下发出相应的1234567i这8个音调

2、实验中可以播放三首歌曲,通过开关控制

3、播放歌曲时,液晶屏显示播放歌曲号及歌词

 

附录1:

晶振为12M的音乐频率表

音符频率(Hz)简谱码(T值)

低1DO26263628TH0=F7HTL0=24H

#1DO#27763731TH0=F8HTL0=F3H

低2RE29463835TH0=F9HTL0=5BH

#2RE#31163928TH0=F9HTL0=B8H

低3M33064021TH0=FAHTL0=15H

低4FA34964103TH0=FAHTL0=67H

#4FA#37064185TH0=FAHTL0=B9H

低5SO39264260TH0=FBHTL0=04H

#5SO#41564331TH0=FBHTL0=4BH

低6LA44064400TH0=FBHTL0=90H

#646664463TH0=FBHTL0=CFH

低7SI49464524TH0=FCHTL0=0CH

中1DO52364580TH0=FCHTL0=44H

#1DO#55464633TH0=FCHTL0=79H

中2RE58764684TH0=FCHTL0=ACH

#2RE#62264732TH0=FCHTL0=DCH

中3M65964777TH0=FDHTL0=09H

中4FA69864820TH0=FDHTL0=34H

#4FA#74064860TH0=FDHTL0=5CH

中5SO78464898TH0=FDHTL0=82H

#5SO#83164934TH0=FDHTL0=A6H

中6LA88064968TH0=FDHTL0=C8H

#693264994TH0=FDHTL0=E2H

中7SI98865030TH0=FEHTL0=06H

高1DO104665058TH0=FEHTL0=22H

#1DO#110965085TH0=FEHTL0=3DH

高2RE117565110TH0=FEHTL0=56H

#2RE#124565134TH0=FEHTL0=6EH

高3M131865157TH0=FEHTL0=85H

高4FA139765178TH0=FEHTL0=9AH

#4FA#148065198TH0=FEHTL0=AEH

高5SO156865217TH0=FEHTL0=C1H

#5SO#166165235TH0=FEHTL0=D3H

高6LA176065252TH0=FEHTL0=E4H

#6186565268TH0=FEHTL0=F4H

高7SI196765283TH0=FFHTL0=03H

休止符用TH0=FFH,TL0=FFH表示

附录2:

LCD相关资料

两行液晶显示的地址:

(均为十六位计数)

0123456789ABCDEF

404142434445464748494A4B4C4D4E4F

命令格式要求,设置地址指针的时候第8位为1,后边为地址,即AC0~AC6,就是对应上表的地址。

附录3:

实验程序:

RSBITP2.0;定义液晶显示端口标号

RWBITP2.1

EBITP2.2

;********************************************

T0THEQU24H;T0两个暂存变量

T0TLEQU23H

ORG0000H

LJMPINITION

ORG000BH

LJMPT0INT

ORG0100H

;********************************************

;*************************液晶初始化******************

INITION:

MOVSP,#70H

MOVP0,#01H;清屏

CALLENABLE

MOVP0,#38H;8位,2行显示

CALLENABLE

MOVP0,#0CH;屏显on,关光标

CALLENABLE

MOVP0,#06H;计数地址加1,自动右移

CALLENABLE

;******************************************

;开机提示

;******************************************

MOVP0,#80H

CALLENABLE

MOVDPTR,#TABLE0;写数据的第一行

CALLWRITE1

MOVP0,#00010000B;光标左移两位

CALLENABLE

MOVP0,#00010000B

CALLENABLE

CALLDEL0

LJMPMAIN

;*********************************************写指令

ENABLE:

CLRRS

CLRRW

SETBE

CALLDEL0

CLRE

RET

;**********************************************写数据

WRITE1:

MOVR1,#00H;查表程序,从表头到表尾

A1:

MOVA,R1

MOVCA,A+DPTR

CALLWRITE2

INCR1

CJNEA,#00H,A1;未到字符串末尾继续

RET

WRITE2:

MOVP0,A;直接将数据写入液晶屏

SETBRS

CLRRW

SETBE

CALLDEL0

CLRE

RET

DEL0:

MOVR4,#020H

C0:

MOVR5,#020H

C1:

DJNZR5,C1

DJNZR4,C0

RET

;******************************************

TABLE0:

DB'WELHERE',00H

;*************************内存初始化******************

INITIAL:

MOVR3,#08H

MOVR0,#30H

M1:

MOVR0,#00H

INCR0

DJNZR3,M1

RET

;*************************选择按键播放八个音调******************

MAIN:

MOVSP,#80H;初始化堆栈

MOVTMOD,#11H;定时器0工作方式0,定时器1工作方式0

SETBEA

SETBET0;计数器0允许

SETBET1;计数器1允许

START:

SETBP3.7;关蜂鸣器

CLRTR0;定时器不允许

SCAN:

;键盘扫描

MOVA,P1

CJNEA,#0FFH,SU_KEY;判断键盘按下,跳到SU_KEY,若未按,继续扫描

NOP

LJMPSCAN

SU_KEY:

SU_KEY1:

P1.0,SU_KEY2;如果不是第1个键按下,转

MOVDPH,#0FCH

MOVDPL,#44H

SJMPPLAY

SU_KEY2:

P1.1,SU_KEY3;如果不是第2个键按下,转

MOVDPH,#0FCH

MOVDPL,#0ACH

SJMPPLAY

SU_KEY3:

P1.2,SU_KEY4;如果不是第3个键按下,转

MOVDPH,#0FDH

MOVDPL,#09H

SJMPPLAY

SU_KEY4:

P1.3,SU_KEY5;如果不是第4个键按下,转

MOVDPH,#0FDH

MOVDPL,#34H

SJMPPLAY

SU_KEY5:

P1.4,SU_KEY6;如果不是第5个键按下,转

MOVDPH,#0FDH

MOVDPL,#82H

SJMPPLAY

SU_KEY6:

P1.5,SU_KEY7;如果不是第6个键按下,转

MOVDPH,#0FDH

MOVDPL,#0C8H

SJMPPLAY

SU_KEY7:

P1.6,SU_KEY8;如果不是第7个键按下,转

MOVDPH,#0FEH

MOVDPL,#06H

SJMPPLAY

SU_KEY8:

P1.7,KEY1;如果不是第8个键按下,转

MOVDPH,#0FEH

MOVDPL,#22H

SJMPPLAY

PLAY:

MOVT0TH,DPH;存高位字符

MOVT0TL,DPL;存低位字符

MOVTH0,T0TH

MOVTL0,T0TL

SETBTR0;启动定时器0

MOVR2,#01B;1/4拍

DJNZR2,PLAY

LCALLDELAY

SJMPJUDGE

JUDGE:

P2.4,START;按键未按下,则继续扫描,否则,开始放音乐

;*************************选择按键播放音乐******************

KEY1:

P2.5,KEY2;第一个键(P2.5)按下,放音音乐1

MOVR2,#00H

LCALLMODD;歌曲号显示

MOVDPTR,#MU_TAB1

AJMPMUSIC

KEY2:

P2.6,KEY3;第二个键(P2.6)按下,放音乐2

MOVR2,#01H

LCALLMODD;歌曲号显示

MOVDPTR,#MU_TAB2

AJMPMUSIC

KEY3:

P2.7,NEXT_2;第三个键(P2.7)按下,放音乐3

MOVR2,#02H

LCALLMODD;歌曲号显示

MOVDPTR,#MU_TAB3

AJMPMUSIC

NEXT_2:

LJMPSTART;返回

MUSIC:

MOVTMOD,#01H

MOVIE,#82H;允许T0中断

MOVR7,#00H

LOOP:

CLRA

MOVCA,A+DPTR;查表取代码

MOVR1,A;定时器高八位存R1

INCDPTR

PUSHDPH;保护现场

PUSHDPL

GECI1:

P2.5,GECI2;第一个键(P2.5)按下,显示歌词1

MOVDPTR,#GE1

AJMPGECI

GECI2:

P2.6,GECI3;第二个键(P2.6)按下,显示歌词2

MOVDPTR,#GE2

AJMPGECI

GECI3:

P2.7,TIAOCHU;第三个键(P2.7)按下,显示歌词3

MOVDPTR,#GE3

AJMPGECI

TIAOCHU:

LJMPSTART

GECI:

LCALLQINGCHU

MOVP0,#0C0H;显示的位置

CALLENABLE

XIANSHI1:

MOVA,R7;查表取音乐汉语拼音显示

MOVCA,A+DPTR

CALLWRITE2

INCR7

CJNEA,#00H,XIANSHI1

MOVP0,#00010000B;将光标左移一位

CALLENABLE

MOVP0,#00010000B;将光标左移一位

CALLENABLE

POPDPL

POPDPH

CLRA

MOVCA,A+DPTR

MOVR0,A;定时器低八位存R0

ORLA,R1

JZNEXT0;相或结果全0为休止符

MOVA,R0

ANLA,R1

CJNEA,#0FFH,NEXT;相与结果为0FFH表示乐曲结束

MOVP0,#01H;清屏

CALLENABLE

LJMPINITION;从头开始演奏

NEXT:

MOVT0TH,R1;装定时初值

MOVTH0,T0TH

MOVT0TL,R0

MOVTL0,T0TL

SETBTR0;启动定时器

SJMPNEXT1

NEXT0:

CLRTR0;关闭定时器

NEXT1:

CLRA

INCDPTR

MOVCA,A+DPTR;查延时常数

MOVR2,A

LOOP1:

ACALLD200

DJNZR2,LOOP1;控制延时次数

INCDPTR

AJMPLOOP

D200:

MOVR3,#81H;延时程序

D200B:

MOVA,#0FFH

D200A:

DECA

JNZD200A

DECR3

CJNER3,#00H,D200B

RET

QINGCHU:

MOVA,#00100000B

MOVP0,#0C0H;将第二行的第一位置0

LCALLENABLE

LCALLWRITE2

MOVA,#00100000B;将第二行的第二位置0

MOVP0,#0C1H

LCALLENABLE

LCALLWRITE2

MOVA,#00100000B;将第二行的第三位置0

MOVP0,#0C2H

LCALLENABLE

LCALLWRITE2

MOVA,#00100000B;将第二行的第四位置0

MOVP0,#0C3H

LCALLENABLE

LCALLWRITE2

MOVA,#00100000B;将第二行的第五位置0

MOVP0,#0C4H

LCALLENABLE

LCALLWRITE2

MOVA,#00100000B;将第二行的第六位置0

MOVP0,#0C5H

LCALLENABLE

LCALLWRITE2

MOVA,#00100000B;将第二行的第七位置0

MOVP0,#0C6H

LCALLENABLE

LCALLWRITE2;将第二行的第三位置0

;以上等价程序如下

;GECI:

MOVR3,#00H;控制循环次数

;QINGCHU:

;MOVA,#00100000B;置空格

;PUSHA

;MOVR4,#0C0H;地址

;MOVA,R4

;MOVP0,A

;POPA

;INCR4

;DECR3;控制循环次数

;CJNER3,#00H,QINGCHU;计满十次则执行转移

;***************************************************

;定时器0中断子程序,定时音乐

;***************************************************

T0INT:

;中断服务子程序

MOVTH0,T0TH

MOVTL0,T0TL

CPLP3.7;反相输出,演示音乐

RETI

;******************************************

;显示

;******************************************

MODD:

MOVP0,#8EH

LCALLENABLE

MOVA,R2

MOVDPTR,#TABLE2

MOVCA,A+DPTR

LCALLWRITE2

RET

TABLE2:

DB31H,32H,33H

GE1:

db'xin',00h,'nian',00h,'hao',00h,'ya',00h,'xin',00h,'nian',00h,'hao',00h,'ya',00h

db'zhu',00h,'fu',00h,'da',00h,'jia',00h,'xin',00h,'nian',00h,'hao',00h

GE2:

DB'liang',00H,'zhi',00H,'lao',00H,'hu',00H,'liang',00H,'zhi',00H,'lao',00H,'hu',00H,'pao',00H,'de',00H,'kuai',00H

DB'pao',00H,'de',00H,'kuai',00H,'yi',00H,'zhi',00H,'mei',00H,'you',00H,'yan',00H,'jing',00H,'yi',00H,'zhi',00H

DB'mei',00H,'you',00H,'er',00h,'duo',00h,'zhen',00h,'qi',00h,'guai',00h,'zhen',00h,'qi',00h,'guai',00h

GE3:

DB'wo',00h,'ai',00h,'bei',00h,'jing',00h,'tian',00h,'an',00h,'men',00h,'tian',00h,'an',00h

;*************************延时子程序******************

DELAY:

MOV30H,#100;延长时间等待,键盘消抖

D1:

MOVR5,#200

D2:

DJNZR5,D2

DJNZ30H,D1

RET

;*******************新年好******************************

MU_TAB1:

DB0FEH,25H,04H,0FEH,25H,04H

DB0FEH,25H,06H,0FDH,80H,06H

DB0FEH,84H,04H,0FEH,84H,04H

DB0FEH,84H,06H,0FEH,25H,06H

DB0FEH,25H,04H,0FEH,84H,04H

DB0FEH,0C0H,04H,0FEH,84H,04H

DB0FEH,98H,04H,0FEH,84H,04H

DB0FEH,57H,06H

DB0FFH,0FFH

;*******************两只老虎****************************

MU_TAB2:

DB0FCH,44H,06H,0FCH,0ACH,06H,0FDH,09H,06H,0FCH,44H,06H

DB0FCH,44H,06H,0FCH,0ACH,06H,0FDH,09H,06H,0FCH,44H,06H

DB0FDH,09H,06H,0FDH,34H,06H,0FDH,0A6H,06H

DB0FDH,09H,06H,0FDH,34H,06H,0FDH,0A6H,06H

DB0FBH,04H,04H,0FDH,0C8H,04H,0FBH,04H,04H,0FDH,34H,04H

DB0FDH,09H,04H,0FCH,44H,04H,0FBH,04H,04H,0FDH,0C8H,04H

DB0FBH,04H,04H,0FDH,34H,04H,0FDH,09H,04H,0FCH,44H,04H

DB0FCH,44H,06H,0FDH,0A6H,06H,0FCH,44H,06H

DB0FCH,44H,06H,0FDH,0A6H,06H,0FCH,44H,06H

DB0FFH,0FFH

;*******************我爱天安门****************************

MU_TAB3:

DB0FDH,82H,06H,0FEH,22H,04H,0FDH,82H,04H,0FDH,34H,04H

DB0FDH,09H,04H,0FCH,0ACH,04H,0FCH,44H,06H

DB0FFH,0FFH,0FFH,0FFH

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1