微机原理课程设计-电子琴_第1页
微机原理课程设计-电子琴_第2页
微机原理课程设计-电子琴_第3页
微机原理课程设计-电子琴_第4页
微机原理课程设计-电子琴_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自动化专业课程设计报告微型计算机原理课程设计班 级 自动化12-3 姓 名 金星 学 号 1205130323 时 间 2014.12.18 地 点 电信实验中心第六实验 指 导 教 师 李 向 军 大 连 海 洋 大 学 信 息 工 程 学 院自 动 化 教 研 室题目:计算机仿真电子琴 一、课程设计的目的与要求1、设计目的本课程课程设计是自动化专业学生学习完微机原理及应用课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。本课程设计的目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。2、设计要求 从课程设计的目的出发,通过设计工

2、作的各个环节,达到以下要求:1) 掌握汇编语言程序设计的基本方法。2) Dos的基本调用。3) 进一步理解各种接口电路的应用。(8255并行接口,8254定时器等)。4) 掌握利用PC机扬声器发出不同频率声音的方法。3、主要技术指标 编写程序1) 在程序运行时使PC即成为一架可弹奏的电子琴。当按下数字键1-8时,依次发出1,2,3,4,5,6,7,I这八个音调。按下CTRL+C或者回车则退出电子琴状态。2) 在程序运行时使PC自动按要求提示演奏乐曲。音符1234567频率(低)131147165175196220247频率(中)262294330349392440494频率(高)5245886

3、60698784880988二、课程设计课题的分析8255/8245的硬件:电子琴的设计实际上就是要设计一个程序,能够通过该程序控制PC机内扬声器的发声规律,按下相应的按键后,扬声器能发出指定频率的声音。PC机内的扬声器是通过并行接口芯片8255和定时芯片8253来控制发音的,其电路连接方式如下图所示。 图1.扬声器工作原理图示图2.主程序工作流程图 图3.乐曲演奏子程序工作流程图 图4.电子琴子程序工作流程图图5.扬声器工作流程图8255的内部结构图如图2所示,它有3个数据端口,分为两组,A组由A口和C口高四位组成,B组由B口和C口低四位组成。其方式控制字如图3所示。图2 8255内部结构图

4、图3 8255方式控制字方式控制字的特征位D0D7D6D5D4D3D2D1 1 A组工作方式0 0方式00 1方式11 ´方式2B组工作方式0方式01方式1A口输入/输出1输入0输出PC7PC4输入/输出1输入0输出B口输入/输出1输入0输出PC3PC0输入/输出1输入0输出 PC机内8255的A口,B口,C口和控制口的端口地址分别为:60H,61H,62H,63H。2.2 8253工作原理 8253芯片中有3个计数通道,称为通道0,1,2,它们与外部电路相连的信号线有3根:CLK,GATE,OUT,CLK是脉冲输入端,GATE是门控信号,OUT是输出信号,计数器工作在减1状态。其内

5、部结构图和方式控制字格式如图4,图5所示。其中当计数器工作在方式3时,输出信号为方波信号。内部总线A1GATE0CLK0OUT0GATE1CLK1OUT1GATE2CLK2OUT2D0-D7计数器0计数器2计数器1控制寄存器A0数据总线缓冲器R/W逻辑电路图4 8253内部结构图D7D6D5D4D3D2D1D0计数器选择00 计数器001计数器110 计数器211 不用00 计数器锁存01 读写低8位10 读写高8位11 读写16位工作方式选择000 方式0001 方式1×10 方式2×11 方式3100 方式4101 方式5计数方式0 二进制1 BCD计数图5 8253控

6、制字格式PC机内8253的通道0,通道1,通道2,控制口的端口地址分别为:40H,41H,42,43H。因为扬声器是由通道2来控制的,故应选择通道2,工作方式选为方式3,输出的信号则为方波信号。三、课程设计的结果1、实验代码DATA SEGMENTINFO1 DB 0AH, 0DH, 'WELCOME YOU TO COME HERE!$' DB 0AH, 0DH, 'THIS IS A MUSIC PROGRAM!$' DB 0AH, 0DH, 'PLEASE SELECLT!$'INFO4 DB 0AH, 0DH, 'INPUT ER

7、ROR!$'INFO5 DB 0AH, 0DH, 'PLEASE INPUT AGAIN!$'MUSLIST DB 0AH, 0DH, '=' DB 0AH, 0DH, 'Press1 HuanLeSong' DB 0AH, 0DH, 'Press2 KaiXin' DB 0AH, 0DH, 'Press3 XiaoBuWuQu' DB 0AH, 0DH, 'Press4 Wonderful' DB 0AH, 0DH, 'Press5 SCALE PLAY ' DB 0AH,

8、 0DH, 'Press6 EXIT' DB 0AH, 0DH, '=' DB 0AH, 0DH, '$'MUS_FRQ1 DW 330, 330, 350, 393, 393, 350, 330, 294 DW 262, 262, 294, 330, 330, 294, 294 DW 330, 330, 350, 393, 393, 350, 330, 294 DW 262, 262, 294, 330, 294, 262, 262 DW 294, 294, 330, 262, 294, 330, 350, 330, 262 DW 294, 3

9、30, 350, 330, 262, 262, 294, 393 DW 330, 330, 350, 393, 393, 350, 330, 294 DW 262, 262, 294, 330, 294, 262, 262, -1MUS_TIM1 DW 8 DUP(100) DW 7 DUP(100),200 DW 8 DUP(100) DW 7 DUP(100),200 DW 5 DUP(100),50,50,2 DUP(100) DW 100,50,50,4 DUP(100),200 DW 8 DUP(100) DW 7 DUP(100),200MUS_FRQ2 DW 330, 294,

