汇编语言电子琴设计(微机原理课程设计)

汇编语言电子琴设计(微机原理课程设计)
汇编语言电子琴设计(微机原理课程设计)

微机原理课程设计(汇编语言)

——电子琴设计

一、设计内容

编写一实现电子琴的程序,并实现若干扩展功能。

基本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;

扩展功能:1、在程序中可预设多首曲目,按一键可以进入预设子菜单,对要播放的曲目进行选择,并实现播放该曲目。

2、程序运行时有友好的用户介面。

3. 当弹奏不同音阶时,双色点阵LED显示器显示不同的图案

二、元件与仪器

1.计时器8253

2.并行控制器8255A

3.实验台

三、设计原理、思路及流程图

1、设计原理

(1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。各音阶标称频率值:

(2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:发"1"频率为261。1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/32=0.12ms. 定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。本程序中设置默认长度为60个正弦波。

(3)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

(4) 点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。

(5)实验仪上设有一个共阳极8×8点阵的红黄两色LED显示器,其点阵结构如图所示。该点阵对外引出24条线,其中8条行线,8条红色列线,8条黄色列线。若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。

例如欲显示汉字“年”,采用逐列循环发光。首先由“年”的点阵轮廓,确定点阵代码(如图所示)根据“年”的点阵代码,确定逐列循环发光的顺序如下:

①行代码输出 44H;红色列代码输 01H;第一列2个红色LED发光。

②行代码输出 54H;红色列代码输 02H;第二列3个红色LED发光。

③行代码输出 54H;红色列代码输 04H;第三列3个红色LED发光。

④行代码输出 7FH;红色列代码输 08H;第四列7个红色LED发光。

⑤行代码输出 54H;红色列代码输 10H;第五列3个红色LED发光。

⑥行代码输出 DCH;红色列代码输 20 H;第六列5个红色LED发光。

⑦行代码输出 44H;红色列代码输 40 H;第七列2个红色LED发光。

⑧行代码输出 24H;红色列代码输 80 H;第八列2个红色LED发光。

2、电路连接图如下:

(1)8253和8255连接如下

(2).实验仪上的点阵LED及驱动电路的行代码、红色列代码、黄色列代码各用一片74LS273锁存。行代码输出的数据通过行驱动器7407加至点阵的8条行线上,红和黄列代码的输出数据通过驱动器DS75452反相后分别加至红和黄的列线上。行锁存器片选信号为CS1,红色列锁存器片选信号为CS2,黄色列锁存器片选信号为CS3。分别接上298h,2a0h,2a8h.

3.设计思路

在本次课程设计中,根据复杂程序设计思想——模块化程序设计,分析和确定程序总体设计目标:电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。

程序设计的思路按以下顺序进行:

1.分析与确定程序总体设计目标

2.将总体目标划分为若干模块

3.定义每个模块的具体任务,明确它与其他模块间的通信方式

4.编写源程序,进行调试,包括:

简单电子琴主程序

结合实验指导书的两程序,将其分为若干个子程序,实现简单的播放和显示音阶的功能。

发音子程序

本子程序实现放音功能。首先从键盘读出键码,判断,如果键码不是1-8(9除外)即仍然处于音阶输入准备状态,如果是,即求出相应的时间常数的序号,取60次32个正弦波数据,播放32个数据,组成一个正弦波。播放60次后,然后判断是否有按键,如果有就进入死循环,直到下次按键为止。

放歌子程序

本子程序实现播放预置在程序中的歌曲,并加上一个选择子程序段,可通过选择进入不同曲目,进而实现播放不同的歌曲,播放时直接调用放音子程序

Led显示子程序

本程序实现从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

显示广告版子程序

本子程序实现在广告板上在输入不同音阶时有我们自行设计的图案显示。输入不同图案相关的代码,然后调用图案显示判断程序段。对其进行判断,然后进入图案显示代码,最终显示不同的图案。

源程序整体

程序开始,显示提示信息,接着调用发音子程序,实现发音和显示。接着对9键进行判断、当9按下时,调用放音子程序。然后iujinru选择,选择喜欢的歌曲并进行播放。当检测到esc时,退出。当每一个都检测不到时,退回到调用发音子程序,继续发音显示。从而实现有扩展功能的电子琴。

5.模块连接,形成完整的程序

6.编写程序文档

4.流程图

以下用主程序与子程序配合流程图其进行说明。

(1)主程序流程图

(2)发音子程序流程图

(3)led显示子程序

(4)显示广告板子程序

(5)放音子程序

四、源程序

STACK SEGMENT PARA STACK'STACK'

DB 100 DUP(0)

STACK ENDS

DATA SEGMENT

IOPORT EQU 0C400H-0280H

IO8255A EQU IOPORT+288H

IO8255C EQU IOPORT+28AH

IO8255B EQU IOPORT+28BH

IO8253A EQU IOPORT+280H

IO8253B EQU IOPORT+283H

IO0832A EQU IOPORT+290H

PROT EQU 0C400H-280H

PROTH EQU PROT+298H

PROTLR EQU PROT+2A0H

PROTLY EQU PROT+2A8H

DATA1 DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH

DB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96H

DB 80H,66H,4EH,38H,25H,15H,09H,04H

DB 00H,04H,09H,15H,25H,38H,4EH,66H ;正弦波数据

LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

MESG1 DB 0DH,0AH,'INPUT A NUM (1--8=PLAY PIANO,9=PLAY

MUSIC,ESC=EXIT):',0DH,0AH,'$'

MESG2 DB 0DH,0AH,'PLEASE CHOOSE THE MUSIC YOU

LIKE(1-AAA,2-BBB) :',0DH,0AH,'$'

TIME DB 120,110,100,90,81,72,55,42 ;发不同音时8253的计数器初值

NUM DB ? ;NUM为8253计数器初值的序号--

MESS DB 'STRIKE ANY KEY,RETURN TO DOS!',0AH,0DH,'$'

MIN1 DB 00H,01H,02H,03H,04H,05H,06H,07H

COUNT DB 0

JNUM DB ? ;JNUM用来存储输入数字

MUSIC DB

30H,31H,31H,35H,35H,36H,36H,35H,30H,30H,34H,34H,33H,33H,32H,32H,31H,100

DUP(30H);,35H,35H,34H,34H,33H,33H,32H,35H,35H,34H,34H,33H,33H,32H,31H,31H,35H,3 5H,36H,36H,35H,34H,34H,33H,33H,3;2H,32H,31H,

QMUSIC DB ?

DOWN DB 31H,32H,33H,34H,35H,36H,37H,38H,38H,37H,36H,35H,34H,33H,32H,31H,100 DUP(30H)

PP DB ?

TT DB ?

LMUSIC EQU 45

BUFF1 DB 00H,00H,18H,3CH,3CH,18H,00H,00H

BUFF2 DB 00H,1EH,0AH,46H,62H,50H,78H,00H

BUFF3 DB 00H,06H,06H,60H,60H,06H,06H,00H BUFF4 DB 24H,66H,0E7H,00H,00H,0E7H,66H,24H BUFF5 DB 42H,0E7H,42H,18H,18H,42H,0E7H,42H BUFF6 DB 66H,24H,81H,0C3H,0C3H,81H,24H,66H BUFF7 DB 24H,66H,00H,0DBH,0DBH,00H,66H,24H BUFF8 DB 0CBH,99H,10H,0C6H,63H,08H,99H,0D3H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV TT,1

MOV AX,DATA

MOV DS,AX

MOV DX,IO8255B ;使8255的A口为输出方式MOV AX,92H

OUT DX,AL

MOV QMUSIC,0

JMP SSS

ZERO: MOV QMUSIC,0

SSS: CMP QMUSIC,LMUSIC

JE ZERO

CMP QMUSIC,0

JE SSS4

JMP SSS3

SSS4: MOV DX,OFFSET MESG1

MOV AH,9

INT 21H ;显示提示信息

MOV AH,7

INT 21H ;从键盘接收字符,不回显SSS3: CMP AL,39H

JE PLAY0

CMP QMUSIC,0

JE OO

JMP PLAY

OO: CMP AL,1BH

JE EXIT ;若为ESC键,则转EXIT

CMP AL,30H

JE SOFTDLY

;MOV DI ,OFFESET RECORD

; MOV [DI] ,AL

; INC DI

CMP AL,31H

JL SSS

CMP AL,38H

JG SSS ;若不在'1'-'8'之间转SSS

MOV JNUM,AL

SUB AL,31H

MOV NUM,AL ;求出相应的时间常数的序号

MOV CX,60 ;取60次32个正弦波数据

SSS2: MOV AL,JNUM

SUB AL,30H ;将所得字符的ASCII码减30H

MOV BX,OFFSET LED ;BX为数码表的起始地址

XLAT ;求出相应的段码

MOV DX,IO8255C ;从8255的C口输出

OUT DX,AL

DDD: MOV SI,0

LLL: MOV AL,DATA1[SI] ;取正弦波数据

MOV DX,IO0832A

OUT DX,AL ;放音

CALL DELAY ;调延时子程序

INC SI

CMP SI,32 ;是否取完32个数据

JL LLL ;若没有,则继续

LOOP DDD ;总循环次数60是否完,没有,则继续 MOV CX,0002H

CALL NIAN ;------------------------ CALL NIAN

;CALL NIAN

JMP SSS ;转SSS

EXIT: MOV AH,4CH

INT 21H

PLAY0: CMP TT,1

JE TT1

MOV DX,OFFSET MESG2

MOV AH,9

INT 21H ;显示子菜单

MOV AH,7

INT 21H ;输入子菜单命令

MOV PP,AL

PLAY: MOV AL,QMUSIC

CMP PP,32H

JE PLAY2

CMP PP,31H

JNE PLAY0

MOV BX,OFFSET MUSIC

PLAY3: XLAT

MOV CL,QMUSIC

ADD CL,01H

MOV QMUSIC,CL

JMP OO

TT1: MOV TT,0

MOV PP,32H

PLAY2: MOV BX,OFFSET DOWN

JMP PLAY3

SOFTDLY: MOV BL,10

DELAY4: MOV CX ,0FFFFH

WAIT3: LOOP WAIT3

DEC BL

JNZ DELAY4

JMP SSS

DELAY PROC NEAR ;延时子程序

CCC1: MOV BX,OFFSET TIME

MOV DX,IO8253B ;置8253通道0为方式0工作MOV AL,10H

OUT DX,AL

MOV AL,NUM ;取相应的时间常数

XLAT

MOV DX,IO8253A

OUT DX,AL ;向8253通道0输出

KKK: MOV DX,IO8255A

IN AL,DX ;从8255A口读一字节

TEST AL,01 ;判PA0口是否为1

JZ KKK ;若不为1,则转KKK

RET ;子程序返回

DELAY ENDP

NIAN PROC NEAR

START2: MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET MESS

AGN: MOV CX,80H

D2: MOV SI,OFFSET MIN1

MOV AH,01H

PUSH CX

MOV CX,0008H

NEXT: MOV AL,JNUM

CALL BUFF

MOV DX,PROTH

OUT DX,AL

MOV AL,AH

MOV DX,PROTLR

OUT DX,AL ;显示第一行红

SHL AH,01

INC SI

PUSH CX

MOV CX,0FFFFH

DELAY2: LOOP DELAY2 ;延时

POP CX

LOOP NEXT

POP CX

CALL DELAY

LOOP D2

MOV AL,00

MOV DX,PROTLR

OUT DX,AL

CMP QMUSIC,0

JE C1

RET

C1: MOV AH,01

INT 16H

JNZ BACK

AGN1: MOV CX,80H ;AGN1为显示黄色D1: MOV SI,OFFSET MIN1

MOV AH,01

PUSH CX

MOV CX,0008H

NEXT1: MOV AL,JNUM

CALL BUFF

MOV DX,PROTH

OUT DX,AL

MOV AL,AH

MOV DX,PROTLY

OUT DX,AL

SHL AH,01

INC SI

PUSH CX

MOV CX,0FFFFH

DELAY1: LOOP DELAY1

MOV CX,0FFFFH

DELAY3: LOOP DELAY3

POP CX

LOOP NEXT1

POP CX

CALL DELAY

LOOP D1

MOV AL,00

MOV DX,PROTLY

OUT DX,AL

CMP QMUSIC,0

JE C2

RET

C2: MOV AH,01

INT 16H

JNZ BACK

JMP AGN

BACK: RET

;---------------------------------------------------------------- DELAY0 PROC NEAR ;延迟子程序 PUSH CX

MOV CX,0FFFFH

CCC: LOOP CCC

POP CX

RET

DELAY0 ENDP

;--------------------------------------------------------------------- ;-------------------------------------------------------------------- BUFF PROC NEAR ; 代码选择判断子程序JUDGE1: CMP AL,31H

JE L1

CMP AL,32H

JE L2

CMP AL,33H

JE L3

CMP AL,34H

JE L4

CMP AL,35H

JE L5

CMP AL,36H

JE L6

CMP AL,37H

JE L7

CMP AL,38H

JE L8

;JMP A2

L1: MOV AL,[SI]

MOV BX,OFFSET BUFF1

XLAT

RET ;得到第一行码L2: MOV AL,[SI]

MOV BX,OFFSET BUFF2

XLAT

RET

L3: MOV AL,[SI]

MOV BX,OFFSET BUFF3

XLAT

RET

L4: MOV AL,[SI]

MOV BX,OFFSET BUFF4

XLAT

RET

L5: MOV AL,[SI]

MOV BX,OFFSET BUFF5

XLAT

RET

L6: MOV AL,[SI]

MOV BX,OFFSET BUFF6

XLAT

RET

L7: MOV AL,[SI]

MOV BX,OFFSET BUFF7

XLAT

RET

L8: MOV AL,[SI]

MOV BX,OFFSET BUFF8

XLAT

RET

BUFF ENDP

NIAN ENDP

CODE ENDS

END START

五、调试情况及其分析

源程序完成后,进行子程序与程序的调试工作,程序调试过程、完成情况及其分析按以下顺序进行:

1.主程序简单电子琴功能

主程序要求完成的功能有:电子琴简单功能实现及将音阶用数码管显示,主程序由电子琴实验程序有机组成,两个程序简单拼凑在一齐是不能实现的。

经过实际调试和修改,将原电子琴程序改为2个子程序:(实现播放音阶)和(实现播放音阶时延时);并加入了数码管显示的子程序以及广告版显示图案程序。然后播放预存歌曲由放歌子程序完成。

调试后,主程序能实现课程设计要求的功能,并且界面清晰、操作容易。2.子程序放歌(已预存)功能

此功能将一首预存的歌曲播放,此功能可以调用放音的子程序实现,唯一不同就是根据键盘的输入控制,选择播放的缓存区是预存歌缓存区。然后通过键盘选择所要播放的歌曲曲目

3.源程序整体功能

将各子程序调试完成后,进行最后的源程序整体功能调试。调试过程中我们注意到:

a.程序模块化(功能分为若干子程序)能使源程序清晰,调试简单,因此在调试中我们还将源程序进一步模块化。

b.注意子程序之间的通信方式,

c.调用子程序前,使用push/pop保护了一些子程序会用到的主程序同时会用到的寄存器,保证调用之后主程序的顺利执行。

在调试过程中出现的一些小问题,我们都根据以上3点总结出的经验作为原则进行调试,调试过程十分顺利。最后根据电子琴的实际用途加上了一些必要清晰的提示性语句,使界面更加友好。

六、实验总结:

微机原理与应用这门课程刚刚于上学期结束,但是由于以前我们实验课时实在是太少了,还有经过寒假的放松,所以这次试验刚开始时最大的感觉就是以前学过的东西要不就是忘记了,或是记得的东西很难一下子拿出来应用。这个不仅是在微机原理这门课,包括其他的课程设计也是开始会遇到知识与应用衔接不起来的困境。

通过老师的提示及相关实验指导书的资料我们找到了入手点,这点也是我觉得题目设置的比较合理的一点:在已有基础题目的基础上加入创新内容。在基础功能的实现上并没有遇到问题,主要也是有参考内容的知道,同时通过参考内容更好的把握了设计的整体思路及各个模块的细节。但是在拓展功能上就有不少的

问题。就如我所做的电子琴来说,基本功能的程序已经在那里,但是如何使它可以同时用数码管显示音阶呢?我们就找到了数码管显示的相关程序,但是直接相拼接显然是不行的,他们的端口还有重叠的地方,还有就是8255,8253两块芯片的相关使用指令,这些都是关系到我们程序是否实现功能的所在。我们通过翻阅相关资料,逐步解决了相关的问题,然后我们同时也想到了将我们的电子琴做得与众不同,所以想到了旁边的点阵LED显示器,为了使我们的计划成功,同样的我们也翻阅了很多的资料,最后终于完成。

最后在老师的提示下,我们完成了在程序中预置歌曲的功能,还有开机音乐,但是在录制歌曲时出现了问题。我们试了很久,但是最后还是无果而终,留下了一丝遗憾。也希望在以后的实际问题中,能够得到相关解决。也希望老师能够在汇编这一方面多给我们指导。

除了微机相关的知识,我通过这个实验更深刻了体会了数字与模拟之间的关系和相互转换的规律。

七、关于微机原理课程,实验课及课程设计的建议和意见

通过之前是微机实验和此次课程设计感触最深的一点就是:就是上学期我们微机实验课的课时是在是太少啦,以致于留给我们做实验的时间实在是太少了,所以我们虽然完成了书本知识的学习,但是我们能够真正运用的东西太少了。所以这次的课程设计提供给我们这个绝好的机会,让我们能得到学以致用的机会。我希望以后这样能够让我们动手体验的机会可以更多一些。

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

简易电子琴课程设计

课程设计任务书学生姓名:专业班级: 指导教师:工作单位:信息工程学院 题目: 简易电子琴电路的设计仿真与实现 初始条件: 可选元件:集成运算放大器LM324、电阻、电位器、电容若干,直流电源,或自备元器件。 可用仪器:示波器,万用表,直流稳压源,函数发生器 要求完成的主要任务: (1)设计任务 根据要求,完成对简易电子琴电路的仿真设计、装配与调试,鼓励自制稳压电源。 (2)设计要求 ①设计一简易电子琴电路,按下不同琴键即改变RC值,能发出C调的八个基本音阶,采用运算放大 ②选择电路方案,完成对确定方案电路的设计。 ③利用Proteus或Multisim仿真设计电路原理图,确定电路元件参数、掌握电路工作原理并仿真实现系 统功能。 ④安装调试并按规范要求格式完成课程设计报告书。 ⑤选做:利用仿真软件的PCB设计功能进行PCB设计。 时间安排: 1、前半周,完成仿真设计调试;并制作实物。 2、后半周,硬件调试,撰写、提交课程设计报告,进行验收和答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 1.模电课设概述 (1) 1.1设计背景 (1) 1.2设计目的及意义 (1) 1.3开发环境proteus简介 (1) 2.电路原理 (3) 2.1 RC桥式振荡电路及频率选择 (3) 2.2振荡条件 (4) 3.总体方案设计 (5) 3.1实验电路设计思路 (5) 3.2设计电路图 (6) 3.3实验参数选择 (6) 4.仿真曲线及结果分析 (7) 4.1仿真操作过程及曲线 (7) 4.2仿真结果分析 (14) 5.实物制作及仿真、实物的差异 (15) 5.1实物制作过程和调试过程 (15) 5.2 仿真、实物的差异 (16) 6.心得体会 (17) 7.元件清单 (18) 8.参考文献 (19)

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

简易电子琴课程设计报告

摘要 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在音奏中已成为不可缺少的一部分。本文主要介绍运用555定时器制作简易电子琴的设计方法。该方法利用555定时器构成多谐振荡器,通过按键控制不同的RC组合应用多谐振荡器产生不同频率八个基本音阶的脉冲信号波,然后连到扬声器上,即可发出八音阶的音乐。在该设计中,利用了555定时器构成的多谐振荡器产生各音阶不同频率的脉冲,不仅仅使其频率调节更加方便,而且发出的声音稳定、饱满。 前言 (1) 第一章设计内容及要求 (2) 1.1 设计的基本原理 (2) 1.2 设计要求 (2) 第二章系统组成及工作原理 (3) 2.1 系统组成 (3) 2.1.1 按键模块 (3) 2.1.2音调发生模块 (3) 2.1.3音响模块 (4) 2.2 工作原理 (4) 2.2.1 NE555多谐振荡器 (5) 2.2.2 LM386集成功率放大器 (7) 第三章方案比较 (8) 3.1 方案一 (8) 3.2 方案二 (9) 3.3方案三 (10) 3.4方案分析与比较 (11) 第四章参数计算、器件选择 (12) 4.1 参数计算 (12) 4.2 器件选择 (12) 第五章系统调试及测试结果分析 (14) 5.1 系统调试 (18) 关键词:简易电子琴,555定时器,多谐振荡器,八个基本音阶 目录

5.2 硬件调试···················································19 2 5.3 测试结果与分析 (19) 前言 随着当代科学设计的发展,电子产品在人们的日常生活中占据着越来越多重要的地位。电子琴作为其中的一个典型代表,引领着许多孩子进入音乐的殿堂。因此,我们选择了简易电子琴这个题目来制作,因为它不仅能过提高实际动手能力,还与实际生活有着紧密的联系。 模拟电子技术基本教程是一门实践性很强的课程,而此次课程设计依据的理论基础是模拟电子技术基本教程,其主要目的是通过本课程的培养,启发学生的创造性思维,进一步探究书本知识。本课程设计是设计出一个电子产品,先焊接好,再进行检验。 在电子课程设计的过程中,系统的概念十分重要,熟悉从系统的层次分析问题、解决问题的方式。基本方法除了实验课中要求掌握的功能测试、故障排除等各种一般方法以外、要特别注重使用“电路拼装”的方法。课程设计的一般步骤如下:(1)、选择一个课题;(2)、查阅有关资料;(3)、进行可行论证;(4)、通过设计方案的比较,定出最优的设计方案;(5)、分解为多个模块;(6)、分别设计各个功能模块电路,并完成调试;(7)、组装成完整的数字系统;(8)、编写设计、安装、调试报告。 1 第一章设计原理及要求 1.1 设计的原理 555定时器是一种中规模集成电路,外形为双列直插8脚结构,体积小,使用起来方便。只要在外部配上几个适当的阻容元件,就可以构成施密特触发器、单稳态触发器及多谐振荡器等脉冲信号产生与变换电路。它在波形的产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面有广泛的应用。 5.4 误差分析 (19) 实验小结及心得体会 (20) 结论······························································21 参考 文献·························································22 附录一····························································23 附录二···························································· 24 3

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

电子琴微机原理基于8086课程设计

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 湖南科技大学 潇湘学院信息与电气工程系 《课程设计报告》 题目:基于8086的电子琴设计 专业:通信工程 班级:通信一班 姓名:罗婷 学号: 18 指导老师:欧青立陈君宋芳管志利李目 2015年 12 月 28 日 1文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 信息与电气工程系 课程设计任务书 2015—2016 学年第 1 学期 专业:通信工程学号: 18 姓名:罗婷 课程设计名称:微机原理与接口技术 设计题目:基于8056的电子琴设计 完成期限:自 2015 年 12 月 14 日至 2015 年 12 月 26 日共 2 周 设计内容: 通过 8255 和 8253 来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分:主要是由 8255 和 8 个常开型开关来完成。发音部分:CUP 通过对定时器 8253 的通道 2 进行编程,使其 I/O 寄存器接收一个控制声音频率的 16 位计数值,端口 61H 的最低位控制通道 2 门控的开断,以产生特殊的音响。本文用到的是 8253 的方式 3——方波发生器。 基本要求: 1.以8255接八个开关K1~K8,做电子琴按键输入。 2.以8253控制扬声器,拨动不同的开关,发出相应的音阶。 要求: 指导教师(签字): 批准日期:年月日 摘要 定时器/ 计数器8253 可以产生不同频率的信号, 经过三极管放大驱动扬声器发出不同的音阶。硬件上以8086 作为核心处理单元, 将8253 的输出端连接音频模块。软件上检测按键是否有键按下, 判断按键并驱动对应发音子程序。通用MIDI音源模块制作制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的2文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

微机原理与汇编语言课程设计报告

西北师范大学 计算机科学与工程学院 微机原理与汇编语言 课程设计报告 设计题目:中断控制点阵显示与音乐模块姓名: 学号: 专业班级: 系所中心: 指导老师: 起讫时间: 设计地点: 2016年8月20日

摘要 使用8086汇编语言,在唐都TD-PITE实验箱上进行硬件连线,在计算机上采用与该实验箱配套的软件进行输入,观察实验结果。设计思路是利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,利用8254芯片开始响应预先编排好的音乐。 【关键词】级联中断;8259芯片;16*16点阵;8254芯片;SPK音乐模块;脉冲信号

目录 摘要 (2) 第一章课程设计 (2) 1.1 目的和任务 (2) 1.2 设计环境、设备与器材 (2) 第二章设计内容和方案 (3) 2.1 设计内容 (3) 2.2 设计方案 (3) 第三章课程设计相关原理简述 (3) 第四章设计实现 (4) 4.1 系统设计框架结构 (4) 4.2 系统硬件设计 (4) 4.3 系统软件设计 (6) 4.4 程序流程图 (6) 4.5 核心数据结构 (8) 4.6 关键代码片段分析 (10) 第五章设计验证 (10) 5.1 验证步骤及结果 (10) 5.2 数据分析 (10) 5.3 遇到的问题及解决 (11) 5.4 需要讨论的其它问题 (11) 5.5 结论 (11) 第六章设计总结 (12) 第七章本课程教学建议 (13) 第八章参考文献 (13) 第九章附录:源代码 (13) 第一章课程设计 1.1 目的和任务 使用8259芯片进行中断程序设计,在第一个中断中响应字模显示模块,在第二个中断中响应音乐发声模块。

电子琴课程设计

摘要 随着电子技术的发展,电子技术正在逐渐改善着人们的学习、生活、工作,电子技术与音乐的结合正在不断加深。因此开发本系统希望能够给人们多带来一点生活上的乐趣。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。 关键词:AT89C51,矩阵键盘,LED显示管,扬声器。

目录 摘要..............................................................................................................................I 目录.............................................................................................................................II 1 引言. (1) 1.1 研究背景及意义 (1) 1.2 研究现状和发展趋势 (1) 2 硬件设计 (2) 2.1 总体设计方案 (2) 2.2 电子琴组成原件的概述 (2) 3 软件设计 (4) 3.1 keil软件的任务 (4) 3.2 proteus的界面实现 (6) 4 系统调试与实验 (7) 4.1 程序调试 (7) 4.2 硬件调试 (7) 5 总结 (8) 参考文献 (9)

汇编课程设计

燕山大学 汇编语言课程设计说明书 题目:计算机钢琴程序 交通灯控制系统 学院(系):信息科学与工程学院 年级专业: 10级计算机科学2班 学号: 100104010113 学生姓名:马强 学号: 100104010116 学生姓名:夏洋 指导教师:何海涛、邹晓红 完成日期: 2013年7月3日

目录 1.课程设计的目的和意义........................................................................................................... - 2 - 1.1课程设计目的................................................................................................................ - 2 - 1.2课程设计的意义............................................................................................................ - 2 - 2.题目一:计算机钢琴程序....................................................................................................... - 2 - 2.1系统的主要功能............................................................................................................ - 2 - 2.2总体设计方案................................................................................................................ - 2 - 2.2.1扬声器驱动方式................................................................................................. - 2 - 2.2.2延时原理............................................................................................................. - 3 - 2.2.3键盘控制发声程序............................................................................................. - 4 - 2.2.4设计总结............................................................................................................. - 5 - 2.3作品使用说明................................................................................................................ - 6 - 3.题目二:交通灯控制系统....................................................................................................... - 6 - 3.1系统的主要功能............................................................................................................ - 6 - 3.2 系统工作原理............................................................................................................... - 6 - 3.2.1 8259的工作原理................................................................................................ - 6 - 3.2.2 8255A的工作原理:...................................................................................... - 7 - 3.2.3 8253的工作原理:............................................................................................ - 7 - 3.3总体设计方案................................................................................................................ - 7 - 3.3.1程序流程图......................................................................................................... - 8 - 3.3.2接口电路图....................................................................................................... - 11 - 3.4交通灯的设计总结...................................................................................................... - 11 - 4.课程设计心得体会................................................................................................................. - 12 - 5.参考文献................................................................................................................................. - 12 - 6.附录:程序代码..................................................................................................................... - 12 - 6.1计算机钢琴程序代码.................................................................................................. - 12 - 6.2交通灯控制系统代码.................................................................................................. - 14 -

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学 号 指导教师 完成日期

目录 目录 (2) 1概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (3) 5测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6小结 (5) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 1.2 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 2.2 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 2.3 开发环境 TASM5.0集成环境

数电课程设计--简易电子琴

目录 1 设计任务 (1) 1.1 基本任务 (1) 1.2 扩展任务 (1) 2 设计方案原理 (1) 3 单元电路的设计 (2) 3.1 多谐振荡器 (2) 3.2 琴键开关 (3) 3.3 扩音器(喇叭) (4) 3.4 器件选择 (4) 4 电路图的绘制 (5) 5 电路的仿真及调试 (6) 6 体会 (6) 参考文献 (8)

1设计任务 电子琴是一种很简单的电子产品,目前市场上所售的电子琴多为基于单片机所设计的。本次课设要求利用数电知识,设计一个能奏出八个音阶的电子琴。虽然没有基于单片机的电子琴那么多的功能,但是电子琴的基本功能是可以满足的。 本次设计的主要内容为:根据数电课程所学内容,结合其他相关课程知识,设计一个简易电子琴,以加深对单片机知识的理解,锻炼实践动手能力。 本次设计的任务为: 1.1基本任务 ①具备8个按键,能够分别较准确地弹奏出1?1八个音符。 ②选择电路方案,完成对确定方案电路的设计。计算电路元件参 数与元件选择、并画出总体电路原理图,阐述基本原理。用 Proteus或MULTISIM软件完成仿真,并按规定格式写出课程设计 报告书。 1.2扩展任务 ①能够弹奏出至少21个音符(三个音阶)。 ②能够较便捷地完成音阶的升降。(按一个开关实现升8度,按另一个开关实现降 8度) 2设计方案原理 本方案为利用555多谐振荡器能输出脉冲信号的特性,通过改变振荡器外接电阻的阻值来改变振荡器输出脉冲的频率,驱动喇叭发出各种音阶。电子琴所用琴键即为改变电阻阻值的开关,通过改变阻值使输出与琴键音阶相对应。

原理框图如下: 图1原理框图 3单元电路的设计 3.1多谐振荡器 利用多谐振荡器产生周期脉冲电路图如下图所示 图2 多谐振荡器电路实现 图中引脚功能: 1脚:GND或Vss)外接电源负端VSS或接地,一般情况下接地。 2脚:TR低触发端。 3脚:OUT(或Vo)输出端。 4脚:Rd是直接清零端。当R端接低电平,则时基电路不工作,此时不论TR、TH 处于何电平,时基电路输出为“ o”,该端不用时应接高电平。 5脚:CO或VC)为控制电压端。若此端外接电压,则可改变内部两个比较器的

