(完整word版)电子发声实验课程设计

合集下载

电子发声实验报告

电子发声实验报告

一、实验目的1. 理解电子发声的基本原理。

2. 掌握电子振荡电路的搭建方法。

3. 学习电子发声装置的调试技巧。

4. 分析不同电子元件对发声效果的影响。

二、实验原理电子发声实验主要基于振荡电路的工作原理。

当电路中的电子元件(如电容、电感、电阻等)满足一定的条件时,电路中会产生周期性的电流和电压变化,从而产生声波。

本实验中,我们将搭建一个LC振荡电路,通过调节电感和电容的值来改变振荡频率,进而控制发声频率。

三、实验器材1. 信号发生器2. 振荡电路板3. 电容4. 电感5. 电阻6. 晶体管7. 扬声器8. 万用表9. 钳子10. 焊锡丝11. 焊台12. 实验桌四、实验步骤1. 搭建LC振荡电路:- 将电感L和电容C按照电路图连接在振荡电路板上。

- 搭建完成后,使用万用表检测电路的通断情况。

2. 调试电路:- 调节电感L和电容C的值,观察扬声器是否发声。

- 当扬声器发声时,记录此时的电容C和电感L的值。

3. 分析不同元件对发声效果的影响:- 更换不同容值的电容C,观察扬声器发声频率的变化。

- 更换不同电感的电感L,观察扬声器发声频率的变化。

- 分析不同电阻对电路稳定性和发声效果的影响。

4. 实验数据记录:- 记录不同电容C和电感L值下的扬声器发声频率。

- 记录不同电阻值下的电路稳定性和发声效果。

五、实验结果与分析1. 实验结果:- 当电容C为100nF,电感L为1μH时,扬声器发声频率约为1kHz。

- 当电容C为220nF,电感L为1μH时,扬声器发声频率约为500Hz。

- 当电容C为100nF,电感L为10μH时,扬声器发声频率约为100Hz。

2. 分析:- 根据振荡电路的公式,振荡频率f与电容C和电感L的值有关,即f=1/(2π√(LC))。

- 通过改变电容C和电感L的值,可以调节扬声器发声频率。

- 电阻值对电路稳定性和发声效果有一定影响,电阻值过小可能导致电路不稳定,电阻值过大可能导致发声效果变差。

大学老师科学发声教案设计

大学老师科学发声教案设计

课时:2课时教学目标:1. 让学生了解科学发声的基本原理和方法。

2. 培养学生的正确发声习惯,提高发音清晰度和美感。

3. 提高学生的自信心,使其在公共场合敢于表达自己。

教学重点:1. 科学发声的基本原理和方法。

2. 正确的发声习惯。

教学难点:1. 学生在掌握科学发声方法后,能够在实际应用中灵活运用。

教学过程:第一课时一、导入1. 引导学生回顾日常生活中遇到的发音问题,如声音嘶哑、气息不足等。

2. 提出本节课的学习目标:学习科学发声,提高发音质量。

二、讲授新课1. 讲解科学发声的基本原理:(1)声带的振动产生声音。

(2)气息的流动推动声带振动。

(3)共鸣腔的共鸣增强声音。

2. 讲解科学发声的方法:(1)正确的呼吸:采用腹式呼吸,使气息稳定。

(2)正确的口腔姿势:唇齿放松,舌头灵活。

(3)共鸣腔的运用:打开口腔,使声音更加饱满。

三、课堂练习1. 学生分组练习腹式呼吸。

2. 学生分组练习口腔姿势和共鸣腔的运用。

四、总结1. 强调科学发声的重要性。

2. 鼓励学生在日常生活中多加练习,养成良好的发声习惯。

第二课时一、复习导入1. 回顾上一节课学习的内容。

2. 引导学生分享自己在练习过程中的收获和问题。

二、讲授新课1. 讲解科学发声在实际应用中的注意事项:(1)注意音量的控制,避免过大或过小。

(2)注意语速的调整,使表达更加清晰。

(3)注意语调的变化,使表达更加生动。

三、课堂练习1. 学生分组进行模拟演讲,练习科学发声。

2. 教师点评,指导学生改进。