10、262, 294, 3 DUP(330) DW 3 DUP(294), 330, 392, 392 DW 330, 294, 262, 294, 4 DUP(330) DW 294, 294, 330, 294, 262, -1MUS_TIM2 DW 6 DUP(100),200 DW 2 DUP(100,100,200) DW 8 DUP(100) DW 4 DUP(100),400MUS_FRQ3 DW 392, 262, 294, 330, 350, 392, 262, 262 DW 440, 350, 392, 440, 494, 524, 262, 262 DW 350, 392,

11、350, 330, 294, 330 DW 350, 330, 294, 262, 294, 330, 294, 262, 247, 262,-1MUS_TIM3 DW 200, 4 DUP(100), 200, 200, 200 DW 200, 4 DUP(100), 200, 200, 200 DW 200, 4 DUP(100), 200 DW 4 DUP(100), 200, 4 DUP(100), 400MUS_FRQ4 DW 330, 392, 330, 294, 330, 392, 330, 394, 330 DW 330, 392, 330, 294, 262, 294, 33

12、0, 392, 294 DW 262, 262, 220, 196, 196, 220, 262, 294, 330, 262,-1MUS_TIM4 DW 3 DUP(200), 100, 100, 200, 100, 100, 400 DW 2 DUP(200,200,100,100), 400 DW 3 DUP(200,100,100), 400TABLE DW 262, 294, 330, 349, 392, 440, 494, 525 NUMB DB 0AH, 0DH, 'Keyboard number 18 keys play notes of the scale'

13、DB 0AH, 0DH, 'Enter or Ctrl+C to exit' DB 0AH, 0DH, '$'DATA ENDSSTACK SEGMENT PARA STACK 'STACK' STA DB 200 DUP('STACK') STACK ENDSCODE SEGMENTASSUME DS: DATA, SS: STACK, CS: CODE, ES: DATASTART: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, STACK MOV SS, AXDISPLY MACRO

14、B MOV DX, OFFSET B MOV AH, 09H INT 21HENDM DISPLY INFO1 LOP: DISPLY MUSLIST MOV AH, 01H INT 21H CMP AL, 36H JZ RETU CMP AL, 31H JNZ B0 CALL MUSIC1 JMP EXIT1B0: CMP AL, 32H JNZ C0 CALL MUSIC2 JMP EXIT1C0: CMP AL, 33H JNZ D0 CALL MUSIC3 JMP EXIT1D0: CMP AL, 34H JNZ E0 CALL MUSIC4 JMP EXIT1E0: CMP AL,

15、35H JNZ EXIT DISPLY NUMB CALL MUSIC5EXIT1: DISPLY INFO5 JMP LOPEXIT: DISPLY INFO4 DISPLY INFO5 JMP LOPRETU: MOV AX, 4C00H INT 21HMUSIC1 PROC LEA SI, MUS_FRQ1 LEA BP,DS: MUS_TIM1FREQ1: MOV DI, SI CMP DI,-1 JE END_MUS1 MOV BX, DS: BP CALL SOUND ADD SI,2 ADD BP,2 JMP FREQ1 END_MUS1:RETMUSIC1 ENDPMUSIC2

16、 PROC LEA SI, MUS_FRQ2 LEA BP,DS: MUS_TIM2FREQ2: MOV DI, SI CMP DI,-1 JE END_MUS2 MOV BX, DS: BP CALL SOUND ADD SI,2 ADD BP,2 JMP FREQ2 END_MUS2:RETMUSIC2 ENDP MUSIC3 PROC LEA SI, MUS_FRQ3 LEA BP,DS: MUS_TIM3FREQ3: MOV DI, SI CMP DI,-1 JE END_MUS3 MOV BX, DS: BP CALL SOUND ADD SI,2 ADD BP,2 JMP FREQ

17、3 END_MUS3:RETMUSIC3 ENDPMUSIC4 PROC LEA SI, MUS_FRQ4 LEA BP,DS: MUS_TIM4FREQ4: MOV DI, SI CMP DI,-1 JE END_MUS4 MOV BX, DS: BP CALL SOUND ADD SI,2 ADD BP,2 JMP FREQ4 END_MUS4:RETMUSIC4 ENDPMUSIC5 PROC NEAR PUSH AX PUSH BX PUSH CXLOP5: MOV AH, 01H INT 21H CMP AL, 0DH JE EXIT5 CMP AL, 31H JB LOP5 CMP

18、 AL, 38H JA LOP5 AND AX, 0FH SHL AX, 1 SUB AX, 2 MOV SI, AX Mov BX, OFFSET TABLE MOV DI, BXSI MOV BX, 100 CALL SOUND JMP LOP5EXIT5: POP CX POP BX POP AX RETMUSIC5 ENDPSOUND PROC PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI MOV AL, 0B6H OUT 43H, AL MOV DX, 12H MOV AX, 533H*896 DIV DI OUT 42H, AL MOV AL, AH OUT 42H, AL IN AL, 61H MOV AH, AL OR AL, 3 OUT 61H, AL PUSH AXWAIT1: MOV CX, 1200 DELA1: IN AL, 61H AND AL, 10H CMP AL, AH JE DELA1 MOV AH,AL LOOP DELA1 DEC BX JNZ WAIT1 POP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论