汇编课程设计报告

汇编课程设计报告

学 号: 课程设计 题目打印水仙花数 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师

武汉理工大学《汇编语言程序设计》课程设计 2012 年 6 月28 日 课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件: 理论:完成了《汇编语言程序设计》课程, 对微机系统结构和80系列指令系 统有了较深入的理解,已掌握了汇 编语言程序设计的基本方法和技 巧。 实践:完成了《汇编语言程序设计》的4 个实验,熟悉了汇编语言程序的设 计环境并掌握了汇编语言程序的 调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方 法,掌握子程序结构的设计和友好用户界 3

2.1简要分析 2.1.1原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。 在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。 2.1.2程序流程图

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

微机原理课程设计-电子琴设计

前言 本实验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等硬件设备,设计简易电子琴。 首先利用了编程程序,编辑了8255芯片控制字, 对其进行初始化,使其工作在方式0,即基本输入输出状态,将8255的A端口设置为输出,C端口进行,经CPU运算后, 输出到8254芯片的A端口中,由此实现对其的初始化。 “OUT” 将8254芯片设置为工作在方式3,即输出对称方波状态。A端口为输入, 指令可将输出对应一定频率的方波送到扬声器中,由此实现发声。本实验通过频率大小控制发出声音的高低,通过对延时程序的调用控制发出声音的长短。并通过所编程序实现对键盘的重复扫描,重而可以弹奏多个音符的试验目的。 关键字: 编程、工作方式、运算

