微机实验用8255和8233设计声音发声器
(完整word版)微机原理课程设计音乐播放器

一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。
通过在《微机原理与接口技术》课程上所学的汇编知识和8253/8254芯片相关知识,来完成本课程设计;用汇编程序完成键控音乐播放器的,用8253/8254定时器来产生声音。
该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。
通过课程设计环节来加强对所学知识的理解和应用。
二、课程设计相关知识2.1 定时/计数器8253/58254在微机及控制系统中,经常要用到定时信号。
如系统的日历时钟,动态存储器刷新。
对外部执行机构控制时也需要定时中断、定时检测、定时查询等。
定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU 执行延迟子程序的时间就是定时时间。
缺点:执行延迟时,CPU 一直被占用,降低了CPU 的效率。
硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。
突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU 效率。
作为定时器可用8253或者8254,二者功能基本相同,知识工作的最高频率不一样。
本实验就采用了8254,其主要功能为:(1)每片上有3 个独立的16 位的减计数器通道。
(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
(3)每个通道都有6 种工作方式,都可以通过程序设置或改变。
(4)每个计数器的速率可高达10MHz。
主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数通道0#、1#、2#:内部结构如下图:8254内部结构2.2 8254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:8254的引脚(1)D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
微机原理与接口技术课程设计报告音乐流水灯

微机原理与接口技术课程设计论文题目:音乐流水灯姓名:鞠强学号:201330020228班级:1330202专业:自动化2015年6月一、实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。
要求:用8255、8253、8259配合8086使蜂鸣器发出唱歌声同时还能够使用数码管进行边跳舞边唱歌实验。
二、硬件连线键盘的控制、LED显示模块:采用74系列模块控制键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0、P_1、P_2和开放的输出信号P0、P1、P2相连。
74芯片的片选信号CS1接地址译码信号340H, CS2接地址译码信号360H。
蜂鸣器发声控制:由8255模块控制;PC0直接与蜂鸣器相连,CS_4连接到实验仪中部的地址输出端CS_4中断处理模块:由8259控制8259的片选CS-1连地址输出300H,INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V, 8259的IRQ0连接到8253的OUT0。
三、程序流程图主程序初始化各阶段寄存器及相关变量初始化8253、8255芯片设置中断向量、开放8253中断屏蔽开放处理器中断中断服务程序保护现场判断时间是否不小于59分55秒报时扫描键盘G 键?调用启停子程序S COUNT COUNT=40? ADDONE 子程序COUNT 清0显示时间,调用显示时间子程序结束中断(发EOI 命令)恢复现场中断返回Y YN Y四、实验源代码DATA SEGMENT AT 0 USE16ORG 1000HHOUR DW ?MIN DW ?SEC DW ?SLL DB ?COUNT DB ?DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATAORG 1500HBEG:JMP STARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0~F 的共阴极七段译码表00H表示不显示任何东西KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值KEYV AL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值PORT1 EQU 340H ;数码管段选端口PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000HMOV CR0,EAXMOV AX,DATAMOV DS,AXMOV HOUR,0203H ;小时分钟以及秒的初始化MOV MIN,0509HMOV SEC,0502HLEA BX,TABMOV SLL,0 ;开始暂停标志位置0MOV COUNT ,0 ;中断次数计数初始值为0;8255初始化,用于产生报时的脉冲MOV EAX,80808080H;控制字MOV DX,20CH ;后面的是4个8255的控制端口20C-20F (这个地址由实验台决定)OUT DX,EAX ;初始化8255,A、B、C口均为方式0输出MOV DX,20BHMOV AL,0FFHOUT DX,AL;8253初始化,用于产生周期为25ms的中断MOV AL,00110110B ;计数器0,先低后高,方式三,二进制MOV DX,32cH ;写往控制口OUT DX,ALMOV DX,320H ;计数器0写初值:47KHz*25msMOV AX,1175OUT DX,ALMOV AL,AHOUT DX,ALMOV AL,0FEH ;IR0开屏蔽OUT DX,ALXOR AX,AX ;装载中断向量MOV ES,AXMOV DI,08H*4MOV AX,OFFSET INTSRMOV ES:[DI],AXMOV AX,SEG INTSRMOV ES:[DI+2],AXSTI ;开中断JMP $INTSR PROC ;中断服务程序CMP MIN,0509H ;比较当前时间是否在59分55秒~00分00秒之间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT3: MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT2: CMP COUNT,20 ;用8255产生0.5ms的蜂鸣JLE NEXT4MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT4:CMP SLL,0JZ LOBCALL TSTARTLOB: CALL KEYCHECK ;检测有无键按下CMP AL,0AH ;启停键按下,调用启停程序JNZ NEXT5CALL TSTARTJMP NEXT6NEXT5: CMP AL,0BH ;设置键按下,调用设置时间程序JNZ NEXT6CALL SETTIMEINTSR ENDPTSTART PROC ;控制时间暂停和开始。
实验四 扬声器程序设计

实验四扬声器程序设计实验目的:1.掌握8253的工作原理及其应用编程。
2.掌握8255的工作原理及其应用编程。
实验步骤:1.扬声器控制原理PC的扬声器以计数器2为核心。
计数器8255的CLK2的输入频率为1.193182 MHz,工作于方式3,改变计数器初值可以由得到不同频率的方波输出。
f CLK2频率:1.193182*1000000=12 34DE H若要使扬声器输出600Hz频率信号,则8253计数初值为1938。
对于600 Hz,N=计数初值=1193182/600=1938。
对于1000 Hz,N=计数初值=1193182/1000=1193。
改变8253的输出频率,即可改变扬声器输出声频信号频率。
扬声器受8255A芯片B口的两个输出端线控制,PB0=1,即GATE2=1,计数器2正常计数; PB1=1,打开输出控制门,扬声器工作。
8255工作于方式0输出。
2.编辑利用编辑器(记事本,也可采用其它编辑器)建立一个名为ASM4.ASM的文本文件,内容如下:A SSUME CS:seg2,DS:seg1seg1 SEGMENTp start DB 'Program start.',0DH,0AH,'$'p end DB 'Program will end when input'DB 27H,'ESC',27H,'.',0DH,0AH,'$'sec DB 10seg1 ENDSseg2 SEGMENTstart: MOV AX,seg1MOV DS,AXMOV DX,OFFSET pstartMOV AH,09HINT 21HMOV DX,OFFSET pendMOV AH,09HINT 21H;--------------键盘控制-------------------wait1: M OV AH,01H ;输入一个字符=AL,DOS系统功能调用INT 21HCMP AL,1BH ;是否ESC键JE keyESCCMP AL, 'a' ;是a键?JE keya ;a键处理,初始化定时器8253CMP AL,'b'JE keyb ;b开启扬声器CMP AL,'c'JE keyc ;c关启扬声器CMP AL,'d'JE keyd ;d启动定时器CMP AL, 'e'JE keye ;e停止定时器JMP wait1;-----‘a’键处理,定时器8253通道2初始化,将频率转为计数初值-------- keya:MOV AL,10110110B ;设定时器工作方式,方式3OUT 43H,AL ;送8253的控制端口43HMOV DX,0012H ;输入频率送DX,AXMOV AX,34DEHMOV DI,1000 ;将频率1000Hz转换为计数初值DIV DI ;计数初值在AX中OUT 42H,AL ;计数初值送定时器2,即送42H端口MOV AL,AHOUT 42H,AL ;输出频率为1000HZ信号JMP wait1;------‘b’键处理,并行接口8255,扬声器开启控制--------------keyb:IN AL,61H ;读8255PB口OR AL,00000010B ; 并行接口8255,使得PB1=1OUT 61H,AL ;置PB1=1,开扬声器JMP wait1;------‘c’键处理,扬声器关闭控制----------------------------keyc: IN AL,61HAND AL,11111101B ; 并行接口8255,PB1=0,关扬声器OUT 61H,ALJMP wait1;-------‘d’键处理,定时器开启控制---------------------------keyd:IN AL,61HOR AL,00000001B ; 并行接口8255,启动定时器2,GATE=PB0=1OUT 61H,ALJMP wait1;------‘e’键处理,定时器关闭控制----------------------------keye: IN AL,61HAND AL,11111110B ; 并行接口8255,停止定时器2,GATE=PB0=0OUT 61H,ALJMP wait1;------‘ESC’键处理,退出系统--------------------------------keyESC: MOV AH,4CHINT 21Hseg2 ENDSEND start2.运行经过汇编和链接后,运行程序并记录运行过程。
8253、8255、8259和8251实现电子琴的自动弹凑和手动弹凑

汇编与微机接口技术试验二、实验项目名称:用8253、8255、8259和8251实现电子琴的自动弹凑和手动弹凑三、实验学时:2学时四、实验原理:用8253做定时器输出音频信号,控制喇叭发出声音。
利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调.五、实验目的:a)加强8088CPU的汇编程序设计b)加强对8253定时/计数器芯片的应用理解c)加强对8255可编程并口芯片的应用理解d)加强对8259可编程中断控制器芯片的应用理解e)加强对8251可编程串口芯片的应用理解f)了解计算机发声原理六、实验内容:a)利用8088外接8253可编程定时器/计数器音符音频的频率输出,用8255的PA口接8只按键,作为电子琴1、2、3、4、5、6、7、i数字键按键,编程完成按下数字键按键即发出相应的音调。
b)利用8251串口实现与PC机的超级终端程序通讯,可在PC上按键大写字母‘A’能转换为自动弹凑,大写字母‘M’能转换为手动弹凑,在手动弹凑方式下,能用PC机的1、2、3、4、5、6、7、8按键替代试验箱按键弹凑音乐。
七、实验器材(设备、元器件):DVCC试验箱,PC机;八、实验步骤:a)、阅读ppt掌握理解试验内容;b)、按照试验要求连接电路;c)、连接试验箱与电脑主机;d)、打开试验所需软件,输入代码;f)、运行,观察实验结果;九、实验数据及结果分析:1.该实验主要程序段如下:CODE SEGMENTCS_8259_P0 EQU 20HCS_8259_P1 EQU 21HCS_8255_CTRL EQU 73HCS_8255_PA EQU 70HCS_8253_CTRL EQU 4BHCS_8253_CH0 EQU 48HCS_8253_CH2 EQU 4AHCS_8251_STAT EQU 51HCS_8251_DATA EQU 50HASSUME CS:CODEORG 1000HSTART: JMP MAINMODE DB 0 ;0为手动弹凑模式,非0为自动手动弹凑模式TONELEN DW 0TONEFR DW 2,3030,2865,2551,2273,2024,1912,1704,1517,1433,1276,1136,1012 TABLE DB 42H,82H,82H,82H,84H,02H,72HDB 62H,72H,62H,52H,48HDB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2HDB 12H,0A2H,0D2H,92H,88HDB 82H,0B2H,0B2H,0A2H,84H,02H,72HDB 62H,72H,62H,52H,44H,02H,12HDB 12H,62H,62H,52H,44H,02H,82HDB 72H,62H,52H,32H,48HDB0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FHENDTAB DB 00HMAIN: CALL I8253ACALL INTSETCALL I8259ACALL I8255ACLDMOV AX,SEG TABLEMOV DS,AXLEA DI,ENDTABMOV AL, 0CMP MODE,ALJZ MAN_PLAYAUTO_PLAY:LEA S I,TABLESOUND:IN AL, CS_8251_STATTEST AL, 00000010BJZ NEXT1IN AL, CS_8251_DATACMP AL, 'M'JNZ NEXT1MOV AL,1MOV MODE,ALJMP MAN_PLAYNEXT1:LODSBMOV BX,AXMOV CX,AXAND CX,0FHAND BX,0F0HSHR BX,1SHR BX,1SHR BX,1; SHR BX,1MOV AX,TONEFR[BX]CALL OUTTONEMOV AX,10MUL CXMOV WORD PTR TONELEN,AXDELAY: MOV AX,WORD PTR TONELENCMP AX,0JNE DELAYCMP SI,DIJNE SOUNDJMP AUTO_PLAYMAN_PLAY:MOV AX,0MOV TONELEN, AXIN AL, CS_8251_STATTEST AL, 00000010BJZ CHK8255IN AL, CS_8251_DATACMP AL, 'A'JNZ NEXT2MOV AL,0MOV MODE,ALJMP AUTO_PLAYNEXT2: CMP AL, 31HJL CHK8255CMP AL, 38HJG CHK8255SUB AL, '0'MOV AH, 0MOV BX,AXSHL BX,1MOV AX,TONEFR[BX]CALL OUTTONEJMP MAN_PLAYCHK8255:K1: MOV DX, CS_8255_PA ;PA端口地址IN AL, DX ;读开关的状态TEST AL, 01H ;判是否是K1闭合JZ K2 ;不是转K2MOV AX, 2273 ;是K1闭合送“1”音频数据1/440.00HZJMP KEYDOWNK2: IN AL, DX ;读开关的状态TEST AL, 02H ;判是否是K2闭合JZ K3 ;不是转K3MOV AX, 2024 ;是K2闭合送“2”音频数据1/493.88HZJMP KEYDOWNK3: IN AL, DX ;读开关的状态TEST AL, 04H ;判是否是K3闭合JZ K4 ;不是转K4MOV AX, 1805 ;是K3闭合送“3”音频数据1/554.37HZJMP KEYDOWNK4: IN AL,DX ;读开关的状态TEST AL, 08H ;判是否是K4闭合JZ K5 ;不是转K5MOV AX, 1704 ;是K4闭合送“4”音频数据1/587.33HZJMP KEYDOWNK5: IN AL, DX ;读开关的状态TEST AL, 10H ;判是否是K5闭合JZ K6 ;不是转K6MOV AX, 1517 ;是K5闭合送“5”音频数据1/659.26HZJMP KEYDOWNK6: IN AL, DX ;读开关的状态TEST AL, 20H ;判是否是K6闭合JZ K7 ;不是转K7MOV AX, 1353 ;是K6闭合送“6”音频数据1/739.99HZJMP KEYDOWNK7: IN AL,DX ;读开关的状态TEST AL, 40H ;判是否是K7闭合JZ K8 ;不是转K8MOV AX, 1205 ;是K7闭合送“7”音频数据1/830.61HZJMP KEYDOWNK8: IN AL, DX ;读开关的状态TEST AL, 80H ;判是否是K8闭合JZ NOKEY ;不是转K1MOV AX, 1136 ;是K8闭合送“8”音频数据1/880.30HZJMP KEYDOWNFREQ DW 0 ;保存前次设置频率NOKEY: JMP MAN_PLAYMOV AX, 2 ; 关闭发音KEYDOWN:CMP FREQ,AXJE NOKEYMOV FREQ,AXCALL OUTTONEJMP MAN_PLAYOUTTONE PROC NEAR ;按音频数据设置定时器时间常数PUSH AX ; 键码压栈MOV AL, 36H ; 计数器0, 16位二进制,方式3(方波)。
计算机硬件编程应用实训1

