单片机简易电子琴课程设计
- 格式:doc
- 大小:86.50 KB
- 文档页数:12
单片机简易电子琴课程设计
哈尔滨理工大学
单片机原理及接口技术课程设计报告
设计题目:简易电子琴实验
专业:电机与电器
班级:电机10-3
姓名:朱明海
学号:1030350312
1234567
P1.0P1.1
P1.2P1.3P1.4P1.5
P1.6
Vcc
Buzzer LS12K
R1
5.1K
R2
8550Q60.01uF C40Ctrl
100
R11P1.7
五、课程设计框图
主程序:
节拍1子程序(手动按键时用) 节拍2子程序(手动按键时用)
0FFH->P1 开始 播放一段音乐 P1.0=0
调用节拍1子程序 N Y 调用节拍2子程序 Y
调用节拍3子程序
Y 调用节拍4子程序 调用节拍5子程序 调用节拍6子程序 调用节拍7子程序
P1.1=0
P1.2=0
N P1.3=0
Y Y Y P1.4=0
P1.5=0
N P1.6=0
Y N N N 0->P1.7 延时180us 1->P1.7 延时190us
开始 返回
0->P1.7 延时200us 1->P1.7 延时200us
开始 返回
节拍3子程序(手动按键时用)节拍4子程序(手动按键时用)开始
0->P1.7
延时180us
1->P1.7
延时170us
返回
开始
0->P1.7
延时160us
1->P1.7
延时160us
返回
节拍5子程序(手动按键时用)节拍6子程序(手动按键时用)开始
0->P1.7
延时150us
1->P1.7
延时150us
返回
开始
0->P1.7
延时140us
1->P1.7
延时140us
返回
节拍7子程序(手动按键时用)节
拍1子程序(自动放音时用,时间约0.2s )
节拍2子程序(自动放音时用,时间约0.2s ) 节拍3子程序(自动放音时用,时间约0.2s )
0->P1.7 延时220us 计数器-1 1->P1.7 延时210us 1100->计数器 N
计数器-1=0
返回
Y 0->P1.7 延时130us 1->P1.7 延时130us
开始 返回
开始
节拍4子程序(自动放音时用,时间约0.2s ) 节拍5子程序(自动放音时用,时间约0.2s )
节拍6子程序(自动放音时用,时间约0.2s ) 节拍7子程序(自动放音时用,时间约0.2s )
N
Y 0->P1.7 延时170us 计数器-1 1->P1.7 延时170us
开始 1300->计数器 计数器-1=0
返回
Y N
0->P1.7 延时180us 计数器-1 1->P1.7 延时180us 开始 1250->计数器 计数器-1=0
返回
0->P1.7 延时185us 计数器-1 1->P1.7 延时180us
开始 1200->计数器 Y N
计数器-1=0
返回
N
Y 0->P1.7 延时190us 计数器-1 1->P1.7 延时190us 开始 1150->计数器 计数器-1=0
返回
六、课程设计步骤
1、主机连线说明
D1区:Ctrl — A3区:P1.7 G6区:JP74 —
A3区:JP51(P1口)
2、运行程序,按G6区的1-7号键,输出7种音阶。
3、使用G6区的1-7号键,自弹一首歌曲。
七、课程设计演示程序
K1 BIT P1.0
;按键1 K2
BIT P1.1 ;按键2
Y N
0->P1.7 延时150us 计数器-1 1->P1.7 延时150us 开始 1420->计数器 计数器-1=0
返回
N
Y 0->P1.7 延时160us 计数器-1 1->P1.7 延时160us 开始 1350->计数器 计数器-1=0
返回
K3 BIT P1.2 ;按键3
K4 BIT P1.3 ;按键4
K5 BIT P1.4 ;按键5
K6 BIT P1.5 ;按键6
K7 BIT P1.6 ;按键7
Buzzer BIT P1.7 ;蜂鸣器
M1 EQU 17
M2 EQU 16
M3 EQU 15
M4 EQU 14
M5 EQU 13
M6 EQU 12
M7 EQU 11
ORG 0000H
LJMP START
ORG 0100H
START: MOV SP,#60H
MAIN: MOV P1,#0FFH ;P1口初始化
LCALL Demo ;播放一段演示音乐
MAIN_1: JB K1,MAIN_2 ;判断1号键是否按下,否则检测2号键LCALL Sound1 ;发音子程序
MAIN_2: JB K2,MAIN_3 ;判断2号键是否按下,否则检测3号键
LCALL Sound2 ;发音子程序
MAIN_3: JB K3,MAIN_4 ;判断2号键是否按下,否则检测4号键
LCALL Sound3 ;发音子程序
MAIN_4: JB K4,MAIN_5 ;判断4号键是否按下,否则检测5号键
LCALL Sound4 ;发音子程序
MAIN_5: JB K5,MAIN_6 ;判断5号键是否按下,否则检测6号键
LCALL Sound5 ;发音子程序
MAIN_6: JB K6,MAIN_7 ;判断6号键是否按下,否则检测7号键
LCALL Sound6 ;发音子程序
MAIN_7: JB K7,MAIN_73 ;判断7号键是否按下,否则跳回检测1号键
LCALL Sound7 ;发音子程序
MAIN_73: SJMP MAIN_1 ;返回从1号键开始扫描
;播放演示音乐