可存储式电子琴硬件课程设计_第1页
可存储式电子琴硬件课程设计_第2页
可存储式电子琴硬件课程设计_第3页
可存储式电子琴硬件课程设计_第4页
可存储式电子琴硬件课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、硬件课程设计报告 设计题目: 硬件电子琴电路设计 专业班级: 网络09-1班 学生姓名: 王春苗 学生学号: 08093663 指导教师: 王凯 设计时间: 2011-09 目录1、选题22、需求分析23、设计任务与要求24、总体方案与说明24.1总体方案24.2电路原理图与说明34.3功能模块图 44.4 实验原理 65、硬件框图与说明 65.1. 8279芯片介绍65.28253芯片介绍96、软件功能107软件主要模块流程图107.1高中低音转换程序流程图107.2预置音乐程序流程图128源程序清单与注释128.1高中低音转换程序138.2预置音乐程序 229问题分析与解决方案 3110结

2、论与体会 31101实验体会3111参考资料 321、选题本实验的课题是可存储式电子琴,这是一个很好的课题,实现这一课题的过程中充满趣味性,并且这一课题具有一定难度,实现起来就有挑战性。2、需求分析本设计的主要设计模块属于底层驱动模块,用以锻炼我们对芯片组建原理,同时也使我们对底层模块设计有一定的认识。3、设计任务与要求利用8279、8253芯片和键盘、喇叭等器件设计硬件电子琴,具备如下功能:当按下琴键时,扬声器发出该琴键相对应的音阶,同时可以通过按键转换高中低音节,可以播放预存音乐。4、总体方案与说明4.1总体方案本次设计是基于Husy16/32位微机接口技术试验系统而进行功能实现与拓展。设

3、计中用到了8279,8253,I/O输入等几种芯片。设计框图如下:图1. 设计框图键盘输入喇叭发声时钟控制方案利用8253进行周期性扫描8279是否有键按下,使用8279的按键实现电子琴音节按键、功能的切换。本次设计功能分为:低中高音阶的音频转换(默认状态下是中音)以及播放预曲目两项。4.2电路原理图与说明图4.2.1实物图图4.2.2电路图8279/cs 8253/cs out0 clk0 get0 音响 Q0I/O输出 /cs/cs1M789A456B123C0FED键盘4.2.3说明(1)各芯片及器件地址:8279的控制端地址为:20AH,数据端地址为:208H。8253的控制端地址为:

4、213H,数据端地址为:210H。I/O输出的地址为:200H(2)按键说明:1dou音2ruai音3mi音4fa音5sao音6la音7xi音A高音转换键B中音转换键C低音转换键D放音键4.3功能模块图A低音B中音C高音D放音低音子程序中音子程序高音子程序放音子程序开始结束功能选择4.4 实验原理使用8279芯片的键盘控制器,通过查看寄存器,读出分别按下不同的键时对应的寄存器值(这里只给出当按下1-7和A、B、C、D键的寄存器值,如图)。图4.4.1.按键1234567ABCD寄存器键值02H0AH22H01H09H21H00H07H29H28H2BH当某一时刻按下一个键的时,可以通过和各键的

5、寄存器值比较来判断按下键。又每个音阶都有一个确定的频率(如图)如图4.4.2音阶1234567高音频率(HZ)552587659700784880988中音频率(HZ)262294330349392440494低音频率(HZ)131147165175196220247可以通过各音阶的对应频率值为8253赋初值,然后输出到音响设备,以产生相应音阶的发音。在发音过程中,可分别为8253的GATE0端输入0和1来控制开始发音和停止发音。5、硬件框图与说明 5.1 8279芯片介绍图3.1.8279引脚图 8279是可编程的键盘、显示接口芯片。具有按键处理功能,又具有自动显示功能。8279内部有键盘F