四、总结1. 强调科学发声在实际应用中的重要性。

2. 鼓励学生在公共场合大胆表达自己,展现自信。

教学评价:1. 课堂练习中,学生的发音清晰度、美感、自信心等方面有所提高。

2. 学生能够掌握科学发声的基本原理和方法,并在实际应用中灵活运用。

电子发声设计实验

电子发声设计实验

电子发声设计实验1.实验目的本实验旨在通过搭建一个简单的电子发声系统,掌握Arduino的基本操作、MIDI的基本概念和相关音频处理技术,以及提高学生对声音合成的理解和实践能力。

2.实验内容(1)搭建硬件平台:使用Arduino开发板来作为硬件平台,根据实验需要连接音频输出、控制电路等组件。

可以选择一款常见的Arduino开发板,如Arduino UNO。

将Arduino连接到计算机,并安装相关的开发环境和驱动程序。

(2)接收MIDI信号:使用MIDI控制器来发送MIDI信号,将MIDI信号通过USB或MIDI接口连接到Arduino开发板。

使用Arduino的串行通信接口(Serial)来接收MIDI信号数据。

(3)解析MIDI信号:使用Arduino代码来解析接收到的MIDI信号数据。

根据MIDI消息类型和参数,将其转换为相应的控制指令和数值,用于控制音频合成和处理。

(4)音频合成和处理:根据接收到的MIDI信号,使用Arduino的PWM输出来控制声音的频率和幅度。

通过PWM信号的调制和滤波等音频处理技术,将数字信号转化为模拟声音信号,并通过音频输出接口连接到扬声器或耳机。

(5)设计音频合成算法:设计和实现音频合成算法,根据MIDI信号的音高和时值等参数,生成相应的波形信号。

可以使用基本的波形发生器(如正弦波、方波等),也可以实现更复杂的合成算法。

可以调节音高、音量、音色等参数,让合成的声音更加丰富和生动。

3.实验步骤(1)搭建硬件平台:根据实验需要连接Arduino开发板、音频输出接口和控制电路。

接线顺序和方式可以参考相关的电路图和文档,确保连接正确和可靠。

(2)配置开发环境:安装Arduino开发环境,并选择正确的Arduino开发板和串行端口。

配置相关的库文件和驱动程序,确保能够正常编译和上传代码。

(3)编写代码:根据实验要求和设计思路,编写Arduino代码。

实现MIDI信号接收、解析和音频合成算法等功能,并通过PWM输出来控制声音的发声。

发声方法训练课程设计

发声方法训练课程设计

发声方法训练课程设计一、课程目标知识目标:1. 学生能理解并掌握基本的发声原理,了解声音的产生、传播和接收过程。

2. 学生能掌握并运用正确的呼吸方法,了解呼吸在发声中的重要性。

3. 学生能了解并区分不同类型的发声方式,如胸声、混声和头声等。

技能目标:1. 学生能通过练习,正确运用腹式呼吸进行发声,提高发声效果。

2. 学生能运用所学的发声方法,进行歌曲演唱、朗读等实践活动,提升表达能力和表演技巧。

3. 学生能通过自我评估和他人反馈,调整发声方法,不断优化发声效果。

情感态度价值观目标:1. 学生培养对音乐的热爱,增强对歌唱、朗读等艺术形式的兴趣。

2. 学生在集体活动中,学会倾听、协作和尊重他人,培养团队精神。

3. 学生通过发声训练,增强自信心,敢于表达自我,提升个人魅力。

课程性质:本课程为音乐学科发声方法训练课程,针对学生年龄特点和知识水平,注重实践性和趣味性。

学生特点:学生处于青少年阶段,好奇心强,活泼好动,但注意力容易分散,需要通过生动有趣的教学方法激发学习兴趣。

教学要求:教师需关注学生的个体差异,因材施教,注重启发式教学,引导学生主动参与,培养其独立思考和解决问题的能力。

同时,注重教学过程中的评价与反馈,帮助学生不断调整和优化发声方法。

二、教学内容1. 发声原理介绍:声音的产生、传播和接收过程,呼吸与发声的关系。

教材章节:《音乐》教科书,第三章“呼吸与发声”。

