组成原理课设报告正文.docx

上传人:b****1 文档编号:13603757 上传时间:2023-06-15 格式:DOCX 页数:16 大小:140.90KB
下载 相关 举报
组成原理课设报告正文.docx_第1页
第1页 / 共16页
组成原理课设报告正文.docx_第2页
第2页 / 共16页
组成原理课设报告正文.docx_第3页
第3页 / 共16页
组成原理课设报告正文.docx_第4页
第4页 / 共16页
组成原理课设报告正文.docx_第5页
第5页 / 共16页
组成原理课设报告正文.docx_第6页
第6页 / 共16页
组成原理课设报告正文.docx_第7页
第7页 / 共16页
组成原理课设报告正文.docx_第8页
第8页 / 共16页
组成原理课设报告正文.docx_第9页
第9页 / 共16页
组成原理课设报告正文.docx_第10页
第10页 / 共16页
组成原理课设报告正文.docx_第11页
第11页 / 共16页
组成原理课设报告正文.docx_第12页
第12页 / 共16页
组成原理课设报告正文.docx_第13页
第13页 / 共16页
组成原理课设报告正文.docx_第14页
第14页 / 共16页
组成原理课设报告正文.docx_第15页
第15页 / 共16页
组成原理课设报告正文.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

组成原理课设报告正文.docx

《组成原理课设报告正文.docx》由会员分享,可在线阅读,更多相关《组成原理课设报告正文.docx(16页珍藏版)》请在冰点文库上搜索。

组成原理课设报告正文.docx

组成原理课设报告正文

目录

第一章绪论1

第二章设计原理2

2.1原理介绍2

2.2设计内容2

2.3原理流程图2

2.4电路器件接线原理图3

第三章主要芯片功能5

3.18255主要功能5

3.28254的工作方式及主要功能6

第四章源程序及注释8

致谢13

参考文献14

第一章绪论

通过本学期对微机原理的学习,掌握的知识还停留在理论的上。

但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。

通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。

通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。

本次课程设计为简易电子琴设计,其主要是利用微机原理试验箱、键盘、扬声器、8254和8255芯片以及PC机对其进行模拟设计,通过编写软件程序对其进行控制。

设计过程中,主要涉及到8254以及8255芯片的端口和工作方式的选择,不同音阶的选择,以及对键盘的控制和识别功能设计,还设计了静音延时等功能。

通过对所要实现的功能和硬件分析,作出了相应的流程图以及接线图。

软件设计中,主要是利用了计算机汇编语言中的调用、循环、逻辑等功能语句,对所要实现的功能进行编写控制,最后通过连接电路来实现所编写的功能。

 

关键字:

微机原理,电子琴,8254,8255,汇编语言

 

第二章设计原理

2.1原理介绍

简易电子琴,当敲击键盘,用8254与CPU共同对键盘进行扫描,通过8255接口把信号传送给CPU进行分析计算并确定键盘键位数字,CPU将该数字对应的计数器初值送给8254,8254通过方波发生器的方式输出方波并传诵传送给喇叭发出声音.从而实现分别按下0、1、2、3、4、5、6、7分别发出哆、唻、咪、发、唆、喇、嘁、哆等七种键音,松开按键则声音结束。

2.2设计内容

本次课程设计的内容为简易电子琴的设计与实现,利用8255将键盘输出值返回CPU,CPU通过分析命令8254输出相应频率的方波波形,再经过扬声器发出声音。

由于PC计算机的时钟晶振为1.1931816MHz,可以利用微机实验箱里面的发生单元发出声音。

表2.1各音阶标称频率值

音符

1

2

3

4

5

6

7

重音对应频率(Hz)

131

147

165

175

196

220

247

低音对应频率(Hz)

262

294

330

349

392

440

494

中音对应频率(Hz)

523

587

659

698

784

880

988

高音对应频率(Hz)

1064

1175

1318

1397

1568

1760

1975

 

2.3原理流程图

主程序的流程图是对整个程序的逻辑的图象表示。

形象的描述了整个系统的工作过程,流程图如图2.1所示:

 

无按键

 

图2.1原理流程图

2.4电路器件接线原理图

系统的连线图主要由四个部分构成。

