音乐喷泉控制系统设计报告

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

音乐喷泉控制系统设计报告

姓名:张彦波

学号:201258502248

班级:计122-2

指导教师:孙红霞

一、设计任务

1、设计内容:设计随音乐节拍变化的喷泉控制系统,并编程实现其相应功能

2、设计要求:按音乐节拍快慢等变化控制喷泉的各喷头水柱高低变化,以构成各种造型。

二、设计思路和原理

通过8255和8254接口芯片来完成音乐喷泉的模拟, 该设计主要是由三部分组成:第一部分为键盘扫描,用来确定按键位置,并给8254计数器赋初值;第二部分为发声部分,是由8254计数器0的输出端产生一定频率的方波信号从而使扬声器发声;第三部分为LED彩灯部分,通过8255端口C控制彩灯亮的个数。

第一部分键盘扫描由8255芯片的PA0—PA4,PB0—PB4分别与键盘单元的Y1—Y4,X1—X4相连,其中B口低4位为输出端,A口低4位为输入端,由它们对键盘单元进行扫描,其确定键值的过程为:先给所有列线输入低电平,然后读取行线,检测行线是否为低电平,如果有某条行线输出低电平,则说明该键盘有按键被按下,否则,说明无按键被按下。采用这种方法就可以快速判断键盘是否有键被按下。在检查到有键按下后,再通过行扫描法判断按下的位置,从而确定按下的是什么键,后经过计算得出计数器0的初值。

第二部分主要用到了8254芯片中的计数器0,其CLK0端在微机内部已接好频率为1MHZ的方波信号(由系统自动提供),计数控制端GATE1接至+5V,计数器输出端OUT0接至发声单元,可以经过键盘的控制来发出声音。

第三部分主要由8255端口C控制,端口C与发光二极管相连,当键盘判断出所按位置的时候,根据所发音的不同亮不同盏数的灯,例:哆—一盏,唻—两盏,咪—三盏以此类推,以上三部分即可完成音乐喷泉的模拟。

三、设计原理流程图

四、实际硬件接线图

五、程序清单

MY8255_A EQU 0640H

MY8255_B EQU 0642H

MY8255_C EQU 0644H

MY8255_MODE EQU 0646H

MY8254_MODE EQU 0686H

MY8254_A EQU 0680H SSTACK SEGMENT STACK

DW 8 DUP(?)

SSTACK ENDS

DATA SEGMENT

FREQ_LIST DW 441D,495D,556D,589D,661D,742D,833D,882D

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,MY8255_MODE

MOV AL,90H

OUT DX,AL

MOV DX,MY8254_MODE

MOV AL,36H

OUT DX,AL

BEGIN: CALL SCAN

JNZ INK1

JMP BEGIN

;========================================

;确定按下键的位置

;========================================

INK1: CALL SCAN

JNZ INK2

JMP BEGIN

INK2: MOV CH,0FEH

MOV CL,00H

COOL: MOV AL,CH

MOV DX,MY8255_B

OUT DX,AL

MOV DX,MY8255_A

IN AL,DX

L1: TEST AL,01H

JNZ L2 MOV AL,00H

JMP CO

L2: TEST AL,02H

JNZ L3

MOV AL,04H

JMP CO

L3: TEST AL,04H

JNZ L4

MOV AL,08H

JMP CO

L4: TEST AL,08H

JNZ NEXT

MOV AL,0CH

CO: ADD AL,CL

MOV BL,AL

MOV DL,2D

MUL DL

JMP AA1

PLAY: MOV SI,OFFSET FREQ_LIST

ADD SI,AX

MOV DX,0FH

MOV AX,4240H

DIV WORD PTR[SI]

MOV DX,MY8254_A

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV AL,BL

CMP AL,08H

JG CY

MOV CX,32H

JMP NEXT3

CY: MOV CX,5FH

NEXT3: CALL DELAY

LOOP NEXT3

JMP BEGIN

NEXT: INC CL

MOV AL,CH

TEST AL,08H

JZ KEPP

ROL AL,1D

MOV CH,AL

JMP COOL

AA1: MOV DX,MY8255_C

CMP BL,00H

JZ A1

JNZ A2

A1: MOV AL,01H

OUT DX,AL

MOV AL,00H

JMP PLAY

A2: CMP BL,01H

JZ B1

JNZ B2

B1 : MOV AL,03H

OUT DX,AL

MOV AL,02H

JMP PLAY

B2: CMP BL,02H

JZ C1

JNZ C2

C1: MOV AL,07H

OUT DX,AL

MOV AL,04H

JMP PLAY

C2: CMP BL,03H

JZ D1

JNZ D2

D1: MOV AL,0FH

OUT DX,AL

MOV AL,06H

JMP PLAY

D2: CMP BL,04H

JZ E1

JNZ E2

相关文档
最新文档