2. 呼吸方法训练:腹式呼吸、胸腹联合呼吸的练习方法及要领。

教材章节:《音乐》教科书,第三章“呼吸与发声”,第二节“呼吸训练”。

3. 发声方式区分:胸声、混声、头声的特点及运用。

教材章节:《音乐》教科书,第三章“呼吸与发声”,第三节“发声方法”。

4. 发声技巧实践:歌曲演唱、朗读等实践活动,培养学生正确的发声习惯。

教材章节:《音乐》教科书,第四章“歌唱与表达”,第一节“歌曲演唱”;《语文》教科书,相关课文。

5. 发声效果优化:通过自我评估和他人反馈,调整发声方法,提高发声效果。

青岛小学科学五上《10 声音的产生》word教案 (4)

青岛小学科学五上《10 声音的产生》word教案 (4)

声音的产生教学目标:探究目标:1.大胆质疑,通过观察和实验,乐于提出关于声音的问题。

2.能够利用各种感官和辅助工具观察物体发声的现象。

情感目标:乐于与人合作,与人交流,能体验自主探究的快乐。

认知目标:通过自主探究,知道声音是由振动产生的。

教具准备:各种声音的录音带、瓶子、钢尺、鼓、鼓棍、锣、小黄豆、系着线的泡沫小球。

教学重难点:通过实验使学生知道声音是怎样产生的。

教学课时:一课时设计说明:本节课设计重在为学生创设一个开放的探究空间,让学生经历一个较为完整的科学探究过程,培养学生的科学情感态度和价值观,在探究的过程中初步体验科学探究的本质。

教学过程:(教室里摆放九个小组的桌子,桌子上放有号码牌,学生进教室后分小组坐在座位上。

)一、创设情境,导入新课。

1.师:请大家闭上眼睛感受大自然的美妙乐章。

(教师播放录音)2.引导学生谈谈听后感受(用自己的话描述一下你听到了什么)3.学生模仿大自然中听到的各种声音。

4.引导学生提出有关声音的疑问。

5.揭示课题:声音的产生(板书)二、自主探究(一)学生展示带来的发声材料,设计实验。

1.师:大家说说看,鼓、锣、瓶子等物体,你不动它,它能自己发出声音吗?怎样做就能使它们发出声音呢?2.分组实验。

(学生对物体分别进行敲、打、吹……)3.学生汇报实验结果。

4.教师小结:任何物体在静止的状态下,都不能自行发出声音。

当给它们一定作用的力时就能发出声音。

(二)学生根据课前制定的实验计划开展探究,根据探究的问题,选择实验材料,研究实验方法,将讨论的结果记在“小组实验方案表中”。

实验1:在鼓面上撒些小黄豆,敲击鼓面时观察发生的现象。

实验2:把用系着线的小泡沫球靠近敲打后的锣面,观察小泡沫球发生的变化。

实验3:在桌子边上压住钢尺的一端,拨动钢尺的另一端,你有什么发现?小组实验方案表小组共同探究的问题声音是怎样产生的小组内共同选择的实验材料(在选择的材料序号前打“√”)(1)队鼓(上面撒有小黄豆)、鼓棍。

电子发声设计实验

电子发声设计实验

1电子发声设计实验1.1实验内容根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。

1.2实验原理一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。

将一段乐曲的音符对应频率的方波依次送到扬声器,就可以演奏出这段乐曲。

利用8254的方式3—“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。

计数初值的计算如下:计数初值=输入时钟÷ 输出频例如输入时钟采用1MHz,要得到800Hz的频率,计数初值即为1000000÷800。

音符与频率对照关系如表1所示。

对于每一个音符的演奏时间,可以通过软件延时来处理。

首先确定单位延时时间程序(根据CPU的频率不同而有所变化)。

然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序即可。

下面提供了乐曲《友谊地久天长》实验参考程序。

频率表和时间表是一一对应的,频率表的最后一项为0,作为重复的标志。

根据频率表中的频率算出对应的计数初值,然后依次写入8254的计数器。

将时间表中相对时间值带入延时程序来得到音符演奏时间。

实验参考程序流程如图1所示。