五、实训报告要求
1 实训内容 2 实训目的 3 实训设计介绍
3.1 设计题目 3.2 设计目标 3.3 系统的主要功能 3.4 系统开发与调试过程 3.5 技术要点介绍 4 总结与体会
具体格式见附件
六、考核方法
该实训分四个层次,由低到高依次为: 初级:固定频率的软、硬件定时发声; 中级:变频发声 中高级:简单乐曲程序设计 高级:音乐程序综合设计 按四个层次,将成绩分为及格、中、良好、 优秀四个等级,每个等级再根据报告的质量、 程序代码的合理性进行提级或降级。
四、实训步骤
3、音乐程序的设计 编程用ቤተ መጻሕፍቲ ባይዱ算机扬声器唱歌曲亚洲雄风。歌
曲中每个音调的频率及时值见附件。
四、实训步骤
4、音乐程序综合设计 编写程序,要求:
按数字“1”,唱乐曲“玛丽有只小羔羊”; 按数字“2”,唱乐曲“太湖船”; 按数字“3”,唱乐曲 “祝福歌”; 按数字“4”,唱乐曲 “亚洲雄风”; 按"Q"鍵,退出。
计算机硬件编程应用实训
——PC机发声及音乐程序设计
一、实训目的
掌握汇编语言的编程思想和方法; 掌握可编程接口芯片8255及8253的工作原理; 掌握 PC 机的发声原理; 掌握发声程序的设计方法; 掌握音乐程序的设计方法。
二、实训内容
综合运用汇编语言与微机原理的基本知识 和概念实现对计算机硬件设备(8255、8253 及扬声器)的控制编程。
1、固定频率的软、硬件定时发声程序设计 2、变频发声程序设计 3、简单乐曲程序设计 4、音乐程序综合设计
三、发声原理—软件
D1 D0 0/1 0
1 &3
2
三、发声原理—硬件
D1 D0 11
1 &3
音乐发生器论文

