5-11聲音產生控制實習 (Sound generation)

Slides:



Advertisements
Similar presentations
苏少版《音乐》教材分析与 教学研究 江苏省中小学教研室 戴海云. 提 纲 第一部分 《音乐》教材分析 编写思路 主要特点 第二部分. 《音乐》教学实验与研究 教学研究 案例分析.
Advertisements

第 3 章 聽覺 每章扉頁 3.1 聽覺 3.2 人類耳朵的反應 3.3 聽覺缺陷.
課程名稱:多變的聲音 編授教師: 中興國中 楊秉鈞.
第一部分 中考基础复习 第一章 声现象.
民间器乐 第五章.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
孔子傳第三集: 興辦私學-禮學之美 生命教育工作坊.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
邵阳学院 信息工程系电子实践教学中心 江世明
A B C D E F 5-2 七段數字顯示控制實習 Input 0H 1H 2H 3H 4H 5H 6H 7H 8H 9H 0AH 0BH
5-3 8x8矩陣LED控制實習.
題目:LED電子數位時鐘 第 二組 組員: 陳柏霖 李育昇.
基本程式範例.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
4-10 STM Timer/Counter 與比較吻合輸出
单片机原理与应用.
第9章 串行扩展技术 (课时:6学时).
5-4 4x4矩陣鍵盤控制實習.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
A B C D E F 5-2 七段數字顯示控制實習 Input 0H 1H 2H 3H 4H 5H 6H 7H 8H 9H 0AH 0BH
5-8 光遮斷器控制實習.
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第七章 定时/计数器.
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二週 記譜法.
電子音樂 通訊系 B 楊穎穆.
第四章 指令系统及汇编语言程序设计.
5-11聲音產生控制實習 Q: How to generate a sound from the speaker?
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
4-15 WDT HT66F50.
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
5-6 串列埠模式0輸出埠擴充實習.
5-13 串列通訊實習.
4-9 Timer/Counter 控制七段速度
羊樂多笛笛 作者:吳滋錕、劉智昇.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机原理与应用.
人民音乐出版社 七年级.
國立苑裡高中 基礎物理講義 聲音(週期波)三要素 噪音
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第1章 微型计算机基础.
Presentation transcript:

5-11聲音產生控制實習 (Sound generation) Q: How to generate a sound from the speaker? A: The 8051 microprocessor generate square signal of a certain frequency on P3.7. This signal controls the ON/OFF of the transistor Q1 in series connection with the speaker. The ON/OFF of Q1 controls the current flowing through the speaker.

Program function (範例) Program 5_11_1: 使揚聲器持續發出 1 kHz 的聲音。 Program 5_11_3: 利用 44 矩陣鍵盤之 0~E 鍵,產生低音的 Si 到高音的 Si 共15個音階,以模擬電子琴的鍵盤。按 ”F” 鍵則不發出聲音。 Program 5_11_4: 計數 55 5振盪電路的脈波數,來控制揚聲器演奏中音的Do到高音的Do等八個音階,使達到利用脈波信號的週期控制音階的拍數。操作時,將JP4之bit 2與 bit 3短路。 Program 5_11_5: 連續播放 小蜜蜂 樂曲,其簡譜如下所示。 |5 3 3  |4 2 2  |1 2 3 4 |5 5 5  | |1 3 5 5 |3    | |2 2 2 2 |2 3 4  |3 3 3 3 |3 4 5  | |1    |

Program function (自我練習) Program 5_11_1_1:使揚聲器持續發出 400 Hz 的聲音。 Program 5_11_2_1: 忙音是以 400 Hz 的聲音叫0.5秒、停0.5秒而形成的,請設計此聲音程式。 Program 5_11_2_2: 鈴聲是以320 Hz和 480 Hz 的聲音交替響25 ms 而形成的,請設計一程式,模擬電話鈴聲,每響1秒鐘,靜音2秒鐘。 (Design a program that generates phone ring. The phone ring contains alternate 320 Hz and 480 Hz sounds with 2 sec of silence after every 1 sec of ringing. ) Program 5_11_3_1: 修改程式,使按下 “F” 鍵時,能將中音的七個音階播放一遍。 Program 5_11_3_2: 修改程式,除了依按鍵的值發出音階聲音以外,另將按鍵的二進制值由D5 LED 上顯示出來。 Program 5_11_4_1: 程式5_11_4 的TABLE表中所設定的資料為中音的Do到高音的Do之資料,所以只會連續播放Do、Re、Mi、Fa、So、La、Si、Do的音,若改成其他的音階資料,則將演奏不同的樂曲。請更改Table 表中的資料,自行創作一首樂曲出來。 Program 5_11_4_2: 修改程式5_11_4,使其在每播完一個音階之後,停頓 50 ms,再播放下一個音階。(提示:每計數一個脈波,就呼叫一個50 ms的延時副程式來達成。) Program 5_11_5_1: 請自行找出16首音樂之簡譜,利用鍵盤的 0 ~ F 按鍵來分別控制這16首音樂的播放,以做出一台點歌機。