1.3实验步骤1. 参考图2所示连接实验线路;2. 编写实验程序,经编译、连接无误后装入系统;3. 运行程序,听扬声器发出的音乐是否正确。

1.4程序代码1.4.1第一个程序IOY0 EQU 0600HMY8254_COUNT0 EQU IOY0+00H ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+02H ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+04H ;8254计数器2端口地址MY8254_MODE EQU IOY0+06H ;8254控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDA TA SEGMENTFREQ_LIST DW 196,262,262,262,330,294,262,294,330,262,262,330,393 ;频率表DW 441,441,393,330,330,262,294,262,294,330,262,221,221,196DW 262,441,393,330,330,262,294,262,294,441,393,330,330,393DW 441,525,393,330,330,262,294,262,294,330,262,221,221,196,262,0 TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4, 12DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,36H ;定时器0、方式3OUT DX,ALBEGIN: MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址MOV DI,OFFSET TIME_LIST ;装入时间表起始地址PLAY: MOV DX,0FH ;输入时钟为1MHz,1M = 0F4240HMOV AX,4240HDIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序CALL DALL YADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否到曲末?JE BEGINJMP PLAYDALL Y PROC ;延时子程序D0: MOV CX,0010HD1: MOV AX,0FF0HD2: DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALL Y ENDPCODE ENDSEND START1.4.2第二个程序【实验内容】按下键盘上的数字键1—7,使得扬声器发出音乐乐谱的1-7音【实验代码】IOY0 EQU 0600HMY8254_COUNT0 EQU IOY0+00H ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+02H ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+04H ;8254计数器2端口地址MY8254_MODE EQU IOY0+06H ;8254控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDA TA SEGMENTtable1 DW 262,294,330,340,393,441,495info db 0ah,0dh,"Please input an integer(1~7):$"DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,36H ;定时器0、方式3OUT DX,ALPLAY:mov si,offset table1mov dx,offset infomov ah,09hint 21hmov ah,01hint 21hsub al,30hxor ah,ahcmp al,0hjz doneadd ax,axadd si,axdec sidec siMOV DX,0FH ;输入时钟为1MHz,1M = 0F4240HMOV AX,4240HDIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,01h ;取出演奏相对时间,调用延时子程序CALL DALL YJMP PLAYDALL Y PROC ;延时子程序D0: MOV CX,0010HD1: MOV AX,0FF0HD2: DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALL Y ENDPdone:CODE ENDSEND START【下载本文档,可以自由复制内容或自由编辑修改内容,更多精彩文章,期待你的好评和关注,我将一如既往为您服务】。

电子发声实验课程设计

电子发声实验课程设计

微机原理课程设计课题:电子发声设计实验专业:学号:姓名:一、课题名称及设计组成员二、课题内容及要求课题名:电子发声设计实验1、要求:根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。

要求至少要完成下列项目的一项(1)可播放两首不同的乐曲(2)根据不同的按键播放不同的音乐(3)可改变音乐的音调(4)可显示播放乐曲的名称2、所设计的电路实现的功能:设计中完成了实验要求中提出的要求。

设计中实现了,用按键进行随时切换两首音乐(友谊地久天长,两只老虎)和对所播放的当前音乐进行两种不同音调(中音和低音)的随时切换的控制操作,其中用总开关K_7进行播放开关的总控制,开关K_0用于音乐播放的选择,开关K_1用于对当前播放音乐的音调进行选择。

设计中还实现了对16×16的LED 管的控制运用点阵汉字输出歌名。

三、方案、系统组成框图和工作原理说明1、设计方案及原理:本设计中音乐播放控制为利用对8255和8254芯片的控制操作得以实现。

音乐名的输出为利用总线对16×16点阵地控制来实现。

(1)本设计中PC发声系统以8254的计数器0为核心。

系统初始化时,计数器0工作在方式3的“方波发声器”方式,同过将音乐频率转换为相应的计数初值,改变计数器0的计数初值就可以使扬声器发出不同的频率的音响。

(2)发生系统控制为受8255芯片控制,外界通过改变对8255芯片的PA口的不同输入来实现播放功能上的选择。

