硬件课程设计.docx

上传人:b****0 文档编号:9491798 上传时间:2023-05-19 格式:DOCX 页数:18 大小:59.77KB
下载 相关 举报
硬件课程设计.docx_第1页
第1页 / 共18页
硬件课程设计.docx_第2页
第2页 / 共18页
硬件课程设计.docx_第3页
第3页 / 共18页
硬件课程设计.docx_第4页
第4页 / 共18页
硬件课程设计.docx_第5页
第5页 / 共18页
硬件课程设计.docx_第6页
第6页 / 共18页
硬件课程设计.docx_第7页
第7页 / 共18页
硬件课程设计.docx_第8页
第8页 / 共18页
硬件课程设计.docx_第9页
第9页 / 共18页
硬件课程设计.docx_第10页
第10页 / 共18页
硬件课程设计.docx_第11页
第11页 / 共18页
硬件课程设计.docx_第12页
第12页 / 共18页
硬件课程设计.docx_第13页
第13页 / 共18页
硬件课程设计.docx_第14页
第14页 / 共18页
硬件课程设计.docx_第15页
第15页 / 共18页
硬件课程设计.docx_第16页
第16页 / 共18页
硬件课程设计.docx_第17页
第17页 / 共18页
硬件课程设计.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

硬件课程设计.docx

《硬件课程设计.docx》由会员分享,可在线阅读,更多相关《硬件课程设计.docx(18页珍藏版)》请在冰点文库上搜索。

硬件课程设计.docx

硬件课程设计

西安邮电学院

课程设计实验报告

系部名称

计算机系

学生姓名

***

专业名称

计算机科学与技术

班级

计科0701

学号

***

时间

2010年6月21日至2010年7月2日

指导老师

***

 

实验一:

简易电子琴

一.实验目的

学习可编程并行接口芯片8255A和可编程定时器/计数器芯片8253实现电子琴的模拟控制,进一步掌握并行接口和定时器/计数器及数码管和逻辑开关控制的实际应用。

二.实验内容

1、在PC键盘上定义七个按键,分别对应1,2,3,4,5,6,7七个音符,按键退出

2、在按下重放键(R或者r键)后,将存之PC内存中的音符读出并播放对应的音乐,即完成重放功能

3、要求使用8255,8253,8259A中的至少两个芯片完成实验。

 

三.实验原理及思路

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来实现。

按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。

 

2、电路连接图

(1)8253和8255连接如下

 

(2)使用PC键盘作为音符输入,完成人机交互的部分。

数字键盘的1~7表示音符CDEFGAB,即Do、Re、Mi、Fa、Sol、La、Si

 

3.实验流程

在本次课程设计中,根据复杂程序设计思想——模块化程序设计,分析和确定程序总体设计目标:

电子琴基本功能及部分扩展功能后,将总体目标划分为若干模块(子程序,具体可见下)。

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

(1)根据实验箱(TD-PIT/TD-PIT++)分析系统,并完成连线图的设计

(2)在

(1)的基础上确定代码中的硬件接口,此部分要求设计封闭。

(3)确定程序总体设计目标,将总体目标划分为若干模块

(4)在

(1)

(2)的基础上完成硬件的连接,并相应的做出程序的部分编写

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

(5)编写模块式的源程序,并在硬件基础上开机进行调试。

(6)模块连接,形成完整的程序,并上机进行系统测试和Debug

(7)测试完成,修改错误的和标记的注释内容,并做系统的检查

(8)检查无误,交由老师负责检查和提问

(7)写程序设计文档,完成实验

 

四.实验流程图

 

五.调试情况,设计技巧及体会

拿到这次课程设计的八个题目,看到周围绝大多数同学选择了交通灯,我和万祺同学经过讨论一致决定选择电子琴。

第一天,我们主要复习了微机接口中有关芯片的知识为后面的实验打好基础。

第二天,我们认真分析了电子琴的原理,设计了实验流和连线图。

第三天,我们搭建好实验电路,先编写了让电子琴发音的汇编程序并调试通过。

第四天,在前一天的程序基础上编写发音回放程序部分,最终完成实验。

第五天,验收检查。

在实验过程中我和**同学一起设计了实验流程,我还负责了电路连线和部分程序编写调试。

六、源程序清单

MY8255_PAEQU1400H

MY8255_MODEEQU1403H

MY8253_0EQU1440H

MY8253_MODEEQU1443H

DATASEGMENT

PRINT_INPUTDB'pleaseinput:

1,2,3,4,5,6,7',0AH,0DH

DB'inputSPACEwillexit',0AH,0DH,'$'

PRINT_ERRORDB0AH,0DH,'ERROR!

!

INPUTAGAIN',0AH,0DH,'$'

PRINT_REPLAYDB0AH,0DH,'REPLAYING...',0AH,0DH,'$'

MUSIC_BUFDB50,?

