使用PNP型三极管驱动蜂鸣器的电路图如下图所示:
R2为限流电阻,D1二极管称为续流二极管。
蜂鸣器是感性器件,当三极管导通给蜂鸣器供电时,就会有导通电流流过蜂鸣器。电感的一个特点就是电流不能突变,导通时电流是逐渐增大的,这点没问题,但是当关断时,经“电源-三极管-蜂鸣器-地”这条回路就截断了,过不了任何电流,储存的电流经D1和蜂鸣器自身的环路来消耗掉,避免了关断时由于电感电流造成的反向冲击,接续关断时的电流。
使用NPN型三极管驱动蜂鸣器的电路图如下图所示:
在使用NPN型三极管驱动蜂鸣器时,不能将蜂鸣器接到发射极,如果串接在发射级上,蜂鸣器会产生负反馈,这有可能会导致三极管不能进入饱和导通状态,影响蜂鸣器正常鸣响。
在上图中,R1和R3起限流作用,R2起下拉作用,如此可以提高三极管的关断速度。工作中三极管是处于截止状态或饱和导通状态,即管子的非线性应用。
在电路关断之后,三极管be段端电压由0.7V缓慢下降,三极管没有完全关断,且处较长时间放大状态,会损坏三极管,所以需要加一个下拉电阻R2。
若是R2的阻值过大,会导致Vbe太大,也会损坏三极管。若是R2的值应该是刚好使三极管导通状态,电阻过小,会导致整体电路损耗加大。
蜂鸣器发声的程序
蜂鸣器配合流水灯发声的程序
LED的符号
LED的工作是有方向性的,只有当正极接到LED阳极,负极接到LED阴极的时候才能工作,反接LED是不能正常工作的。
开发板上原理图
LED的阳极串联一个电阻,然后连接到电源VCC(高电平),而阴极连接到单片机的I/O口。想点亮一盏LED就把单片机相对应的I/O口赋为低电平。
LED显示
段显示:8段:7段数码管+一个小数点;米字段。
点阵显示:5x8,8x8点阵。
LED数码管
这是一个数码管内部电路原理图,a到h每个数字代表一个发光二极管,v是公共端,可以接地或者电源,对应共阴极和共阳极接法。a~g段数码管用来显示数字,h显示小数点。为了便于封装,数码管的外部一共10个引脚,5和10连在一起接公共端,其余各对应一个发光二极管。
如果我们将数码管接到P1口上,显示数字“0”的话,那么P1口的八个引脚电平(共阴极数码管)应为:0011 1111转换成二进制就是P1=0x3f,如果是共阳极数码管,则P1=~0x3f,按位取反就可以。如果我们想让小数点显示出来,那么应该将P0.7置1(共阴极),对应引脚电平为1000 0000,二进制0x80,为了简便,我们直接参与按位或的方式,即:
P1=(0x3f|0x80) 共阴极 P1=~(0x3f|0x80) 共阳极
共阴极:各二极管的阴极连接在一起,公共端接低电平时,某段阳极加上高电平则该段发光二极管就导通发光。
共阳极:各二极管的阳极连接在一起,公共端接高电平时,某段阴极加上低电平则该段发光二极管就导通发光。
位选:选择待操作的数码管,如开发板上的是8位数码管,位选就是选择8位数码管中的某一个。
段选:选择数码管里面的LED灯,即通过选择点亮响应的LED灯以达到显示需要的数据的目的。
(一般地,操作数码管时,先执行段选再执行位选)
段码:数码管的段码指的是数码管在显示不同的数据时,段选信号对应的二进制数据。 下图是以8段共阴极数码管显示数字7为例来描述
静态显示
静态显示就是当数码管显示某一个字符时,相应的发光二极管一直处于发光或熄灭状态。具有程序简单,亮度高,CPU工作效率高等优点。一般应用于显示位数较少的系统中。
动态显示
动态显示采用扫描的方式轮流点亮LED数码管的个位。通常将多个数码管的段选线并联在一起,用一个8位I/O口控制;各个数码管的位选线(数码管的公共端)由另外的I/O口控制。通过控制公共端是否有效,逐个循环点亮各位显示器。由于人眼具有视觉暂留效应。虽然任一时刻只有一位数码管被点亮,但因为每个数码管点亮的时间间隔很短,看起来数码管都在同时显示。
LED显示器显示字符”b“的程序