(3)演奏但音符,为利用一个音符对应一个频率,将与一个频率对应的计数初值写入计数器0,扬声器就发出相应的音调。

计数器初值的计算公式为:计数初值=1MHZ÷输出频率,其中1MHZ转换为16进制为0F4240H。

(4)控制音符的演奏时间,是通过每一个音符规定一个“单位时间”:单位时间×N=音符的演奏时间。

其中,N为调试参数,一首歌只有一个调试参数。

2、系统组成(电路图):图1. 对8254与系统的连接图2.对8255单元的连接图3.点阵汉字的接线四、程序功能描述及程序流程(1)程序功能描述:如程序流程图所示。

大学声乐发声教案模板范文

大学声乐发声教案模板范文

一、教学目标1. 使学生掌握科学的发声原理和方法,了解歌唱器官,建立正确的歌唱观念。

2. 提高学生的气息控制能力和声音的共鸣效果,实现发声、气息共鸣的协调统一。

3. 培养学生的歌唱审美能力和演唱能力,为成为合格的声乐教学和演唱人才奠定基础。

二、教学内容1. 声乐发声原理2. 发声技巧3. 声乐作品分析:作品表达三、教学要求1. 理论要求:掌握歌唱发声的生理原理,了解歌唱器官,建立正确的歌唱观念。

2. 技术要求:- 对气息和声音有一定的控制能力;- 进一步稳定歌唱状态,并做到上下声区基本统一;- 要求吐字清楚、准确;- 有基本独立分析处理和表现声乐作品的能力,演唱较为完整、生动。

四、教学重点1. 进一步调整、稳固学生的歌唱状态;2. 强调歌唱中气息、声音、情感的良好配合;3. 对作品的理解和演绎能力。

五、教学难点1. 稳定歌唱状态;2. 作品理解与作品表现。

六、教学方法1. 讲授法:讲解声乐发声原理、发声技巧等理论知识。

2. 示范法:教师现场示范,让学生直观感受正确的发声方法。

3. 讨论法:引导学生对声乐发声技巧进行探讨,互相学习、共同进步。

4. 实践法:让学生通过练习,掌握正确的发声方法。

七、教学过程第一阶段(四周)1. 介绍声乐发声原理,让学生了解歌唱器官和发声机制。

2. 讲解气息控制的方法,示范并指导学生进行气息练习。

3. 讲解发声技巧,如共鸣、咬字、呼吸等,并进行现场示范。

4. 让学生进行发声练习,教师逐一指导。

第二阶段(四周)1. 继续巩固气息控制和发声技巧,提高学生的歌唱能力。

2. 引导学生进行声乐作品分析,培养学生的审美能力和表现力。

3. 让学生演唱歌曲,教师进行点评和指导。

第三阶段(四周)1. 深入讲解声乐作品分析,提高学生的音乐素养。

2. 让学生进行独立演唱,培养学生的自信心和舞台表现力。

3. 邀请专业人士进行点评,让学生了解自己的不足和进步。

第四阶段(四周)1. 对整个学期的教学内容进行总结,巩固学生的学习成果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理课程设计课题:电子发声设计实验专业:学号:姓名:一、课题名称及设计组成员二、课题内容及要求课题名:电子发声设计实验1、要求:根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。

要求至少要完成下列项目的一项(1)可播放两首不同的乐曲(2)根据不同的按键播放不同的音乐(3)可改变音乐的音调(4)可显示播放乐曲的名称2、所设计的电路实现的功能:设计中完成了实验要求中提出的要求。

设计中实现了,用按键进行随时切换两首音乐(友谊地久天长,两只老虎)和对所播放的当前音乐进行两种不同音调(中音和低音)的随时切换的控制操作,其中用总开关K_7进行播放开关的总控制,开关K_0用于音乐播放的选择,开关K_1用于对当前播放音乐的音调进行选择。

设计中还实现了对16×16的LED 管的控制运用点阵汉字输出歌名。

三、方案、系统组成框图和工作原理说明1、设计方案及原理:本设计中音乐播放控制为利用对8255和8254芯片的控制操作得以实现。

音乐名的输出为利用总线对16×16点阵地控制来实现。

(1)本设计中PC发声系统以8254的计数器0为核心。