6、IFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。(1) 数据线DB0DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU和8279之间的数据和命令。(2) 地址线Cs=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片内数据地址,故8279芯片占用2个端口地址。(3) 控制线CLK:8279的时钟输入线。IRQ:中断请求输入线,高电平有效。/RD,/WR:读、写输入控制线。SL0-SL3:扫描输出线,用来作为扫描键盘和显示的代码输出和直接

7、输出线。RL0-RL7:回复输出线,是键盘或传感器的矩阵信号输入线。SHIFT:来自外部键盘或传感器矩阵的输入信号,是8279的键盘数据的次高位的状态,控制键盘上下档功能。在传感器方式和选通方式中,该引脚无用。CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该 信号到上升沿时,把RL0-RL7的数据存入FIFO RAM中。OUTA0-OUTA3:通常作为显示信号的高4位输出线。OUTB-OUTB3:通常作为显示信号的低4位输出线。/BD:显示熄灭输出线,低电平有效。当/;BD=0时将全部熄灭。8279的工作方式:82

8、79有三种工作方式:键盘方式、显示方式、传感器方式。(1) 键盘工作方式:8279在键盘工作方式时,可设置为双键互锁方式和N键循环方式。双肩互锁方式:若有两个或者多个键同时按下时,不管按键先后顺序如何,只能识别最后一个人被释放的键,并把键值输入FIFO RAM中。N键循环方式:一次按下任意个键均可被识别,按键值按扫描次序被送入FIFO RAM中。(2) 显示方式:8279的显示方式又可分为左端入口和右端入口方式。显示数据只要写入显示RAM,则可由显示器显示出来,因此显示数据写入显示RAM的顺序,决定了显示的次序。左端入口方式即显示位置从显示器最左端1位(最高位)开始,优厚显示的字符逐个向右顺序

9、排列;右端入口方式即显示位置从显示器最右端1位即最低位开始,以显示的字符逐个向左移位。但无论左右入口,后输入的总是显示在最右端。(3) 传感器方式:传感器方式是把传感器的开关状态送入传感器RAM中。当CPU对传感器阵列扫描时,一旦发现传感器状态发生变化就发出中断请求(IRQ置1),中断响应后转入中断处理程序。8279的命令字及其格式:8279的各种工作方式都要通过对命令寄存器的设置来实现。8279共有8种命令,通过这些命令设置工作寄存器,来选择各种方式。命令寄存器共8种,格式为:表5.1.2:D7D6D5D4D3D2D1D0如上图,8279的一条命令由两大部分组成,一部分表征命令类型,为命令特

10、征位,有命令寄存器高3位D7-D5决定。D7-D5三位的状态可组合出8种形式,对应8类命令。另一部分为命令的具体内容,由D4-D0决定。每种特征代表的命令如表图3所示:表5.1.3 8279命令特征表D7 D6 D5代表的命令类型 0 0 0键盘/显示命令0 0 1时钟编程命令0 1 0读FIFO/传感器RAM命令0 1 1读显示器RAM命令1 0 0写显示命令1 0 1显示禁止/熄灭命令1 1 0消除命令1 1 1结束中断/出错方式结束命令5.2 8253芯片介绍图5.2.1 8253芯片引脚图8253是可编程计数器/定时器,内部有三个计数器,分别为计数器0、计数器1和计数器2,一个时钟输入

11、端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器。8253的通道:8253有3个通道,分别为通道0、通道1和通道2。8253的工作方式:8253中各通道有6种工作方式,以完成定时、计数或脉冲发生器等多种功能。分别为方式0(技术结束则中断)、方式1(单脉冲发生器)、方式2(速率波发生器)、方式3(方波发生器)、方式4(软件触发方式计数)、方式5(硬件触发方式计数)8253的控制字:图5.2.2 8253控制字D7 D6 D5 D4 D3 D2 D1 D0SC1SC0RL1RL0M2M1M0BCD00 选择通道0 00 计数器锁存,供CPU读 00