系统总线、8255并口控制器、键盘及数码管显示单元、8254芯片。

如图2.2所示:

 

 

图2.2硬件接线原理图

 

第三章主要芯片功能

3.18255主要功能

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。

用+5V单电源供电,能在以下三种方式下工作:

方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。

8255的内部结构及引脚如图2.1所示:

图3.1内部结构及引脚

为读信号线,与其他信号线一起实现对8255接口的读操作。

通常接系统总线的

信号。

为写信号线,与其他信号一起实现对8255的写操作,通常接系统总线的

为片选信号线,当它为低电平时,才能选中该8255芯片,也才能对8255进行操作。

D0~D7:

三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:

端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

PB0~PB7:

端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

PC0~PC7:

端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。

端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。

这里的8255接口所占地址范围为0680H~0686H。

当对8255接口进行写操作时,各信号线的状态如表2.1所示:

表3.1

CS

A1

A0

IOR

IOW

操作

0

0

0

1

0

写A口

0

0

1

1

0

写B口

0

1

0

1

0

写控制寄存器

0

1

1

1

0

写C口

8255在应用过程中,将不同的控制字装入芯片中控制寄存器,即可确定8255的工作方式。

8255的控制字由8位二进制数构成,各位的控制功能如图2.2所示:

图3.28255控制字

3.28254的工作方式及主要功能

8254作为一个可编程计数器/定时器,可以设定,不论工作在哪种模式,都会遵守下面几条基本规则:

1)控制字写入寄存器时,所有控制逻辑电路立即复位,输出端OUT进入初始状态。

2)初值写入后,要经过一个时钟上升沿和一个下降沿,计数执行部件才开始进行计数。

3)通常在时钟脉冲CLK的上升沿时,门控信号GATE被采样。

模式0,4中,门控信号为电平触发

模式1,5中,门控信号为上升沿触发

模式2,3中,门控信号为电平或上升沿触发

4)在时钟脉冲的下降沿,计数器作减1计数。

0是计数器所能容纳的最大初始值。

在电子琴的设计中,用的是8254方波发生器的原理

1)GATE为高时,写入偶计数值n后,在下一个时钟脉冲的下降沿起OUT为高,并开始减2计数,计数值为0时,OUT变为低,且重置初值后继续减2计数,计数值为0时,OUT变为高,周而复始。

2)GATE为高时,写入奇计数值m后,在下一个时钟脉冲的下降沿起OUT为高,并先减1然后减2计数,计数值为0时,OUT变为低,且重置初值后先减3然后减2计数,计数值为0时,OUT变为高,周而复始。

3)写入偶计数值,OUT上可得对称的方波;写入奇计数值,可得相似对称的方波;

4)计数值n一次写入,连续有效。

让8253定时输出间隔(如:

Do210hz周期1/210让8253out它就行了)进入中断向D/a发信号。

如果想+正弦波(32段模拟)。

1,频率32倍=周期32分之一,每一份输出正弦波分量,2在在外面加循环次数即可控制正弦波数量,控制音长。

计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号表明计数单元已为零。

当作为定时器工作时,每当计数单元为零时,计数寄存器内容会自动重新装入计数单元,而且CLK输入是均匀的脉冲序列,于是OUT输出频率是降低了的(相对于CLK信号频率)脉冲序列。

当作为计数器工作时,表明只关心在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲信号。

 

第四章源程序及注释

MY8255_AEQU0600H

MY8255_BEQU0602H

MY8255_CEQU0604H

MY8255_MODEEQU0606H;初始化8255

MY8254_MODEEQU06C6H;初始化8254

MY8254_AEQU06C0H;进行宏定义

MYDATASEGMENT

CHUSHUDW441D,495D,556D,589D,661D,742D,833D,882D,

262D,294D,330D,373D,402D,450D,494D,-1D

MYDATAENDS;建立数据段MYDATA

MYCODESEGMENT;建立数据段MYCODE

ASSUMECS:

MYCODE,DS:

MYDATA

START:

MOVAX,MYDATA

MOVDS,AX;实现段寄存器DS的初始化

MOVDX,MY8255_MODE

MOVAL,81H

OUTDX,AL;写8255芯片的控制字,实

;现工作在方式0,A端口和B端口

