ImageVerifierCode 换一换
格式:DOC , 页数:46 ,大小:1,017KB ,
资源ID:582618      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-582618.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可存储式电子琴的设计.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

可存储式电子琴的设计.doc

1、中国矿业大学计算机学院信息安全10-4班硬件课程设计电子琴计算机科学与技术学院硬件课程设计个人报告姓 名: 王向阳 张奥 学 号: 班 级: 信安10-4班 设计题目: 可存储式电子琴 指导教师: 王凯 二一二年十二月二十七日课程设计指导教师评阅书指导教师评语:成 绩: 指导教师签字: 年 月 日摘 要在这次的硬件实验中,我们利用学习的微机原理与接口技术这门课程课上我们学到的一些计算机硬件工作的基本原理, 汇编语言程序设计方法,微型计算机接口技术,建立微型计算机系统的整体概念,初步形成微机系统软硬件开发的能力。为了能够学以致用,同时也为了更深入的了解熟悉可编程定时器8253和8279。在汇编语

2、言环境下,利用上述两种芯片,编程让8279通过识别键盘产生键值,8253识别发声从而实现计算机按照按键的不同而发出不同频率的声音。可存储式电子琴可用于设计小型发声玩具,由于本电子琴设计简单,稍加修改便可用于其它地方,如报警防盗器部件,音乐门铃等,具有一定的商业价值。本次硬件课程设计课程,是配合上学期微型计算机原理与接口技术的教学,也是要让我们能够更深入的认识接口芯片技术以及汇编编程,做到理论和实践相结合。在课程中,我们选择的设计项目是“可存储式电子琴”:一个简易的电子琴设备。要求我们利用相关已经学过的和没有学过的芯片连接成一个电子电路,并且通过自己用汇编语言编程,控制设计的电子电路实现电子琴的

3、一些功能,比如:能够对于输入发出相应的单声;能够演奏一小段已经编好了的乐曲。关键词: 可存储电子琴 8279 8253 门控信号 程序代码目 录1开发背景32产品功能及涉及的芯片和硬件32.1 功能简介32.2 使用的主要芯片及元件32.3 各音阶频率值32.4可编程计数器/定时器825342.4.1 8253内部结构和引脚42.4.2 8253方式控制字格式52.4.3 8253的工作方式3方波发生器52.4.4 本设计中8253的功能62.5可编程键盘接口显示芯片827962.5.1 8253内部结构和引脚72.5.2 8279的工作方式82.5.3 8279的命令字及格式102.5.4

4、本设计中8279的功能113实验中所遇到的问题114实验程序115实验感悟156参考文献171.开发背景上学期刚刚结束微型计算机原理与接口技术课程,本学期为了进一步熟悉和掌握汇编语言,通过选择课题的方式让学生单独分析和实现课题,来加强学生的动手实践能力和独立思考的能力。2产品功能及涉及的芯片和硬件2.1功能简介 按下键盘的A,B,C键实现对键盘高音,中音,低音的选择,按下1-7号键实现do-xi的发音,当按下D键时,可以通过,选择高音中音低音的预置音乐播放2.2使用的主要芯片及元件(1)各芯片及器件地址:8279的控制端地址为:20AH,数据端地址为:208H。8253的控制端地址为:213H

5、,数据端地址为:210H。I/O输出的地址为:200H(2)按键说明:1dou音 2ruai音 3mi音 4fa音 5sao音6la音 7xi音 A高音转换键B中音转换键 C低音转换键 D放音键芯片:一片8253(有详细介绍)一片8279IO芯片元件:蜂鸣器2.3 个音阶频率使用8279芯片的键盘控制器,通过查看寄存器,读出分别按下不同的键时对应的寄存器值(这里只给出当按下1-7和A、B、C、D键的寄存器值,如图)。按键1234567ABCD寄存器键值02H0AH22H01H09H21H00H07H29H28H2BH当某一时刻按下一个键的时,可以通过和各键的寄存器值比较来判断按下键。又每个音阶

6、都有一个确定的频率。音阶1234567高音频率(HZ)5521812587170465915177001429784127688011369881012中音频率(HZ)262294330349392440494低音频率(HZ)1317634147680316560601755714196510222045452474049可以通过各音阶的对应频率值为8253赋初值,然后输出到音响设备,以产生相应音阶的发音。在发音过程中,可分别为8253的GATE0端输入0和1来控制开始发音和停止发音。 本实验我们对于8253输入频率选择的是1MHz,故,由每个音阶的对应的频率可求出8253输入的计数值。音阶1

