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

上传人:豆**** 文档编号:17593278 上传时间:2022-05-25 格式:DOC 页数:13 大小:246KB
返回 下载 相关 举报
微机原理与接口技术汇编语言.doc_第1页
第1页 / 共13页
微机原理与接口技术汇编语言.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《微机原理与接口技术汇编语言.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术汇编语言.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流微机原理与接口技术汇编语言.精品文档.微机原理与接口技术课程设计报告电子琴(八音盒)目 录1 课题描述11.1 DICE-8086k试验系统11.2 8255与8253结构11.3功能说明42 设计过程62.1硬件设计62.2软件设计62.3系统原理说明73 测试9总 结10附录代码11参考文献131 课题描述随着社会发展,计算机硬件技术越来越多的应用到生活中的各个领域,人们对软硬件技术结合开发出来的产品的要求越来越迫切,需求日益增加,如今用软硬件结合设计电子产品已经成为了一大时尚。本设计编写的一个用开关模拟电子琴的程序,以8086作为处理器

2、,用8255接八个开关K1K8,做电子琴按键输入,以8253控制扬声器,拨动不同的开关,发出相应的音阶。其中K1代表静音,K2发si的音,K3发la的音,K4发sol的音, K5发fa的音, K6发mi的音,K7发re的音,K8发do的音。开发工具:汇编语言 ;DICE-8086K实验系统。1.1 DICE-8086k试验系统8086k试验系统软硬件配置完善,实验电路采用分模块,开放型设计,使实验电路配置灵活,用户可直接运用。系统的主要特点:1)采用主频为4.77mhz的8086cpu为主cpu,并以最小工作方式构成系统2)配有两片61c256静态ram构成系统的64k基本内存,地址范围为00

3、000h-0ffffh,其中00000h-oofffh监控占用。3)自带键盘,显示器,能够独立运行,为实验程序调试带来方便。4)提供标准rs232异步通讯口,以连接IBM-PC机。5) 支持联机与脱机二种工作方式,系统扩展有EPROM,把所有实验程序都固化在该片中,脱机工作时,只需按一键,即可完成实验程序下载。调用实验程序只须在实验仪键盘输入实验程序入口地址,按EXEC键即可,非常便捷。图1.1 8086cpu引脚图1.2 8255与8253结构1) 8255是一个40引脚的双列直插式集成电路芯片.它具有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。而C口则既可以作数据口,又可以

4、作控制口使用,用于实现A口和B口的控制功能。2)数据传送中A口所需的控制信号由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3PC0)合在一起称之为B组。图1.2 8255引脚图图1.3 8255内部结构图3) 8253是24脚双列直插式芯片,+5V电源供电。每个芯片内部有3个独立的计数器(计数通道),每个计数器都有自己的时钟输入CLK,计数输出OUT和门控信号GATE。数据总线D0D7:为三态输出/输入线。片选信号CS,读信号RD,写信号WR,他们为输入信号,低电平有效。地址线A1、A0,接到系统总线A1、A0上。计数器时钟信

5、号CLK,作用是在8253进行定时或计数工作是,每输入1个时钟脉冲信号CLK,便使计数值减1。计数器门控选通信号GATE,计数器输出信号OUT,作用是计数工作时,每来1个时钟脉冲,计数器减1,当计数器值减为0,就在输出线上输出一OUT信号,以示定时或计数以到。 图1.4 8253引脚图4)8253/8254内部有6个模块:数据总线缓冲器,读/写逻辑,控制命令寄存器,计数器0,计数器1,计数器2数据总线缓冲器:3态,双向8位寄存器和D0D7相连。读/写逻辑:由CPU发来的读/写信号和地址信号来选择读出或写入寄存器。控制命令寄存器:接受CPU来控制字。计数器:8253有3个结构完全相同的计数器。其