一、设计题目: 简易电子琴设计 二、设计内容: 实验电路如图16-1,8253的CLK0接1MHZ时钟,GATE0接8255的PA1,OUT0和8255的PA0接到与门的两个输入端,K8跳线连接喇叭,编程使计算机的数字键 1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。 三、设计目的: 1、通过8253产生不同的频率信号,使PC机成为简易电子琴。 2、了解利用8255和8253产生音乐的基本方法。 3、通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。 四、设计要求: 1.可以弹出7个音阶。 2.弹奏简短音乐。 3.通过改变键盘输入来改变8254输出频率,实现扬声器发音 五、编程提示: 1、利用8255的PA0口来施加控制信号给与门,用来控制扬声器的开关状态。再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达到类似与音阶的高低音变换。对于音乐,每个音阶都有确定的频率。各音阶标称频率值: 音阶 1 2 3 4 5 6 7 1* 低频率(单位:Hz) 262 294 330 347 392 440 494 524 高频率(单位:Hz) 524 588 660 698 784 880 988 1048

汇编语言课程设计报告

课程设计报告 课程名称课题名称 汇编语言程序设计 1.显示彩色菱形 2.显示系统当前时间 专业 班级 学号 姓名 指导教师 年月日

课程设计任务书 课程名称汇编语言程序设计 课题 1.显示彩色菱形 2.显示系统当前时间专业班级 学生姓名 学号 指导老师 审批 任务书下达日期年月日 任务完成日期年月日

