微机原理与接口技术汇编语言.docx

上传人:b****8 文档编号:9812886 上传时间:2023-05-21 格式:DOCX 页数:14 大小:208.88KB
下载 相关 举报
微机原理与接口技术汇编语言.docx_第1页
第1页 / 共14页
微机原理与接口技术汇编语言.docx_第2页
第2页 / 共14页
微机原理与接口技术汇编语言.docx_第3页
第3页 / 共14页
微机原理与接口技术汇编语言.docx_第4页
第4页 / 共14页
微机原理与接口技术汇编语言.docx_第5页
第5页 / 共14页
微机原理与接口技术汇编语言.docx_第6页
第6页 / 共14页
微机原理与接口技术汇编语言.docx_第7页
第7页 / 共14页
微机原理与接口技术汇编语言.docx_第8页
第8页 / 共14页
微机原理与接口技术汇编语言.docx_第9页
第9页 / 共14页
微机原理与接口技术汇编语言.docx_第10页
第10页 / 共14页
微机原理与接口技术汇编语言.docx_第11页
第11页 / 共14页
微机原理与接口技术汇编语言.docx_第12页
第12页 / 共14页
微机原理与接口技术汇编语言.docx_第13页
第13页 / 共14页
微机原理与接口技术汇编语言.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术汇编语言.docx

《微机原理与接口技术汇编语言.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术汇编语言.docx(14页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术汇编语言.docx

微机原理与接口技术汇编语言

微机原理与接口技术

课程设计报告

电子琴(八音盒)

 

1课题描述

随着社会发展,计算机硬件技术越来越多的应用到生活中的各个领域,人们对软硬件技术结合开发出来的产品的要求越来越迫切,需求日益增加,如今用软硬件结合设计电子产品已经成为了一大时尚。

本设计编写的一个用开关模拟电子琴的程序,以8086作为处理器,用8255接八个开关K1~K8,做电子琴按键输入,以8253控制扬声器,拨动不同的开关,发出相应的音阶。

其中K1代表静音,K2发si的音,K3发la的音,K4发sol的音,K5发fa的音,K6发mi的音,K7发re的音,K8发do的音。

开发工具:

汇编语言;DICE-8086K实验系统。

1.1DICE-8086k试验系统

8086k试验系统软硬件配置完善,实验电路采用分模块,开放型设计,使实验电路配置灵活,用户可直接运用。

系统的主要特点:

1)采用主频为4.77mhz的8086cpu为主cpu,并以最小工作方式构成系统

2)配有两片61c256静态ram构成系统的64k基本内存,地址范围为00000h-0ffffh,其中00000h-oofffh监控占用。

3)自带键盘,显示器,能够独立运行,为实验程序调试带来方便。

4)提供标准rs232异步通讯口,以连接IBM-PC机。

5)支持联机与脱机二种工作方式,系统扩展有EPROM,把所有实验程序都固化在该片中,脱机工作时,只需按一键,即可完成实验程序下载。

调用实验程序只须在实验仪键盘输入实验程序入口地址,按[EXEC]键即可,非常便捷。

图1.18086cpu引脚图

1.28255与8253结构

1)8255是一个40引脚的双列直插式集成电路芯片.它具有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。

而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。

2)数据传送中A口所需的控制信号由C口高位部分(PC7~PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3~PC0)合在一起称之为B组。

图1.28255引脚图

图1.38255内部结构图

3)8253是24脚双列直插式芯片,+5V电源供电。

每个芯片内部有3个独立的计数器(计数通道),每个计数器都有自己的时钟输入CLK,计数输出OUT和门控信号GATE。

数据总线D0~D7:

为三态输出/输入线。

片选信号CS,读信号RD,写信号WR,他们为输入信号,低电平有效。

地址线A1、A0,接到系统总线A1、A0上。

计数器时钟信号CLK,作用是在8253进行定时或计数工作是,每输入1个时钟脉冲信号CLK,便使计数值减1。