KEY_COUNTDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,PRINT_INPUT

MOVAH,09

INT21H

LEASI,MUSIC_BUF

NEXT_CHORCH:

CALLINPUT

CMPDL,20H;SPACE

JZEND_DZQ

CMPDL,72H

JZREPLAY

CMPDL,52H

JZREPLAY

CALL__KEY

JMPNEXT_CHORCH

REPLAY:

CALLREPLAY_MUSIC

JMPNEXT_CHORCH

 

END_DZQ:

INIT_8255PROCNEAR

MOVAL,10001011B;控制字A口输出

MOVDX,MY8255_MODE

OUTDX,AL

MOVAL,CL

MOVDX,MY8255_PA

OUTDX,AL

RET

INIT_8255ENDP

INIT_8253PROCNEAR

MOVAL,37H;8253初始化,计数器0,工作在方式3,16位计数

MOVDX,MY8253_MODE

OUTDX,AL

MOVAL,BL;置入计数初值

MOVDX,MY8253_0

OUTDX,AL

MOVAL,BH

OUTDX,AL

CALLDELAY

MOVAL,00110000B

MOVDX,MY8253_MODE

OUTDX,AL

RET

RET

INIT_8253ENDP

INPUTPROCNEAR

MOVAH,1

INT21H

CMPAL,31H

JBSKIP

CMPAL,37H

JASKIP

MOV[SI],AL

INCSI

MOVDH,KEY_COUNT

INCDH

MOVKEY_COUNT,DH

SKIP:

MOVDL,AL

RET

INPUTENDP

REPLAY_MUSICPROCNEAR

LEADX,PRINT_REPLAY

MOVAH,09

INT21H

MOVDH,KEY_COUNT

SUBDH,30H

LEASI,MUSIC_BUF

RETRY:

MOVDL,[SI]

CALL__KEY

INCSI

DECDH

JNZRETRY

END_REPLAY:

RET

REPLAY_MUSICENDP

DELAYPROCNEAR

MOVBX,02000H

INCX:

MOVCX,0FFFFH

DELAY2:

LOOPDELAY2

DECBX;置延迟时间常数BL

JNZINCX

RET

DELAYENDP

MOVAH,4CH

INT21H

__KEYPROCNEAR

PUSHDX

CMPDL,31H

JZDo

CMPDL,32H

JZRe

CMPDL,33H

JZMi

CMPDL,34H

JZFa

CMPDL,35H

JZSo

CMPDL,36H

JZLa

CMPDL,37H

JZSii

JMPERROR

Do:

MOVBX,1912;1908

MOVCL,11111110B

JMPNEXT

Re:

MOVBX,1702;1700

MOVCL,11111101B

JMPNEXT

Mi:

MOVBX,1517;1515

MOVCL,11111011B

JMPNEXT

Fa:

MOVBX,1431;1432

MOVCL,11110111B

JMPNEXT

So:

MOVBX,1275;1275

MOVCL,11101111B

JMPNEXT

La:

MOVBX,1136;1136

MOVCL,11011111B

JMPNEXT

Sii:

MOVBX,1012;1012

MOVCL,10111111B

JMPNEXT

ERROR:

LEADX,PRINT_ERROR

MOVAH,09

INT21H

JMPSHUT

NEXT:

CALLINIT_8255

CALLINIT_8253

SHUT:

POPDX

RET

__KEYENDP

CODEENDS

ENDSTART

实验二基本模型机设计与实现

一.实验目的

1.在掌握部件单元电路实验的基础上,将微程序控制器模块与运算器模块、存储器模块组合成一起,组成一台基本模型计算机。

2.通过CPU运行五条机器指令组成的简单程序,掌握机器指令与微指令的关系,建立利用指令控制整机(输入、输出、运算、存储系统)的概念。

二.实验内容

1、实验原理

部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。

这里,实验计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

⑴有关微控制器部分在前一实验中已详细介绍

⑵主存储器的读、写和运行

为了向主存储器RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。

存储器读操作:

拨动总清开关后,置控制开关SWC、SWA为"00"时,按要求连线后,连续按"启动运行"开关,可对主存储器RAM连续手动读操作。

存储器写操作:

拨动总清开关后,置控制开关SWC、SWA为"01"时,按要求连线后,再按"启动运行"开关,可对主存储器RAM进行连续手动写入。

运行程序:

拨动总清开关后,置控制开关SWC、SWA为"11"时,按要求连线后,再按"启动运行"开关,即可转入到第01号"取址"微指令,启动程序运行

上述三条控制指令用两个开关SWC、SWA的状态来设置,其定义如下:

⑶指令寄存器介绍

指令寄存器用来保存当前正在执行的一条指令。

当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送到指令寄存器。

指令划分为操作码和地址码字段,由二进制构成,为了执行任何一条给定的指令,必须对操作码进行测试P