一、设计内容与设计要求 1.设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能 够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。 (1)、编制一计算比赛成绩的程序,要求完成以下功能: a、9 名评委,每个评委给分范围为 0~100(整数); b、9名评委给分中,去掉一个最高分和一个最低分,剩余7 名评委的平均分即为参赛者的得分(精确到小数点二位); c、将得分在光标位置处显示出来。 (2) 、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30 字的 grade 数组中,各数据的格式为: 学号,成绩 1,成绩 2,?,成绩 5 然后根据 grade 中的学生成绩,把学生名次填入rank 数据组中,并显示出来,格式为:学号,名次 (3)、利用 INT 1CH(大约每秒中断 18.2 次)编写一个中断驻留程序,要求在屏幕的右 上角显示计算机中当前系统时间,显示格式为 时:分: 秒:1/100 秒 (4)、输入一个菱形的两条对角线长,在屏幕上用‘ * ’号画出一个彩色的菱形。 (5)、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次, 一直到整个屏幕都显示出彩条 2.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一 些实际的问题,为将来编写软件积累一些典型的案例处理经验。 (1)、设计正确,方案合理。 (2)、界面友好,使用方便。 (3)、程序精炼,结构清晰。 (4)、设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 (5)、上机演示。 (6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编

汇编语言课程设计报告

农林大学金山学院 课程设计报告 课程名称:汇编语言课程设计 课程设计题目:动画设计“我爱大自然”姓名: 系:信息与机电工程系 专业:电子信息工程 年级:2008级 学号:082230066 指导教师:\ 职称:助教 2009~2010学年第二学期

目录 1 课程设计的目的 (2) 2 课程设计的要求 (2) 3课程设计报告容 (2) 3.1设计思路 (2) 3.2程序流程图 (2) 3.3设计源程序 (5) 3.4动画示意图 (19) 4 总结 (20) 5参考文献 (20) 6评分标准 (21)

动画设计“我爱大自然” 一、课程设计的目的 《汇编语言课程设计》是电子信息工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。其目的是: 培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。 二、课程设计的要求 1)具备初步的独立分析和解决问题的能力; 2)初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能; 3)提高综合运用所学的理论知识和方法的能力; 4)训练用系统的观点和软件开发一般规进行软件开发,培养科学的工作方法和作风; 5)设计的题目要求达到一定工作量,并具有一定的深度和难度; 6)编写出课程设计说明书。 三、课程设计报告容 (一)设计思路 “我爱大自然”这个程序中包含了比较多的景物,既有静态的也有动态的,其中还有一段音乐。为了节省存储空间,提高程序设计的效率和质量,使程序简洁、清晰,便于阅读,同时也为了便于修改和扩充,采用子程序设计技术和宏定义,根据程序要实现的若干主要功能及个功能块要调用的公共部分,将程序划分为若干个相对独立的模块,为每个模块编制独立的程序段,最后将这些子程序根据调用关系连成一个整体。 这样,整个程序就被分为几个子程序的有机统一。根据BIOS中断调用原理,设置80×25彩色文本显示方式,分别编写一个子程序显示“I LOVE NATURE,LET US GO AIRING”和一个子程序在屏幕上“画”树。这两个子程序所体现出来的事物都是的。为了实现小鸟