输出,C端口输入

MOVDX,MY8254_MODE

MOVAL,36H

OUTDX,AL;使8254工作在方式3,A

;口输入,运用计数器0,以二进制方式进行

BEGIN:

CALLCCSCAN;调用扫描子程序

JNZNUM1;有键按下时跳到NUM1

JMPBEGIN;没键按下时循环执行BEGIN

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

;确定按下键的位置

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

NUM1:

CALLCCSCAN

JNZNUM2;有键按下时跳到NUM2

JMPBEGIN;没键按下时循环执行BEGIN

NUM2:

MOVCH,0FEH;确定按下键在第一列

MOVCL,00H;将CL清零

COLUM:

MOVAL,CH

MOVDX,MY8255_A;将8255的A口地址赋给DX

OUTDX,AL;将CPU中的AL值送到8255

;的A口中,即送到x1、x2、x3、x4中

MOVDX,MY8255_C;将8255的C口地址赋给DX

INAL,DX;的A口中,即送到x1、x2、x3、x4中

MOVDX,MY8255_B;将8255的B口地址赋给DX

OUTDX,AL

;将8255的C口地址赋给DX

;将C口的值送到AL中

L1:

TESTAL,01H;检验按下键是否在L1

JNZL2;不是L1则跳到L2

MOVAL,00H;为了后面用来与CHUSHU

;数据段中数对应

JMPKCODE;强制跳转到KCODE

L2:

TESTAL,02H;检验按下键是否在L2

JNZL3;不是L2则跳到L3

MOVAL,04H;为了后面用来与CHUSHU数据段中数对应。

JMPKCODE;强制跳转到KCODE

L3:

TESTAL,04H;检验按下键是否在L23

JNZL4;不是L3则跳到L4

MOVAL,08H;为了后面用来与CHUSHU

;数据段中数对应。

JMPKCODE;强制跳转到KCODE

L4:

TESTAL,08H;检验按下键是否在L4

JNZNEXT;不是L4则跳到NEXT

MOVAL,0CH;为了后面用来与CHUSHU

;数据段中数对应。

KCODE:

ADDAL,CL;实现AL与CL的无进位加法

MOVDL,2H

MULDL;将AL乘以2结果保存到AX中

PLAY:

LEASI,CHUSHU;使SI指向CHUSHU的首地址

ADDSI,AX;通过SI加AX实现指针SI的移动

MOVDX,0FH

MOVAX,4240H;被除数为0F4240H

DIVWORDPTR[SI];除数为SI所指的数据

MOVDX,MY8254_A;将8255的A口地址赋给DX

OUTDX,AL;输出商的低4位

MOVAL,AH

OUTDX,AL;输出商的高4位

MOVCX,8H;输入计数值CX

NEXT3:

CALLDALLY;调用延时子程序DALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

LOOPNEXT3;CX不为0重复执行NEXT3

MOVDX,0FH

MOVAX,4240H;被除数为0F4240H

MOVSI,30D

DIVWORDPTR[SI];除数为SI=30所指的数据

MOVDX,MY8254_A;将8255的A口地址赋给DX

OUTDX,AL

MOVAL,AH

OUTDX,AL;实现静音,结束一个音符的发音

JMPBEGIN;跳转到BEGIN,重复扫描

NEXT:

INCCL;使CL加1,为了后面用来与

;CHUSHU数据段中数对应

MOVAL,CH

TESTAL,08H

JZKERR;无键按下时跳转到KERR

ROLAL,1D;向左移位

MOVCH,AL

JMPCOLUM;强制跳转到COLUM

KERR:

JMPBEGIN;跳到BEGIN重新开始扫描

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

;键盘扫描子程序

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

CCSCAN:

MOVAL,00H

MOVDX,MY8255_A

OUTDX,AL;使8255芯片A端口输出

;为0,既使x1、x2、x3、X4为0

MOVDX,MY8255_C;将8255的C口地址赋给DX

INAL,DX;将从C端口输入的y1、y2、y3、y4送到AL中

MOVDX,MY8255_B

OUTDX,AL

NOTAL;将AL取反

ANDAL,0FH;将AL前4位清零

RET

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

;延时子程序

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

DALLY:

PUSHCX;将CX压栈

MOVCX,000FH

T1:

MOVAX,0009FH

T2:

DECAX;使AX减1

JNZT2;AX不为0重复T2

LOOPT1;CX不为0重复T1

POPCX;将CX出栈

RET

MYCODEENDS;代码段定义结束

ENDSTART;程序结束

 

总结

一周的课程设计就在匆匆忙忙之间走过了,现在那种忙碌的心情还没有平息,总感觉自己还在课设之中,紧张的神经似乎并没有随着课设的结束而结束。

这一周的课程设计颇有收获,最重要的是让我能够更深刻的理解了书本上的知识,而且实际中的运用使得那些知识像活了一样地映入我的脑海。

对于8254和8255等芯片我原来只是停留在书本上的认识,并不能在实际中灵活应用。

刚开始进行课设的时候,看着那一片芯片实在不知道该怎么下手。

后来经过老师的热心指导和同学们的帮助我有了自己的思路,将课设进行了下去。

我的思路大概是这样的:

调整8254及8255的工作方式,并且进行编程,然后连线。

使得减胖的信号能够传到CPU里,通过CPU的计算控制8254芯片,最后8254芯片发出一定频率的方波传到发声装置,从而发出声音。

在设计的过程中,每当有一个新想法我就会进行实验,虽然失败的多成功的少,但我还是从中获得了知识。

而且再多的失败也打不倒我,因为我知道失败乃成功之母,实践出真知,只有在风雨过后的彩虹才是美丽的!

就这样,在多次的实验之后,我做出了自己的作品。

尽管还有些差强人意,但它还是我一点一滴做出来的。

一周的课程设计终于圆满的结束了,兴奋之余,我觉得这是我收获最多的一个课程设计。

因为原来的我真的是一个门外汉,通过老师的悉心讲解和自身的不断努力,反复查阅书籍,终于没有白白浪费这一周的时间,充实了自己。

感谢老师的谆谆教诲和悉心的指导,使学生更好的掌握了所学的知识,并为以后的学习打下了坚实的基础。

虽然我的课程设计结束了,但我对微机原理的学习还仅仅只是个开始,在今后的学习中,我会更加努力,在老师的带领下学好这门深奥的学科。

 

致谢

感谢所有在本次课设中帮助过我的人!

为期一周的微机原理课程设计已经结束了,在这一星期的课设中,我要非常感谢我们的指导教师衣云龙老师和王建老师。

因为在他们的悉心的指导下,我才能够如此顺利的完成任务。

他们严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。

从课设任务的下达到最终完成,衣老师和王老师都始终给予我细心的指导和帮助。

他们的帮助不仅使我开阔了视野,拓宽了思路,增长了学识,也为我在今后的学习和工作方面打下了牢固的基础。

课设时我一有不懂的地方就会去请教衣老师,老师从不厌烦,总是耐心讲解,并且在为你解惑的同时还会扩展一些相关知识。

真的很感谢衣老师的指导,从老师的身上我们不仅学到了知识还学到了许多做人的良好品格。

没有老师的指导我不可能在这么短的时间内完成任务。

我还要感谢我的同学们,因为单凭我一个人无法任务的,面对困难大家共同讨论,协作完成。

正是有了他们的帮助和支持,我才克服了一个一个的困难,成功完成任务。

最后,我要再次感谢我们的指导老师衣老师和王老师,谢谢您们对我们的帮助和支持,再次向您们表示深深的谢意,由衷的对您们说一句:

“老师,您们辛苦了!

祝老师们在今后的工作生活中一帆风顺,事事顺心!

 

参考文献

[1]李伯成等《微型计算机原理及应用》陕西:

西安电子科技大学出版社,2006

[2]李兰友等《微型计算机原理与接口技术》北京:

清华大学出版社,2003

[3]郑学坚等《微型计算机原理及应用实验指导》北京:

清华大学出版社,2002

[4]朱玉春等《微机原理与接口技术》辽宁:

大连理工大学出版社,2004

[5]仇玉章等《微型计算机技术实验及指导教程》北京:

清华大学出版社,2003

[6]戴梅萼等《微型计算机技术及应用》北京:

清华大学出版社,2003

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2