版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、海南大学信息学院信息安全系专业课程海南大学信息学院信息安全系专业课程 微机原理与接口技术微机原理与接口技术 简易电子琴实验报告简易电子琴实验报告 目录 一、设计要求.3 二、设计思路.3 三、实验材料、工具、或软件.4 四、实验内容.4 1、实验电路连接.4 2、程序流程图.5 3、实验电路图.6 4、8253 与 8255A 相关结构及原理说明.7 8253.7 8255A.9 5、方案确定.12 6、设计原程序及注释 .13 7、简易电子琴的安装与调试 .16 五、实验总结.17 六、参考文献.17 一、设计要求一、设计要求 利用用实验箱上的扬声器与 8 个开关设计一个电子琴。用开关模拟琴
2、键,当开 关拨为“1”时,相当于有键按下,喇叭发出声音。拨动不同的开关则对应不同 的音符,每次只能拨一个开关(相当于按下一个键) 。连续拨动开关,喇叭发出 音乐。 二、设计思路二、设计思路 简易电子琴设计选用 8253 计数器,8255A 并行接口两个芯片: 1. (输入部分)以 8255A 接八个开关 K1K8,做电子琴按键输入,由输入控 制输出,即拨码开关控制扬声器; 2. (发音部分)以 8253 控制扬声器(扬声器为输出) ,拨动不同的开关,发出 相应的音阶。 将 8255A 芯片的 B 端口作为输出端口,PB0-PB7 与输出端的 K1-K8(分别对应音 符 1、2、3、4、5、6、
3、7、i)相连接,而 8253 的时钟输入引脚 CLK0 与相应的 时钟发生器相连接,8253 的 GATA0 接开关 K9(静音) ,8253 的 0 通道的 OUT0 信号与 LB 区的 SIN 口相连接,从而驱动并控制喇叭的发音:当 INPUT 上的开关 对应为“1”时喇叭连通,能够发出声音;当 INPUT 上的开关对应为“0”时喇 叭被中断,不能发出声音。这样,我们在硬件上实现了通过 8255A 芯片输入设 备的输入信号并通过它传送给 8253,让 8253 进行相应的处理后输出给喇叭的 功能。 我们要通过对 8255A 的初始化和编程控制它的相关工作,使其能够实现上 面提到的相应功能。
4、然后,我们对 8253 进行编程,使其初始化,并根据从 8255A 芯片传递来的信息的种类为 8253 的运行编写不同的程序段,使其在运行 中根据 8255A 芯片传递来的信息的不同执行不同的程序(输出不同的音频) 。 音符转换表如下所示: 键值 01h02h04h08h10h20h40h80h 音符 1234567i 计数初值 40023567317828342527225020051786 三、实验材料、工具、或软件三、实验材料、工具、或软件 接口实验箱平台、Windows XP 计算机 四、实验内容四、实验内容 1 1、实验电路连接、实验电路连接 (1)8253 的 GATE0 接开关
5、K9。 (2)8253 的 CLK0 插孔接分频器 74LS393(左上方)的 T1 插孔,T1 输出的频 率为 1MHZ。 (3)8253 的 OUT0 接喇叭,即 LB 区的 SIN 口。 (4)8255A 的 PB0PB7(端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器)接开关 K1K8(8255A 的片选信号,实验箱系统已连 接好;8255A 的 PA 口不给出引脚,A 口系统留用。 ) (5)实验箱接到喇叭的 J5 引脚 实际电路连接图实际电路连接图 2 2、程序流程图、程序流程图 开始 8255A 初始化: 控制字控制口 音符对应的计数初值存
6、放初址BX 设置 8255A 端口 B 为输 入 测试按键位置 跳转至对应分支 8253 初始化: 控制字控制口 计数值计数器 0 接通扬声器,发出相应声音 K1-K8 分别对应 1、2、3、4、5、6、7、i K9 对应静音 延时 复位 8255A 端口 C bit0 返回 3、实验电路图 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3 Vcc WR RD CS A1 A2 CLK2 OUT2 GATE2 CLK1 GATE1 OUT1 D7 D6 D5 D4 D3 D2 D1 D0 CLK0
7、Out0 GATE0 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PA3 PA2 PA1 PA0 RD CS GND A0 A1 PC7 PC6 PC5 PC4 PC0 PC1 PC2 P3 PB0 PB1 PB2 1 2 3 4 5 6 7 8 9 10 11 12 24 23 22 21 20 19 18 17 16 15 14 13 8253 . . 8255A 扬声器 T1(1MHZ) 分频器 74LS
8、393 K10 K9 K8 K7 K6 K5 K4 K3 K2 K1 K0 INPUT SIN 4 4、82538253 与与 8255A8255A 相关结构及原理说明相关结构及原理说明 82538253 8253 内部结构内部结构 8253 定时/计数器具有定时、计数双功能。它具有三个相同且相互独立的 16 位减法计 数器,分别称为计数器 0、计数器 1、计数器 2。每个计数器计数频率为 02MHZ;8253 的 内部数据总线缓冲器为双向三态,可直接接在系统数据总路线上,通过 CPU 写入计数初值, 也可由 CPU 读出计数当前值; 其工作方式通过控制字确定。 计数器内部结构计数器内部结构
9、每个计数器由一个 16 位可预置的减 1 计数器组成,计数初值可保存在 16 位的锁存器中, 该锁存器只写不能读。在计数器工作时,初值不受影响,以便进行重复计数。每一个计数 器有一个时钟输入端 CLK 作为计数脉冲源,计数方式可以是二进制,计数范围 110000H, 也可以是十进制,计数范围 165536。门控端 GATE 用于控制计数开始和停止。输出 OUT 端当计数器计数值减到零时,该端输出标志信号。 8253 端口地址选择端口地址选择 表 1.1 8253 端口地址选择表 CSRDWRA1A2寄存器选择与操作 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 写入计数器 0 写
10、入计数器 1 写入计数器 2 图 1.0 8253 内部结构 01011写入控制寄存器 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 读计数器 0 读计数器 1 读计数器 2 0 1 0 0 1 1 1 1 1 无操作(三态) 禁止(三态) 无操作(三态) 8253 功能功能 8253 既可作定时器又可作计数器: (1) 计数:计数器装入初值后,当 GATE 为高电平时,可用外部事件作为 CLK 脉冲对计 数值进行减 1 计数,每来一个脉冲减 1,当计数值减至 0 时,由 OUT 端输出一个标志信号。 (2) 定时:计数器装入初值后,当 GATE 为高电平时,由 CLK 脉冲触发
11、开始自动计数, 当计数到零时,发计数结束定时信号。 除上述典型应用外,8253 还可作频率发生器、分频器、实时钟、单脉冲发生器等。 8253 控制字控制字 图 1.1 8253 方式控制字 8253 工作方式工作方式 (1) 方式 0:计数结束产生中断方式 当写入控制字后,OUT 变为低电平,当写入初值后立即开始计数,当计数结束时,变 成高电平。 (2) 方式 1:可编程单次脉冲方式 当初值装入后且 GATE 由低变高时,OUT 变为低电平,计数结束变为高电平。 (3) 方式 2:频率发生器方式 当初值装入时,OUT 变为高电平;计数结束,OUT 变为低电平。该方式下如果计数未 结束,但 GA
12、TE 为低电平时,立即停止计数,强迫 OUT 变为高电平,当 GATE 再变为高 时,便启动一次新的计数周期。 (4) 方式 3:方波发生器 当装入初值后,在 GATE 上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT 输出低电平。 (5) 方式 4:软件触发选通 当写入控制字后,OUT 输出为高电平;装入初值且 GATE 为高电平时开始计数,当计数 结束,OUT 端输出一个宽度等于一个时钟周期的负脉冲。 (6) 方式 5:硬件触发选通 在 GATE 上升沿启动计数器,OUT 一直保持高电平;计数结束,OUT 端输出一个宽度等于 一个时钟周期的负脉冲。 8255A8255A 825
13、5A 内部结构内部结构 8255A 内部有 3 个 8 位 I/O 端口:A 口、B 口、C 口;也可以分为各有 12 位的两组:A 和 B 组,A 组包含 A 口 8 位和 C 口的高 4 位,B 组包含 B 口 8 位和 C 口的低 4 位;8255A 中的读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口 寄存器中。由于 8255A 数据总线缓冲器是双向三态 8 位驱动器,因此可以直接和 CPU 系统 总线相连。 图 2.0 8255A 内部结构 8255A 端口地址端口地址 表 2.1 8255A 端口地址选择表 A1A0RDWRCS操作类型操作方向 0 0 1
14、 0 1 0 0 0 0 1 1 1 0 0 0 PA数据总线 PB数据总线 PC数据总线 输入(读) 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 数据总线PA 数据总线PB 数据总线PC 数据总线控制 字 输出(写) 1 1 0 1 1 1 1 0 0 数据总线三态 非法状态 数据总线三态 断开 8255A 工作方式工作方式 8255A 芯片有三种工作方式:方式 0、方式 1、方式 2。它通过对控制寄存器写入不同 的控制字来决定其三种不同的工作方式。 (1)方式 0:基本输入/输出 该方式下的 A 口 8 位和 B 口 8 位可以由输入的控制字决定为输入或
15、输出,C 口分成高 4 位(PC4PC7)和低 4 位(PC0PC3)两组,也有控制字决定其输入或输出。需注意的 是:该方式下,只能将 C 口其中一组的四位全部置为输入或输出。 图 2.1 工作方式 0 (2)方式 1:选通输入/输出 该方式又叫单向输入输出方式,它分为 A、B 两组,A 组由数据口 A 和控制口 C 的高 4 位组成,B 组由数据口 B 和控制口 C 的低 4 位组成。数据口的输入/输出都是锁存的,与 方式不同,由控制字来决定它作为输入还是输出。C 口的相应位用于寄存数据传送中所需 的状态信号和控制信息。 图 2.2 工作方式 1 输入 图 2.3 工作方式 1 输出 (3)
16、方式 2:双向输入/输出 本方式只有 A 组(数据口 A 和控制口 C 的低 3 位 PC0PC2)可以使用,此时 A 口为 输入输出双向口,C 口中的高 5 位(PC3PC7)作为 A 口的控制位。 8255A 控制字控制字 图 2.5 8255A 方式选择控制字 图 2.4 工作方式 2 图 2.6 8255A 的 PC 口按置位/复位控制字 5 5、方案确定、方案确定 根据扬声器发声原理可知:不同频率的方波通过扬声器可发出不同的声音。 由此构想运用8253工作在方式3的状态下控制其0#计数器对应寄存器中的数值,然后将输 出端口OUT0产生的方波通过扬声器转换成为声音。 为了实现弹奏按键(
17、即拨码开关)来控制扬声器,可以通过用拨码开关改变8253(工作 在方式3的状态下)0#选择计数器对应寄存器中的数值,8253输出端口OUT0与扬声器相连 接。 最后要实现的就是将拨码开关对应的数字信号存入寄存器中。 采用8255A并行接口特点,使端口A工作在方式0并作为输出口,端口B工作在方式0,并 作为输入口。将拨码开关与8255A的输入端口B相连接。 表1 8255A端口地址表 寄存口 编址 A口0FF28H B口 0FF29H C口 0FF2AH 控制寄存器 0FF2BH 表2 8253端口地址表 寄存口 编址 0#计数器40H 1#计数器 41H 2#计数器 42H 控制寄存器 43H
18、 6、设计原程序及注释、设计原程序及注释 code segment assume cs:code ,ds:data ;把代码段 CS、数据段 DS 分别与相应的寄存器相连 接 ;ASSUME 语句只是使汇编程序知道在程序执行时各个 段寄存器的值,而这些寄存器的实际值(除了代码 段寄存器 CS 以外) ,还必须在程序执行时,用 MOV 指令来赋给,不起真正的关联作用。 data segment ;定义数据段 data1 dw 4002,3567,3178,2834,2527,2250,2005,1786 ;8253 计数值,不同频率 脉冲需要不同计数值 (此处使用 T1) data ends ;
19、定义数据段结束 org 1500h ;伪指令 org:指定了段内在它以后的程序或数据块存放的起始地 址(本实验采用 1500h,与实验室实验箱相关) start : mov ax,data ;起真正关联作用,对数据段寄存器 DS 初始化,取出 DATA 数据段的段地址,借助 AX 寄存器中转 ;START 为语句标号,可作为跳转目标 mov ds,ax ;实现段寄存器 DS 的初始化 mov dx, 0ff2bh ;8255A 控制口地址:0FF2BH mov al,82h ;B out dx,al ;写 8255A 芯片的控制字,实现工作在方式 0,A 端口和 C 端 口输出,B 端口输入
20、b8255: mov bx,offset data1 ;初始化地址指针,以后就可以用这些指针来间接 寻址缓冲区 mov dx, 0ff29h;8255A 的 B 口地址:0FF29H,将 8255 的 B 口地址赋给 DX in al,dx ;从 B 口得到输入信息送到 AL 中 test al,80h ;B 检验按下键是否在 K8 ;test(按位与)用于检测哪个开关拨上去 jnz lop8 ; 不是 K8 则跳到 LOP8,以下均类似(jnz 不等于 0 转移, ZF=0) test al,40h ;B 检验按下键是否在 K7 ;注意:高电平有效 jnz lop7 test al,20h
21、;B 检验按下键是否在 K6 jnz lop6 test al,10h ;B 检验按下键是否在 K5 jnz lop5 test al,08h ;B 检验按下键是否在 K4 jnz lop4 test al,04h ;B 检验按下键是否在 K3 jnz lop3 test al,02h ;B 检验按下键是否在 K2 jnz lop2 test al,01h ;B 检验按下键是否在 K1 jnz lop1 jmp b8255 ;跳转至 b8255 lop8: add bx,2 ;2:每一个字占 2 个字节,以下均一致 ;bx+2 的值是 data 段中离开存储单元的两个字节的存储单元 的地址,而
22、不是 bx 单元的内容加 2 lop7: add bx,2 lop6: add bx,2 lop5: add bx,2 lop4: add bx,2 lop3: add bx,2 lop2: add bx,2 lop1: add bx,2 ;每次进行 test 后不为 0 则跳转到指定 lop,从指定 lop 开始地址依次加 2, 最终执行完所有的 lop 后使得地址指向拨上去的开关对应的地址(对应当前喇 叭发出的音符)的下一个地址(对应当前音符的下一个音符) mov dx, 0043h ;8253 的控制字端口地址为:43H ;在送出频率计数值之前,还要给方式寄存器送一个方 式值,该数决定对
23、哪一个通道编程,采用什么模式, 送入通道的计数值是一字节还是两字节,是二进制码 还是 BCD 码。 mov al,37h ;B out dx,al ;写 8253 芯片的控制字,选择计数器 0,先写最低有效位, 然后写最高有效位,实现工作在方式 3,8253 的每个计数 器的计数制为二进制 ;out 指令把输出结果送到端口 DX 中去 mov dx,0040h ;8253 的计数器 0 的地址为:40H mov ax,word ptr ds:bx ;写计数值,从偏移中取出写到计数器端口 ;运算符 PTR 建立一个新的存储器地址操作数。 新的操作数的段地址和段内偏移量与 PTR 运 算符右边的操
24、作数的对应分量相同(ds:数 据段段地址;bx:数据段内偏移量;地址 =ds16+bx) ,而类型由 PTR 的左边的操作 数指定,此处为 word 字类型。 out dx,al ;先写最低有效位(即低 8 位) mov al,ah out dx,al ;再写最高有效位(即高 8 位) 这时喇叭发出声音 mov cx,0ffffh ;0ffffh 控制延时 11: mov dx,03h 12:dec dx ;对指定的操作数减 1,然后把结果送回操作数 jnz 12 ;不等于 0 转移,跳转至 12 loop 11 ;跳转到 11 目的是增加时延 ;LOOP 指令使 CX 减 1,且判断若 CX 不等于 0,则循环至目标操作数 一条 LOOP 指令相当于以下两种指令的组合: DEC CX JNZ AGAIN mov dx, 0ff2ah ;8255A 的 C 口地址:0FF2AH mov al,0 out dx,al ;写端口 C 控制字,使 bit0 复位的控制字为 B 注意:使端口 C 按复位的控制字被写入控制字寄存器 jmp b8255 ;跳转至 b8255 ret ;从过程返回 code ends ;代码段结束 end start ;end 用来结束整个源程序 7 7、简易电子琴、简易电子琴的安装与调试的安装与调试 硬件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026叉车电气系统试题及答案呈现
- 2026官方版贵州省专业技术人员继续教育公需科目考试试卷及答案
- 2026内蒙古能源集团秋招面笔试题及答案
- 七年级科学教案-形形色色的植物
- 2026年cpa注册会计师税法模拟题及答案
- 初中体育与健康七年级《运动助力 心理发展》教学设计
- 2026年保护患者权益试题及答案
- 2026年沈阳国有控股集团有限公司人员招聘笔试参考试题及详细答案解析
- 2026年北京市基础设施投资有限公司人员招聘考试备考题库及详细答案解析
- 2026年苏州文化旅游发展集团有限公司人员招聘笔试模拟试题及详细答案解析
- 小学生保护眼睛健康讲座课件
- 致盲性眼病科普
- 驾驶人员技能培训课件
- 2025年中职(动漫与游戏制作)二维动画制作试题及答案
- 亮剑的团队精神
- 儿童电除颤教学课件
- 东北林业大学《生物科学专业英语》2023-2024学年第二学期期末试卷
- 建筑物拆除工程合同模板
- DB32T 3262-2017 移动泵机组运行与维护规范
- 会计基础第四版 课件 项目四 运用借贷记账法
- 2024年全国职业院校技能大赛高职组(社区服务实务赛项)考试题库(含答案)
评论
0/150
提交评论