蜂鸣器
1.编写程序:
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit beep=P1^5;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
beep=~beep; //~将电平进行取反,高低电平不断变化,产生一个脉冲
delay(10); //需要一个延时函数来形成一定频率脉冲
}
}
2.主要内容:
a.
电磁式蜂鸣器:接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
b.
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。 多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
c.
自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过放大电路放大驱动电流就能使蜂鸣器发出声音
d.
一定频率的脉冲:高低电平的不断变化,只是需要一定时间周期(通过延时函数实现)。
e.
改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调。
改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
静态数码管
1.原理:
a. 单片机系统中常用的显示器有:
发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、TFT液晶显示器等。LED显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。
LED数码管根据LED的不同接法可以分为2类:共阴和共阳。 {图a:LED实物管脚,图b:共阴(8个LED阴极连在一起,图c:共阳(8个LED阳极连在一起)}
b.使用LED显示器时,要注意区分两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。
共阴数码管码表
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d
0 1 2 3 4 5
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c
6 7 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
C D E F 无显示
静态显示原理
LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
74H573锁存器的使用
- OE为使能端,当他为低电平的时候, 锁存器开始工作
- VCC和GND为电源和地端
- LE为锁存端,当LE为高电平(1)的时候,Q0-Q7都跟D0-D7状态一样,当LE为低电平(2)的时候,Q0-Q7都锁存数据,无论D0-D7怎么变化,Q0-Q7都保持锁存之前的那个状态。
2.编写程序:
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //code:保存数据
void main()
{
LSA=0;
LSB=0;
LSC=0;
P0=smgduan[0]; //调用数字
while(1);
}