(1),通过节拍脉冲T4的控制以便识别所要求的操作。

"指令译码器"根据指令中的操作码进行译码,强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。

⑷输入/输出设备

本系统有两种外部I/O设备,一种是二进制代码开关KD0~KD7,它作为输入设备INPUT;另一种是数码显示块,它作为输出设备OUTPUT。

例如:

输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。

输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。

⑸设计指令

根据基本模型机的硬件设计五条机器指令:

外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。

指令格式如下:

助记符  机器指令码              说 明

IN    0000 0000;"外部开关量输入"KD0~KD7的开关状态→R0

ADDaddr0001 0000××××××××; R0+[addr]→R0 

STAaddr0010 0000××××××××;R0→[addr]

OUTaddr0011 0000××××××××;[addr]→BUS

JMPaddr0100 0000××××××××;[addr]→PC

说明:

指令IN为单字节指令,其余均为双字节指令,××××××××为addr对应的主存储器二进制地址码。

⑹基本模型机监控软件的设计

本模型机监控软件主要完成从输入设备读入数据,进行简单算术运算后,将结果存入内存的某个单元,最后通过输出设备输出结果。

监控软件详细如下:

地 址 内容 助记符    说 明

0000 0000  0000 0000  IN    ;"INPUT DEVICE"→R0

0000 0001  0001 0000  ADD[0AH];R0+[0AH]→R0

0000 0010  0000 1010    

0000 0011  0010 0000  STA[0BH];R0→[0BH]

0000 0100  0000 1011 

0000 0101  0011 0000  OUT[0BH];[0BH]→BUS

0000 0110  0000 1011

0000 0111  0100 0000  JMP[00H];00H→PC

0000 1000  0000 0000

0000 1001

0000 1010  0000 0001       ;自定义参加运算的数

0000 1011          ;求和结果存放单元

三.实验结构图

 

四.二进制代码表

s3

s2

s1

s0

M

CN

WE

A9

A8

A

B

C

UA5…UA0

0

0

0

0

0

0

0

1

1

110

110

110

011001

0

0

0

0

0

0

0

1

1

010

001

000

011101

0

0

0

0

0

0

0

1

1

010

001

000

011110

0

0

0

0

0

0

0

1

1

010

001

000

101011

0

0

0

0

0

0

0

1

1

010

001

000

000001

0

0

0

0

0

0

0

1

1

001

101

000

010110

0

0

1

1

0

0

0

1

1

010

001

000

000001

0

0

0

0

0

0

0

1

1

001

101

000

011010

0

0

0

0

1

0

0

1

1

110

000

000

011011

0

0

0

0

0

0

0

0

1

011

000

000

011100

0

0

0

0

0

0

0

0

1

010

001

000

000001

0

0

0

0

0

0

0

1

1

001

101

000

000001

0

1

1

0

0

0

0

1

1

001

101

000

000001

0

0

0

0

0

0

0

1

1

001

101

000

000001

1

1

1

1

0

1

0

1

1

001

101

000

000001

1

1

0

0

0

1

0

1

1

001

101

000

000001

五.实验程序

00

0000

0000

IN

01

0001

0000

ADD[28H]

02

0010

1000

03

0010

0000

STA[2AH]

04

0010

1010

05

0011

0000

OUT

06

0010

1010

07

0101

0000

SUC[29H]

08

0010

1001

09

0010

0000

STA

0A

00101

1010

0B

0011

0000

OUT

0C

0010

1010

0D

0110

0000

INC

0E

0010

0000

STA

0F

0010

1010

10

0011

0000

OUT

11

0010

1010

12

0111

0000

DEC

13

0010

0000

STA

14

0010

1010

15

0011

0000

OUT

16

0010

1010

17

1000

0000

A+A

18

0010

0000

STA

19

0010

1010

1A

0011

0000

OUT

1B

0010

1010

1C

1001

0000

清0

1D

0010

0000

STA

1E

0010

1010

1F

0011

0000

20

0010

1010

21

1010

0000

22

0010

0000

23

0010

1010

24

0011

0000

25

0010

1010

26

0100

0000

27

0000

0000

28

0000

1010

加数为10

29

0000

0101

减数为5

2A

0000

0000

六.调试情况,设计技巧及体会

通过紧张有序的一周的课程设计实践,不仅让我对计算机的基本组成、简单运算器的数据传送通路组成、静态随机存取存储器RAM工作特性及数据的读写方法、时序信号发生电路组成原理、微程序控制器的设计思想和组成原理、微程序的编制、写入过程有了进一步的了解,也让我觉得自己的动手能力有了很大的提高;自信心也增强了,在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。

通过这次实践,我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时向老师和同学请教,解决问题,从而更好的掌握书本中知识。

还有通过这次实践也让我懂得了:

学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。

因此,我会认真地对待我的每一次实验。

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

当前位置:首页 > 解决方案 > 学习计划

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

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