1、4提供标准 rs232异步通讯口,以连接 IBM-PC 机。5 支持联机与脱机二种工作方式 , 系统扩展有 EPROM ,把所有实验程序都固化在该片 中,脱机工作时 , 只需按一键,即可完成实验程序下载。调用实验程序只须在实验仪键盘输 入实验程序入口地址 , 按 EXEC键即可 , 非常便捷。图 1.1 8086cpu引脚图1.2 8255与 8253结构1 8255是一个 40引脚的双列直插式集成电路芯片 . 它具有三个 8位口, 其中 A 口和 B 口是单纯的数据口, 供数据 I/O使用。而 C 口则既可以作数据口, 又可以作控制口使用,用 于实现 A 口和 B 口的控制功能。2数据传送中
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上
3、。计数器时钟信号 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 发来的读 /写信号和地址信号来选择读出或写入寄
4、存器。控制命令寄存器:接受 CPU 来控制字。计数器:8253有 3个结构完全相同的计数器。其内部由 16为初值寄存器、减 1计数器 和当前计数值锁存器组成。图 1.5 8253内部结构图1.3功能说明1开关控制:8255端口 A 工作在方式 0,且为输入方式,端口 B 、 C 任意。开关接在 8255端口 A 的 PA0PA7,这样就可以通过 8255读取开关量。如下图:图 1.6开关控制图2扬声器控制:(1 8253计数器 2的输出控制扬声器的发声音调(2 8253计数器 2只能工作在方式 3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声 器发声(3扬声器还受控于并行接口
5、(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 共同执
6、行(如图 2.1 。利用 8255A 的 PB0、 PB 控制 扬声器的开启、关闭。利用定时器 8253驱动发声, CPU 通过对 8253通道 2(端口地址 42H 进行编程, 利用 8253方式 3以不同的脉冲频率产生不同的输出方波, 方波信号通过滤波器、 功率放大器使扬声器发声。图 2.1 硬件电路连接图2.2软件设计利用汇编语言对接口进行编程控制。程序模块主要包括 8255A 、 8253的初始化、开关 量的输入、扬声器的开启、关闭及程序的退出。在使 8253的初值计数与频率相对应有两种 方法,一是利用表的操作,但这种操作不太容易实现,硬件的连接也比较麻烦,易出错;所以我采用的是比较跳
7、转的方式, 比较简单明了,容易理解。程序中的模块关系见程序流程 图。图 2.2 程序流程图2.3系统原理说明1利用 8个逻辑开关做为电子琴的键盘输入,高电平有效,则开关量由 8255A 的端口 A 方式 0,输入方式(控制字 AL =10010000B 送入 CPU 中。此时调用的是 7号系统功能调 用,从标准设备输入单字符置入 AL 寄存器中,调用格式为:MOV AH,07HINT 21H2 CPU 根据不同的开关量,将程序跳转到相应频率对应的 8253的初始化,并给 8253赋上频率对应的初始值, 此时利用的是 8253的通道 2, 方式 3,产生不同频率的方波。 代码 如下:MOV AL
8、,0B6HOUT 43H,ALMOV AX,计数值OUT 42H,ALMOV AL,AH3 要使 8253O U T 发 出 的 方 波 频 率 与 任 务 中 的 频 率 相 同 , 则 要 给 8253设 置 计 数 值 , 计 算 方 法 为 :计 数 值 =输 入 时 钟 频 率 /任 务 要 求 频 率然后 CPU 将 8255A 的 PB0、 PB1置 1,打开 8253的 GATE 和与门(图 2.1 。代码如下: IN AL,61HOR AL,03HOUT 61H,AL82534 产生的方波信号通过滤波器形成正弦信号, 然后通过功率放大器, 将正弦信号放大, 驱动扬声器发声。再
9、然后 CPU 将 8255A 的 PB0、 PB1置 0,关闭扬声器。IN AL,61HAND AL,0FCHOUT 61H,AL再次输入开关量,则循环执行上面过程。5 当输入为 PC 键盘任意键输入时, 则整个程序退出。 此时是调用的 6号和 4CH 号系统 功能调用,系统输入键盘任意键,返回 DOS 。调用格式为:MOV DL,0FFHMOV AH,6MOV AH,4CH3 测试接通电路之后,按下开关键,依次拨动各个开关来控制作为扬声器的 8253发声,发出 静音、 Si 、 La 、 Sol 、 Fa、 Mi 、 Re 、 Do 音调。由于每个开关的音调发音时间有软件延时控制, 所以当开
10、关打开时, 就会连续发出音节 标称频率的声音。整体进行硬件电路图和软件测试, 把所需程序进行输入一切运行良好,可以完成模拟 电子琴,通过开关键实现产生不同音节频率的功能总 结通过这两周的硬件课程设计,我对微机原理及应用这门课有了更深的认识,系统的 掌握了微机原理及接口的应用知识。这次课程设计我做的是用开关模拟电子琴发声。在老师确定题目后,我便去图书馆 查阅了大量的关于开关输入和发声程序设计的书籍,然后确定好自己的方案,对自己的 设计有了一个大概的思路。通过编程,我学会了如何独立的写出程序,提高了自己的分 析解决问题的能力,并且使自己所学的知识与实践相结合,应用到实践当中。课程设计 中涉及到许多
11、接口芯片,使我对这些芯片有了更深的认识,对芯片的各种工作方式有了 更深的理解,虽然没有进行硬件的调试,但通过设计,我也学到了很多书本上没有的知 识。在设计当中遇到了很多的问题,但通过查找资料,克服了这些问题,提高了自己在 实际当中解决问题的能力。虽然此次课程设计的过程是艰辛的,但结果还是令我比较欣慰的。在此特别感谢老 师对我的指导。附录代码STACK SEGMENT STACKSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,63HMOV AL,90HOUT DX,AL ; 8255A 初始化INPUT: MOV DX,60HIN AL,DX
12、; 8255A 端口 A 输入INT 21H ;从开关输入信号CMP AL,00000001BJZ K1CMP AL,00000010BJZ K2CMP AL,00000100BJZ K3CMP AL,00001000BJZ K4CMP AL,00010000BJZ K5CMP AL,00100000BJZ K6CMP AL,01000000BJZ K7CMP AL,10000000B ;判断从哪个开关输入并跳 JZ K8 ;转到相应 8253初始化MOV AH,4CH ;键盘任意输入则退出程 INT 21H ;序,返回 DOSK1: MOV AL,0B6HMOV AX,0JMP SINGK2
13、:MOV AX,2420K3:MOV AX,2712K4:MOV AX,3044K5:MOV AX,3419K6:MOV AX,3627K7:MOV AX,4072K8:OUT 43H,AL ; 8253初始化 MOV AX,4572 ;并给 AX 赋JMP SING ;值SING: OUT 42H,ALOUT 42H,AL ;传送计数值到 8253 IN AL,61HOUT 61H,AL ;打开扬声器关闭扬声器JMP INPUT ;跳转到 INPUT CODE ENDSEND START参考文献1 郑坤 . 微型计算机技术实验指导书 .2007.2 戴梅萼,史嘉权 . 微型计算机技术与运用 . 清华大学出版社 2003. 3 王爱英 . 计算机组成与结构 . 北京 . 清华大学出版社 .1995.4 沈美明,温冬蝉 .IBM-PC 汇编语言程序设计 . 北京 . 清华大学出版社 .2003.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1