12、0 方式0 1 BCD码计数01 选择通道0 01只读/写计数器低字节 001方式1 0 二进制计数10 选择通道0 10只读/写计数器高字节 X10方式211 无效 11先读/写计数器低字节, X11方式3后读/写高字节 100方式4 101方式56、软件功能(1)存储预置音乐(2)播放预置音乐(3)键盘控制发声(4)高、中、低音转换7软件主要模块流程图7.1高中低音转换程序流程图8259初始化开始8253初始化置空寄存器有键按下? N是A?转入高音区YY是B?转入中音区 YN转入低音区是C? Y是1? N Y是2? N Y是3? N Y是4? N N Y是5? Y是6? N Y是7? N

13、给8253赋对应初值 N Y 音响发音延时7.2预置音乐程序流程图8259初始化开始8253初始化置空寄存器有键按下? N 是D?给8253赋对应初值 Y N音响发音延时8、源程序清单与注释8.1高中低音转换程序Z8279 EQU 20AHD8279 EQU 208HLEDMOD EQU 00H ;左边输入,八位显示外部译码八位显示LEDFEQ EQU 38H ;扫描频率ASSUME CS:CODE, DS:CODECODE SEGMENTSTART:MOVDX,Z8279 ;8279初始化 MOV AL, 00H OUT DX, AL MOV AL, 38H OUT DX,AL MOV DX

14、, 213H ;8253初始化 MOV AL, 00110111B OUT DX, AL PUSH CSPOP DSMOV DX, Z8279MOV AL, LEDMODOUT DX, ALMOV AL, LEDFEQOUT 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 D