7、234567高音频率(HZ)1812170415171429127611361012中音频率(HZ)3817340130302865255122732024低音频率(HZ)76346803606057145102454540493.总体设计 3.1电路原理图与说明实物图:IO输出CSCLK0 8253GATE0OUT0 CS1MHz1MHz扬声器200-207H 208-20AH 210-213H8279芯片5.2功能模块流程图开始8259初始化8253初始化置空寄存器有键按下? N是A转入高音区YY 转入中音区是B Y是1 N Y是2 N Y是3 N Y是4 N N Y是5 Y是6 N Y是

8、7 N 给8253赋对应初值 N Y 音响发音延时预置音乐程序流程图:8259初始化开始8253初始化置空寄存器有键按下? N 是D?NY是C?是B?是A? 低音中音高音给8253赋对应初值 音响发音延时2.4可编程计数器/定时器82532.4.1 8253内部结构和引脚8253的内部结构从上图可见,8253内部包含数据总线缓冲器、读/写控制逻辑、控制字寄存器和3个结构完全相同的计数器,这3个计数器分别称为计数器0、计数器1和计数器2。8253的引脚A1、A0:地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。CLK0-2:时钟脉冲输入端,用于输入

9、定时脉冲或计数脉冲信号。CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。GATE0-3:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。OUT0-2:计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。2.4.2 8253方式控制字格式D7BCDSC1SC0RL1RL0M2M1M0D6D5D4D3D2D1D000 选择计数器001 选择计数器110 选择计数器21

10、1 无效00计数器锁存操作01只读/写LSB10只读/写MSB11读/写LSB、MSB0 二进制数1 BCD000模式0001模式1x10模式2x11模式3100模式4101模式5图2-3 8253的方式控制字2.4.3 8253的工作方式3方波发生器方式3的波形如下图所示,它的特点是:(1) 输出为周期性的方波。若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。(2) 写入控制字后,输出将变为高电平,当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值的一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。(3) 若计数值为偶数,则输出对称方波;如果计数值为奇数,则

11、前(N+1)/2个CLK脉冲期间输出为高电平,后(N-1)/2个CLK脉冲期间输出为低电平。(4) GATE信号能使计数过程重新开始,GATE=1允许计数,GATE=0禁止计数。停止后OUT将立即变高电平,当GATE再次变高以后,计数器将自动装入计数初值,重新开始计数。8253工作方式3波形2.4.4本设计中8253的功能 8253的CLK0接1MHz时钟,GATE0接5V,OUT0接蜂鸣器,编程使计算机的数字键0、1、2、3、4、5、6作为电子琴按键,按下即发出相应的音阶。本次实验用到的是8253的方式3方波发生器。2.5可编程键盘接口显示芯片82792.5.1 8253内部结构和引脚 82

12、79引脚图8279是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64B RAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。1) 数据线DB0DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU和8279之间的数据和命令。2) 地址线/CS=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片内数据地址,故827

13、9芯片占用2个端口地址。3) 控制线CLK:8279的时钟输入线。IRQ:中断请求输出线,高电平有效。/RD、/WR:读、写输入控制线。SL0-SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。RL0-RL7:回复输入线,它们是键盘或传感器矩阵的信号输入线。SHIFT:来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的状态,该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0-RL7的

14、数据存入FIFO RAM中。OUTA0-OUTA3:通常作为显示信号的高4位输出线。OUTB0-OUTB3:通常作为显示信号的低4位输出线。/BD:显示熄灭输出线,低电平有效。当/BD=0时将显示全熄灭。8279对显示RAM的读/写操作如果采用非地址自动增加方式对显示RAM进行读/写操作,则每次读/写前都需要通过“读显示RAM命令字”或“写显示RAM命令字”设置显示RAM的地址。而采用地址自动增加方式,只需设置起始地址,之后地址会自动增加。2.5.2 8279的工作方式8279有三种工作方式:键盘方式、显示方式和传感器方式。1) 键盘工作方式8279在键盘工作方式时,可设置为双键互锁方式和N键

15、循回方式。双键互锁方式:若有两个或多个键同时按下时,不管按键先后顺序如何,只能识别最后一个被释放的键,并把该键值送入FIFO RAM中。N键循回方式:一次按下任意个键均可被识别,按键值按扫描次序被送入FIFO RAM中。2) 显示方式8279的显示方式又可分为左端入口和右端入口方式。显示数据只要写入显示RAM,则可由显示器显示出来,因此显示数据写入显示RAM的顺序,决定了显示的次序。左端入口方式即显示位置从显示器最左端1位(最高位)开始,以后显示的字符逐个向右顺序排列;右端入口方式即显示位置从显示器最右端1位(最低位)开始,已显示的字符逐个向左移位。但无论左右入口,后输入的总是显示在最右边。3