5-11-1 基本發聲練習 (一) Program function: 5-11-1 基本發聲練習 (一) Program function: To make the speaker generate a 1 kHz sound. One period = (0.5 + 0.5) ms = 1 ms. Fundamental frequency = 1 kHz.

Program 5_11_1 ORG 000H START: SETB P3.7 CALL DELAY CLR P3.7 JMP START ;============================== ; DELAY 0.5mS DELAY: MOV R7,#249 DJNZ R7,$ RET END One period = (0.5 + 0.5) ms = 1 ms. Fundamental frequency = 1 kHz.

5-11-2 基本發聲練習 (二) Program function: To make the speaker repeatedly 5-11-2 基本發聲練習 (二) Program function: To make the speaker repeatedly (1) generate a 1 kHz sound for 0.5 second and (2) keep silent for 0.5 second.

5-11-2 ORG 000H START: MOV R0,#5 NEXT2: MOV R1,#100 NEXT1: SETB P3.7 ;============================== ; DELAY 0.5mS = half period of square wave DELAY: MOV R7,#249 DJNZ R7,$ RET ; DELAY 0.5S = silence time DL05S: MOV R5,#5 DL2: MOV R6,#200 DL1: DJNZ R6,DL1 DJNZ R5,DL2 END ORG 000H START: MOV R0,#5 NEXT2: MOV R1,#100 NEXT1: SETB P3.7 CALL DELAY CLR P3.7 DJNZ R1,NEXT1 DJNZ R0,NEXT2 CALL DL05S JMP START Duration of a sound = 1 ms x 5 x 100 = 0.5 s

The DELAY procedure Machine cycle Repetition times MOV R7,#249 1 DJNZ R7,$ 2 249 RET Delay time = (1 x 1 + 2 x 249 + 2 x 1) machine cycles = 501 machine cycles = 501 x 1 s = 0.501 ms

5-11-3 電子琴 Program function: Key 1 2 3 4 5 6 7 8 9 A B C D E F Sound 5-11-3 電子琴 Frequency Period ½ Period Low pitch Middle Pitch High Frequency Period ½ Period Frequency Period ½ Period Program function: Key 1 2 3 4 5 6 7 8 9 A B C D E F Sound Si Do Re Mi Fa So La silent

5-11-3 ORG 000H JMP MAIN ORG 003H JMP INT0 ORG 100H MAIN: MOV IE,#10000001B SETB IT0 MOV DPTR,#TABLE JMP $ ;============================== INT0: CLR EA MOV A,P1 ANL A,#0FH CJNE A,#0FH,PLAY JMP RETURN PLAY: MOVC A,@A+DPTR CONTI: MOV R0,A SETB P3.7 CALL DELAY CLR P3.7 JNB P3.2,CONTI RETURN: SETB EA RETI ½ period of SI = 1012 us ;============================== ; This table stores R0 values ; R0 value = (half period in us)/10 TABLE: DB 101 ;SI: 1012/10 DB 96 ;DO: 956/10 DB 85 ;RE: 851/10 DB 76 ;MI: 759/10 DB 72 ;FA:716/10 DB 64 ;SO:638/10 DB 57 ;LA: 568/10 DB 51 ;SI: 506/10 DB 48 ;DO: 478/10 DB 43 ;RE: 426/10 DB 38 ;MI: 380/10 DB 36 ;FA: 358/10 DB 32 ;SO: 319/10 DB 28 ;LA: 284/10 DB 25 ;SI: 253/10 ; DELAY R0 X 10 uS (1/2 period) DELAY: MOV R7,#4 DJNZ R7,$ DJNZ R0,DELAY RET END 1 byte

Instruction Machine cycle Times DELAY: MOV R7,#4 1 1 x R0 DJNZ R7,$ 2 4 * R0 DJNZ R0,DELAY 1 * R0 RET Delay time = (1 x 1 + 2 x 4 + 2 x 1) x R0 + 2 x 1 = 11 x R0 +2 (in machine cycle)