15、X, 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 ;以上为写(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正在清除期间则

16、跳转等待 MOV AL, BL AND AL, 0FH CMP AL, 00H JE WAIIT ;无键按下则等待 NOP ;查表,将键码放入AL中 LEA BX, LED XLAT MOV DX, D8279 ;将AL中内容写到数码管上 OUT DX, AL MOV AL, 00H MOV DX, D8279 ;判断是哪个键 IN AL, DX ;判断是在哪一个音区 CMP AL, 28H JE D;中音区跳低音 CMP AL, 07H JE GH ;中音区跳高音 M: CMP AL, 02H JE B1 CMP AL, 0AH JE B2 CMP AL, 22H JE B3 CMP AL,

17、 01H JE B4 CMP AL,09H JE B5 CMP AL, 21H JE B6 CMP AL, 00H ;中音区 JE B7 B1: JMP S1 B2: JMP S2 B3: JMP S3 B4: JMP S4 B5: JMP S5 B6: JMP S6 B7: JMP S7 GH: JMP GD: MOV DX, 200H MOV AL, 00H OUT DX, AL MOV AL, 00H MOV DX, Z8279MOV AL, 0C2HOUT DX, AL ;置空FIFO寄存器H: NOPIN AL, DXMOV BL, ALAND AL, 80HCMP AL, 80HJ

18、E H ;FIFO正在清除期间则跳转等待MOV AL, BLAND AL, 0FH CMP AL, 00HJE H ;无键按下则等待 NOP ;查表,将键码放入AL中LEA BX, LEDXLATMOV DX, D8279 ;将AL中内容写到数码管上OUT DX, ALMOV DX, 200H MOV AL, 01H OUT DX, AL MOV AL, 00H MOV DX, D8279 ;判断是哪个键 IN AL, DX ;判断是在哪一个音区 CMP AL, 29H JE MM ;跳转到中音区 CMP AL,07H JE GE ;跳转到高音区 CMP AL, 02H JE A1 CMP A

19、L, 0AH JE A2 CMP AL, 22H JE A3 CMP AL, 01H JE A4 CMP AL, 09H JE A5 CMP AL, 21H JE A6 CMP AL, 00H JE A7 ;低音区 A1: JMP D1 A2: JMP D2 A3: JMP D3 A4: JMP D4 A5: JMP D5 A6: JMP D6 A7: JMP D7 MM: JMP PD ;跳转到中音区GE: JMP G ;跳转到高音区 S1: MOV DX, 210H MOV AL, 24H OUT DX, AL MOV AL, 38H OUT DX ,AL CALL DELAY JMP P

20、DS2: MOV DX, 210H MOV AL, 07H OUT DX, AL MOV AL, 34H OUT DX, AL CALL DELAY JMP PDS3: MOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY JMP PDS4: MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, AL CALL DELAY JMP PD S5: MOV DX, 210H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX

21、, AL CALL DELAY JMP PD S6: MOV DX, 210H MOV AL, 72H OUT DX, AL MOV AL, 22H OUT DX, AL CALL DELAY JMP PD S7: MOV DX, 210H MOV AL, 24H OUT DX, AL MOV AL, 20H OUT DX, AL CALL DELAY JMP PD D1: MOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 76H OUT DX, AL CALL DELAY JMP D D2: MOV DX, 210H MOV AL, 03H OUT DX

22、, AL MOV AL, 68H OUT DX, AL CALL DELAY JMP D D3: MOV DX, 210H MOV AL, 61H OUT DX, AL MOV AL, 60H OUT DX, AL CALL DELAY JMP D D4: MOV DX, 210H MOV AL, 14H OUT DX, AL MOV AL, 57H OUT DX, AL CALL DELAY JMP D D5: MOV DX, 210H MOV AL, 02H OUT DX, AL MOV AL, 51H OUT DX, AL CALL DELAY JMP D D6: MOV DX, 210

23、H MOV AL, 46H OUT DX, AL MOV AL, 45H OUT DX, AL CALL DELAY JMP D D7: MOV DX, 210H MOV AL, 49H OUT DX, AL MOV AL, 40H OUT DX, AL CALL DELAY JMP D G: MOV DX, 200H MOV AL, 00H OUT DX, AL MOV DX, Z8279 MOV AL, 0C2H OUT DX, AL ;置空FIFO寄存器Q: NOP IN AL, DX MOV BL, AL AND AL, 80H CMP AL, 80H JE Q ;FIFO正在清除期间

24、则跳转等待 MOV AL, BL AND AL, 0FH CMP AL, 00H JE Q ;无键按下则等待 NOP ;查表,将键码放入AL中 LEA BX, LED XLAT MOV DX, D8279 ;将AL中内容写到数码管上 OUT DX, AL MOV AL, 00H MOV DX, D8279 ;判断是哪个键 IN AL, DX CMP AL, 28H JE DE ;跳转到低音区 CMP AL, 29H JE ME CMP AL, 02H JE C1 CMP AL, 0AH JE C2 CMP AL, 22H JE C3 CMP AL, 01H JE C4 CMP AL,09H J

25、E C5 CMP AL, 21H JE C6 CMP AL, 00H JE C7 C1: JMP G1 C2: JMP G2 C3: JMP G3 C4: JMP G4 C5: JMP G5 C6: JMP G6 C7: JMP G7 ;高音区 DE: JMP D ME: JMP PD ;跳转到中音区 LED DB 07H,66H,06H,3FH,7FH,6DH,5BH,71H,7FH,6DH,5BH,71H, 6FH,6FH,6FH,5EH, DB 07H,66H,06H,3FH,7FH,6DH,77H,7CH,7FH,6DH,77H,7CH, 6FH,6FH,6FH,6FH,7DH,4FH

26、,79H, DB 06H,3FH,7FH,77H,7CH,39H,5EH, G1: MOV DX, 210H MOV AL, 88H OUT DX, AL MOV AL, 18H OUT DX, AL CALL DELAY JMP GG2: MOV DX, 210H MOV AL, 04H OUT DX, AL MOV AL, 17H OUT DX, AL CALL DELAY JMP G G3: MOV DX, 210H MOV AL, 17H OUT DX, AL MOV AL, 15H OUT DX, AL CALL DELAY JMP G G4: MOV DX, 210H MOV AL

27、, 29H OUT DX, AL MOV AL, 14H OUT DX, AL CALL DELAY JMP G G5: MOV DX, 210H MOV AL, 76H OUT DX, AL MOV AL, 12H OUT DX, AL CALL DELAY JMP G G6: MOV DX, 210H MOV AL, 36H OUT DX, AL MOV AL, 11H OUT DX, AL CALL DELAY JMP G G7: MOV DX, 210H MOV AL, 12H OUT DX, AL MOV AL, 10H OUT DX, AL CALL DELAY JMP G GOO

28、N PROC NEAR MOV DX, 200H MOV AL, 00H OUT DX, AL GOON ENDP DELAY PROC NEAR MOV DX, 200H MOV AL, 01HOUT DX, AL PUSH CXMOV CX, 60000DLOOP $MOV DX, 200H MOV AL, 00H OUT DX, ALPOP CXRET DELAY ENDPCODE ENDS END START8.2预置音乐程序Z8279 EQU 20AHD8279 EQU 208HLEDMOD EQU 00H ;左边输入,八位显示外部译码八位显示LEDFEQ EQU 38H ;扫描频率

29、CODE SEGMENTASSUME CS: CODESTART:MOV DX, Z8279 ;8279初始化 MOV AL, 00H OUT DX, AL MOV AL, 38H OUT DX, AL MOV DX, 213H ;8253初始化 MOV AL, 00110111B OUT DX, ALPD: 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

30、AL, 80H JE WAIIT ;FIFO正在清除期间则跳转等待 MOV AL, BL AND AL, 0FH CMP AL, 00H JE WAIIT ;无键按下则等待 MOV AL, 00H MOV DX, D8279 ;判断是哪个键 CMP AL, 2BH JE MUMU: JMP MUSICMUSIC: WW1:MOV DX, 210H MOV AL, 24H OUT DX, AL MOV AL, 38H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, AL CALL DEL

31、AY3MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, ALCALL DELAYMOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, ALCALL DELAY4 MOV DX,210H MOV AL,24H OUT DX, AL MOV AL, 38H OUT DX, AL CALL DELAY2MOV DX, 210H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX, ALCALL DELAY3 MOV DX, 210H MOV AL,

32、34H OUT DX, AL MOV AL, 30H OUT DX, ALCALL DELAYMOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, ALCALL DELAY4 ;1444 1534音WW2:MOV DX, 210H MOV AL, 24H OUT DX, AL MOV AL, 38H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, AL CALL DELAY3 MOV DX, 210H MOV AL, 24H O

33、UT DX, AL MOV AL, 20H OUT DX, AL CALL DELAY MOV DX, 210H MOV AL, 24H OUT DX, AL MOV AL, 20H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 72H OUT DX, AL MOV AL, 22H OUT DX, AL CALL DELAY3 MOV DX, 210H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX, ALCALL DELAY MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 2

34、8H OUT DX, ALCALL DELAY2 MOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, ALCALL DELAY3 MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, ALCALL DELAY MOV DX, 210H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX, AL CALL DELAY4 ;147 765 434 5音 JMP WW1WW3:MOV DX,210H MOV AL, 24H OUT DX, AL MOV

35、 AL, 38H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, ALCALL DELAY3 MOV DX, 210H MOV AL, 72H OUT DX, AL MOV AL, 22H OUT DX, ALCALL DELAYMOV DX, 210H MOV AL, 88H OUT DX, AL MOV AL, 18H OUT DX, ALCALL DELAY2 MOV DX, 210H MOV AL, 72H OUT DX, AL MOV AL, 22H OUT DX, AL C

36、ALL DELAY3 MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, ALCALL DELAYMOV DX, 210H MOV AL, 07H OUT DX, AL MOV AL, 34H OUT DX, ALCALL DELAY2 MOV DX, 210H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX, ALCALL DELAY3 MOV DX, 210H MOV AL, 72H OUT DX, AL MOV AL, 22H OUT DX, ALCALL DELAY MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, ALCALL DELAY4 ;146 164 256 4音WW4:MOV DX,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论