系统初始化时,计数器0工作在方式3的“方波发声器”方式,同过将音乐频率转换为相应的计数初值,改变计数器0的计数初值就可以使扬声器发出不同的频率的音响。

(2)发生系统控制为受8255芯片控制,外界通过改变对8255芯片的PA口的不同输入来实现播放功能上的选择。

(3)演奏但音符,为利用一个音符对应一个频率,将与一个频率对应的计数初值写入计数器0,扬声器就发出相应的音调。

计数器初值的计算公式为:计数初值=1MHZ÷输出频率,其中1MHZ转换为16进制为0F4240H。

(4)控制音符的演奏时间,是通过每一个音符规定一个“单位时间”:单位时间×N=音符的演奏时间。

其中,N为调试参数,一首歌只有一个调试参数。

2、系统组成(电路图):图1. 对8254与系统的连接图2.对8255单元的连接图3.点阵汉字的接线四、程序功能描述及程序流程(1)程序功能描述:如程序流程图所示。

程序下载链接、并运行后,开始通过对外界按键扫描,来检查应进行采取的操作,根据外界不同的输入,完成不同的程序跳转,从而实现相应的播放功能。

其中K0、K1为外界电子控制单元。

分为0和1,即低电平和高电平。

(2)程序流程图:五、程序源代码及注释1.在LED单元中显示歌曲名称ROW1 EQU 0600H ;端口定义ROW2 EQU 0640HCOL1 EQU 0680HCOL2 EQU 06C0HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDS;定义为数据段INCLUDE HZDOTht.ASM ;数据字段为汉字点阵库, 在HZDOTht.ASM;文件中CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, ALBG0: MOV AX, 160MOV SI, OFFSET HZDOThtBG1: CALL DISPADD SI, 2DEC AXJZ BG0JMP BG1;======显示汉字子程序======;入口参数: SI = 存放汉字起始地址DISP: MOV CX, 000FHPUSH AXML0: PUSH CXMOV BL, 01HMOV CX, 0008HML1: MOV DX, ROW1 ;控制0--7行MOV AL, 00HOUT DX, ALMOV AL, [SI]not alMOV DX, COL1 ;0--7列OUT DX, ALINC SIMOV AL, [SI]not alMOV DX, COL2 ;8--15列OUT DX, ALINC SIMOV DX, ROW1 ;控制0--7行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML1MOV DX, ROW1MOV AL, 00HOUT DX, ALMOV CX, 0008HML2: MOV DX, ROW2 ;控制8--15行MOV AL, 00HOUT DX, ALMOV AL, [SI]not alMOV DX, COL1 ;0--7列OUT DX, ALINC SIMOV AL, [SI]not alMOV DX, COL2 ;8--15列OUT DX, ALINC SIMOV DX, ROW2 ;控制8--15行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRETDELAY: PUSH CX ;延时子程序MOV CX, 0100HDL1: PUSH AXPOP AXLOOP DL1POP CXRETCODE ENDSEND START此程序中8255芯片和点阵LED单元的连接,用来实现在点阵LED显示单元来显示汉字的功能。

通过调用汉字存放单元的地址,在LED单元中可以显示出流动的字体。

此程序实现的字体是“友谊天长地久”。

2.此程序用来实现程序流程图中所示的功能,即通过开关来控制播放曲目的的切换和音调的改变。