5-11-4 脈波控制節拍器 TL0  Sound 1 2 3 4 5 6 7 .

TMOD (SFR 89H) Timer 1 Timer 0 Gate C/T M1 M0 1 M1 M0 Mode 1 M1 M0 Mode 13-bit timer 1 16-bit timer 2 8-bit autoload 3 2 independent 8-bit timer

5-11-4 ORG 000H MOV DPTR,#TABLE MOV TMOD,#00000110B MOV TH0,#0 ; counter’s initial value MOV TL0,#0 ; counter’s initial value SETB TR0 ; to start counting NEXT: MOV A,TL0 ANL A,#00000111B MOVC A,@A+DPTR MOV R0,A ; R0 = the tone SETB P3.7 CALL DELAY MOV R0,A CLR P3.7 JMP NEXT ;============================== TABLE: DB 96 ;DO DB 85 ;RE DB 76 ;MI DB 72 ;FA DB 64 ;SO DB 57 ;LA DB 51 ;SI DB 48 ;DO ; DELAY R0X10uS DELAY: MOV R7,#4 DJNZ R7,$ DJNZ R0,DELAY RET END

5-11-5 音樂盒 Program function: To play 小蜜蜂 小蜜蜂 簡譜 4/4 5-11-5 音樂盒 Program function: To play 小蜜蜂 小蜜蜂 簡譜 4/4 | 5 3 3  | 4 2 2  | 1 2 3 4 | 5 5 5  | | 5 3 3  | 4 2 2  | 1 3 5 5 | 3    | | 2 2 2 2 | 2 3 4  | 3 3 3 3 | 3 4 5  | | 5 3 3  | 4 2 2  | 1 3 5 5 | 1    | 二拍= 1 second 一拍= 0.5 second

5-11-5 ; ------------------------------ ; Input: A = tone PLAY: MOV R0,A SETB P3.7 CALL DELAY MOV R0,A CLR P3.7 JNB F0,PLAY JMP NEXT ORG 000H JMP MAIN ORG 00BH JMP TIMER0 ORG 100H MAIN: MOV IE,#10000010B MOV TMOD,#00000001B MOV TH0,#>(65536-50000) MOV TL0,#<(65536-50000) SETB TR0 CONTI: MOV R1,#0 ;DATA POINT NEXT: CLR F0 MOV DPTR,#TABLE ;GET BEAT (拍數) MOV A,R1 MOVC A,@A+DPTR MOV R2,A ; R2 = 10 x the no. of beats INC DPTR ; GET TONE (音調) MOVC A,@A+DPTR ; A = tone CJNE A,#0,PLAY ; A = 0 at the end of the song JMP CONTI ;============================== ; Input: R2 = 10  50 ms x 10 = 0.5 s = 1 beat ; R2 = 20  50 ms x 20 = 1 s = 2 beat TIMER0: CLR TR0 DJNZ R2,EXIT CALL DLY50MS SETB F0 INC R1 ; to point to next tone INC R1 ; EXIT: MOV TH0,#>(65536-50000) MOV TL0,#<(65536-50000) SETB TR0 RETI

5-11-5 (cont.) ;============================== ½ period / 10 1 beat 0.5 sec 2 beat 1 sec ;============================== TABLE: DB 10,64,10,76,20,76 ; 5 3 3  ; 10 = 1 beat, 20 = 2 beats DB 10,72,10,85,20,85 ; 4 2 2  DB 10,96,10,85,10,76,10,72 ; 1 2 3 4 DB 10,64,10,64,20,64 ; 5 5 5  DB 10,64,10,76,20,76 ; 5 3 3  DB 10,72,10,85,20,85 ; 4 2 2  DB 10,96,10,76,20,64 ; 1 3 5 5 DB 40,76 ; 3    DB 10,85,10,85,10,85,10,85 DB 10,85,10,76,20,72 DB 10,76,10,76,10,76,10,76 DB 10,76,10,72,20,64 DB 10,64,10,76,20,76 DB 10,72,10,85,20,85 DB 10,96,10,76,10,64,10,64 DB 40,96 DB 0,0 ;============================== ; DELAY R0X10uS DELAY: MOV R7,#4 DJNZ R7,$ DJNZ R0,DELAY RET ; DELAY 50mS DLY50MS: MOV R5,#100 DL1: MOV R6,#249 DJNZ R6,$ DJNZ R5,DL1 END