电子琴微机原理基于8086课程设计

湖南科技大学 潇湘学院信息与电气工程系 《课程设计报告》 题目:基于8086的电子琴设计 专业:通信工程 班级:通信一班 姓名:罗婷 学号:1354040118 指导老师:欧青立陈君宋芳管志利李目

2015年12 月28 日

信息与电气工程系 课程设计任务书 2015—2016 学年第 1 学期 专业:通信工程学号:1354040118 姓名:罗婷 课程设计名称:微机原理与接口技术 设计题目:基于8056的电子琴设计 完成期限:自2015 年12 月14 日至2015 年12 月26 日共 2 周 设计内容: 通过8255 和8253 来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分:主要是由8255 和8 个常开型开关来完成。发音部分:CUP 通过对定时器8253 的通道2 进行编程,使其I/O 寄存器接收一个控制声音频率的16 位计数值,端口61H 的最低位控制通道2 门控的开断,以产生特殊的音响。本文用到的是8253 的方式3——方波发生器。 基本要求: 1.以8255接八个开关K1~K8,做电子琴按键输入。 2.以8253控制扬声器,拨动不同的开关,发出相应的音阶。 要求:

指导教师(签字): 批准日期:年月日 摘要 定时器/ 计数器8253 可以产生不同频率的信号, 经过三极管放大驱动扬声器发出不同的音阶。硬件上以8086 作为核心处理单元, 将8253 的输出端连接音频模块。软件上检测按键是否有键按下, 判断按键并驱动对应发音子程序。通用MIDI音源模块制作制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。 手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的QS6400 等,这些芯片的驱动要复杂一些,需要对芯片进行初始化设置。 此外还有音乐盒、附有生日歌的生日卡片等等。所以利用微机制作的简易电子琴在我们的日常生活中随处可见。 关键词:Altium Designer;masm.5.0 ;8086;8255;8253定时器;

相关文档
最新文档