计数器门控选通信号GATE,计数器输出信号OUT,作用是计数工作时,每来1个时钟脉冲,计数器减1,当计数器值减为0,就在输出线上输出一OUT信号,以示定时或计数以到。

图1.48253引脚图

4)8253/8254内部有6个模块:

数据总线缓冲器,读/写逻辑,控制命令寄存器,计数器0,计数器1,计数器2

数据总线缓冲器:

3态,双向8位寄存器和D0~D7相连。

读/写逻辑:

由CPU发来的读/写信号和地址信号来选择读出或写入寄存器。

控制命令寄存器:

接受CPU来控制字。

计数器:

8253有3个结构完全相同的计数器。

其内部由16为初值寄存器、减1计数器和当前计数值锁存器组成。

图1.58253内部结构图

1.3功能说明

1)开关控制:

8255端口A工作在方式0,且为输入方式,端口B、C任意。

开关接在8255端口A的PA0~PA7,这样就可以通过8255读取开关量。

如下图:

图1.6开关控制图

2)扬声器控制:

(1)8253计数器2的输出控制扬声器的发声音调

(2)8253计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声(3)扬声器还受控于并行接口(8255A芯片)(4)必须使8255APB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音;关闭则是利用8255APB0和PB1同时为低电平,关闭与门,扬声器关闭。

图1.7扬声器控制图

2设计过程

本次设计的模拟电子琴是以8253控制扬声器,以8255接8个开关K1-K8作为电子琴的按键输入。

2.1硬件设计

采用并口8255A接8个开关K1—K8,利用8255A方式0,端口A输入方式,即AL=10010000B,可以将开关的量输入到CPU中,利用8个开关做电子琴的8个按键。

驱动控制扬声器利用8253与8255A共同执行(如图2.1)。

利用8255A的PB0、PB控制扬声器的开启、关闭。

利用定时器8253驱动发声,CPU通过对8253通道2(端口地址42H)进行编程,利用8253方式3以不同的脉冲频率产生不同的输出方波,方波信号通过滤波器、功率放大器使扬声器发声。

图2.1硬件电路连接图

2.2软件设计

利用汇编语言对接口进行编程控制。

程序模块主要包括8255A、8253的初始化、开关量的输入、扬声器的开启、关闭及程序的退出。

在使8253的初值计数与频率相对应有两种方法,一是利用表的操作,但这种操作不太容易实现,硬件的连接也比较麻烦,易出错;所以我采用的是比较跳转的方式,比较简单明了,容易理解。

程序中的模块关系见程序流程图。

图2.2程序流程图

2.3系统原理说明

1)利用8个逻辑开关做为电子琴的键盘输入,高电平有效,则开关量由8255A的端口A方式0,输入方式(控制字AL=10010000B)送入CPU中。

此时调用的是7号系统功能调用,从标准设备输入单字符置入AL寄存器中,调用格式为:

MOVAH,07H

INT21H

2)CPU根据不同的开关量,将程序跳转到相应频率对应的8253的初始化,并给8253赋上频率对应的初始值,此时利用的是8253的通道2,方式3,产生不同频率的方波。

代码如下:

MOVAL,0B6H

OUT43H,AL

MOVAX,计数值

OUT42H,AL

MOVAL,AH

OUT42H,AL

3)要使8253OUT发出的方波频率与任务中的频率相同,则要给8253设置计数值,计算方法为:

计数值=输入时钟频率/任务要求频率

然后CPU将8255A的PB0、PB1置1,打开8253的GATE和与门(图2.1)。

代码如下:

INAL,61H

ORAL,03H

OUT61H,AL8253

4)产生的方波信号通过滤波器形成正弦信号,然后通过功率放大器,将正弦信号放大,驱动扬声器发声。

再然后CPU将8255A的PB0、PB1置0,关闭扬声器。

代码如下:

INAL,61H

ANDAL,0FCH

OUT61H,AL

再次输入开关量,则循环执行上面过程。

5)当输入为PC键盘任意键输入时,则整个程序退出。

此时是调用的6号和4CH号系统功能调用,系统输入键盘任意键,返回DOS。

调用格式为:

MOVDL,0FFH