IOY3 EQU 06C0HMY8254_COUNT0 EQU IOY3+00H ;8254计数器0端口地址MY8254_COUNT1 EQU IOY3+02H ;8254计数器1端口地址MY8254_COUNT2 EQU IOY3+04H ;8254计数器2端口地址MY8254_MODE EQU IOY3+06H ;8254控制寄存器端口地址IOY0 EQU 0600HMY8255_A EQU IOY0+00HMY8255_B EQU IOY0+02HMY8255_C EQU IOY0+04HMY8255_MODE EQU IOY0+06HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDA TA SEGMENTFREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;第一首歌频率表DW 495,495,624,742,833,833,833,742,624DW 624,495,556,495,556,624,495,416,416,371DW 495,833,742,624,624,495,556,495,556,833DW 742,624,624,742,833,990,742,624,624,495DW 556,495,556,624,495,416,416,371,495,0TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;第一首歌时间表DB 6, 2, 4, 4, 12, 1, 3, 6, 2DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 6, 2, 4, 4, 12FREQ_LIST1 DW 330,371,416,330 ;第二首歌频率表DW 330,371,416,330DW 416,441,495DW 495,556,495,441,416,330DW 495,556,495,441,416,330DW 330,248,330DW 330,248,330,0TIME_LIST1 DB 4,4,4,4 ;第二首歌时间表DB 4,4,4,4DB 4,4,8DB 4,4,8DB 2,2,2,2,4,4DB 2,2,2,2,4,4DB 4,4,8DB 4,4,8FREQ_LIST2 ;第一首歌频率表变音后TIME_LIST2 ;第一首歌时间表变音后DB 4, 6, 2, 4, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 12, 1, 3, 6, 2DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 6, 2, 4, 4, 12FREQ_LIST3 ;第二首歌频率表变音后TIME_LIST3 ;第二首歌时间表变音后DB 4,4,4,4DB 4,4,4,4DB 4,4,8DB 4,4,8DB 2,2,2,2,4,4DB 2,2,2,2,4,4DB 4,4,8DB 4,4,8DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TASTART: MOV AX, DATAMOV DS, AXMOV DX, MY8255_MODE ;初始化8254工作方式MOV AX,90HMOV DX,AX ;A口作为输入INPUT:MOV DX, MY8254_MODE ;初始化8254工作方式MOV AL, 36H ;定时器0、方式3OUT DX, ALMOV DX, MY8255_A ;检查输入,是否要设中断问题IN AL,DXCMP AL,80HJZ NEAR PTR BEGINCMP AL,81HJZ NEAR PTR BEGIN1CMP AL,82HJZ NEAR PTR BEGIN2CMP AL,83HJZ NEAR PTR BEGIN3JNZ INPUTBEGIN: MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址MOV DI,OFFSET TIME_LIST ;装入时间表起始地址PLAY:MOV DX,MY8255_AIN AL,DXCMP AL,80HJNZ NEAR PTR INPUTMOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H MOV AX,4240HDIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序CALL DALL YADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否到曲末?JE NEAR PTR INPUTJMP PLAYBEGIN1: MOV SI,OFFSET FREQ_LIST1 ;装入频率表起始地址MOV DI,OFFSET TIME_LIST1 ;装入时间表起始地址PLAY1:MOV DX,MY8255_AIN AL,DXCMP AL,81HJNZ NEAR PTR INPUTMOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H MOV AX,4240HDIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序CALL DALL YADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否到曲末?JE NEAR PTR INPUTJMP NEAR PTR PLAY1BEGIN2: MOV SI,OFFSET FREQ_LIST2 ;装入频率表起始地址MOV DI,OFFSET TIME_LIST2 ;装入时间表起始地址PLAY2:MOV DX,MY8255_AIN AL,DXCMP AL,82HJNZ NEAR PTR INPUTMOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H MOV AX,4240HDIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序CALL DALL YADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否到曲末?JE NEAR PTR INPUTJMP PLAY2BEGIN3: MOV SI,OFFSET FREQ_LIST3 ;装入频率表起始地址MOV DI,OFFSET TIME_LIST3 ;装入时间表起始地址PLAY3:MOV DX,MY8255_AIN AL,DXCMP AL,83HJNZ NEAR PTR INPUTMOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H MOV AX,4240HDIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序CALL DALL YADD SI,2INC DICMP WORD PTR [SI],0 ;判断是否到曲末?JE NEAR PTR INPUTJMP PLAY3DALL Y PROC ;延时子程序D0: MOV CX,0010HD1: MOV AX,0F00HD2: DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALL Y ENDPDONE: MOV AX,4C00HINT 21HCODE ENDSEND START本程序中,分别设定了TIME_LIST1 TIME_LIST2 TIME_LIST3 和FREQ_LIST1 FREQ_LIST2 FREQ_LIST3,其中TIME_LIST是歌曲时间表,FREQ_LIST是歌曲频率表。

相关文档
最新文档