音乐发生器的设计1、绪论音乐发生器是由8255A可编程并行接口和可编程定时计数器8253芯片组成。
用8253芯片产生一定频率的方波,通过控制输出方波时间的长短,声音的长短就得到控制。
8255A具有多种功能的可编程并行接口电路芯片。
本次接口课程设计是音乐发生器的设计,用发生器能演奏一首完整的歌。
主要是8253方式选择。
以及如何使用MF2KP软件。
首先我们利用定时器产生各种频率的声音,然后再对其进行修改,并编写以整首歌的代码,旋律及拍数可以按音乐简谱而定。
需要编写对8253,8255进行初始化的程序及对8255芯片的PC0和PC6置0置1来选择歌曲,实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制发音的长短。
8253用来实现将频率信号送到扬声器而发声。
通过编程选择计数器和设置工作方式,用MF2KP集成开发环境进行音乐发生器控制程序设计,调试直到听到正常的乐曲。
要完成本次课程设计必须先对微机接口原理与接口技术有一个全面的了解。
设计的主要目的使我们学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对危机应用的理解。
2、设计原理音乐乐曲的两个基本要素是音高和节拍。
因此要产生一个歌曲的音乐就要对音高和节拍进行控制。
音高指每个音符发声的高低,即音符的频率。
节拍指每个音符发声的长短,也就是音符的持续时间(延时)。
因此组成乐曲的每个音符的频率值和持续时间是编写歌曲音乐所需要的两个数据。
符号频率对照表1音符延时对照表2音符的持续时间根据乐曲的速度每个音符的节拍数确定。
在4/4拍中,四分音符为1拍,每小节4拍,全音符持续4拍,二分音符持续2拍,四分音符持续1拍,八分音符持续半拍。
如给全音符分配1秒的时间,则二分音符的持续时间为0.5秒,四分音符持续时间为0.25秒,八分音符持续时间为0.125秒。
根据歌曲的简谱及征服的歌曲为4/4拍的得到 《征服》歌曲的简谱为:5(低音) 5(低音) 1 1 2 2 1 2 3 5 3 3 5(低音) 6(低音) 6(低音)公式1:计数初值(n)=)()(out clk f f 发出声音的频率时钟频率根据公式1所得《征服》歌曲的频率为:196,196,262,262,294,294,262,294,330,392,330,330,196,220, 220;本次课设主要用到的芯片有8255A ,8253。
《用8253实现音乐播放器》综合性实验指导书
湖南科技学院综合性实验指导书实验名称:使用8253实现音乐播放器实验项目性质:综合性设计性实验所涉及课程:微机原理计划学时:16学时一、 实验目的1. 掌握8253,8255的使用2. 掌握DOS 系统功能调用;3. 掌握分支程序的使用;4. 学会编写查表程序5. 掌握软硬件综合设计的方法二、 实验原理1. 总体目标:使用8253演奏一首音乐2. 8253连接图:D0 8 D7 1 OUT2 17 GATE2 16 CLK2 18 8253 D0 D7 D0 D7JD2CS 21 RD 22 WR 23 A0 19 A1 20 8253CS /RD /WR A0 A1 A0 A1 IOW IOR Y0 … …VCC/或者8255 PC0 连接扬声10kHz T43.工作过程简述音乐由音符组成,音符具有音高和音长两个因数。
比如最简单的音乐《两只老虎》。
一共有1~6六个音高。
音长以16分音符(一只没有眼睛的只)最短。
其他倍增。
因此在本实验中,使用8253工作在方波发生器模式,产生一定频率的信号,输出到扬声器,从而发出声音。
通过更改定时器的计数初值(即改变了分频比)可以改变音高。
网络查询个音符频率参考如下。
4.音高参考中1DO 523 中2RE 578 中3M 659 中4FA 698 中5SO 784中6LA 880 中7SI 988高1DO 1046 高2RE 1175 高3M 1318 高4FA 1397 高5SO1568 高6LA 1760 高7SI 1976输入频率1000000音高频率分频比中1DO 523 1912.0459中2RE 578 1730.1038中3M 659 1517.4507中4FA 698 1432.6648中5SO 784 1275.5102中6LA 880 1136.3636中7SI 988 1012.1457高1DO 1046 956.02294高2RE 1175 851.06383高3M 1318 758.725345.音乐演奏的实现使用1Mhz输入给计数器的时钟端,分别根据上表计算出1234567的分频值(及计数初值),存在数据段定义的变量中。
微机课程设计实验报告修改版
微机课程设计实验报告修改版课程设计说明书课程名称:《微机原理及接口技术》课程设计设计题目:用定时与计数:利用 8253 控制扬声器发声,播放一段音乐班级:网络工程 1502姓名:潘万丁开始时间:_2018_____年_01___月_15___日完成时间:_2018_____年_01___月_19___日成绩评定平时考勤(20%)实验室调试(30%)创新(10%)答辩(20%)说明书(20%)总评指导教师签名:___年__月__日目录摘要随着科技的高速发展,计算机已经经过了好几代的更新,然而计算机的运行的基本原理依然没有改变的。
而今,我们通过一个学期的学习,已经初步了解了计算机的基本结构和原理,并且已经学会了用汇编语言进行基本的程序编写。
一、概述汇编语言是计算机能够提供给用户使用的最快而有效的语言,也是能够利用计算机所有特性并能直接控制硬件的唯一语言。
借助于汇编程序,计算机本身可以自动地把汇编源程序翻译成用机器语言表示的目的程序,从而实现了程序设计工作的部分自动化。
而本次课程设计的主要目的就是巩固所学过的知识,用汇编语言熟练地运用三大结构,进一步掌握一些指令的功能、掌握子程序的定义及调用和 INT 21H、INT10H 中断的使用,同时熟练运用通用寄存器和堆栈来进行编写一个完整的具有某种特定功能的程序。
二、方案设计 1.功能分析在此次设计中,第一个重点就是音乐播放的控制,要想能按照正常的频率和节拍播放出音乐,就需要合理的设计出给蜂鸣器的频率值和播放的时间。
这样就能比较准确的把音乐按一定的节奏播放出来。
如果我们要想加快播放速度,我们可以改变每一节拍的播放时间,如果我们改变了播放的频率值,那么歌曲也就相应的改变了。
我们根据上面的功能分析,同时通过查阅相关资料,了解了计算机的内部结构的同时还清楚的理解了 DOS 中的 21H 和10H 中断的调用,因此我们设计出如下方案:(1)音乐的代码化我们首先收集了一首简单的歌曲《两只老虎》,同时还带有相应的音谱,通过查阅相关的音乐资料,了解了节拍的概念和各音符所对应的频率,而后我们把每一首歌曲都转化成两个数据段,一个是把各个音符翻译成相应的频率值,第二是把相应的节拍转化成对应的时间值,来控制播放每一个音符所对应的时间。
实验五 (指导书实验20 )电子琴
sub al,31h 据输入频率1MHZ shl al,1 及输出音频计算出 mov bl,al 需写入8253A的初 mov bh,0 值 mov ax,4240H mov dx,0FH div word ptr[table+bx] mov bx,ax 初始nt 21h cmp al,1bh je finish cmp al,'1' jl sing cmp al,'8' jg sing
Press 1,2,3,4,5,6,7,8,ESC mov dx,offset msg mov ah,9 循环条件: int 21h 是否按键是ESC还 是1-7
若是 1-7中任一按 键,则形成音频表 的地址 →bx
初始化8255并使PA0 、 PA1输出一定宽度高电平启 动8253A工作(SPEAKER) 发声 mov dx,io8255ctl mov al,10000000B out dx,al
1 262 524
2 294 588
3 330 660
4 347 698
5 392 784
6 440 880
7 494 988
四、参考流程图 (见图16-2)
开始 显示按键盘信息 循环条件满足吗? yes 循环体:使扬声器发音 据音频算出计数初值 让8253、8255工作 no
结束
五、参考程序: DZQ.ASM
mov dx,io8255a delay proc near movpush al,03h cx out dx,al push ax call delay 继续按键使 mov ax,15 mov speaker 发声 x1: al,0h mov cx,0ffffh out dx,al x2: dec cx mov dx,io8253ctl jnz x2 jmp sing 若按ESC退出 mov al,00110110B dec ax out dx,al jnz ax,4c00h x1 finish: mov mov dx,io8253a pop ax int 21h mov ax,bx pop cx out dx,al ret mov al,ah delay endp 8255 PA0 、PA1输 out dx,al code ends 出高电平宽度时间 end start
微机原理与汇编语言课设——电子琴
微机原理与汇编语言课程设计电子琴学院:计算机科学技术专业:计算机科学与技术(工)班级:计13-1 班姓名:肖林英学号:2013170101 25指导教师:微2016年6 月10 日微机原理与汇编语言课程设计任务书一、题目:电子琴二、设计的目的1. 掌握利用PC机扬声器发出不同频率声音的方法;2. 学习利用系统功能调用从键盘上读取字符的方法;3. 掌握定时器/计数器8253的工作原理;三、设计要求编写程序,程序运行时使PC 机成为一架可演奏的“钢琴”。
当按下数字键1-8时,依次发出1,2,3,4,5,6,7,七个高音和低音,Esc 则退出演奏状态。
独立完成课程设计。
四、设计容及步骤1.PC 机扬声器电路电路图如图1所示:图1 PC 机扬声器控制电路通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。
当与门打开后,经过放大器的放大作用,便可驱动扬声器发出不同频率的音调。
为使该音调的声音持续一段时间,要插入一段延时程序,之后再将扬声器关闭(关闭与门)。
2.建立音频表要使计算机成为可弹奏的简易电子琴,需要使用系统调用的01H 功能以接收键入字符,并且要建立一音频表。
五、课程设计工作量每人的程序量应在100行有效程序行以上,不得抄袭,否则给不及格成绩。
六、课程设计工作计划2016年6月6日指导教师讲课,学生准备文献资料;2016年6月6日~2016年6月10日每人完成自己程序并能独立演示;2016年6月10日下午验收,学生撰写课程设计报告。
指导教师签字:专业主任签章:微机原理与汇编语言课程设计指导教师评语与成绩目录一、概述 (1)1.课题描述 (1)2.程序设计目的 (1)二、需求分析 (1)三、总体设计 (2)1.电子琴程序 (2)2.单音调子程序SOUND (3)四、详细设计 (3)1.扬声器 (3)2.界面设计 (4)五、调试与运行结果说明 (5)1.主界面 (5)2.退出界面 (6)六、课程设计总结 (6)七、结束语 (7)八、程序清单 (7)参考文献 (14)一、概述1.课题描述随着社会发展,计算机硬件技术越来越多的应用到生活中的各个领域,人们对软硬件技术结合开发出来的产品的要求越来越迫切,需求日益增加,如今用软硬件结合设计电子产品已经成为了一大时尚。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
综合性、设计性实验报告
设 计 题 目_音乐发声器
实验课程名称__微机原理及应用_ _
指 导 教 师_____ _ _
开课学期 至_ 学年_ 学期
姓名 学号
专业__ 班级_ 班___
上课时间 年 月 日
湖南科技学院教务处编印
一、实验设计方案
实验名称:声音发声器 实验时间:2010年12月
小组合作: 是○ 否√
小组成员:
1、 实验目的:
(1) 通过本学期所学的知识,用现有设备制作一个音乐发声器
(2)
该音乐发声器能够通过键盘选择自动演奏3首以上音乐,不同音乐对应不同的LED显示
效果。
(3) 能够分析硬件设计原理并画出方框图。
2、 实验设备及材料:
接口实验箱一个,计算机一台,MASM集成环境
3、 理论依据:
硬件连接图如下
由上面的流程图编写程序即可
4、 实验方法步骤及注意事项:
(1) 按方框图连接好实物
(2) 编程初始化8255和8253,编辑音乐程序
(3) 观察实验结果
注意事项:注意连接实物要正确,程序编制要正确有。
5.实验数据处理方法:改变其参数使其发出不同的声音,通过统计不同的频率及强度可以让
其它发出不同的音乐
6.参考文献:《微型计算机与结口技术》杨立主编
指导老师对实验设计方案的意见:
指导老师签名:
年 月 日
二、实验报告
1、实验目的、设备与材料、理论依据、实验方法步骤见实验设方案
2、
实验现象、数据及结果
连接实物图,初始化程序后运行程序,听发出的声音,改变其程序的一些参
数,让其发出不同响度的声音,选择不同的频率声音音调也不同,通过发出
的不同频率的声音,统计频率与声音音调的关系
3、对实验现象、数据及观察结果的分析与讨论:
运行程序后,通过编制的不同的声音进行分析,反复听后发现不同的声音音调与其频率有很大
关系,频率越大单调也相应的大
4、结论:通过该实验达到了预期的效果,也从中学到了许多知识,感觉受益匪浅,有一种小小
的成就感。
5、实验总结
1)、本次实验成败之处及其原因分析:
主要应该掌握8255和8253两个芯片的工作原理
正确初始化程序,编制正程序的音乐程序。
2)、本实验的关键环节及改进措施:
①做好本实验需要把握的关键环节:
正确画出程序的流程图
初始化程序不能出错
实物连接要正确,另外可以编写多个独立的子程序以便调用,观察实验结果
②若重做本实验,为实现预期效果,仪器操作和实验步骤应如何改善:
程序可以精简些,程序要清晰易懂,方便修改,可以删除一些不要的流程
3)、对实验的自我评价:通过本实验,查阅许多资料,同时也掌握了许多以前没有学到的东西,
丰富了自己的知识面,同时基本上达到了预期效果,有一点小小的成就感。总的来说,还是不
错的了。
指导老师评语及得分:
签名: 年 月 日