MOVAH,6

INT21H

MOVAH,4CH

INT21H

3测试

接通电路之后,按下开关键,依次拨动各个开关来控制作为扬声器的8253发声,发出静音、Si、La、Sol、Fa、Mi、Re、Do音调。

表3.1音阶频率表

音阶

静音

Si

La

Sol

Fa

Mi

Re

Do

频率

0

493

440

392

349

329

293

241

计数值

0

2420

2712

3044

3419

3627

4072

4572

由于每个开关的音调发音时间有软件延时控制,所以当开关打开时,就会连续发出音节标称频率的声音。

整体进行硬件电路图和软件测试,把所需程序进行输入一切运行良好,可以完成模拟电子琴,通过开关键实现产生不同音节频率的功能

总结

通过这两周的硬件课程设计,我对微机原理及应用这门课有了更深的认识,系统的掌握了微机原理及接口的应用知识。

这次课程设计我做的是用开关模拟电子琴发声。

在老师确定题目后,我便去图书馆查阅了大量的关于开关输入和发声程序设计的书籍,然后确定好自己的方案,对自己的设计有了一个大概的思路。

通过编程,我学会了如何独立的写出程序,提高了自己的分析解决问题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。

课程设计中涉及到许多接口芯片,使我对这些芯片有了更深的认识,对芯片的各种工作方式有了更深的理解,虽然没有进行硬件的调试,但通过设计,我也学到了很多书本上没有的知识。

在设计当中遇到了很多的问题,但通过查找资料,克服了这些问题,提高了自己在实际当中解决问题的能力。

虽然此次课程设计的过程是艰辛的,但结果还是令我比较欣慰的。

在此特别感谢老师对我的指导。

附录代码

STACKSEGMENTSTACK

STACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,63H

MOVAL,90H

OUTDX,AL;8255A初始化

INPUT:

MOVDX,60H

INAL,DX;8255A端口A输入

MOVAH,07H

INT21H;从开关输入信号

CMPAL,00000001B

JZK1

CMPAL,00000010B

JZK2

CMPAL,00000100B

JZK3

CMPAL,00001000B

JZK4

CMPAL,00010000B

JZK5

CMPAL,00100000B

JZK6

CMPAL,01000000B

JZK7

CMPAL,10000000B;判断从哪个开关输入并跳

JZK8;转到相应8253初始化

MOVDL,0FFH

MOVAH,6

INT21H

MOVAH,4CH;键盘任意输入则退出程

INT21H;序,返回DOS

K1:

MOVAL,0B6H

OUT43H,AL

MOVAX,0

JMPSING

K2:

MOVAL,0B6H

OUT43H,AL

MOVAX,2420

JMPSING

K3:

MOVAL,0B6H

OUT43H,AL

MOVAX,2712

JMPSING

K4:

MOVAL,0B6H

OUT43H,AL

MOVAX,3044

JMPSING

K5:

MOVAL,0B6H

OUT43H,AL

MOVAX,3419

JMPSING

K6:

MOVAL,0B6H

OUT43H,AL

MOVAX,3627

JMPSING

K7:

MOVAL,0B6H

OUT43H,AL

MOVAX,4072

JMPSING

K8:

MOVAL,0B6H

OUT43H,AL;8253初始化

MOVAX,4572;并给AX赋

JMPSING;值

SING:

OUT42H,AL

MOVAL,AH

OUT42H,AL;传送计数值到8253

INAL,61H

ORAL,03H

OUT61H,AL;打开扬声器

INAL,61H

ANDAL,0FCH

OUT61H,AL;关闭扬声器

JMPINPUT;跳转到INPUT

CODEENDS

ENDSTART

参考文献

[1]郑坤.微型计算机技术实验指导书.2007.

[2]戴梅萼,史嘉权.微型计算机技术与运用.清华大学出版社2003.

[3]王爱英.计算机组成与结构.北京.清华大学出版社.1995.

[4]沈美明,温冬蝉.IBM-PC汇编语言程序设计.北京.清华大学出版社.2003.

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

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

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

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