计算机仿真电子琴课程设计
电子琴的仿真设计课程设计
电子琴的仿真设计课程设计一、课程目标知识目标:1. 学生能理解电子琴的基本原理,掌握仿真设计的基本概念。
2. 学生能描述电子琴音色、节奏及演奏效果的产生过程。
3. 学生了解电子琴仿真设计中所涉及的电子元件和电路。
技能目标:1. 学生能运用所学的电子琴仿真设计知识,独立设计简单的电子琴音色。
2. 学生能通过实践操作,熟练使用仿真软件进行电子琴设计。
3. 学生具备分析电子琴仿真设计问题,并提出解决方案的能力。
情感态度价值观目标:1. 学生对电子琴仿真设计产生兴趣,培养对音乐和电子技术的热爱。
2. 学生在团队协作中学会相互尊重、沟通与协作,培养集体荣誉感。
3. 学生通过课程学习,认识到科技发展对音乐领域的影响,增强创新意识。
课程性质:本课程为实践性较强的电子技术课程,旨在让学生通过动手实践,掌握电子琴仿真设计的基本技能。
学生特点:学生处于高中阶段,具有一定的电子技术基础,好奇心强,喜欢动手实践。
教学要求:注重理论与实践相结合,关注学生的个体差异,引导他们主动探索、积极实践,提高电子琴仿真设计能力。
在教学过程中,关注学生的情感态度价值观培养,帮助他们形成良好的学习习惯和团队合作精神。
通过具体的学习成果分解,为后续教学设计和评估提供依据。
二、教学内容1. 电子琴基本原理:电子琴的工作原理、音色生成、节奏控制及演奏效果。
- 教材章节:第1章 电子琴概述2. 电子琴仿真设计基础:仿真设计概念、仿真软件使用、基本电子元件及电路。
- 教材章节:第2章 电子琴仿真设计基础3. 电子琴音色设计:音色合成原理、音色参数调整、音色库应用。
- 教材章节:第3章 电子琴音色设计4. 电子琴演奏功能设计:演奏控制、节奏编程、音效处理。
- 教材章节:第4章 电子琴演奏功能设计5. 实践操作:使用仿真软件进行电子琴设计,包括音色设计、演奏功能设计等。
- 教材章节:第5章 实践操作教学内容安排和进度:第1周:电子琴基本原理学习第2周:电子琴仿真设计基础学习第3-4周:音色设计理论与实践第5-6周:演奏功能设计理论与实践第7-8周:实践操作,完成电子琴仿真设计作品教学内容注重科学性和系统性,结合教材章节安排,循序渐进地引导学生学习电子琴仿真设计知识。
c语言电子钢琴课程设计
c语言电子钢琴课程设计一、课程目标知识目标:1. 学生能理解C语言在电子钢琴程序设计中的应用,掌握基础编程语法和结构。
2. 学生能运用C语言中的函数、循环和条件语句等编写简单的电子钢琴程序。
3. 学生了解声音产生原理,掌握利用C语言模拟生成不同音调的方法。
技能目标:1. 学生能够运用所学的C语言知识,独立设计并编写出具有基本功能的电子钢琴程序。
2. 学生通过实践操作,培养解决问题的能力和逻辑思维能力。
3. 学生能够进行程序调试,优化程序性能,提高代码质量。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,树立编程改变生活的观念。
2. 学生通过团队合作,培养沟通协作能力和团队精神。
3. 学生在创作电子钢琴程序的过程中,体验创新乐趣,提高自信心和成就感。
课程性质:本课程为实践性较强的课程,结合C语言编程和电子钢琴知识,培养学生编程技能和实际应用能力。
学生特点:学生处于高中年级,具备一定的逻辑思维能力和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:教师应注重理论与实践相结合,引导学生主动参与,激发学生兴趣,提高学生的编程能力和创新能力。
在教学过程中,关注学生的个体差异,给予个性化指导。
通过课程目标的设定,使学生在学习过程中有明确的成果导向,便于教学设计和评估。
二、教学内容1. C语言基础语法复习:变量定义、数据类型、运算符、控制结构(循环、条件语句)。
相关教材章节:第一章至第三章。
2. 函数的定义与调用:理解函数的作用,掌握函数的定义、调用和参数传递。
相关教材章节:第四章。
3. 数组与指针:了解数组的使用,认识指针的概念,学会指针操作。
相关教材章节:第五章、第六章。
4. 声音产生原理:介绍声音的基本概念,理解音频信号的产生与处理。
相关教材章节:附录部分或拓展资料。
5. 电子钢琴程序设计:利用C语言编写电子钢琴程序,实现不同音调的模拟。
教学安排:5.1 设计电子琴界面,实现键盘与音调的对应关系。
电子琴详细设计说明书(附程序及设计过程)
《微型计算机系统》课程设计说明书专业名称:班级:学号:姓名:指导教师:日期:目录一、设计的目的和意义 (1)二、设计原理及规模 (2)三、正文………………………………………………………四、结论………………………………………………………五、参考书目…………………………………………………六、附录………………………………………………………一、设计的目的:本设计主要是通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。
设计运用单片机的相关知识,通过单片机的汇编语言进行程序,实现简单的功能,发出不同音调的音阶节拍。
二、设计原理:基于单片机的程序执行与分析的功能及应用,利用端口的低电平触发和无源蜂鸣器方波鸣响原理,设计按键、程序、连接方式,实现按键、信号和发音的顺序执行。
三、正文(一)硬件部分1、系统框图2、各部分元器件的确定 1)我们组选择了13个按键,因为13个按键能发出13个音阶,其中低音3个分别为567,中音7个分别为1234567,高音3个123,这样产生的音阶范围比较广,能够弹奏一般程度上的歌曲。
端口及含义初状态 动状态 P3端口 1111 1111 0FFH xxxx xxxx P0端口 1111 1111 0FFH 1xxx xxxxP3 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0蜂鸣器 低5 中1 低6 中2 低7 中3 中4单 片 机蜂 鸣 器键 盘P0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 空空高2 中5 中6 高1 中7 高3说明:(与实物对应的按键)复位键中1 中2 中3 中4 中5 中6 中7低5 低6 低7 高1 高2 高32)选用AT89C51单片机3)选用无源蜂鸣器,矩形方波触发原理,方波周期决定音色,周期循环次数决定接拍。
(二)软件部分(一)音调问题:1、音调有声音的频率确定。
微机课程设计电子琴PC电子琴
微机课程设计电子琴PC电子琴随着科技的不断发展,计算机及其相关技术也越来越成熟,而电子琴作为新生代乐器之一,在音乐爱好者中的影响力也越来越大。
在现代计算机科学教育中,微机课程设计已成为了一门必修课程。
在这门课程中,经常会涉及到基于现代计算机技术开发的各种硬件设备和应用,如电子琴PC电子琴等。
本文将从微机课程设计的角度来探讨电子琴PC电子琴的设计及其相关知识。
一、电子琴PC电子琴介绍电子琴是一种使用电子合成器代替传统的星簧式钢琴音器的乐器。
与传统的钢琴类乐器相比,电子琴具有音色可调、体积小、携带方便、售价低廉等优点。
而PC电子琴是电子琴的进化版,它将传统的硬件键盘替换成电脑键盘或数字板键盘,使其独立于硬件设备,减少了设备成本,提高了适用性。
二、微机课程设计电子琴PC电子琴从微机课程设计的角度来看,电子琴PC电子琴的设计涉及到许多计算机技术和主题,主要包括以下几个方面。
1.控制硬件设备在电子琴PC电子琴的设计中,控制硬件设备是设计的关键,它涉及到计算机的外部设备输入和输出。
硬件设备可以分为两个主要部分:电子键盘和音频输出。
电子键盘需要与PC机连接,以便从PC键盘或数字板键盘接收输入。
而音频输出则需要外部音频音箱,在电源管理方面还需要考虑到如何控制音频通道的开关。
2.软件应用训练除了硬件设备控制,软件应用训练也是微机课程设计电子琴PC电子琴的重点之一。
软件应用包括但不限于:音频合成、音频处理、音频存储和文件读取。
在电子琴PC电子琴的设计中,电子合成器是由程序模拟的,我们必须开发算法来合成特定的音频信号。
3.人机交互电子琴PC电子琴的使用需要用户与计算机之间的交互,因此人机交互也是微机课程设计电子琴PC电子琴设计的核心问题。
如何设计用户友好的交互界面是一个需要优先考虑的问题,如何使用鼠标、数字板键盘或普通的计算机键盘进行控制和调整。
4.性能测试在设计电子琴PC电子琴的过程中,应该进行多次性能测试以确保它能够稳定地运行。
C51课程设计电子琴
C51程序设计课程报告——电子琴学院:班级:学号:摘要:随着电子产业的发展和人民生活水平的提高,电子琴在人们生活中将扮演着越来越重要的角色,它改善人们的生活,给人们带来快乐和冶人的情操。
电子琴,它是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,电子琴采用控制功能强大的微处理技术和电子技术,使它融入现代人的生活中,成为不可或缺的一部分。
本设计在充分了解音乐音阶基础上,以AT89S51单片机作为核心控制器件而设计的,以这款单片机作为主控核心,通过程序控制与键盘,运放电路,扬声器等电路组成电子琴的基本单元,本文设计的电子琴,采用十六键技术,模拟了市场上电子琴的基本功能。
可以用弹奏出简单的乐曲;弹奏电子琴时能播放出准确的声音,不弹奏时可以播放置音乐。
本设计给出了电子琴的详细设计方案,电路组成与程序流程并对电子琴可行性模拟仿真,Proteus试验仿真表明本文设计的电子琴运行稳定,电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
在本文设计的基础上,功能可以延伸和拓展,由于是程序控制,电子琴升级方便,具有很强的市场推广价值。
关键词:AT89S51,电子琴,Proteus仿真,音阶目录一设计背景2二设计目的和要求2 1.设计目的22.设计要求3三设计原理31. 定时/计数器原理32.中断控制33.七段数码管44.矩阵式键盘的识别和显示5四设计组成71.设计的模块组成72.设计的软件实现流程7五设计的电路原理图8六本实验的C语言程序9七仿真和调试151.仿真结果152.调试过程16八实验成果和心得161.实验成果162.心得体会16参考文献:18一设计背景随着人们生活水平的提高和电子产业的高速发展,越来越多的电子产品融入到人们的生活当中,电子琴也不例外,它作为一种冶人们情操,给人们生活增添乐趣的一种乐器,在生活中扮演比较重要的角色,逐步成为人们生活当中的一部分。
电子琴本身是一种敲击乐器,通过敲击不同按键,由于音阶不同而发出不同声响,给人们的带来快乐,音阶的控制和声音大小是通过微控制器和电子电路实现的。
微机课设 电子琴
学号:课程设计题目学院专业班级姓名指导教师年月日课程设计任务书学生姓名:专业班级:指导教师:张锐工作单位:自动化学院题目: 计算机电子琴软件软件设计初始条件:1.用于调试程序的IBM兼容PC机一台;2.安装DOS/WIN98操作系统或运行于DOS/ WIN98兼容方式;3. EDIT 等文本编辑器输入80x86汇编程序,MASM 5.0编译及链接程序。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.使用汇编语言设计一个运行于计算机的电子琴软件,软件应实现弹凑功或演凑。
其中弹凑:用户每按一琴键弹凑相应音符;演凑:按下某键后自动弹凑预存琴谱功能;还可以附加变调、变速和记录创作等其它功能。
2.说明书撰写格式应符合《课程设计说明书统一书写格式》。
时间安排:1.程序框图设计,3天2.编程,4天3.调试,3天4.编写设计报告,4天指导教师签名:年月日系主任(或责任教师)签名:年月日目录目录 (2)摘要 (3)1 设计任务和思路 (4)1.1设计任务 (4)1.2设计思路 (4)2硬件部分工作原理 (5)2.1 8255工作原理 (5)2.2 8253工作原理 (5)3程序流程图 (6)3.1主程序流程图 (6)3.2演奏子程序流程图 (6)3.3 音乐播放子程序流程图 (6)3.4弹奏子程序流程图 (7)3.5 发音子程序流程图 (7)4 各部分功能实现说明 (7)4.1 发音部分功能实现 (7)4.2 变调功能的实现 (8)4.3 弹奏功能的实现 (8)4.3 演奏功能的实现 (9)4.3.1 歌曲选择功能实现 (9)4.3.2 音乐播放功能实现 (10)5 程序运行结果 (10)摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。
利用汇编语言能够直接访问与硬件相关的存储器或I/O端口,从而最大限度地发挥硬件的功能。
本文主要介绍了利用汇编语言设计一个运行于计算机的电子琴软件,软件能够实现弹奏,演奏的功能,当按下弹奏键时,实现弹奏功能,发出音符对应频率的声音,按下演奏键时,实现演奏功能,播放预存的音乐,按下指定的音调选择按键后,选择低音,中音或高音,则分别用低音,中音或高音进行弹奏或演奏。
计算机的仿真电子琴课程设计
计算机仿真电子琴一、课程设计的目的与要求1、设计目的本课程的课程设计是自动化专业学生学习完《微机原理与应用》课程后,进展的一次以汇编语言为主,硬件设计为辅的综合训练。
本课程设计的目的在于加深对微机原理根本知识的理解,掌握汇编语言程序设计的根本方法;掌握运用微机原理开发系统的根本方法。
2、设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:1)掌握汇编语言程序设计的根本方法。
2)进一步理解各种接口电路的应用。
例如8255并行接口,8253定时器等。
3)掌握利用PC机扬声器发出不同频率声音的方法。
3、主要技术指标编写程序1)在程序运行时使PC即成为一架可弹奏的电子琴。
当按下数字键1-8时,依次发出1,2,3,4,5,6,7,I这八个音调。
按下CTRL+C或者回车如此退出电子琴状态。
2)在程序运行时使PC自动按要求提示演奏乐曲。
二、课程设计课题的分析图1.扬声器工作原理图示图2.主程序工作流程图图3.乐曲演奏子程序工作流程图图4.电子琴子程序工作流程图图5.扬声器工作流程图三、课程设计的结果1、实验代码DATA SEGMENTINFO1 DB 0AH, 0DH, 'WELE YOU TO E HERE!$'DB 0AH, 0DH, 'THIS IS A MUSIC PROGRAM!$'DB 0AH, 0DH, 'PLEASE SELECLT!$'INFO4 DB 0AH, 0DH, 'INPUT ERROR!$'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, 0DH, 'Press6 EXIT'DB 0AH, 0DH, '========================='DB 0AH, 0DH, '$'MUS_FRQ1 DW 330, 330, 350, 393, 393, 350, 330, 294DW 262, 262, 294, 330, 330, 294, 294DW 330, 330, 350, 393, 393, 350, 330, 294DW 262, 262, 294, 330, 294, 262, 262DW 294, 294, 330, 262, 294, 330, 350, 330, 262DW 294, 330, 350, 330, 262, 262, 294, 393DW 330, 330, 350, 393, 393, 350, 330, 294DW 262, 262, 294, 330, 294, 262, 262, -1MUS_TIM1 DW 8 DUP(100)DW 7 DUP(100),200DW 8 DUP(100)DW 7 DUP(100),200DW 5 DUP(100),50,50,2 DUP(100)DW 100,50,50,4 DUP(100),200DW 8 DUP(100)DW 7 DUP(100),200MUS_FRQ2 DW 330, 294, 262, 294, 3 DUP(330)DW 3 DUP(294), 330, 392, 392DW 330, 294, 262, 294, 4 DUP(330)DW 294, 294, 330, 294, 262, -1MUS_TIM2 DW 6 DUP(100),200DW 2 DUP(100,100,200)DW 8 DUP(100)DW 4 DUP(100),400MUS_FRQ3 DW 392, 262, 294, 330, 350, 392, 262, 262DW 440, 350, 392, 440, 494, 524, 262, 262DW 350, 392, 350, 330, 294, 330DW 350, 330, 294, 262, 294, 330, 294, 262, 247, 262,-1 MUS_TIM3 DW 200, 4 DUP(100), 200, 200, 200DW 200, 4 DUP(100), 200, 200, 200DW 200, 4 DUP(100), 200DW 4 DUP(100), 200, 4 DUP(100), 400MUS_FRQ4 DW 330, 392, 330, 294, 330, 392, 330, 394, 330DW 330, 392, 330, 294, 262, 294, 330, 392, 294DW 262, 262, 220, 196, 196, 220, 262, 294, 330, 262,-1 MUS_TIM4 DW 3 DUP(200), 100, 100, 200, 100, 100, 400DW 2 DUP(200,200,100,100), 400DW 3 DUP(200,100,100), 400TABLE DW 262, 294, 330, 349, 392, 440, 494, 525 NUMB DB 0AH, 0DH, 'Keyboard number 1~8 keys play notes of the scale' 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, DATAMOV DS, AXMOV ES, AXMOV AX, STACKMOV SS, AXSHOW MACRO BMOV DX, OFFSET B MOV AH, 09HINT 21HENDMSHOW INFO1 LOP: SHOW MUSLISTMOV AH, 01HINT 21HCMP AL, 36HJZ RETUCMP AL, 31HJNZ B0CALL MUSIC1JMP EXIT1B0: CMP AL, 32HJNZ C0CALL MUSIC2JMP EXIT1C0: CMP AL, 33HJNZ D0CALL MUSIC3JMP EXIT1D0: CMP AL, 34HJNZ E0CALL MUSIC4JMP EXIT1E0: CMP AL, 35HJNZ EXITSHOW NUMBCALL MUSIC5EXIT1: SHOW INFO5JMP LOPEXIT: SHOW INFO4SHOW INFO5JMP LOPRETU: MOV AX, 4C00HINT 21HMUSIC1 PROCLEA SI, MUS_FRQ1LEA BP,DS: MUS_TIM1FREQ1: MOV DI, [SI]CMP DI,-1JE END_MUS1MOV BX, DS: [BP]CALL GENSOUNDADD SI,2ADD BP,2JMP FREQ1END_MUS1:RETMUSIC1 ENDPMUSIC2 PROCLEA SI, MUS_FRQ2LEA BP,DS: MUS_TIM2FREQ2: MOV DI, [SI]CMP DI,-1JE END_MUS2MOV BX, DS: [BP]CALL GENSOUNDADD SI,2ADD BP,2JMP FREQ2END_MUS2:RETMUSIC2 ENDPMUSIC3 PROCLEA SI, MUS_FRQ3LEA BP,DS: MUS_TIM3FREQ3: MOV DI, [SI]CMP DI,-1JE END_MUS3MOV BX, DS: [BP]CALL GENSOUNDADD SI,2ADD BP,2JMP FREQ3END_MUS3:RETMUSIC3 ENDPMUSIC4 PROC LEA SI, MUS_FRQ4LEA BP,DS: MUS_TIM4FREQ4: MOV DI, [SI]CMP DI,-1JE END_MUS4MOV BX, DS: [BP]CALL GENSOUNDADD SI,2ADD BP,2JMP FREQ4END_MUS4:RETMUSIC4 ENDPMUSIC5 PROC NEARPUSH AXPUSH BXPUSH CXLOP5: MOV AH, 01HINT 21HCMP AL, 0DHJE EXIT5CMP AL, 31HLOP5CMP AL, 38HJA LOP5AND AX, 0FHSHL AX, 1SUB AX, 2MOV SI, AXMOV BX, OFFSET TABLEMOV DI, [BX][SI] MOV BX, 100CALL GENSOUNDJMP LOP5EXIT5: POP CXPOP BXPOP AXRETMUSIC5 ENDPGENSOUND PROCPUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV AL, 0B6HOUT 43H, ALMOV DX, 12HMOV AX, 533H*896DIV DIOUT 42H, ALMOV AL, AHOUT 42H, ALIN AL, 61HMOV AH, ALOR AL, 3OUT 61H, ALPUSH AXWAIT1: MOV CX, 1200DELA1: IN AL, 61HAND AL, 10HCMP AL, AHJE DELA1MOV AH,ALLOOP DELA1DEC BXJNZ WAIT1POP AXMOV AL, AHOUT 61H, ALPOP DIPOP DXPOP CXPOP BXPOP AXRETGENSOUND ENDPCODE ENDSEND START2、实验现象1.进入DOS后在DOS界面〔图6〕进展汇编并生成可执行文件.exe图6.DOS调试界面图7.操作界面初始界面图8.按数字键5后进入电子琴界面图9.按回车后退出电子琴界面3.在进展操作的时候只要在键盘上按1-4这四个数字键就可以任意听取歌曲1—歌曲4,按数字键5时进入电子琴界面,这时候1-8分别表示音乐CDEFGABC这几个音符。
基于PC机的电子琴设计一、实验目的1.掌握利用pc机扬声器发出声音
基于PC机的电子琴设计一、实验目的1.掌握利用pc机扬声器发出声音的方法。
2.学习利用系统功能调用从键盘上读取字符的方法。
二、实验内容与要求利用PC机和扬声器实现简易电子琴的功能。
1.基本要求(1)电子琴功能,编写程序,程序运行时使pc机成为一架可弹奏的“钢琴”。
当按下PC机键盘数字键1-8时,依次发出1,2,3,4,5,6,7,i八个音调。
(2)音乐盒功能,内部存储至少2首以上的乐曲,根据菜单选择播放。
2.提高要求(1)使一组放光二极管随音调变化而改变,实现音乐彩灯(2)能够实现高、中、低音的选择。
(3)能够存储弹奏的内容,进行回放。
三、实验报告要求1.设计目的和内容2.总体设计3.硬件设计:原理图(接线图)及简要说明4.软件设计框图及程序清单5.设计结果和体会(包括遇到的问题及解决的方法)四、设计原理要使扬声器发出不同的音调,就得输入不同频率的波形。
通过给8253定时/计数器装入不同的计数值,可以使其输出不同频率的方波。
经过放大器的放大作用,便可驱动扬声器发出不同的音调,只要插入一段延时程序之后,再将扬声器切断,音调的声音就可以持续一端时间。
通过计算机的不同按键输出不同的音调,需要使用系统调用功能以接收键入字符,并且要建立一张表,使键入字符与频率构成一个对应关系。
乐曲是由不同的频率和节拍的音调组成的,因此控制驱动脉冲的频率和持续时间就是编写乐曲程序的关键。
频率对应8253的计数初值,而乐曲中的节拍决定了各音频持续的时间。
五、总体设计1.用PC机的键盘数字键对应电子琴的8个琴键。
2.8255和8253配合构成音频发生器。
8255的PA0口控制扬声器的开关,8253控制扬声器的发声频率。
3.音频信号经LM386放大后,驱动扬声器。
4.系统运行时,首先显示主菜单,选择子菜单后进行相应的操作。
六、硬件设计利用实验板上的8253计数/定时器和8255并行接口,定时器8253利用工作方式3产生一定频率信号,通过可编程的并行外围接口芯片8255控制频率信号的通断。
基于Arduino的电子琴设计
基于Arduino的电子琴设计简介本文档旨在介绍基于Arduino的电子琴的设计。
电子琴是一种电子乐器,它使用电子回路产生声音,并通过键盘控制。
Arduino 是一种开源硬件平台,可以用于构建各种创意和科技项目。
硬件要求- Arduino主板- 键盘(可以是数字键盘或自制的按键装置)- 喇叭或音箱- 连接线软件要求- Arduino集成开发环境(IDE)- Arduino库(如Tone库)设计步骤1. 连接硬件:- 将Arduino主板连接到计算机上,打开Arduino IDE。
- 连接键盘到Arduino主板。
如果你使用数字键盘,可以通过数字引脚连接。
如果你使用自制按键装置,可以使用数字引脚或模拟引脚连接。
- 连接喇叭或音箱到Arduino主板。
可以使用数字引脚连接。
2. 编写代码:- 在Arduino IDE中创建一个新的程序。
- 导入Tone库,以便可以使用其函数来产生声音。
- 编写代码来定义琴键和对应的音调。
可以使用Tone库的函数来播放音调。
- 编写代码来处理键盘输入,并根据输入的键值来播放相应的音调。
3. 上传并测试:- 将代码上传到Arduino主板上。
- 打开串口监视器,以便可以查看程序的输出。
- 测试电子琴的功能,按下不同的琴键,听到相应的音调。
扩展应用- 添加音效:可以通过在代码中定义更多的音调和琴键,以实现更多的音效。
- 添加节奏:可以通过编写代码来定义节奏,并根据节奏来生成不同的音符。
- 添加LED灯效:可以通过连接LED灯到Arduino主板,并在代码中控制其亮灭的状态,以增加视觉效果。
请注意,以上仅为基本的设计步骤和扩展应用的示例。
在实际设计中,可能需要进一步调试和优化代码,以及根据具体需求做出适当的修改。
参考资料。
基于51单片机的电子琴设计课程设计
基于51单片机的电子琴设计课程设计单片机原理》课程设计前言本课程设计旨在通过基于51单片机的电子琴设计,加深学生对单片机原理的理解和应用。
在本设计中,我们将介绍电子琴的设计要求、所用设备及软件以及总体设计方案。
随后,我们将详细介绍系统硬件设计中琴键控制电路、音频功放电路、时钟-复位电路和LED显示电路的设计。
第1章基于51单片机的电子琴设计1.1 电子琴的设计要求在电子琴的设计中,我们需要考虑琴键数量、音频输出质量、电源电压和外部接口等因素。
在本设计中,我们将采用25个琴键,保证音频输出质量和电源电压稳定,并提供外部接口以便于扩展和调试。
1.2 电子琴设计所用设备及软件在本设计中,我们将使用51单片机、琴键、音频功放、时钟、LED显示器等设备,并使用Keil C51编译器进行软件开发。
1.3 总体设计方案在总体设计方案中,我们将采用按键扫描方式实现琴键控制,使用PWM技术实现音频输出,使用外部晶振提供时钟信号,并使用LED显示器显示琴键状态。
第2章系统硬件设计2.1 琴键控制电路在琴键控制电路中,我们将采用矩阵按键扫描方式,通过51单片机的IO口进行扫描和检测。
同时,我们还将使用电容式触摸开关来实现琴键的触发。
2.2 音频功放电路在音频功放电路中,我们将采用TDA7297芯片作为功放,通过PWM技术实现音频输出,并通过滤波电路滤除杂音和谐波。
2.3 时钟-复位电路在时钟-复位电路中,我们将采用12MHz晶振作为时钟源,并使用复位电路确保系统在上电时能够正确运行。
2.4 LED显示电路在LED显示电路中,我们将采用MAX7219芯片实现LED点阵显示,并通过SPI接口与51单片机进行通信。
同时,我们还将使用CD4511芯片实现数码管显示琴键状态。
通过本课程设计,我们可以深入理解单片机原理的应用,掌握电子琴的设计和制作技术,提高自身的实践能力和创新能力。
2.5 整体电路本章将介绍电子琴的整体电路设计。
模拟电子琴的设计
郑州科技学院数字电子技术课程设计任务书专业12通信工程班级 1班学号 201251022姓名连盼盼一、设计题目模拟电子琴的设计二、设计任务与要求基本功能:1.使用逻辑门电路、集成芯片及555定时器等器件完成模拟电子琴的设计;2.电子琴可模拟八个音符发声;3.电子琴可实现高、中、低三个音阶的调节。
三、参考文献[1] 江晓安,董秀峰. 数字电子技术(第三版). 西安:西安电子科技大学出版社,2008[2] 杨志忠. 电子技术课程设计. 北京:机械工业出版社,2008[3] 王静波. 电子技术实验与课程设计指导. 北京:电子工业出版社,2011[4]陈光明. 电子技术课程设计与综合实训. 北京:北京航空航天大学出版社,2007四、设计时间2014 年11 月24日至2014 年12月05 日指导教师签名:年月日目录1课程设计的目的 (1)2课程设计的任务与要求 (1)3设计方案与论证 (1)3.1设计方案 (1)4设计原理及功能说明 (3)4.1总体框图 (3)4.2设计原理 (3)5单元电路的设计 (4)5.1开关控制单元 (4)5.2电容换音阶单元 (5)5.3 555定时器电路单元 (6)5.4 参数计算 (11)6硬件的制作与调试 (12)7总结 (13)参考文献 (15)附录1:总体电路原理图 (16)附录2:元器件清单 (17)附录3:实物图 (18)1 课程设计的目的经查阅电子琴的相关资料,发现了他人的设计大都只关注如何实现电子琴的基本功能,却缺少对电子琴功能的扩展。
经过一番讨论和实证后,我们决定在用数字电路实现电子琴基本功能的同时,再加上通过单刀三掷开关控制不同电容,从而调节低、中、高音阶。
2 课程设计的任务与要求该电路包括按钮开关,定值电阻,电容换音阶,555振荡器和扬声器四部分组成。
1.输入端:由八个按钮开关与各自的定值电阻串联再并联组成输入端。
2.频率产生端:根据定值电阻的不同输入,由555产生不同的信号频率。
EDA_电子琴课程设计
EDA_电子琴课程设计第一篇:EDA_电子琴课程设计基于VHDL原理图及文本输入法的简单电子琴电路的设计1.1 课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过按键输入来控制音响或者自动演奏已存入的歌曲。
系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲(当然由于条件限制,暂不进行功能验证,只进行编程和时序仿真)。
该设计最重要的一点就是通过按键控制不同的音调发生,每一个音调对应不同的频率,从而输出对应频率的声音。
1.2 课程设计内容(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
(2)系统演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。
(3)能够自动演奏多首乐曲,且乐曲可重复演奏。
1.3 课程设计原理本课程设计目的在于灵活运用EDA技术编程实现一个简易电子琴的乐曲演奏,它要求在实验箱上构造一个电子琴电路,不同的音阶对应不同频率的正弦波。
按下每个代表不同音阶的按键时,能够发出对应频率的声音。
故系统可分为乐曲自动演奏模块(AUTO)、音调发生模块(TONE)和数控分频模块(FENPIN)三部分。
系统的整体组装设计原理图如图1-1所示。
图1-1 系统的整体组装设计原理图由于设计分模块组成,每个单独的模块都是一个完整的源程序,分别实现不同性质的功能,但是每个模块又是紧密关联的,前一个模块的输出很可能是后一模块的输入。
如AUTO模块的音符信号输出就是TONE模块的音符信号输入。
另外,时钟脉冲信号在本课程设计中用的最多,用处也最大,一般情况下时钟信号处上升沿有效,判断和控制各个计数器计数多少。
简易电子琴的设计过程根据系统设计要求,系统该系统基于计算机中时钟分频器的原理,设计采用自顶向下的设计方法,通过按键输入来控制音响或者自动演奏已存入的歌曲。
vb电子琴课程设计
vb电子琴课程设计一、课程目标知识目标:1. 学生能够理解并掌握VB编程语言中与音乐相关的函数和控件的使用方法。
2. 学生能够运用所学知识,设计并实现一个简易的电子琴程序。
3. 学生能够了解电子琴的基本原理和音阶知识。
技能目标:1. 学生能够运用VB编程语言,独立编写并调试电子琴程序。
2. 学生能够通过实践操作,培养动手能力和解决问题的能力。
3. 学生能够提高团队协作能力,通过合作完成课程任务。
情感态度价值观目标:1. 学生对计算机编程产生兴趣,增强学习动力。
2. 学生在学习过程中,培养耐心、细心和自信的品质。
3. 学生通过创作属于自己的电子琴作品,激发创新意识和成就感。
课程性质:本课程为信息技术课程,以实践操作为主,注重培养学生的动手能力和创新能力。
学生特点:五年级学生,对新鲜事物充满好奇心,具备一定的计算机操作基础,但编程经验有限。
教学要求:结合学生特点,课程设计应注重实践性、趣味性和挑战性,引导学生主动参与,培养其编程兴趣和实际操作能力。
教学过程中,注重分层教学,关注每个学生的学习进度,确保课程目标的达成。
将课程目标分解为具体的学习成果,以便在教学设计和评估中逐一落实。
二、教学内容1. 引入电子琴基础知识,介绍电子琴的原理和音阶结构。
2. 教学VB编程环境中音乐播放相关函数的使用方法,如Play语句、Frequency函数等。
3. 学习VB界面设计,掌握按钮、标签等控件的使用,以及事件处理机制。
4. 利用VB编程实现电子琴功能,包括按键识别、音调播放、音乐存储与播放等。
5. 引导学生进行团队合作,共同完成一个具有基本功能的电子琴程序。
教学内容依据以下教材章节组织:第一章:VB编程基础- 第一节:VB编程环境介绍- 第二节:基本控件的使用第二章:音乐与编程- 第三节:音乐播放函数- 第四节:电子琴原理与音阶第三章:综合实践- 第五节:电子琴程序设计- 第六节:团队合作与成果展示教学进度安排:1. 第1-2课时:复习VB编程基础,介绍电子琴原理和音阶。
51模拟电子琴课程设计
51模拟电子琴课程设计一、课程目标知识目标:1. 学生能够理解模拟电子琴的基本原理,掌握其电路组成及各部分功能。
2. 学生能够运用所学的电子知识,分析并解释模拟电子琴音调、音量、音色的调控原理。
3. 学生掌握模拟电子琴演奏的基本技巧,能够识别并演奏简单的乐曲。
技能目标:1. 学生能够运用所学知识,进行模拟电子琴的组装和调试。
2. 学生能够通过操作模拟电子琴,培养动手实践能力和问题解决能力。
3. 学生能够通过演奏实践,提高音乐表现力和团队协作能力。
情感态度价值观目标:1. 学生对电子技术产生兴趣,培养探究精神和创新意识。
2. 学生在课程学习过程中,养成合作、分享、尊重他人的良好品质。
3. 学生通过学习模拟电子琴,增强对音乐艺术的热爱,提高审美情趣。
课程性质:本课程为实践性较强的课程,结合电子知识与音乐艺术,培养学生的动手能力和艺术修养。
学生特点:五年级学生具备一定的电子知识和音乐基础,对新鲜事物充满好奇心,具备一定的动手实践能力。
教学要求:教师应注重理论与实践相结合,关注学生的个体差异,引导学生在实践中发现问题、解决问题,培养学生自主学习和团队协作能力。
通过课程目标的分解与实现,使学生在知识与技能、情感态度价值观等方面取得全面发展。
二、教学内容1. 理论知识:- 模拟电子琴的基本原理与电路组成- 音调、音量、音色调控原理- 音乐基础:五线谱、音符、节奏等2. 实践操作:- 模拟电子琴的组装与调试- 模拟电子琴演奏技巧- 创作与演奏简单的乐曲3. 教学大纲:第一周:认识模拟电子琴,学习基本原理与电路组成,了解音调、音量、音色调控原理。
第二周:学习音乐基础知识,如五线谱、音符、节奏等,并进行模拟电子琴的初步操作。
第三周:分组进行模拟电子琴的组装与调试,培养动手实践能力。
第四周:学习演奏技巧,练习演奏简单乐曲,提高音乐表现力。
第五周:创作小组作品,进行演奏展示,培养团队协作能力。
教学内容依据课程目标,注重科学性和系统性,结合课本章节进行安排。
c51单片机课程设计——电子琴
课程设计报告姓名:曹班级:101班学号:课程设计名:简易电子琴一、概述:本系统设计制作一个可演奏的电子琴。
综合应用了两项设计:(1)能产生纯音,了解音调高低的控制方法,用键盘代替电子琴的键盘,控制演奏音乐。
(2)演奏一支乐曲(天空之城)。
那音阶要怎么使用C51单片机产生呢?C51在这项工作中运用它哪些资源呢?我们怎么实现一个按键对应一个音阶呢?二、系统描述:(1)我们从初中开始就知道,声音是由振动产生的,基本的这7个音阶的频率之间满足某种数学关系由低到高排列的自然音,所以我们可以通过改变单片机输出频率就可以得到不同的音阶;(2)为了得到精确的频率(周期的倒数),我们可以使用C51单片机定时中断模块。
(3)通过判断按键是否被按下,然后执行该按键按下时的函数(在程序中是改变T1的初值得到实现)。
需要注意的是,在该程序中让8051的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。
例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。
记数脉冲值与频率的关系公式如下:N=Fi/2/Fr N:记数值Fi:内部计时一次为1微秒.故其频率为1MHZFr;要产生的频率起记数值的求法如下:T=65536-N=65536-Fi/2/Fr例如:设K=65536,F=1000000=Fi=1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的记数值。
T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音D0的T=65536-500000/262=63627中音D0的T=65536-500000/523=64580低音D0的T=65536-500000/1047=65059详细的音阶频率与计数初值可参考附录一;三、电路设计1.单片机最小系统模块2.三极管信号放大模块扬声器发出对应音符模块如下:3.按键电路模块:四.程序设计:本系统的程序流程图如下:程序如下:#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit kongzhi=P1^1;sbit fm=P1^0; //蜂鸣器输出的IO口uchar timeh,timel,i=8,t; //timeh,timel为定时器高低4位,i为演奏音符个数uchar code yinyue[]={0x63,0x71,0x83,0x71,0x82,0xA2,0x76,0x32,0x32,0x63,0x51,0x62,0x82,0x54,0x32,0x32,0x42,0x32,0x42,0x11,0x32,0x81,0x81,0x81,0x73,0x41,0x41,0x71,0x74,0x63,0x71,0x83,0x71,0x82,0xA2,0x74,0x31,0x31,0x63,0x51,0x62,0x82,0x54,0x31,0x42,0x83,0x71,0x71,0x83,0x91,0x91,0xA1,0x82,0x83,0x71,0x61,0x61,0x72,0x51,0x66,0xff};//---------------------------简谱---------------------------------------//1-7代表中音do~si,8代表高音douchar code yinfu[]={0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81,0xff};//----------------------------简谱音调对应的定时器初值---------------------------uchar code cuzhi[]={ 0xff,0xff, //占位符0xFC,0x44,0xFC,0xAD,0xFD,0x0A,0xFD,0x34,0xFD,0x83,0xFD,0xC8,0xFE,0x06,//中音do~si的T计数初值0xFE,0x22,0xFE,0x57,0xFE,0x85,0xFE,0x9B,0xFE,0xC2,0xFE,0xE4,0xFF,0x03}; //高音do的T计数初值void delay1ms(unsigned int ms); //延时ms毫秒子程序void delay165ms(uint z); //延时165ms,即1/4拍子程序void keysong(); //演奏子程序int key();void song();main(){ kongzhi=1;EA=1; //开总中断ET0=1; //开定时器0TMOD=0x01; //定时器0工作在方式1TH0=0;TL0=0;TR0=1;P3=0xff;while(1){ if(kongzhi==0){song();}else{key();keysong();}}}void song(){uint temp;uchar jp; //jp是简谱1~8的变量t=0;while(1){ temp=yinyue[t];if(temp==0xff) break; //到曲终则跳出循环jp=temp/16; //取数的高4位作为音调if(jp!=0){timeh=cuzhi[jp*2]; //取T的高4位值timel=cuzhi[jp*2+1]; //取T的低4位值}else{TR0=0;fm=1; //关蜂鸣器}delay165ms(temp%16); //取数的低4位作为节拍TR0=0; //唱完一个音停10msfm=1;delay1ms(10);TR0=1;t++;}TR0=0;fm=1;}void timer0() interrupt 1 //定时器0溢出中断子程序用于产生各种音调{TH0=timeh;TL0=timel;fm=~fm; //产生方波}void keysong(){uint temp;uchar jp; //jp是简谱1~8的变量delay1ms(50);if(i!=8){ TR0=1;temp=yinfu[i];jp=temp/16; //取数的高4位作为音调if(jp!=0){timeh=cuzhi[jp*2]; //取T的高4位值timel=cuzhi[jp*2+1]; //取T的低4位值}else{TR0=0;fm=1; //关蜂鸣器}delay165ms(temp%16); //取数的低4位作为节拍TR0=0; //唱完一个音停10msfm=1;delay1ms(10);//TR0=1;//i++;}TR0=0;fm=1;}int key(){ switch(P2){case 0xfe: return 0;case 0xfd: return 1;case 0xfb: return 2;case 0xf7: return 3;case 0xef: return 4;case 0xdf: return 5;case 0xbf: return 6;case 0x7f: return 7;default: return 8;}}//函数名:delay165ms//函数功能:采用软件实现延时约z*165ms//形式参数:无void delay165ms(uint z) //延时165ms,即1/4拍{uint x;for(x=0;x<z;x++)delay1ms(165);}//函数名:delay1ms//函数功能:采用软件实现延时约ms*1ms//形式参数:无//返回值:无void delay1ms(unsigned int ms){ unsigned int i,j;for(j=0;j<ms;j++)for(i=0;i<0x100;i++);}五.制作与调试:最后制作出的成品:六.测试结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机仿真电子琴
一、课程设计的目的与要求
1、设计目的
本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。
本课程设计的目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。
2、设计要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:
1)掌握汇编语言程序设计的基本方法。
2)进一步理解各种接口电路的应用。
例如8255并行接口,8253定时器等。
3)掌握利用PC机扬声器发出不同频率声音的方法。
3、主要技术指标
编写程序
1)在程序运行时使PC即成为一架可弹奏的电子琴。
当按下数字键1-8时,依次发出1,2,3,4,
5,6,7,I这八个音调。
按下回车则退出电子琴状态。
2)在程序运行时使PC自动按要求提示演奏乐曲。
二、课程设计课题的分析
图1.扬声器工作原理图示
图2.主程序工作流程图
图3.乐曲演奏子程序工作流程图 图4.电子琴子程序工作流程图
图5.扬声器工作流程图
三、课程设计的结果
1、实验代码
DATA SEGMENT
INFO1 DB 0AH, 0DH, 'WELCOME YOU TO COME HERE!$'
DB 0AH, 0DH, 'THIS IS A MUSIC PROGRAM!$'
DB 0AH, 0DH, 'PLEASE SELECLT!$'
INFO2 DB 0AH, 0DH, 'INPUT ERROR!$'
INFO3 DB 0AH, 0DH, 'PLEASE INPUT AGAIN!$'
MUSLIST DB 0AH, 0DH, '========================='
DB 0AH, 0DH, 'Press1 HuanLeSong'
DB 0AH, 0DH, 'Press2 SCALE PLAY '
DB 0AH, 0DH, 'Press3 or ctrl+C 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, 330, 350, 330, 262, 262, 294, 393
DW 330, 330, 350, 393, 393, 350, 330, 294
DW 262, 262, 294, 330, 294, 262, 262, -1
MUS_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),200
TABLE DW 262, 294, 330, 349, 392, 440, 494, 525 NUMB DB 0AH, 0DH, 'Keyboard number 1~8 keys play notes of the scale' DB 0AH, 0DH, 'Enter to exit'
DB 0AH, 0DH, '$'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STA DB 200 DUP('STACK')
STACK ENDS
CODE SEGMENT
ASSUME DS: DATA, SS: STACK, CS: CODE, ES: DATA
START: MOV AX, DATA
MOV DS, AX
MOV ES, AX
MOV AX, STACK
MOV SS, AX
SHOW MACRO B
MOV DX, OFFSET B
MOV AH, 09H
INT 21H
ENDM
SHOW INFO1
LOP: SHOW MUSLIST
MOV AH, 01H
INT 21H
CMP AL, 33H
JZ RETU
CMP AL, 31H
JNZ B0
CALL MUSIC1
JMP EXIT1
B0: CMP AL, 32H
JNZ EXIT
SHOW NUMB
CALL MUSIC2
EXIT1: SHOW INFO3 JMP LOP
EXIT: SHOW INFO2 SHOW INFO3 JMP LOP
RETU: MOV AX, 4C00H
INT 21H
MUSIC1 PROC
LEA SI, MUS_FRQ1
LEA BP,DS: MUS_TIM1
FREQ1: MOV DI, [SI]
CMP DI,-1
JE END_MUS1
MOV BX, DS: [BP]
CALL GENSOUND
ADD SI,2
ADD BP,2
JMP FREQ1
END_MUS1:RET
MUSIC1 ENDP
MUSIC2 PROC NEAR
PUSH AX
PUSH BX
PUSH CX
LOP1: MOV AH, 01H
INT 21H CMP AL, 0DH JE EXIT2
CMP AL, 31H JB LOP1
CMP AL, 38H
JA LOP1
AND AX, 0FH SHL AX, 1 SUB AX, 2 MOV SI, AX
MOV BX, OFFSET TABLE
MOV DI, [BX][SI] MOV BX, 100
CALL GENSOUND
JMP LOP1
EXIT2: POP CX
POP BX
POP AX
RET
MUSIC2 ENDP
GENSOUND 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 AX
WAIT1: 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 AX
MOV AL, AH
OUT 61H, AL POP DI
POP DX
POP CX
POP BX
POP AX
RET
GENSOUND ENDP
CODE ENDS
END START
2、实验现象
1. 进入DOS后在DOS界面(图6)进行汇编链接并生成可执行文件.exe
2.双击可执行文件KS.exe(这里我把程序取名为KS)进入操作界面如图7所示
图7.操作界面初始界面
图8.按数字键2后进入电子琴界面
图9.按回车后退出电子琴界面
3.在进行操作的时候只要在键盘上按1这数字键就可以听取歌曲1,按数字键2时进入电子琴界面,这时候1-8分别表示音乐CDEFGABC这几个音符。
按回车后退出电子琴操作界面,这时候按3退出程序。
四、课程设计的心得与体会
这次课程设计给我的感觉是:与其说这次课设是一个任务,不如说是期末对微机原理的一次系统的复习。
通过课设,我弄清楚了课本上一些比较晦涩但是又非常重要的章节的内容,例如:键盘和显示器DOS 功能调用,数据定义伪指令的使用,子程序的嵌套,8253芯片的初始化等等。
刚拿到课设题目时可以说是毫无思绪,但是通过查阅资料,模仿别人的程序,不断理解,拼凑,改进,
终于按照课设要求完成任务。
刚开始上机运行程序出现的问题不可谓不多,但是通过汇编的错误提示,我很容易的发现了问题并改正了它,如果不是上机运行,而是一味的盯着程序检查,那样的话真可谓无从下手,事倍功半。
这个告诉我有时候动动手实践,远比啃书学习知识的效率要高得多。
五、参考文献
[1] 王忠民.微型计算机原理(第二版).西安:西安电子科技大学出版社,2007年
[2] 马春燕.微机原理与接口技术实验与学习辅导.北京:电子工业出版社.2007年。