6、内部由16为初值寄存器、减1计数器和当前计数值锁存器组成。图1.5 8253内部结构图1.3功能说明1)开关控制:8255端口A工作在方式0,且为输入方式,端口B、C任意。开关接在8255端口A的PA0PA7,这样就可以通过8255读取开关量。如下图: D7-D0 _RD WR A0 A1 8086 A2 A3. A4. A5. A15 M/IO D7-D0 PA0_ PA1RD PA2WR PA3A0 PA4A1 PA5 8255A _ PA6CS PA7译码器图1.6开关控制图2)扬声器控制:(1)8253计数器2的输出控制扬声器的发声音调(2)8253计数器2只能工作在方式3,才能输出一

7、定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声(3)扬声器还受控于并行接口(8255A芯片)(4)必须使8255APB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音;关闭则是利用8255APB0和PB1同时为低电平,关闭与门,扬声器关闭。CLK2 OUT2 8253GATE2PB0 PB1 8255A&滤波器功放图1.7 扬声器控制图2 设计过程本次设计的模拟电子琴是以8253控制扬声器,以8255接8个开关K1-K8作为电子琴的按键输入。2.1硬件设计采用并口8255A接8个开关K1K8,利用8255A方式0,端口A输入方式,即AL10010000B,可以将开关的量输入

8、到CPU中,利用8个开关做电子琴的8个按键。驱动控制扬声器利用8253与8255A共同执行(如图2.1)。利用8255A的PB0、PB控制扬声器的开启、关闭。利用定时器8253驱动发声,CPU通过对8253通道2(端口地址42H)进行编程,利用8253方式3以不同的脉冲频率产生不同的输出方波,方波信号通过滤波器、功率放大器使扬声器发声。 D7-D0 _RD WR A0 A1 8086 A2 A3 A4A5 A15 M/IO D7-D0 _ RD CLK2WR A0 OUT2A1 8253 GATE2 _CSD7-D0 PB0PB1_ RD PA0PA0 PA1WR PA2A0 PA3A1 82

9、55A PA4_ PA5CS PA6 PA7&滤波器功放译码器2译码器1图2.1 硬件电路连接图2.2软件设计利用汇编语言对接口进行编程控制。程序模块主要包括8255A、8253的初始化、开关量的输入、扬声器的开启、关闭及程序的退出。在使8253的初值计数与频率相对应有两种方法,一是利用表的操作,但这种操作不太容易实现,硬件的连接也比较麻烦,易出错;所以我采用的是比较跳转的方式, 比较简单明了,容易理解。程序中的模块关系见程序流程图。开 始8255A初始化开关输入由AL的不同跳转到相应8253初始化打开扬声器关闭扬声器计数值装人8253返回DOS结 束图2.2 程序流程图2.3系统原理说明1)

10、利用8个逻辑开关做为电子琴的键盘输入,高电平有效,则开关量由8255A的端口A方式0,输入方式(控制字AL10010000B)送入CPU中。此时调用的是7号系统功能调用,从标准设备输入单字符置入AL寄存器中,调用格式为: MOV AH,07H INT 21H2)CPU根据不同的开关量,将程序跳转到相应频率对应的8253的初始化,并给8253赋上频率对应的初始值,此时利用的是8253的通道2,方式3,产生不同频率的方波。代码如下:MOV AL,0B6HOUT 43H,ALMOV AX,计数值OUT 42H,ALMOV AL,AHOUT 42H,AL3)要使8253OUT发出的方波频率与任务中的频

11、率相同,则要给8253设置计数值,计算方法为:计数值=输入时钟频率/任务要求频率然后CPU将8255A的PB0、PB1置1,打开8253的GATE和与门(图2.1)。代码如下:IN AL,61H OR AL,03H OUT 61H,AL82534)产生的方波信号通过滤波器形成正弦信号,然后通过功率放大器,将正弦信号放大,驱动扬声器发声。再然后CPU将8255A的PB0、PB1置0,关闭扬声器。代码如下:IN AL,61HAND AL,0FCHOUT 61H,AL再次输入开关量,则循环执行上面过程。5)当输入为PC键盘任意键输入时,则整个程序退出。此时是调用的6号和4CH号系统功能调用,系统输入

