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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统功能说明:

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

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

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

附录1:晶振为12M的音乐频率表

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

低1DO 262 63628 TH0=F7H TL0=24H #1DO# 277 63731 TH0=F8H TL0=F3H 低2RE 294 63835 TH0=F9H TL0=5BH #2RE# 311 63928 TH0=F9H TL0=B8H 低3M 330 64021 TH0=FAH TL0=15H 低4FA 349 64103 TH0=FAH TL0=67H #4FA# 370 64185 TH0=FAH TL0=B9H 低5SO 392 64260 TH0=FBH TL0=04H #5SO# 415 64331 TH0=FBH TL0=4BH 低6LA 440 64400 TH0=FBH TL0=90H #6 466 64463 TH0=FBH TL0=CFH 低7SI 494 64524 TH0=FCH TL0=0CH 中1DO 523 64580 TH0=FCH TL0=44H #1DO# 554 64633 TH0=FCH TL0=79H 中2RE 587 64684 TH0=FCH TL0=ACH #2RE# 622 64732 TH0=FCH TL0=DCH 中3M 659 64777 TH0=FDH TL0=09H 中4FA 698 64820 TH0=FDH TL0=34H #4FA# 740 64860 TH0=FDH TL0=5CH 中5SO 784 64898 TH0=FDH TL0=82H #5SO# 831 64934 TH0=FDH TL0=A6H 中6LA 880 64968 TH0=FDH TL0=C8H #6 932 64994 TH0=FDH TL0=E2H 中7SI 988 65030 TH0=FEH TL0=06H 高1DO 1046 65058 TH0=FEH TL0=22H #1DO# 1109 65085 TH0=FEH TL0=3DH 高2RE 1175 65110 TH0=FEH TL0=56H #2RE# 1245 65134 TH0=FEH TL0=6EH 高3M 1318 65157 TH0=FEH TL0=85H 高4FA 1397 65178 TH0=FEH TL0=9AH #4FA# 1480 65198 TH0=FEH TL0=AEH 高5SO 1568 65217 TH0=FEH TL0=C1H #5SO# 1661 65235 TH0=FEH TL0=D3H 高6LA 1760 65252 TH0=FEH TL0=E4H #6 1865 65268 TH0=FEH TL0=F4H 高7SI 1967 65283 TH0=FFH TL0=03H 休止符用TH0=FFH ,TL0=FFH表示

附录2:LCD相关资料

两行液晶显示的地址:(均为十六位计数)

0 1 2 3 4 5 6 7 8 9 A B C D E F

40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

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

附录3:实验程序:

RS BIT P2.0 ;定义液晶显示端口标号

RW BIT P2.1

E BIT P2.2

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

T0TH EQU 24H ;T0两个暂存变量

T0TL EQU 23H

ORG 0000H

LJMP INITION

ORG 000BH

LJMP T0INT

ORG 0100H

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

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

INITION:

MOV SP,#70H

MOV P0,#01H ;清屏

CALL ENABLE

MOV P0,#38H ;8位,2行显示

CALL ENABLE

MOV P0,#0CH ;屏显on,关光标

CALL ENABLE

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

CALL ENABLE

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

;开机提示

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

MOV P0,#80H

CALL ENABLE

MOV DPTR,#TABLE0 ;写数据的第一行

CALL WRITE1

MOV P0,#00010000B ;光标左移两位

CALL ENABLE

MOV P0,#00010000B

CALL ENABLE

CALL DEL0

LJMP MAIN

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

ENABLE:

CLR RS

CLR RW

SETB E

CALL DEL0

CLR E

RET

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

WRITE1:

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

A1:

MOV A,R1

MOVC A,@A+DPTR

CALL WRITE2

INC R1

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

RET

WRITE2:

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

SETB RS

CLR RW

SETB E

CALL DEL0

CLR E

RET

DEL0:MOV R4,#020H

C0:MOV R5,#020H

C1: DJNZ R5,C1

DJNZ R4,C0

RET

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

TABLE0:DB 'WELCOM HERE',00H

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

INITIAL:

MOV R3,#08H

MOV R0,#30H

M1:

MOV @R0,#00H

INC R0

DJNZ R3,M1

RET

;*************************选择按键播放八个音调****************** MAIN: MOV SP,#80H ;初始化堆栈

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

相关文档
最新文档