16、) 传感器方式传感器方式是把传感器的开关状态送入传感器RAM中。当CPU对传感器阵列扫描时,一旦发现传感器状态发生变化就发出中断请求(IRQ置1),中断响应后转入中断处理程序。2.5.3 8279的命令字及格式a.8279内部时钟设置命令字0 0 1 D4 D3 D2 D1 D0高三位为本命令字特征位,第五位用于设定对外部时钟CLK的分频值。b. 读显示RAM命令字0 1 1 AI D3 D2 D1 D0高三位为本命令字特征位AI:地址增加位,AI=1时,每读出一个字节后地址会自动加1,可继续读下一位字节单元的内容,而不必重写读命令。低四位为显示RAM地址,从0000到1111共16个。c.写

17、显示RAM命令字1 0 0 AI D3 D2 D1 D0高三位为本命令字特征位AI:地址增加位,AI=1时,每写入一个字节后地址会自动加1,可继续写下一位字节单元的内容,而不必重写读命令。低四位为显示RAM地址,从0000到1111共16个。2.5.4 本设计中8279的功能利用8279的键盘处理功能,连接键盘实现按键输入频率发生功能4.实验中所遇到的问题在实验过程中,对于电子琴发生原理不太熟悉,所以一开始一直不知道怎么下手。对于8279因为有彩灯的基础所以还比较顺手。实验时一直发音不准,原因在于对于发音频率一直没有输入正确,对于8253的工作方式没有弄明白。但是在老师同学的帮助下还是解决了问

18、题。5.实验程序Z8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00H ;左边输入,八位显示外部译码八位显示LEDFEQ EQU 38H ;扫描频率CODE SEGMENTASSUME CS:CODE, DS:CODESTART:MOV DX,Z8279 ;8279初始化 MOV AL, 00H OUT DX, AL MOV AL, 38H OUT DX,AL MOV DX, 20BH ;8253初始化 MOV AL, B OUT DX, AL PUSH CSPOP DSMOV DX, Z8279MOV AL, LEDMODOUT DX, ALMOV AL, LE

19、DFEQOUT DX, ALMOV DX, D8279MOV AL, 7FHOUT DX, ALMOV DX, D8279 MOV AL, 7FHOUT DX, ALMOV DX, D8279 MOV AL, 7DHOUT DX, ALMOV DX, D8279 MOV AL, 7FHOUT DX, ALMOV DX, D8279 MOV AL, 70H OUT DX, AL MOV DX, D8279 MOV AL, 5bH OUT DX, AL MOV DX, D8279 MOV AL, 70H OUT DX,AL MOV DX,D8279 MOV AL,76H OUT DX,AL ;以上

20、为写(AEDK8688) NOP PD: MOV DX, 200H MOV AL, 00H OUT DX, AL MOV AL, 00H MOV DX, Z8279 MOV AL, 0C2H OUT DX, AL ;置空FIFO寄存器 WAIIT: NOP IN AL, DX MOV BL, AL AND AL, 80H CMP AL, 80H JE WAIIT ;FIFO正在清除期间则跳转等待 MOV AL, BL AND AL, 0FH CMP AL, 00H JE WAIIT ;MOV AL,40H ;写 读FIFO RAM命令字(问题出在这里) ;OUT DX,AL ;MOV DX,D

21、8279 ;读入FIFO RAM内容 ;IN AL,DX ;无键按下则等待 NOP ;查表,将键码放入AL中 LEA BX, LED XLAT MOV DX, D8279 ;将AL中内容写到数码管上 OUT DX, AL MOV AL, 00H MOV DX, D8279 ;判断是哪个键 IN AL, DX MOV BL,AL MOV DX,Z8279 ;清FIFO RAM寄存器 MOV AL,0C2H OUT DX,AL MOV AL,BL CMP AL,28H ;高音跳转JE GG1 CMP AL,02H JE B1 CMP AL,0AH JE B2 CMP AL,22H JE B3 CM

22、P AL,01H JE B4 CMP AL,09H JE B5 CMP AL,21H JE B6 CMP AL,00H JE B7B1: MOV DX, 208H MOV AL, 24H OUT DX, AL MOV AL, 38H OUT DX ,AL CALL DELAY JMP PDB2: MOV DX, 208H MOV AL, 07H OUT DX, AL MOV AL, 34H OUT DX, AL CALL DELAY JMP PDB3: MOV DX, 208H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY JMP PDB4: MOV DX, 208H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, AL CALL DELAY JMP PD GG1:JMP GG ;中转一下 MM:JMP WAIIT B5: MOV DX, 208H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX, AL CALL DELAY JMP PD B6: MOV DX, 208H MOV AL, 72H OUT DX, AL MOV AL, 22H OUT DX, AL CALL DELAY JMP PD B7: MOV

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

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