12、键盘任意键,返回DOS。调用格式为:MOV DL,0FFHMOV AH,6INT 21HMOV AH,4CHINT 21H3 测试 接通电路之后,按下开关键,依次拨动各个开关来控制作为扬声器的8253发声,发出静音、Si、La、Sol、Fa、Mi、Re、Do音调。表3.1 音阶频率表音阶静音SiLaSolFaMiReDo频率0493440392349329293241计数值02420271230443419362740724572由于每个开关的音调发音时间有软件延时控制,所以当开关打开时,就会连续发出音节标称频率的声音。 整体进行硬件电路图和软件测试, 把所需程序进行输入一切运行良好,可以完成

13、模拟电子琴,通过开关键实现产生不同音节频率的功能总 结通过这两周的硬件课程设计,我对微机原理及应用这门课有了更深的认识,系统的掌握了微机原理及接口的应用知识。这次课程设计我做的是用开关模拟电子琴发声。在老师确定题目后,我便去图书馆查阅了大量的关于开关输入和发声程序设计的书籍,然后确定好自己的方案,对自己的设计有了一个大概的思路。通过编程,我学会了如何独立的写出程序,提高了自己的分析解决问题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。课程设计中涉及到许多接口芯片,使我对这些芯片有了更深的认识,对芯片的各种工作方式有了更深的理解,虽然没有进行硬件的调试,但通过设计,我也学到了很多书本

14、上没有的知识。在设计当中遇到了很多的问题,但通过查找资料,克服了这些问题,提高了自己在实际当中解决问题的能力。虽然此次课程设计的过程是艰辛的,但结果还是令我比较欣慰的。在此特别感谢老师对我的指导。附录代码STACK SEGMENT STACKSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,63H MOV AL,90H OUT DX,AL ;8255A初始化INPUT: MOV DX,60H IN AL,DX ;8255A端口A输入 MOV AH,07H INT 21H ;从开关输入信号 CMP AL,00000001BJZ K1 CMP AL

15、,00000010BJZ K2 CMP AL,00000100BJZ K3 CMP AL,00001000BJZ K4 CMP AL,00010000B JZ K5 CMP AL,00100000B JZ K6 CMP AL,01000000B JZ K7 CMP AL,10000000B ;判断从哪个开关输入并跳JZ K8 ;转到相应8253初始化 MOV DL,0FFH MOV AH,6 INT 21H MOV AH,4CH ;键盘任意输入则退出程 INT 21H ;序,返回DOSK1: MOV AL,0B6H OUT 43H,AL MOV AX,0 JMP SINGK2: MOV AL,

16、0B6H OUT 43H,AL MOV AX,2420 JMP SINGK3: MOV AL,0B6H OUT 43H,AL MOV AX,2712 JMP SINGK4: MOV AL,0B6H OUT 43H,AL MOV AX,3044 JMP SINGK5: MOV AL,0B6H OUT 43H,AL MOV AX,3419 JMP SINGK6: MOV AL,0B6H OUT 43H,AL MOV AX,3627 JMP SINGK7: MOV AL,0B6H OUT 43H,AL MOV AX,4072 JMP SINGK8: MOV AL,0B6H OUT 43H,AL ;8

17、253初始化 MOV AX,4572 ;并给AX赋 JMP SING ;值SING: OUT 42H,AL MOV AL,AH OUT 42H,AL ;传送计数值到8253 IN AL,61H OR AL,03H OUT 61H,AL ;打开扬声器 IN AL,61H AND AL,0FCH OUT 61H,AL ;关闭扬声器 JMP INPUT ;跳转到INPUTCODE ENDS END START参考文献1 郑坤.微型计算机技术实验指导书.2007.2 戴梅萼,史嘉权.微型计算机技术与运用.清华大学出版社2003.3 王爱英.计算机组成与结构.北京. 清华大学出版社.1995.4 沈美明,温冬蝉.IBM-PC汇编语言程序设计.北京.清华大学出版社.2003.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