搜档网
当前位置:搜档网 › 51单片机综合学习系统之继电器、蜂鸣器篇

51单片机综合学习系统之继电器、蜂鸣器篇

51单片机综合学习系统之继电器、蜂鸣器篇
51单片机综合学习系统之继电器、蜂鸣器篇

51 单片机综合学习系统之继电器、蜂鸣器篇 《电子制作》 2007 年 12 月 转自 https://www.sodocs.net/doc/ac9548454.html,
9.4 蜂鸣器实验 在很多的单片机系统中除了显示器件外经常还有发声器件,最常见的发声器件是蜂鸣器。蜂鸣器一般用于一些要 求不高的声音报警及按键操作提示音等场合。蜂鸣器的形状一般如图 9-11 所示。虽然它有自己的固有频率,但是它也 可以被加以不同频率的方波,从而编制一些简单的音乐。
图 9-11 蜂鸣器实物图 9.4.1 实例功能 本实例就是来实现蜂鸣器发声,通过本小节的实验,可以使读者熟练掌握蜂鸣器的应用。
图 9-12 蜂鸣器实验演示图

9.4.2 器件和原理 蜂鸣器和普通扬声器相比,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声 音,因此使用起来比扬声器简单。由此可知,蜂鸣器的控制和 LED 的控制对单片机而言是没有区别的。 9.4.3 硬件电路 虽然蜂鸣器的控制和 LED 的控制对于单片机是一样的,但在外围硬件电路上却有所不同,因为蜂鸣器是一个感性 负载,一般不建议用单片机 I/O 口直接对它进行操作,所以最好加个驱动三极管,在要求较高的场合还会加上反相保 护二极管。本例实验只为了达到学习目的并没有加反相二极管保护,硬件电路可以参考下图 9-13。
图 9-13 硬件原理图 通过硬件原理图可知,图中三极管用了 PNP 型,所以要使蜂鸣器发声只要给单片机 P3.6 置低电平就可,由此可以 为下文的程序编写提供关键参考。 9.4.4 程序设计 01#include 02 03sbit BUZZER=P3^7; 04 05void main(void)

06{ 07BUZZER = 0; 08while(1); 09} 9.4.5 代码分析 序号 1:包含 51 单片机寄存器定义地头文件 序号 3:位定义蜂鸣器为 P3.7 序号 5-9:main 程序 序号 7:使 P3.7 端口输出电平 0,蜂鸣器发声 序号 8:循环等待 9.5 继电器实验 在现代自动控制设备中,都存在一个电子电路(弱电)与电气电路(强电)的互相连接问题,一方面要使电子电 路的控制信号能够控制电气电路的执行元件(如电动机、电磁铁、电灯等),另一方面又要为电子线路的电气电路提 供良好的电隔离,以保护电子电路和人身的安全。继电器便能完成这一桥梁作用。 9.5.1 实例功能 本实例通过单片机来控制继电器吸合、释放,读者可以熟练掌握继电器的使用方法。在本例中读者也可以用继电 器的常开、常闭触点控制电灯的亮灭,实现“以小控大”。

图 9-14 继电器实验演示图 9.5.2 器件和原理 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自 动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、 转换电路等作用。在大多数的情况下,继电器就是一个电磁铁,这个电磁铁的衔铁可以闭合或断开一个或数个接触点。 当电磁铁的绕组中有电流通过时,衔铁被电磁铁吸引,因而就改变了触点的状态。继电器一般可以分为电磁式继电器、 热敏干簧继电器、固态继电器等。本实验板上配置的继电器如图 9-15。
图 9-15 继电器实物图

继电器也是属于感性器件, 所以不能用单片机的 I/O 口直接来控制, 且要在三极管等控制器件上加反相保护电路。 一般实验中都是单片机通过一个 PNP 型三极管,把三极管作为电子开关来驱动继电器,继电器的开和关完全由三极管 的基极电平进行控制。当三极管基极为高电平,PNP 型三极管截止,这时继电器不工作;反之为低电平的话,PNP 型三 极管导通,继电器得电吸合。 9.5.3 硬件电路 继电器实验原理图可以参考下图 9-16。
图 9-16 硬件原理图 9.5.4 程序设计 01#include 02 03sbit RELAY = P1^3; 04 05void Delay() 06{

