单片机控制LED及蜂鸣器课程设计报告
单片机实验报告蜂鸣器
一、实验目的1. 熟悉51单片机的基本结构和工作原理。
2. 掌握51单片机的I/O口编程方法。
3. 学习蜂鸣器的驱动原理和应用。
4. 通过实验,提高动手实践能力和问题解决能力。
二、实验原理蜂鸣器是一种将电信号转换为声音信号的器件,常用于产生按键音、报警音等提示信号。
根据驱动方式,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。
1. 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。
2. 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才能发声,调整提供振荡脉冲的频率,可发出不同频率的声音。
在本次实验中,我们使用的是无源蜂鸣器。
51单片机通过控制P1.5端口的电平,产生周期性的方波信号,驱动蜂鸣器发声。
三、实验器材1. 51单片机实验板2. 蜂鸣器3. 连接线4. 电路焊接工具5. 编程软件(如Keil)四、实验步骤1. 电路连接:- 将蜂鸣器的正极连接到51单片机的P1.5端口。
- 将蜂鸣器的负极接地。
2. 程序编写:- 使用Keil软件编写程序,实现以下功能:1. 初始化P1.5端口为输出模式。
2. 通过循环,不断改变P1.5端口的电平,产生方波信号。
3. 调整方波信号的频率,控制蜂鸣器的音调。
3. 程序下载:- 将程序下载到51单片机中。
4. 实验观察:- 启动程序后,观察蜂鸣器是否发声,以及音调是否与程序设置一致。
五、实验结果与分析1. 实验结果:- 成功驱动蜂鸣器发声,音调与程序设置一致。
2. 结果分析:- 通过实验,我们掌握了51单片机的I/O口编程方法,以及蜂鸣器的驱动原理。
- 在程序编写过程中,我们学习了方波信号的生成方法,以及如何调整方波信号的频率。
六、实验总结本次实验成功地实现了51单片机控制蜂鸣器发声的功能,达到了预期的实验目的。
通过本次实验,我们提高了以下能力:1. 对51单片机的基本结构和工作原理有了更深入的了解。
2. 掌握了51单片机的I/O口编程方法。
3. 学习了蜂鸣器的驱动原理和应用。
单片机《蜂鸣器》实验报告
单片机《蜂鸣器》实验报告实验报告:蜂鸣器实验工具和器材:Proteus仿真软件,Keil程序编写软件,蜂鸣器,AT89C51单片机。
实验原理:蜂鸣器分为压电式和电磁式两种类型。
本实验采用的是电磁式蜂鸣器。
蜂鸣器又分为有源和无源两种类型。
本实验采用的是有源蜂鸣器。
通过51单片机和C程序,将程序所设计的算法与蜂鸣器电路连接起来,采用循环函数配合多个延时来实现各个音节的有规律发声,合成一首完整的音乐。
本实验采用较为简单的一首儿歌《两只老虎》来体现。
硬件电路说明:本实验使用电磁式蜂鸣器,蜂鸣器连接单片机P2.0端口,另一端接地。
通过C程序产生的hex文件控制蜂鸣器发声,播放一首完整的歌曲。
音节的曲调和间隔时间都是构成歌曲的一个重要部分,需要调节频率和利用延时函数。
控制发声频率要产生音频脉冲,只要算出某一音频的周期/频率,然后将此周期除以2(即为半周期的时间)。
利用定时器计时这半个周期时间,就可在I/O脚上得到此频率的脉冲。
利用AT89C51的内部定时器使其工作在计数器模式下,改变计数值TH0及TL0从而产生不同频率。
此外,结束符和休止符可以分别用代码00H和XXX来表示,若查表结果为0x00,则表示曲子终了;若查表结果为0xff,则产生相应的停顿效果。
软件程序说明:主函数采用while和for循环,并且引用延时函数,对各部分程序进行调用。
与采用一般的延时函数相比,可以分别控制歌曲各个音节的持续发声。
在主函数中,使用多个for循环来控制每个音节的起始和结束,以实现蜂鸣器对一首完整歌曲的播放。
通过调用不同的延时函数,实现有节奏的音节发声,并将它们串联起来。
在调用Beep函数时,需要进行定义。
在主函数中,分别在每个音节开始前后的两个for循环中调用Beep函数。
通过Beep=~Beep和Beep=1指令的调用,实现各个音节的发声和停止,从而控制歌曲的有节奏播放。
为了实现各个音节的延时发声,我们使用了多个延时程序,例如500ms和700ms。
单片机课程设计报告(利用蜂鸣器播放音乐)
课程设计:嵌入式系统应用题目名称:利用蜂鸣器实现音乐播放功能姓名:学号:班级:完成时间:1设计的任务设计内容:动手焊接一个51单片机设计目标:利用单片机上的蜂鸣器实现音乐播放功能2 设计的过程2.1 基本结构1.STC89C52RC在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期,工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机),工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz,用户应用程序空间为8K字节。
(STC89C52RC引脚图)STC89C52RC单片机的工作模式:(1)典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序(2)空闲模式:典型功耗2mA(3)正常工作模式:典型功耗4Ma~7mA(4)唤醒,适用于水表、气表等电池供电系统及便携设备2.蜂鸣器及其工作原理:蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
本实验采用的是电磁式蜂鸣器。
蜂鸣器按其是否带有信号源又分为有源和无源两种类型。
有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。
无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。
本实验采用的是有源蜂鸣器。
(蜂鸣器与单片机连接电路图)2.2 软件设计过程1.蜂鸣器发声原理本实验由于采用有源蜂鸣器,只需将引脚端口P3^4清零,蜂鸣器即可发声;P3^4置位,蜂鸣器停止发声。
单片机实验报告蜂鸣器
单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言:单片机是现代电子技术中的重要组成部分,其广泛应用于各个领域。
蜂鸣器作为一种常见的声音输出设备,在单片机实验中也被广泛使用。
本文将介绍蜂鸣器的原理、实验过程以及实验结果,并对实验中遇到的问题进行分析和解决。
一、蜂鸣器的原理蜂鸣器是一种能够产生声音的装置,其原理基于压电效应。
压电材料在受到外力作用时会产生电荷,而当外力消失时,压电材料则会产生相反方向的电荷。
利用这种特性,蜂鸣器可以通过施加电压来使压电材料振动,从而产生声音。
二、实验过程1. 准备工作:首先,我们需要准备一块单片机开发板、一个蜂鸣器和相关电路连接线。
2. 连接电路:将单片机的IO口与蜂鸣器连接,注意正确连接正负极。
一般情况下,蜂鸣器的正极连接到单片机的IO口,负极连接到GND。
3. 编写程序:使用单片机开发工具,编写一个简单的程序来控制蜂鸣器。
例如,我们可以通过控制IO口的高低电平来控制蜂鸣器的开关状态。
4. 烧录程序:将编写好的程序烧录到单片机中。
5. 实验测试:将单片机开发板连接到电源,观察蜂鸣器是否发出声音。
可以通过改变程序中IO口的电平来控制蜂鸣器的开关状态,从而产生不同的声音。
三、实验结果经过实验,我们成功地控制了蜂鸣器的开关状态,并产生了不同的声音效果。
通过改变程序中IO口电平的高低,我们可以调节蜂鸣器的频率和音调。
此外,我们还可以通过控制IO口的输出时间来调节蜂鸣器发声的时长。
四、问题分析与解决在实验过程中,我们可能会遇到一些问题,例如蜂鸣器无法发声或声音不稳定等。
这些问题可能是由以下原因引起的:1. 连接错误:检查蜂鸣器的正负极是否正确连接到单片机的IO口和GND。
确保连接线没有松动或接触不良。
2. 程序错误:检查程序中的代码是否正确,特别是IO口的控制部分。
确保程序正确地控制了蜂鸣器的开关状态。
3. 电源问题:检查单片机开发板的电源是否正常。
如果电源电压不稳定,可能会导致蜂鸣器无法正常工作。
蜂鸣器变声控制实验单片机实验报告
蜂鸣器变声控制实验单片机实验报告一、实验目的1、了解单片机控制蜂鸣器发声的原理。
2、学会使用单片机控制蜂鸣器的频率、占空比、时长等特性。
3、掌握编写蜂鸣器变声程序的方法。
二、实验器材1、单片机培训板。
2、蜂鸣器。
3、杜邦线若干。
三、实验原理1、蜂鸣器通常是由震动片、驱动电路和音箱构成的,同时需要满足一定的电源条件和频率特性才能发声。
四、实验内容1、将蜂鸣器与单片机连接好。
3、观察蜂鸣器的变声效果。
五、实验步骤1、将蜂鸣器与单片机连接好。
将蜂鸣器的正极连接单片机的P1.0口,将蜂鸣器的负极连接单片机的GND口。
2、编写蜂鸣器变声程序,具体过程如下:1)定义相关变量和函数:需要定义相关变量和函数,例如频率、占空比、时长等变量,以及控制蜂鸣器发声的函数。
2)初始化:需要对单片机进行初始化设置,包括端口初始化、定时器初始化等。
3)控制蜂鸣器发声:通过改变PWM的频率、占空比、时长等特性,来控制蜂鸣器的发声。
4)停止蜂鸣器发声:在需要停止蜂鸣器发声时,关闭PWM输出端口即可。
3、观察蜂鸣器的变声效果。
根据程序设定的频率、占空比和时长等特性,可以看到蜂鸣器在不同的情况下发出不同的声音。
六、实验结果1、在经过程序设计后,蜂鸣器成功发出变声效果,根据程序的要求可以发出不同的声音。
3、在实验中还可以通过添加其他的控制模块,例如按键、温度传感器等,来实现更复杂的控制操作。
1、本次实验主要掌握了单片机控制蜂鸣器发声的原理和方法,通过自己编写程序来控制蜂鸣器发声。
3、通过本次实验,学生们不仅掌握了相关的电路和编程知识,同时还锻炼了自己的实践能力和创新思维。
单片机课程设计报告蜂鸣器
单片机课程设计报告蜂鸣器河南师范大学新联学院单片机课程设计报告课程单片机原理及接口技术设计题目蜂鸣器演奏歌曲年级专业级计算机科学与技术学号 11学生姓名李指导教师莹6 月 15 日蜂鸣器演奏歌曲实验报告一、要求完成驱动蜂鸣器歌曲演奏的实验二、目的1、学习KEIL软件的使用方法;2、掌握BST-V51单片机学习板设计蜂鸣器音乐的发生;3、掌握设计中各模块的功能,能够填入并演奏曲子;4、学习乐谱的基本知识,掌握其演奏的原理。
三、分析1、基本原理简述声音是经过振动产生的。
单片机对某一引脚以一定的频率循环置1置0,该引脚便产生一定频率的方波,方波经过放大,作用于一定的物理实件(蜂鸣器),就产生了一定频率的声音。
若改变输出方波的频率,产生的声音随之改变。
经过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就能够产生电子音乐。
音乐的播放选择能够经过按键的输入得以实现。
为简便起见,以一定的频率方波产生的音在其每个周期内高低幅值得时间各占一半。
因此,输出引脚在每个方波周期内要动作两次:一次升高,一次降低。
即输出引脚的频率是原音频率的两倍。
2、单片机产生不同频率脉冲信号的原理(1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就能够在I/O脚上得到此频率的脉冲。
(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。
计数脉冲值与频率的关系公式如下: N=Fi/2/Fr(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率)(3)其计数值的求法如下:T=65536-N=65536-Fi/2/Fr计算举例:设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
蜂鸣器单片机课程设计
蜂鸣器单片机课程设计一、课程目标知识目标:1. 学生能够理解单片机的结构组成、工作原理及其在自动化控制中的应用。
2. 学生能够掌握蜂鸣器的工作原理,并运用编程知识实现对蜂鸣器的控制。
3. 学生能够了解并掌握相关的电子元器件知识,如电阻、电容、二极管等。
技能目标:1. 学生能够运用所学知识,设计并搭建简单的基于单片机的蜂鸣器控制系统。
2. 学生能够编写程序,实现对蜂鸣器音调、音量的控制,完成特定功能。
3. 学生能够通过实践操作,培养动手能力、问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生能够培养对电子技术的兴趣,激发学习热情,形成自主学习、探索未知的良好习惯。
2. 学生能够认识到单片机在现实生活中的应用,理解科技发展对生活的改善,增强社会责任感。
3. 学生能够在团队协作中学会尊重他人,培养良好的沟通能力和团队精神。
分析课程性质、学生特点和教学要求,本课程旨在让学生在掌握单片机基本原理的基础上,通过实践操作,学会设计简单的蜂鸣器控制系统,培养实际操作能力。
课程目标分解为具体学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理,重点讲解AT89C51单片机的内部结构、引脚功能及其指令系统。
相关教材章节:第一章 单片机概述、第二章 AT89C51单片机结构。
2. 蜂鸣器工作原理:讲解蜂鸣器的基本构造、工作原理,以及如何通过单片机控制蜂鸣器发出不同音调的声音。
相关教材章节:第三章 常用外围设备、第六章 单片机控制蜂鸣器。
3. 程序设计:教授如何编写C语言程序,实现对蜂鸣器音调、音量的控制,并完成特定功能。
相关教材章节:第四章 单片机C语言编程、第五章 单片机中断与定时器。
4. 电子元器件知识:介绍电阻、电容、二极管等常用电子元器件的原理及应用。
相关教材章节:第七章 常用电子元器件。
5. 实践操作:安排学生进行单片机控制蜂鸣器的实践操作,包括电路搭建、程序编写、调试与优化等。
单片机蜂鸣器控制实验报告
单片机蜂鸣器控制实验报告摘要:本实验旨在通过使用单片机(Microcontroller Unit,MCU)来控制蜂鸣器发出不同的声音,进一步熟悉单片机的使用和控制技术。
通过实验,我们可以了解如何编程控制蜂鸣器,从而为更复杂的电子设备的开发做好准备。
本实验基于XXXXX单片机平台进行,具体的实验步骤和控制代码将在下文进行详细说明。
1. 实验介绍单片机蜂鸣器控制实验是一项基础实验,旨在让学生了解单片机的控制原理和实践操作。
在实验中,我们使用XXXXX单片机平台。
此平台具有良好的可编程性,且集成了许多功能模块,是学习和使用单片机的理想选择。
2. 实验材料- XXXXX单片机开发板- 蜂鸣器模块- 连接线- 电源3. 实验步骤3.1 连接电路将蜂鸣器模块的正极与单片机开发板的IO口相连,将负极与开发板的GND相连。
使用连接线进行正确的连接。
3.2 编程调试根据单片机平台的要求,采用XXXXX编程语言编写蜂鸣器控制程序。
以下是一段示例代码:```#include <XXXXX.h>int main() {while(1) {// 产生蜂鸣器控制信号XXXXX_WritePin(GPIOX, PinX, HIGH);delay_ms(1000);XXXXX_WritePin(GPIOX, PinX, LOW);delay_ms(1000);}}```在该示例代码中,通过控制GPIOX的PinX引脚输出高电平或低电平,来控制蜂鸣器的工作状态。
通过设置适当的延迟时间,我们可以调整蜂鸣器的鸣叫频率和持续时间。
3.3 烧录程序将编写好的程序烧录到单片机开发板中。
按照开发板的烧录方法进行操作。
3.4 调试和测试烧录完成后,将开发板连接到电源,并观察蜂鸣器的工作情况。
根据我们在代码中设定的参数,蜂鸣器应该会发出特定频率和持续时间的声音。
4. 结果与分析在实验过程中,我们可以根据需要编写不同的程序来控制蜂鸣器的状态,例如不同的频率、间隔时间和持续时间。
单片机蜂鸣器实验报告
一、实验目的1. 了解单片机I/O的工作方式;2. 熟悉51单片机的汇编指令;3. 掌握蜂鸣器的工作原理及驱动方法;4. 学会通过单片机控制蜂鸣器发声,实现音乐播放功能。
二、实验原理1. 单片机:单片机是一种具有微处理器的集成电路,它将微处理器、存储器、输入/输出接口等集成在一个芯片上,具有体积小、功耗低、成本低等特点。
2. 蜂鸣器:蜂鸣器是一种将电信号转化为声音信号的装置,广泛应用于计算机、打印机、复印机、报警器、电子玩具等电子产品中。
蜂鸣器主要分为有源蜂鸣器和无源蜂鸣器两种类型。
有源蜂鸣器内置振荡源,可直接发声;无源蜂鸣器无内置振荡源,需要控制器提供振荡脉冲才能发声。
3. 51单片机与蜂鸣器连接:51单片机通过P1.0端口控制蜂鸣器,当P1.0端口输出高电平时,蜂鸣器发声;输出低电平时,蜂鸣器停止发声。
三、实验器材1. 51单片机实验板;2. 蜂鸣器;3. 连接线;4. 信号源;5. 示波器;6. 计算机及仿真软件(如Proteus)。
四、实验步骤1. 将蜂鸣器连接到51单片机实验板的P1.0端口;2. 编写程序,实现以下功能:(1)初始化51单片机系统;(2)通过P1.0端口控制蜂鸣器发声;(3)实现音乐播放功能;3. 将程序烧录到51单片机实验板;4. 使用示波器观察蜂鸣器发出的声音波形;5. 使用信号源模拟按键输入,验证蜂鸣器控制功能;6. 使用Proteus仿真软件验证程序功能。
五、实验结果与分析1. 通过实验,成功实现了51单片机控制蜂鸣器发声,验证了单片机I/O的工作方式和51单片机的汇编指令;2. 实现了音乐播放功能,验证了蜂鸣器的工作原理及驱动方法;3. 通过示波器观察,蜂鸣器发出的声音波形符合预期,验证了程序的正确性;4. 通过Proteus仿真软件,验证了程序在虚拟环境中的正确性。
六、实验总结1. 通过本次实验,掌握了单片机I/O的工作方式,熟悉了51单片机的汇编指令;2. 理解了蜂鸣器的工作原理及驱动方法,学会了通过单片机控制蜂鸣器发声;3. 提高了动手实践能力,培养了团队协作精神。
单片机课程设计蜂鸣器
单片机课程设计蜂鸣器一、课程目标知识目标:1. 理解单片机的基本原理,掌握蜂鸣器模块的电路连接和工作原理;2. 学会编写控制蜂鸣器响铃、停铃的程序代码,理解程序中的延时函数及其作用;3. 了解蜂鸣器在不同应用场景下的使用方法,如报警、音乐播放等。
技能目标:1. 能够独立完成蜂鸣器模块与单片机的连接,进行电路调试;2. 掌握使用编程软件编写、编译和烧录程序到单片机,实现蜂鸣器的控制;3. 培养学生的动手操作能力,提高问题解决能力。
情感态度价值观目标:1. 激发学生对单片机编程的兴趣,培养其主动探究精神;2. 培养学生的团队合作意识,学会在团队中沟通与协作;3. 引导学生关注单片机在现实生活中的应用,认识到科技改变生活的意义。
分析课程性质、学生特点和教学要求:本课程为单片机课程的实践环节,以动手操作为主,注重培养学生的实践能力和创新思维。
针对学生年级特点,课程内容以基础为主,逐步提高难度。
在教学过程中,教师需关注学生的学习进度,及时解答疑问,确保学生能够掌握课程内容。
1. 熟练掌握蜂鸣器模块的使用,实现基本的控制功能;2. 提高编程技能,为后续学习更复杂的单片机应用打下基础;3. 增强对单片机应用场景的认识,激发学习兴趣,培养良好的情感态度。
二、教学内容1. 理论知识:- 单片机基础原理介绍,重点掌握CPU、内存、I/O口等基本组成部分;- 蜂鸣器模块工作原理,理解其电路连接方式及控制方法;- 编程软件的使用,包括编写、编译、烧录程序的基本步骤。
2. 实践操作:- 蜂鸣器模块与单片机的连接,学会使用杜邦线进行电路搭建;- 编写程序控制蜂鸣器响铃与停铃,掌握延时函数的使用;- 设计简单的报警程序,实现蜂鸣器不同频率的响铃。
3. 教学大纲:- 第一课时:单片机基础原理学习,蜂鸣器模块介绍;- 第二课时:编程软件的使用,编写简单的控制程序;- 第三课时:实践操作,连接电路,烧录程序,调试蜂鸣器;- 第四课时:拓展应用,设计报警程序,提高编程技能。
单片机课程设计蜂鸣器
单片机课程设计 蜂鸣器一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握蜂鸣器在单片机系统中的应用。
2. 使学生掌握蜂鸣器的电路连接和工作原理,能够运用编程实现蜂鸣器的控制。
3. 帮助学生掌握相关指令和程序设计方法,实现蜂鸣器的不同音调、音量及节奏的控制。
技能目标:1. 培养学生动手操作能力,能够独立完成蜂鸣器与单片机的连接和调试。
2. 提高学生的编程能力,使其能够设计出功能完善、结构清晰的蜂鸣器控制程序。
3. 培养学生的问题分析和解决能力,能够针对实际需求,调整程序参数,实现不同功能。
情感态度价值观目标:1. 培养学生对单片机课程的兴趣和热情,激发学生主动探索和实践的精神。
2. 培养学生的团队合作意识,鼓励学生在课堂上积极交流、分享经验,共同进步。
3. 培养学生严谨、认真、负责的学习态度,使其在课程学习过程中养成良好的学习习惯。
课程性质分析:本课程为单片机课程设计,以实践操作为主,注重理论联系实际,提高学生的动手能力和创新能力。
学生特点分析:学生处于高年级阶段,已具备一定的单片机基础知识和编程能力,对实践操作有较高的兴趣。
教学要求:结合课程性质和学生特点,明确课程目标,注重理论与实践相结合,充分调动学生的积极性和主动性,培养其独立思考和解决问题的能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其综合素质。
二、教学内容1. 理论知识:- 单片机原理概述,重点掌握其内部结构、工作原理及指令系统。
- 蜂鸣器工作原理,包括蜂鸣器的种类、电路连接方式及声音产生机制。
- 编程语言基础,复习C语言基本语法,强调其在单片机编程中的应用。
2. 实践操作:- 蜂鸣器与单片机的硬件连接,学会使用面包板进行电路搭建。
- 编写蜂鸣器控制程序,实现不同音调、音量和节奏的控制。
- 调试程序,学会使用调试工具,分析并解决程序运行过程中可能出现的问题。
3. 教学大纲:- 第一周:单片机原理复习及蜂鸣器工作原理学习。
单片机蜂鸣器课程设计
单片机蜂鸣器课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握蜂鸣器的功能和使用方法;2. 使学生掌握利用单片机编程控制蜂鸣器发出不同频率声音的技巧;3. 帮助学生了解单片机在现实生活中的应用,拓宽知识视野。
技能目标:1. 培养学生动手实践能力,能够独立完成单片机蜂鸣器电路的搭建;2. 提高学生编程能力,使其能够编写简单的控制程序,实现对蜂鸣器的控制;3. 培养学生团队协作能力,学会在项目实施过程中与他人合作、交流。
情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养探究精神;2. 培养学生严谨、细致的学习态度,提高解决问题的自信心;3. 增强学生的创新意识,鼓励他们在实际应用中发挥创造力。
课程性质:本课程为实践性较强的课程,旨在培养学生的动手能力、编程能力和团队协作能力。
学生特点:学生具备一定的单片机基础知识和编程能力,对实践操作有较高的兴趣。
教学要求:教师应注重理论与实践相结合,关注学生个体差异,提供个性化指导,确保课程目标的实现。
在教学过程中,将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 单片机基础知识回顾:C51语言基础、单片机工作原理、I/O口控制;2. 蜂鸣器原理介绍:蜂鸣器种类、工作原理、应用场景;3. 单片机控制蜂鸣器编程:编写控制程序,实现蜂鸣器发出不同频率声音;4. 电路搭建与调试:设计并搭建单片机与蜂鸣器的电路连接,进行程序下载和调试;5. 实践项目:分组进行项目实践,每组完成一个具有实际应用场景的单片机蜂鸣器控制系统设计;6. 知识拓展:介绍单片机在其他电子设备中的应用,激发学生学习兴趣。
教学内容安排与进度:第一课时:回顾单片机基础知识,介绍蜂鸣器原理;第二课时:讲解单片机控制蜂鸣器编程方法,进行示例演示;第三课时:指导学生搭建电路,进行程序下载和调试;第四课时:分组进行项目实践,教师巡回指导;第五课时:展示项目成果,进行评价和总结。
单片机蜂鸣器实验报告
单片机蜂鸣器实验报告单片机蜂鸣器实验报告引言:单片机蜂鸣器是一种常用的电子元件,广泛应用于各种电子设备中。
本篇实验报告旨在介绍单片机蜂鸣器的基本原理和实验过程,并探讨其在不同应用场景中的应用。
一、实验目的:本次实验的主要目的是通过使用单片机控制蜂鸣器发出不同频率的声音,了解蜂鸣器的工作原理及其在电子设备中的应用。
二、实验器材和原理:1. 实验器材:- 单片机开发板- 蜂鸣器- 连接线- 电源2. 实验原理:蜂鸣器是一种能够发出声音的电子元件,它通过振动产生声音。
在单片机蜂鸣器实验中,我们使用单片机控制蜂鸣器的振动频率,从而产生不同的声音。
三、实验步骤:1. 连接电路:将蜂鸣器的正极连接到单片机开发板的IO口,将蜂鸣器的负极连接到开发板的地线。
确保连接稳固。
2. 编写程序:使用单片机开发板的编程软件,编写程序来控制蜂鸣器的振动频率。
可以通过调整程序中的延时时间来改变蜂鸣器发声的频率。
3. 上传程序:将编写好的程序通过USB线上传到单片机开发板中。
4. 运行实验:将电源接入单片机开发板,开启电源。
单片机将根据程序中设定的频率控制蜂鸣器发声。
四、实验结果与分析:通过修改程序中的延时时间,我们可以改变蜂鸣器发声的频率。
实验中,我们尝试了不同的延时时间,并观察了蜂鸣器发声的效果。
在较短的延时时间下,蜂鸣器发出的声音频率较高,声音连续不断。
而在较长的延时时间下,蜂鸣器发出的声音频率较低,声音间隔较长。
通过实验结果分析,我们可以得出结论:蜂鸣器的发声频率与延时时间成反比关系。
延时时间越短,蜂鸣器发声的频率越高;延时时间越长,蜂鸣器发声的频率越低。
五、实验应用:单片机蜂鸣器在实际应用中有着广泛的用途。
以下是几个常见的应用场景:1. 报警系统:将蜂鸣器连接到报警设备中,当设备检测到异常情况时,通过单片机控制蜂鸣器发出警报声,提醒用户注意。
2. 电子钟:通过单片机控制蜂鸣器发出定时的滴答声,实现电子钟的功能。
3. 游戏设备:将蜂鸣器连接到游戏设备中,通过单片机控制蜂鸣器发出不同的声音,增加游戏的趣味性和互动性。
c51单片机实验报告
c51单片机实验报告
《C51单片机实验报告》
C51单片机是一种广泛应用于嵌入式系统中的微控制器,具有高性能、低功耗和丰富的外设接口,因此在各种电子设备中得到了广泛的应用。
本次实验将以C51单片机为研究对象,通过实验验证其性能和功能。
实验一:LED灯控制实验
首先,我们将C51单片机与LED灯连接起来,通过程序控制LED灯的亮灭。
实验结果表明,C51单片机可以准确地控制LED灯的亮度和闪烁频率,具有良好的稳定性和可靠性。
实验二:蜂鸣器控制实验
接着,我们将C51单片机与蜂鸣器连接起来,通过程序控制蜂鸣器的发声。
实验结果显示,C51单片机可以精准地控制蜂鸣器的音调和音量,具有较高的音频输出质量。
实验三:温湿度传感器实验
最后,我们将C51单片机与温湿度传感器连接起来,通过程序读取并显示温湿度数值。
实验结果表明,C51单片机可以准确地读取传感器的数据,并通过显示屏输出,具有良好的数据处理能力。
通过以上实验,我们验证了C51单片机在LED灯控制、蜂鸣器控制和温湿度传感器应用方面的性能和功能。
C51单片机具有较高的稳定性、可靠性和可编程性,适用于各种嵌入式系统的设计与开发。
希望本次实验报告能够对C51单片机的应用和研究提供一定的参考价值。
基于单片机的定时蜂鸣器课程设计报告
信息科学与工程学院通信工程系单片机课程设计报告课程单片机课程设计设计题目基于单片机的定时蜂鸣器年级专业学号学生姓名指导教师2012年6 月24 日课程设计量化评分标准指导教师评语:指标最高分评分要素评分方案设计35方案选择合理,分析、设计正确,原理清楚,电路、程序流程图清晰,结构合理,程序简洁、正确。
调试 15过程清晰,调试方案设计合理,测试点选择适当,程序编写正确,调试步骤清楚。
结果 20 电路及程序运行结果正确,达到预期效果。
设计报告20报告结构严谨,逻辑严密,论述层次清晰,语言流畅,表达准确,重点突出,报告完全符合规范化要求,用计算机打印成文。
工作态度 10工作态度认真,按时完成设计任务,是否独立完成。
总 评 成 绩设计题目:基于单片机的定时蜂鸣器一、要求设计一个基于单片机的定时蜂鸣器系统,要求最长定时时间为2小时,分辨率为1秒,蜂鸣器响应时间为5秒。
二、分析由设计题目分析知:定时蜂鸣器其原理类似于定时闹钟,只需在定时系统的终端调用警鸣模块,即可实现定时蜂鸣器的功能。
根据题目的要求,系统可以分为定时、键盘中断、数码显示和警鸣四个模块。
首先,设计一个最长定时时间为2小时的定时器,其次,在定时器中响应键盘中断并调用数码管显示模块,最后,在定时终端调用警鸣模块。
三、设计1、硬件设计(包括设计方案及说明、完整的硬件连接图等) (1)、方案及说明由单片机实践板的电路图知,蜂鸣器的输入端接在了单片机的P2^6口,数码管由单片机通过CH452控制,同时还控制键盘。
因此,由单片机控制CH452,再由控制芯片控制显示和键盘,蜂鸣器由单片机直接控制,即可实现系统功能。
(2)、完整的硬件连接图见(附件1)2、软件编程(包括流程图、完整的汇编源程序及其注释) (1)、流程图(3) (1)(否)(2) (是)(3)(是)(否) (否)(1)(是) (2)开始 初始化,允许定时器T0溢出 中断及外部中断0中断 调用数码管显示函数 外部中断0(键盘中断) 调用警鸣函数 是否达到计时 时间响应时间是否达到5秒 设置初值 计时 开始计时是否有新的外部中断时间计数器清零 开始新一轮计时(2)、完整的源程序代码及其注释初始化模块:#include"ch451.h"#include<reg52.h>sbit ch451_dclk=P2^3; //串行数据时钟上升延激活sbit ch451_din=P2^2; // 串行数据输出,接CH451的数据输人sbit ch451_load=P2^0; //串行命令加载,上升延激活sbit ch451_dout=P2^1; //键值数据输入,接ch451数据输入sbit beep=P2^6;uchar ch451_key; // 存放键盘中断中读取的键值uint display[6]={0x0d00,0x0c00,0x0b00,0x0a00,0x0900,0x0800};ucharBCD[]={0xbe,0x24,0xea,0xe6,0x74,0xd6,0xde,0xa4, 0xfe,0xf6 };//0~9数字uchar shishi,shige,fenshi,fenge,miaoshi,miaoge,n,m,p,q,e;bit stop_flag=0,ss_flag=0,flag=0;uchar num=1,n=0,f=0;void main(){ch451_write(CH451_RESET); //CH451复位ch451_write(CH451_SYSON2); //开显示、键盘ch451_write(CH451_DSP); //设置BCD不译码方式ch451_write(CH451_TWINKLE); //设置闪烁控制——正常显示ch451_init();timer0count_init();while(1){key_Recognize();time_dispose();smg_Display();}void ch451_init(){ch451_din=0; //先低后高,选择4线输入ch451_din=1;TMOD=0x11 //设置定时器T1工作在16位计时状态EA=1 //开中断总开关ET1=1; //允许中断TR1=1; //开中断PT1=0; //设置低优先级TL1=1; //装载计数初值TH1=200; //此计数初值用来调试}void timer0count_init(){ET0=1;TR0=1;TH0=0x08;TL0=0x00;}计时模块:void time_dispose(){ if((m!=0)&&(f)){ if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0; fenge=0;fenshi=0;shige=0;shishi=0;}}if(miaoge>9){miaoge=0;miaoshi++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0; fenge=0;fenshi=0;shige=0;shishi=0;}if(miaoshi>5){miaoshi=0;fenge++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;}if(fenge>9){fenge=0;fenshi++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)){for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0; shige=0;shishi=0;}if(fenshi>5){fenshi=0;shige++;if((miaoge==m)&&(miaoshi==g)&&(fenge==p)&&(fenshi==q)&&(shige==e)) {for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;}if(shige>=2){for(n=0;n<244;n++){ speaker();}miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;}}}}}}键盘模块:void key_Recognize(){switch(ch451_key){ case 0x43:delay(255300); num=1;stop_flag=~stop_flag;break;case 0x42: delay(255300); num++;if(num>6){num=1; }break;case 0x41:delay(255300);f=0;if(stop_flag){switch(num){case 1:if(miaoge<9) {miaoge++; m=miaoge ;}else {miaoge=0;m=miaoge ;}break;case 2:if(miaoshi<5){miaoshi++;g=miaoshi;}else {miaoshi=0;g=miaoshi;}break;case 3:if(fenge<9){fenge++;p=fenge;}else {fenge=0; p=fenge;}break;case 4:if(fenshi<5){fenshi++; q= fenshi;}else {fenshi=0;q= fenshi;}break;case 5:if(shige<2){shige++; e=shige;}else {shige=0; e=shige;}break;case 6:if(shishi<1){shishi=0;}else {shishi=0;}break;}}break;case 0x40:delay(255300);miaoge=0;miaoshi=0;fenge=0;fenshi=0;shige=0;shishi=0;f=1;} }显示模块:void smg_Display(){if(stop_flag){if((num!=6)||(ss_flag==0))//ss_flag每半秒改变一次数值,进行闪烁;当没有选中该数码管,即num不等于6时,正常显示,所以用或语{ch451_write(display[0]+BCD[shishi]);}else if((num==6)&&(ss_flag==1))//当选中该数码管且ss_flag为1时,数码管灭{ch451_write(display[0]+0);}}else if(!stop_flag) {ch451_write(display[0]+BCD[shishi]);}if(stop_flag){if((num!=5)||(ss_flag==0)){ch451_write(display[1]+BCD[shige]); }else if((num==5)&&(ss_flag==1)){ch451_write(display[1]+0);}}else if(!stop_flag){ch451_write(display[1]+BCD[shige]);}if(stop_flag){if((num!=4)||(ss_flag==0)){ch451_write(display[2]+BCD[fenshi]);}else if((num==4)&&(ss_flag==1)){ch451_write(display[2]+0)}}else if(!stop_flag){ch451_write(display[2]+BCD[fenshi]);}if(stop_flag){if((num!=3)||(ss_flag==0)){ch451_write(display[3]+BCD[fenge]);}else if((num==3)&&(ss_flag==1)){ch451_write(display[3]+0);}}else if(!stop_flag){ch451_write(display[3]+BCD[fenge]);}if(stop_flag){if((num!=2)||(ss_flag==0)){ch451_write(display[4]+BCD[miaoshi]);}else if((num==2)&&(ss_flag==1)){ch451_write(display[4]+0);}}else if(!stop_flag){ch451_write(display[4]+BCD[miaoshi]);}if(stop_flag){if((num!=1)||(ss_flag==0)){ch451_write(display[5]+BCD[miaoge]);}else if((num==1)&&(ss_flag==1)){ch451_write(display[5]+0); }}else if(!stop_flag){ch451_write(display[5]+BCD[miaoge]);}}警鸣模块:void speaker(void){uchar i,j;for(j=0;j<250;j++)for(i=0;i<250;i++){ beep=~beep;for(i=0;i<250;i++);}beep=1; //防止结束时候是低电平}3、调试说明首先用Keil软件创建一个工程,将程序源代码输入并编译生成单片可执行的.hex文件。
蜂鸣器课程设计报告
蜂鸣器课程设计报告一、教学目标本课程旨在通过蜂鸣器的学习,让学生掌握以下知识目标:了解蜂鸣器的工作原理、结构特点及其在电子技术中的应用;理解蜂鸣器的工作电压、电流、频率等参数的计算方法;熟悉蜂鸣器的各种故障现象及其排除方法。
技能目标为:能够独立操作蜂鸣器实验,掌握蜂鸣器电路的设计、安装和调试方法;能够分析蜂鸣器在使用过程中可能出现的问题,并提出解决方案。
情感态度价值观目标则是培养学生对电子技术的兴趣和热情,增强学生动手实践能力,提高学生解决实际问题的能力。
二、教学内容本课程的教学内容主要包括以下几个部分:第一部分是蜂鸣器的基础知识,包括蜂鸣器的工作原理、结构特点等;第二部分是蜂鸣器的应用,包括蜂鸣器在电子技术中的应用实例;第三部分是蜂鸣器的操作与维护,包括蜂鸣器的使用方法、故障排除等;第四部分是蜂鸣器电路的设计与实践,包括蜂鸣器电路的设计、安装和调试等。
三、教学方法为了达到上述教学目标,我们将采用以下教学方法:首先,讲授法,用于向学生传授蜂鸣器的基本原理和知识;其次,讨论法,用于引导学生探讨蜂鸣器的应用和故障排除方法;再次,案例分析法,用于分析蜂鸣器在使用过程中的具体问题;最后,实验法,用于让学生动手实践,掌握蜂鸣器的操作和维护方法。
四、教学资源为了支持教学内容的实施和教学方法的应用,我们将准备以下教学资源:首先,教材,用于为学生提供系统、科学的学习材料;其次,参考书,用于为学生提供更多的学习资料和拓展知识;再次,多媒体资料,用于为学生提供形象、直观的学习资源;最后,实验设备,用于为学生提供动手实践的机会和条件。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。
平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的20%。
作业包括课后练习和实验报告,占总评的30%。
考试分为期中和期末两次,每次占总评的30%。
这种评估方式旨在全面客观地反映学生的学习成果,激发学生的学习积极性。
单片机实验报告蜂鸣器
单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言在现代科技发展迅猛的时代,单片机已经成为了各种电子设备中不可或缺的重要部分。
而蜂鸣器作为一种常见的声响器件,也被广泛应用在各种电子产品中。
本实验旨在通过单片机控制蜂鸣器,实现不同频率和节奏的声音输出,并对蜂鸣器的工作原理进行深入理解。
实验目的1. 了解蜂鸣器的工作原理;2. 掌握单片机控制蜂鸣器的方法;3. 实现不同频率和节奏的声音输出。
实验原理蜂鸣器是一种能够发出声音的电子元件,其工作原理是利用电流通过振动片产生声音。
在实验中,我们将通过单片机控制蜂鸣器的工作频率和节奏,从而实现不同的声音效果。
实验步骤1. 连接电路:将单片机和蜂鸣器按照电路图连接好;2. 编写程序:使用C语言编写单片机控制蜂鸣器的程序;3. 烧录程序:将编写好的程序烧录到单片机中;4. 调试程序:通过调试程序,实现不同频率和节奏的声音输出;5. 实验结果:记录实验中不同声音效果的输出结果。
实验结果经过实验,我们成功地通过单片机控制蜂鸣器,实现了不同频率和节奏的声音输出。
通过调试程序,我们可以轻松地改变蜂鸣器的声音效果,包括音调的高低和声音的持续时间等。
这些实验结果充分展示了单片机控制蜂鸣器的强大功能和灵活性。
实验总结通过本次实验,我们深入理解了蜂鸣器的工作原理,并掌握了单片机控制蜂鸣器的方法。
同时,我们也实现了不同频率和节奏的声音输出,为以后的电子产品设计和开发提供了有力的支持。
相信通过这次实验,我们对单片机和蜂鸣器的应用有了更深入的认识,为我们的学习和科研工作打下了坚实的基础。
led蜂鸣器课程设计
led蜂鸣器课程设计一、教学目标本课程旨在让学生了解和掌握LED蜂鸣器的基本原理和应用,通过学习,学生能够理解LED蜂鸣器的工作原理,掌握如何使用LED蜂鸣器进行声光控制,并能够运用LED蜂鸣器进行简单的创客项目实践。
1.了解LED蜂鸣器的基本原理和结构。
2.掌握LED蜂鸣器的控制方法和应用场景。
3.能够独立完成LED蜂鸣器的电路连接和编程。
4.能够运用LED蜂鸣器进行简单的创客项目实践。
情感态度价值观目标:1.培养学生对科学探究的兴趣和热情。
2.培养学生动手实践能力和创新精神。
二、教学内容本课程的教学内容主要包括LED蜂鸣器的基本原理、控制方法和应用实践。
1.LED蜂鸣器的基本原理:介绍LED蜂鸣器的工作原理和结构组成,使学生了解LED蜂鸣器的工作原理和特点。
2.LED蜂鸣器的控制方法:教授如何通过编程和电路控制LED蜂鸣器的亮度和声音,使学生掌握控制LED蜂鸣器的方法。
3.LED蜂鸣器的应用实践:通过实际操作,让学生学会如何运用LED蜂鸣器进行声光控制,培养学生的实践能力。
三、教学方法本课程采用讲授法、实验法和讨论法相结合的教学方法。
1.讲授法:通过讲解LED蜂鸣器的基本原理和控制方法,使学生掌握理论知识。
2.实验法:让学生动手实践,连接LED蜂鸣器电路,编写程序控制LED蜂鸣器,培养学生的实践能力。
3.讨论法:在课程过程中,引导学生进行思考和讨论,激发学生的学习兴趣和创新精神。
四、教学资源1.教材:选用与LED蜂鸣器相关的教材,为学生提供理论学习的参考。
2.实验设备:准备LED蜂鸣器实验套件,供学生进行实践操作。
3.多媒体资料:提供与LED蜂鸣器相关的视频、动画等多媒体资料,丰富学生的学习体验。
4.网络资源:引导学生查阅与LED蜂鸣器相关的网络资源,拓宽知识面。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评估学生的学习成果。
1.平时表现:通过观察学生在课堂上的参与程度、提问回答和小组讨论的表现,评估学生的学习态度和理解能力。
单片机蜂鸣器课程设计
单片机蜂鸣器课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解蜂鸣器作为输出设备的工作机制。
2. 使学生了解并掌握单片机编程控制蜂鸣器发声的方法和技巧。
3. 帮助学生理解蜂鸣器在电子产品中的应用及其重要性。
技能目标:1. 培养学生动手操作能力,能够独立完成单片机与蜂鸣器的连接。
2. 培养学生具备编程思维,能够编写简单的程序控制蜂鸣器发出不同音调的声音。
3. 提高学生的问题解决能力,能够通过调试程序解决蜂鸣器发声过程中遇到的问题。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养其主动探索和创新的意识。
2. 培养学生的团队合作精神,使其在合作完成项目过程中学会相互尊重、沟通协作。
3. 增强学生的环保意识,使其在电子制作过程中注意资源的合理利用和废弃物的分类处理。
课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手操作能力和实际应用能力。
学生特点:学生具备一定的单片机基础知识,对电子制作有较高的兴趣,喜欢动手实践。
教学要求:教师应充分调动学生的积极性,引导学生主动探究,关注学生的个体差异,鼓励学生相互交流,提高课堂互动性。
同时,注重教学过程中的评价与反馈,确保学生达到预期的学习成果。
二、教学内容1. 单片机基础理论回顾:包括单片机的结构、工作原理、I/O口控制等,重点回顾与蜂鸣器控制相关的内容,如时钟、定时器等。
2. 蜂鸣器工作原理:介绍蜂鸣器的构造、工作方式及其在电路中的应用。
3. 单片机控制蜂鸣器编程:学习编写控制蜂鸣器发声的C语言程序,包括点亮、熄灭蜂鸣器,发出不同音调等。
- 掌握Keil等编程软件的使用。
- 学习如何使用延时函数控制蜂鸣器发声时间。
4. 硬件连接与调试:教授如何将单片机与蜂鸣器连接,进行电路搭建,并通过调试解决常见问题。
- 学习使用面包板、杜邦线等工具。
- 掌握电路调试方法,排除常见故障。
5. 实践项目:设计一个简单的电子琴项目,让学生分组完成,实现不同音调的发声。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机设计报告
课程单片机课程设计
设计题目 LED灯及蜂鸣器
设计题目:
一、要求
1.了解LED显示流水灯的原理。
2.能够在LED上显示和控制蜂鸣器的工作。
3.熟悉掌握keil软件的使用。
二、分析
本设计使用AT89C52RC做为主控制模块,利用简单的外围电路来驱动LED蝴蝶。
设计分为三个模块:单片机控制模块,输出显示模块和驱动模块,单片机控制模块以单片机为核心,以软件KEIL编程实现信号输出,以驱动LED及蜂鸣器为目的。
三、设计
1、硬件方面
(1)、LED驱动模块
图文显示有静态和动态两种方案,本设计中静动态都用到了。
动态扫描的意思简单的说就是轮流点亮。
具体就图案来说,把内部同行的发光管的阳极相连在一起,先送出对应行的发光管亮灭的数据并锁存,然后选通其它行使其燃亮相同的时间,然后熄灭。
反复循环。
蜂鸣器的控制则是加入三极管接在VCC,单片机的第20引脚和负极上,以此来控制蜂鸣器的工作。
(2)、硬件设计
实验板上设计一个蝴蝶状的LED显示,可用于简单的图形图像。
蝴蝶的图案是由74个LED绿灯、8个红灯、10个黄灯拼接而成。
其中绿灯直接接到正负极上,黄灯和红灯接到单片机的P2口,来控制其闪动。
2、软件编程(包括流程图、完整的汇编源程序及其注释)
1.电路图
本软件要求实现如下要求:外圈绿灯亮度明亮,红灯和黄灯都不停地闪动,蜂鸣器自动播放歌曲。
电路图如下:
2.主程序
本设计的系统软件能使系统LED各点亮度均匀,充足,可显示清晰图案,并且闪动。
系统主程序开始后,首先是对系统环境初始化,包括设置串口,中断和端口;然后闪动红黄灯,由于单片机没有停机指令,所以可以设置系统程序不断循环。
3.序代码如下:
#include <reg51.h>
#include <rtx51tny.h>
#include <absacc.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define DY_PORT P2 //设置LED连接的I/O组
#define DY_SPEED 100 //设置每一个明亮级的停留时间(值域:
0~65535)
struct music_type
{ uchar tone;
uchar delay;
};
void delay (unsigned int a){ // 1ms延时程序
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++);//STC单片机在外部晶振为12MHz时i值上限为600
} //AT89C51单片机在外部晶振为12MHz时i值上限为125
}
uint code tonetab[]={ //D调7声音阶3个8度
63967,64138,64291,64360,64489,64603,64704, //低音1~7
64752,64837,64913,64948,65012,65070,65120, //中音1~7
65144,65186,65225,65242,65274,65303,65328 //高音1~7
};
//曲谱,每个音符两项数据:第1项为音高,第2项为节拍(以1/4拍为单位)
struct music_type code notetab[]={ //”三十里铺”曲谱
1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,
5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,
1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,
5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,
1+14,0x02,4+7,0x04,5+7,0x02,1+14,0x02,1+14,0x04,6+7,0x02,
5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,
4+7,0x03,4+7,0x01,3+7,0x02,2+7,0x02,
1+7,0x03,2+7,0x01,5+7,0x02,2+7,0x02,1+7,0x08,
1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,
5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,
1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,
5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,
1+14,0x02,4+7,0x04,5+7,0x02,1+14,0x02,1+14,0x04,6+7,0x02,
5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,
4+7,0x03,4+7,0x01,3+7,0x02,2+7,0x02,
1+7,0x03,2+7,0x01,5+7,0x02,2+7,0x02,1+7,0x08,
0,0x00
};
sbit P10=P1^0; //连接无源蜂鸣器
/*
sbit SDAT=P3^4; //连接显示数码的移位寄存器
sbit SCLK=P3^5;*/
volatile uchar tl1,th1; //存控制定时器1定时参数
uint led=0x0001; //LED初始显示数据
bit dir=0; //LED流水方向控制标志
void T1_sev() interrupt 3 //定时器T1中断:控制蜂鸣器发声频率
{ TL1=tl1; //重装定时数据
TH1=th1;
P10=!P10; //蜂鸣器驱动倒相
}
void INT1_serv() interrupt 2 //外中断1,改变LED流水方向标志
{ dir=!dir; //流水方向控制标志改变
}
void init() _task_ 0 //任务0:初始化,激活任务1~3
{ TMOD|=0x10; //系统硬件初始化
ET1=1;
IT1=1;
EX1=1;
os_create_task(1); //启动任务1~3
/* os_create_task(2);*/
os_create_task(3);
os_delete_task(0); //自身撤退。