07unsigned char i,j; 08for(i=0;i<255;i++) 09for(j=0;j<255;j++); 10} 11 12void main() 13{ 14while(1) 15{ 16RELAY = 0; 17Delay(); 18RELAY = 1; 19Delay(); 20} 21} 8.5.5 代码分析 序号 1:包含 51 单片机寄存器定义的头文件 序号 3:位定义继电器为 I/O 口 P1.3 序号 5-10:一个延时函数,具体延长的时间和使用的晶体相关 序号 7:定义两个无符号变量 i,j 序号 8-9:通过 i,j 的自加嵌套循环执行,达到延时目的 序号 12-21:main 函数 序号 14:进入主程序的 while 循环 序号 16:继电器吸合

序号 17:调用延时程序 序号 18:继电器释放 序号 19:调用延时程序

单片机控制继电器电路

单片机控制继电器电路 毕业论文 题目:单片机制作控制继电器的电路 目录 毕业论文 引言??????????????????????????????????????????????1 摘要??????????????????????????????????????????????2 第1章、硬件部分结构功能简介:?????????????????????2 1.1单片机介绍????????????????????????????????????3 1.2 AT89S51单片机的主要性能参数和主要引脚????????3 1.3、继电器介绍???????????????????????????????????6 第2章、原理图????????????????????????????????????7 第3章、系统设计预期目标:?????????????????????????9 第4章、工作原理:?????????????????????????????????9 第5章、下面是我总结的制板“八步走”???????????????10 第6章、制板中容易出现的问 题 :????????????????????11 第7章、本设计的C语言程序:???????????????????????11 第8章、总结??????????????????????????????????????13 第9章、答谢词????????????????????????????????????14 参考文献??????????????????????????????????????????14 引言 现代自动控制设备中,都存在一个电子电路一电气电路的互相连接问题,一方面要是电子电路的控制信号能够控制电器电路的执行元件(电动机、电磁铁、电灯

基于51单片机蜂鸣器发声的-C语言程序

说明:按下不同的按键会是SOUNDER发出不同频率的声音。本例使用延时函数实现不同频率的声音输出,以后也可使用定时器 */ #include #define uchar unsigned char #define uint unsigned int sbit BEEP=P3^7; sbit K1=P1^4; sbit K2=P1^5; sbit K3=P1^6; sbit K4=P1^7; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } //按周期t发音 void Play(uchar t) { uchar i; for(i=0;i<100;i++) { BEEP=~BEEP; DelayMS(t); } BEEP=0; } void main() { P1=0xff; BEEP=0; while(1) { if(K1==0) Play(1); if(K2==0) Play(2); if(K3==0) Play(3); if(K4==0) Play(4); } }

说明:程序运行时播放生日快乐歌,未使用定时器中断,所有频率完全用延时实现 */ #include #define uchar unsigned char #define uint unsigned int sbit BEEP=P3^7; //生日快乐歌的音符频率表,不同频率由不同的延时来决定 uchar code SONG_TONE[]= {212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,1 19,119,126,159,142,159,0}; //生日快乐歌节拍表,节拍决定每个音符的演奏长短 uchar code SONG_LONG[]= {9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } //播放函数 void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG为拍子长度 for(j=0;j

51单片机蜂鸣器播放音乐代码

/*生日快乐歌曲*/ #include <> #define uint unsigned int #define uchar unsigned char sbit beep = P1^5; uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}; uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t<120;t++); } void PlayMusic() { uint i=0,j,k; while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) { //播放各个音符,SONG_LONG 为拍子长度 for(j=0;j // 这是单片机音乐代码生成器生成的代码 #define uchar unsigned char sbit beepIO=P1^5; // 输出为可以修改成其它 IO 口uchar m,n;

51单片机控制继电器

(51单片机系列)用单片机控制继电器 2008-01-13 22:10 首先看看继电器的驱动 这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图 为什么要明白这个图的原理? 单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA 级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.这个很重要,因为,一直让我们的电气工程师(我指的是那些没有学习过相应的电子技术的)感到迷惑不解的是:一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西? 怎么样理解这个电路图? 要理解这个电路,其实也比较容易.那么请您按照我的思路来,应该没有问题: 首先的,里面的三极管很重要.三极管是电子电路里很重要的一个元件.怎么样理解三极管呢? 简单的来说三极管有两个作用一个是放大作用,一个是开关作用.(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理).在这里,我们只了解它跟本电路有关的开关作用. 首先把三极管想成一个水龙头.

上面的Vcc就是水池,继电器是一个水轮机,下面的GND是比水池低的任何一点.刚才说过,三极管就是水龙头,它的把手就是那个带有电阻的引脚. 现在,单片机的某一个需要控制这个继电器电路的输出引脚就是一只"手",当单片机的这个引脚输出低电平的时候,就像"手"在打开三极管"水龙头",水就从上往下流,继电器"水轮机"就开始转起来了.反之,如果是输出高电平,"手"就开始关"水龙头",继电器"水轮机"因为没有水流下来,就会停止. 这就是三极管的开关作用. 简单的理解和记忆就是:三极管是一个开关器件,其实你真的可以将它看成是一个开关,只不过它不是用手来控制,而是用电压(电流)来控制的,因此,三极管有些时候也被称做电子开关(与机械开关相区别). 图上还有一个东西,是保护二极管,如果不需要深入理解的话,你大可不必追就为什么有它存在,但是一定得记住,只要是用三极管驱动继电器的场合,一般都有它的存在.需要特别注意的是它的接法:并联在继电器两端阴极一定是接Vcc 【电子制作实验室--转】 https://www.sodocs.net/doc/ac9548454.html,/DJS.htm 这里我们先要安装好51试验板上的两个轻触按钮开关,我们采用的是 独立式按钮开关,也就是说将开关直接连接到电源的地和单片机的对应 引脚之间,这里K1接到单片机的P3.6引脚,K2接到P3.7。正常情况 下单片机的P3.6、P3.7都被程序初始化时置“1” 当有按键按下时对 应的单片机引脚被按钮开关下拉为“0”,这种方法比较直观,而且比

蜂鸣器程序

单片机蜂鸣器实验 C程序: #include "reg51.h" #define uchar unsigned char #define uint unsigned int sbit FM=P2^3; void delay ( uchar x) { uint y; for (; x > 0 x-- ) for( y=500 y>0;y--); } void main() { FM=0; while(1) { delay(20); FM=1; delay(20); FM=0; } } 因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音

单片机驱动蜂鸣器原理与设计 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。下面是电磁式蜂鸣器的外形图片及结构图。。。电磁式蜂鸣器实物图:一、电磁式蜂鸣器驱动原理蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3:S51增强型单片机实验板蜂鸣器驱动原理图:如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平 时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。二、蜂鸣器列子下面我们举几个简单的单片机驱动蜂鸣器的编程和电路设计的列子。1、简单的蜂鸣器实验程序:本程序通过在P3.7输出一个音频范围的方波,驱动实验板上的蜂鸣器发出蜂鸣声,其中DELAY延时子程序的作用是使输出的方波频率在人耳朵听觉能力之内的20KHZ以下,如果没有这个延时程序的话,输出的频率将大大超出人耳朵的听觉能力,我们将不能听到声音。更改延时常数,可以改变输出频率,也就可以调整蜂鸣器的音调。大家可以在实验中更改#228为其他值,听听蜂鸣器音调的改变。 ORG 0000H AJMP MAIN ;跳转到主程序 ORG 0030H MAIN: CPL P3.7 ;蜂鸣器驱动电平取反 LCALL DELAY 延时 AJMP MAIN 反复循环 DELAY:MOV R7,#228 ;延时子程序,更改该延时常数可以改变蜂鸣器发出的音调 DE1: DJNZ R7,DE1 RET

用单片机驱动电磁式继电器的方法

在各种自动控制设备中,都存在一个低压的自动控制电路与高压电气电路的互相连接问题,一方面要使低压的电子电路的控制信号能够控制高压电气电路的执行元件,如电动机、电磁铁、电灯等;另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全,电磁式继电器便能完成这一桥梁作用。 电磁继电器是在在输入电路电流的作用下,由机械部件的相对运动产生预定响应的一种继电器。 它包括直流电磁继电器、交流电磁继电器、磁保持继电器、极化继电器、舌簧继电器,节能功率继电器。 (1)直流电磁继电器:输入电路中的控制电流为直流的电磁继电器。 (2)交流电磁继电器:输入电路中的控制电流为交流的电磁继电器。 (3)磁保持继电器:将磁钢引入磁回路,继电器线圈断电后,继电器的衔铁仍能保持在线圈通电时的状态,具有两个稳定状态。 (4)极化继电器:状态改变取决于输入激励量极性的一种直流继电器。 (5)舌簧继电器:利用密封在管,具有触点簧片和衔铁磁路双重作用的舌簧的动作来开、闭或转换线路的继电器。 (6)节能功率继电器:输入电路中的控制电流为交流的电磁继电器,但它的电流大(一般30-100A),体积小, 节电功能. 电磁式继电器一般由控制线圈、铁芯、衔铁、触点簧片等组成,控制线圈和接点组之间是相互绝缘的,因此,能够为控制电路起到良好的电气隔离作用。当我们在继电器的线圈两头加上其线圈的额定的电压时,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的接通、切断的开关目的。 下面是一个小型信号继电器HK4100F-DC5V-SH的实物照片和主要技术参数。。。 HK4100F电磁继电器主要技术参数: 触点参数: 触点形式:1C(SPDT) 触点负载: 3A 220V AC/30V DC 阻抗:≤100mΩ 额定电流: 3A 电气寿命:≥10万次 机械寿命:≥1000万次 线圈参数: 阻值(士10%):120Ω 线圈功耗:0.2W

51单片机四路抢答器(LED灯,数码管显示,蜂鸣器提示音)C语言源程序

51单片机四路抢答器(LED灯,数码管显示,蜂鸣器提示音)C语言源程序2009-10-31 10:53 其实就是在原有的基础上,加入数码管显示及蜂鸣器,当然根据自己的要求,适当使用单片机I/O口 接线为: P0 P2 来控制数码管显示,其中P0为数码管显字控制,P2用来选择位(第几个数码管) P1用来控制8个LED灯 P3,独立按键(可以根据需要修改) P3^5(找了一个没有用到的I/O口,当然,可以用键盘扫描的方式来实现,这样的话,可以实现4*4=16路的抢答器,了解原理,做相应修改即可。 #include sbit key1=P3^0; //这里采用独立按键(4路) sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; sbit SPK=P3^5; //蜂鸣器,最好在ISP编程时先不接入,(我用的是杜邦线,可以设置跳线控制) void delay(unsigned int cnt) { while(--cnt); } void speak(unsigned int j) { unsigned int i; for(i=0;i

{ bit Flag; while(!Flag) { if(!key1){P1=0xFE;Flag=1;speak(300);P2=0;P0=0x06;} //LED1,数码管1显示1,蜂鸣器叫 else if(!key2){P1=0xFD;Flag=1;speak(300);P2=1;P0=0x5b;}//LED2,数码管2显示2,蜂鸣器叫 else if(!key3){P1=0xFB;Flag=1;speak(300);P2=2;P0=0x4f;}//LED3,数码管3显示3,蜂鸣器叫 else if(!key4){P1=0xF7;Flag=1;speak(300);P2=3;P0=0x66;}LED4,数码管4显示4,蜂鸣器叫 } while(Flag); } 测试完,手动复位即可,当然可设置相应的按键来控制标志:Flag,进行继续抢答。。

单片机控制蜂鸣器概要

单片机控制蜂鸣器20年月日

目录 绪论 (1) 1、硬件设计 (2) 1.1 总体设计图 (2) 1.2 简易结构框图 (2) 1.3各部分硬件设计及功能 (3) 1.3.1 蜂鸣器发声电路:(如图1.3.1) (3) 1.3.2 电源稳压电路: (4) 1.4 元件清单 (4) 2、软件设计 (5) 2.1设计思想 (5) 2.2 程序流程图 (5) 2.3 音调、节拍以及编码的确定方法 (6) 2.3.1音调的确定 (6) 2.3.2 节拍的确定 (8) 2.3.3 编码 (9) 3、电路仿真与分析 (10) 4、电路板焊接、调试 (11) 4.1 焊接 (11) 4.2 调试 (12) 5、讨论及进一步研究建议 (12) 6、心得 (12) 7、单片机音乐播放器程序实例(卡农) (13)

绪论 蜂鸣器播放音乐电路设计对于单片机初学者来说是一个简单易实现的课题。通过编写程序使单片机产生一定频率的方波信号,方波信号进入蜂鸣器便产生我们熟知的音调。 我们用定时/计数器使单片机产生方波,利用定时/计数器使输出管脚在一定周期内反复翻转,达到所需频率,而我们给定时/计数器的初始值就是我们的音符—半周期数据表,通过我们播放的音乐的乐谱,来对数据表进行调用。 我们用延时子程序来表示节拍,不同的节拍代表不同的延时。 完成此次设计之后完全可以进行扩展,例如增加按键以及LED灯光效果,制成一个简易的音乐盒,给人以视觉听觉等全方位的享受。

1、硬件设计1.1 总体设计图 1.2 简易结构框图

1.3各部分硬件设计及功能 1.3.1 蜂鸣器发声电路:(如图1.3.1) 图1.3.1 如图所示,蜂鸣器发声电路是播放音乐电路的主要执行电路,它由一个蜂鸣器,一个三极管和一个电位器组成。蜂鸣器负责发声,三极管将电流放大,而电位器则控制流过蜂鸣器电流的大小,来达到控制音量的目的。

单片机控制蜂鸣器唱歌的原理

单片机控制蜂鸣器唱歌 的原理 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。1)音调的确定 音调就是我们常说的音高。它是由频率来确定的!我们可以查出各个音符所对应的相 应的频率,那么现在就需要我们来用51来发出相应频率的声音! 我们常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢? 以标准音高A 为例: A 的频率f = 440 Hz, 其对应的周期为:T = 1/ f = 1/440 =2272μs 那么,单片机上对应蜂鸣器的I/O 口来回取反的时间应为: t = T/2 = 2272/2 = 1136 μs ,也就是清零、置位在一个周期内完成. 这个时间t 也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0 ,则定时器的予置初值由下式来确定: t = 12 * (TALL – THL)/ f0 式中TALL = 216= 65536,T HL为定时器待确定的计数初值。因此定时器的高低计数器的初值为: TH =THL/ 256 = ( TALL – t* f0/12) / 256

单片机控制继电器实现开关状态显示

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华 学生:王竣民

机电工程学院 单片机最小应用系统设计报告 目录 一、设计题目 (3) 二、设计容与要求 (3) 三、设计目的意义 (3) 四、系统硬件电路图 (3) 五、程序流程图与源程序 (5) 5.1流程图 (5) 5.2源程序 (5) 5.2.1程序设计思想 (5) 5.2.2源程序清单 (5) 六、系统功能分析与说明 (7) 6.1系统主要组成部分 (7) 6.1.1 单片机最小系统部分 (7) 6.1.2 可编程的并行接口芯片8255A (8) 6.1.3 输入输出部分 (8) 6.2 可编程的并行接口8255A接口电路部分 (9) 6.2.1 8255A的引脚 (9) 6.2.2 8255A的部结构 (10) 6.2.3 8255A的工作方式 (11) 6.2.4 8255A的控制字 (13) 6.3 开关状态的读入与显示部分 (15) 6.4 指示灯显示部分 (15) 6.5 电路板的制作 (16) 6.5.1 PCB图的制作 (16) 6.5.2 电路板的腐蚀、钻孔和元器件的焊接 (17) 6.6 系统连线说明分析 (17) 七、设计体会 (18) 八、参考文献 (19)

一、设计题目 可编程的并行接口芯片8255A控制继电器实现开关状态显示控制。采用AT89S51单片机读取外部(8255的A口)的开关信号并将相应的信号通过8255的B口用LED 显示出来端口。 二、设计容与要求 用8051单片机和8255读取开关状态并显示开关状态。用8255的A口接8个开关,B口接8个发光二极管,读取开关状态后,将状态通过8个发光二极管显示出来。 三、设计目的意义 1、掌握单片机扩展外部数据存储器的方法。 2、掌握可编程的并行接口芯片8255A与单片机的硬件接口电路、8255A部结构及其编程方法。 3、掌握单片机的最小系统的设计。 4、掌握电路板的设计与制作。。 5、了解程序编写与调试的方法和技巧。 6、综合掌握所学的单片机指令系统和硬件接口电路知识,进行简单的最小系统开发。 四、系统硬件电路图 系统硬件图(图1)包括单片机最小系统(复位电路、晶振电路和相关的控制信号)、外部扩展芯片8255A部分、外电路接通显示部分、及电源显示部分。 设计硬件电路图时,其基本思想:先通过万能板搭建试验平台,将编好的程序下载到51中,等可以达到预期要求后,最后在PROTEL中设计原理图与PCB,做出电路板。

51单片机实现蜂鸣器警车、救护车、消防车声

1. /*----------------------------------------------- 名称:喇叭 论坛:www.dofl https://www.sodocs.net/doc/ac9548454.html, 编写:shifang 日期:2009.5 修改:无 内容:模拟警车发声 ------------------------------------------------*/ #i nclude //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbi t SPK=P1^2; //定义喇叭端口 unsi gned char fr q; voi d DelayUs2x(un si gned char t);//函数声明 voi d DelayMs(un si gned char t); /*------------------------------------------------ 定时器初始化子程序 ------------------------------------------------*/ voi d Init_Ti mer0(voi d) { TM OD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响

//TL0=0x00; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } /*------------------------------------------------ 主函数 ------------------------------------------------*/ mai n() { Ini t_Timer0(); //初始化定时器 while(1) { DelayMs(1); //延时1m s,累加频率值 fr q++; } } /*------------------------------------------------ uS延时函数,含有输入参数 un si gned ch ar t,无返回值 unsigne d char是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时

单片机驱动蜂鸣器原理与程序学习资料

单片机驱动蜂鸣器原 理与程序

单片机驱动蜂鸣器原理与设计 作者:mcu110 来源:51hei 点击数:12159 更新时间:2007年08月01日【字体:大中小】 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图:电磁式蜂鸣器结构示意图:

图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 4. 磁铁 5. 底座 6. 引脚 7. 外壳 8. 铁芯 9. 封胶 10. 小铁片 11. 振动膜 12. 电路板 一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图:

单片机控制继电器设计报告

单片机课程设计报告——单片机控制继电器 摘要: 本实验是基于AT89S51单片机所设计的。通过单片机的P3.6引脚输出低(高)电平时,三极管T5饱和导通(截止),+5V电源加到继电器线圈两端,继电器吸合(释放),同时状态指示的发光二极管也点亮(熄灭),继电器的常开触点闭合(释放),相当于开关闭合(断开)。 关键词:AT89S51 HK4100F电磁继电器 一、目的、用途、功能 1.1目的: 设计一种投资少,简单易行,仅仅只是在现在的设备的基础之上稍加改造,又能从根本上解决对继电器的控制问题。 1.2用途与功能: 现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全。电子继电器便能完成这一桥梁作用。 二、硬件设计 2.1硬件设计思想 单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接 2.2部分硬件方案论述 方案一: 8550位于继电器下方,此种的连接方法8550没有工作在饱和状态,即VCE未达到手册所说明的典型值0.2V,使得继电器线圈两端电压未达到理想值,一般达到4.4V。改变电阻R,测试结果如下: 1)R=2K,VCC=5V,此时VCE=0.96V,线圈电压4.04V。

单片机课程设计报告利用蜂鸣器播放音乐

课程设计:嵌入式系统应用 题目名称:利用蜂鸣器实现音乐播放功能 姓名: 学号: 班级: 完成时间:

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.蜂鸣器及其工作原理: 蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 本实验采用的是电磁式蜂鸣器。 蜂鸣器按其是否带有信号源又分为有源和无源两种类型。有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一

基于C51单片机矩阵键盘控制蜂鸣器的应用

学校代码 10126 学号科研创新训练论文 题目基于C51单片机的蜂鸣器和流水灯的 应用 院系内蒙古大学鄂尔多斯学院 专业名称自动化 年级 2013 级 学生姓名高乐 指导教师高乐奇 2015年06月20日

基于C51单片机的蜂鸣器和流水灯的应用 摘要 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。本文介绍了单片机的发展及应用,和基于单片机的蜂鸣器和流水灯的知识及应用,还介绍了此次我所设计的课题。 关键词:C-51单片机,控制系统,流水灯,蜂鸣器,程序设计

The application of buzzer and flowing water light based on C51 MCU Author:GaoLe Tutor:GaoLeQi Abstract This age is a new technology emerge in endlessly era, in the electronic field especially automation intelligent control field, the traditional schism components or digital logic circuit, is composed of control system with unprecedented speed was replaced by micro-controller intelligent control system. SCM has small, strong function, low cost, etc, it can be said that wide application, intelligent control and automatic control core is the micro-controller.This article introduces the MCU development and application,the knowledge and application of buzzer and flowing water light based on MCU,then introduces the task I have designed this time. Keyword:C51 micro-controller,control system,flowing water light,buzzer ,programming

动手用单片机控制继电器

用单片机控制继电器 这里继电器由相应的S8050三极管来驱动,开机时,单片机初始化后的为高电平,+5伏电源通过电阻使三极管导通,所以开机后继电器始终处于吸合状态,如果我们在程序中给单片机一条:CLR 或者CLR 的指令的话,相应三极管的基极就会被拉低到零伏左右,使相应的三极管截至,继电器就会断电释放,每个继电器都有一个常开转常闭的接点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管.

51单片机驱动继电器电路 1.基本电路如右图。 2.单片机的IO口输出电流很小4到20mA,所以要用三极管放大来驱 动继电器。 主要技术参数 1.触点参数: 2.触点形式:1C(SPDT) 3.触点负载: 3A 220V AC/30V DC 4.阻抗:≤100mΩ 5.额定电流: 3A 6.电气寿命:≥10万次 7.机械寿命:≥1000万次 8.线圈参数: 9.阻值(士10%): 120Ω 10.线圈功耗: 11.额定电压:DC 5V 12.吸合电压:DC 13.释放电压:DC 14.工作温度:-25℃~+70℃ 15.绝缘电阻:≥100MΩ型号: HK4100F-DC5V-SH 16.线圈与触点间耐压:4000VAC/1分钟 17.触点与触点间耐压:750VAC/1分钟 继电器工作吸合电流为5V=40mA或5V/120Ω≈40mA。 三极管基极电流:继电器的吸合电流/放大倍数=基极电流(40mA/100 =4mA),为工作稳定,实际基极电流应为计算值的2倍以上。 基极电阻:()/基极电流=电阻值8mA =Ω)。 这里单片机IO口输出高电平触发三极管导通。经过以上的分析计算得出:三极管可用极性是NPN 的9014或8050,电阻选 AT89S52 每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为10mA;每个8位的接口(P1、P2以及P3),允许向引脚灌入的总电流最大为15mA,而P0的能力强一些,允许向引脚灌入的最大总电流为26mA;全部的四个接口所允许的灌电流之和,最大为71mA。 而当这些引脚“输出高电平”的时候,单片机的“拉电流”能力呢可以说是太差了,竟然不到1mA。 结论就是:单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。

51单片机通过按键控制蜂鸣器发生详解

单片机开发报告 院系:电子工程学院 专业:自动化 班级:自动化1401 学号:8 姓名:越 指导老师:星光

2018年01 月04 日 一.系统任务 按键控制蜂鸣器发声 二.电路原理图 三.程序设计容 “叮咚”电子门铃实验程序:常见的家用电子门铃在有客人来访时候,如果按压门铃按钮时,室会发出“叮咚”声音,本实验程序模拟电子门铃的发音,当我们按压实验板上的K1按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。 使用无源蜂鸣器输出7个基本音阶 声音是由物体振动所产生的。只是由于物体的材料以及振幅、频率不同,而产生不同的声音。声音的响度是由振幅决定的,而音调则是由频率决定的,那么我们只需要控制物体振动的频率,就可以发出固定

的声调。 五.汇编程序 ORG 0000H AJMP START ORG 000BH INC 20H ;中断服务,中断计数器加1 MOV TH0,#0D8H MOV TL0,#0F0H 12M晶振,形成10毫秒中断 RETI ORG 001BH LJMP INTT1 ;跳转到T1中断服务程序START: MOV DPTR,#00H ;初始化程序 MOV A,#00H OBUF1 EQU 30H OBUF2 EQU 31H OBUF3 EQU 32H OBUF4 EQU 33H FLAGB BIT 00H STOPB BIT 01H MOV SP,#50H

MOV TH0,#0D8H MOV TL0,#0F0H MOV TMOD,#21H MOV TH1,#09H MOV TL1,#09H MOV IE,#8AH AJMP LOOP LOOP: JNB P3.2,MUSIC0 JNB P3.1,MAIN AJMP LOOP MAIN: JB P3.1,MAIN ;检测p3.1按钮 LCALL YS10M ;延时去抖动 JB P3.1,MAIN SETB TR1 ;按钮有效 MOV OBUF1,#00H MOV OBUF2,#00H MOV OBUF3,#00H MOV OBUF4,#00H CLR FLAGB CLR STOPB

单片机驱动蜂鸣器原理与程序

单片机驱动蜂鸣器原理与设计下面是电磁式蜂鸣器的外形图片及结构图。。。

时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。 程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。 二、蜂鸣器列子 下面我们举几个简单的单片机驱动蜂鸣器的编程和电路设计的列子。 1、简单的蜂鸣器实验程序:本程序通过在P3.7输出一个音频范围的方波,驱动实验板上的蜂鸣器发出蜂鸣声,其中DELAY延时子程序的作用是使输出的方波频率在人耳朵听觉能力之内的20KHZ以下,如果没有这个延时程序的话,输出的频率将大大超出人耳朵的听觉能力,我们将不能听到声音。更改延时常数,可以改变输出频率,也就可以调整蜂鸣器的音调。大家可以在实验中更改#228为其他值,听听蜂鸣器音调的改变。 ORG 0000H AJMP MAIN ;跳转到主程序 ORG 0030H MAIN: CPL P3.7 ;蜂鸣器驱动电平取反 LCALL DELAY ;延时 AJMP MAIN ;反复循环 DELAY:MOV R7,#228 ;延时子程序,更改该延时常数可以改变蜂鸣器发出的音调 DE1: DJNZ R7,DE1 RET

END 2、倒车警示音实验程序:我们知道各种卡车、货柜车在倒车时候,会发出倒车的蜂鸣警示提示音,同时警示黄灯也同步闪烁,提醒后面的人或车辆注意。本实验例程就实现倒车警示功能,通过实验板上的蜂鸣器发出警示音,同时通过实验板上P1.2和P1.5上的两个黄色发光二极管来发出黄色警示灯。 ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H START: MOV SP,#60H ;SP初始化 MOV P3,#0FFH ;端口初始化 MAIN: ACALL SOUND ;蜂鸣器发声 ACALL YS500M ;延时 AJMP MAIN SOUND: MOV P1,#11011011B ;点亮2个警示黄色发光二极管 MOV R2,#200 ;响200个周期 SND1: CLR P3.7 ;输出低电平T1导通,蜂鸣器响 ACALL YS1ms ;延时 SETB P3.7 ;输出高电平T1截止,蜂鸣器不响 ACALL YS1ms ;延时 DJNZ R2,SND1 MOV P1,#0FFH ;熄灭黄色警示灯 RET

单片机驱动蜂鸣器C51程序

单片机驱动蜂鸣器C51程序 #include reg51.h#include intrins.h#include absacc.h #define uchar unsigned char#define uint unsigned int sbit k1=P1;//按钮1sbit k2=P1 ; //按钮2 sbit beep=P3;//接蜂鸣器 /*********************************************************本程序出 自51hei 会员uiesers 的辛勤劳动,作用是驱动蜂鸣器发出声音,蜂鸣器接在单片 机的p1.5 口,由两个按钮控制.p1.4 开,p1.5 关闭声音。 *********************************************************/void Delay(uint num)//延时函数{while( --num );} /*********************************************************蜂鸣器响 一声**********************************************************/void BEEP(){unsigned char y;for (y=0;y150;y++){while(1){Delay(50);beep=!beep; //BEEP 取反if(k2==0){{break;}beep=0; } } }} /********************************************************关闭蜂鸣器 ********************************************************/ /*********************************************************按键延时 程序 *********************************************************/key_time(){u char k; for(k=0;k15;k++) BEEP();}/*******************************************************单片 机驱动蜂鸣器主程序入口,等待按键事件发生。

相关主题