2019年电子技术部第四次培训

丶灬走出姿态 提交于 2019-12-09 23:37:55

电子技术部第四次培训

电子技术部第四次培训,主要为大家讲解了进制之间的转换,复习上次培训的流水灯、呼吸灯等简单程序的编写,了解了蜂鸣器的发声和编曲和独立按键的使用。下面是对于培训内容的详细介绍:

一、 进制转换

1、二进制转八进制

规律:合三为一,不足在前面补零
例:
二进制:101 100 111
八进制:0547

2、二进制转十进制

例:
二进制:110 101
十进制:53

3、二进制转十六进制

规律:合四为一,不足在前面补零
例:
二进制: 1111 0011 1001
十六进制:0xF39

4、十进制转二进制、八进制、十六进制

规律:
十进制转多少就除多少,直至剩下0为止,把余数从最晚到最早排列起来(逆序排列 )。
例:十进制10转二进制
10/2等于5余0
5/2等于2余1
2/2等于1余0
1/2等于0余1
答案:1010
例:十进制17转八进制
17/8等于2余1
2/8等于0余2
答案:21
例:十进制155转十六进制
155/16等于9余11
9/16等于0余9
答案:0x9B

二、复习回顾

1、开发环境的搭建

新建工程—选择单片机型号—新建.c文件—添加—保存
注:一般不同的工程保存在不同的文件夹中,就像AD的工程一样,方便后续查找使用。
工程文件
工程类别
添加C文档

2、流水灯

#include “reg51.h”
#include “intrins.h”
#define LED P0
void delay(int i)
{
while(i–);
}
void main()
{
LED=0xfe;
while(1)
{
LED=crol(LED,1);
delay(30000);
}
}

3、呼吸灯

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define T 500

sbit LED = P1^0;
void delay(uint i)
{
while(i–);
}

void main(void)
{
uint light;
while(1)
{
for(light=T;light>0;light–)//逐渐变暗
{
LED=1;
delay(light);
LED=0;
delay(T-light);
}
for(light=0;light<T;light++)//逐渐变亮
{
LED=1;
delay(light);
LED=0;
delay(T-light);
}
}
}

三、奏响乐章

1、蜂鸣器简介

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。
广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
电磁式蜂鸣器组成:
1、振荡器
2、电磁线圈
3、磁铁
4、振动膜片
5、外壳
用1.5V的电压就可以发出85分贝以上的音压
压电式蜂鸣器组成:
1、压电蜂鸣器
2、共鸣箱
3、多谐振荡器
4、阻抗匹配器
5、外壳
压电式蜂鸣器需要较高的电压才能产生足够的音压,一般建议为9V以上

2、有源和无源蜂鸣器的区别:

源不是指电源的“源”,而是指有没有自带震荡电路
有源蜂鸣器自带了震荡电路,一通电就会发声,通常频率固定;(也可以用频率信号驱动)
无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动,才能发声。
1、价格不同
有源蜂鸣器往往比无源蜂鸣器贵,就是因为里面多个震荡电路。
2、外观不同
有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。
3、检测
万用表测电阻区别用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。
同时有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。
4、优点不同
无源蜂鸣器的优点是:
1、便宜;
2、声音频率可控,可以做出“多来米发索拉西”的效果;
有源蜂鸣器的优点是:
程序控制方便。

2、蜂鸣器发声(无源):

#include<reg51.h>
sbit beep = P2^3;

void delay100us(void)
{
unsigned char a,b;
for(b = 1;b > 0;b–)
for(a = 47;a > 0;a–);
}

void main()
{
while(1)
{
beep = 1;
delay100us();
beep = 0;
delay100us();
}
}

四、独立按键

1、初识按键

1、键盘的分类
键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;
在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。
非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。

2、独立键盘

以此图为例
按键在闭合和断开时,触点会存在抖动现象
按键需要消抖
按键检测程序:
#include “reg51.h”
typedef unsigned int u16;
typedef unsigned char u8;
sbit k1=P1^0; //定义P10口是k1
sbit led=P0^0; //定义P00口是led
void delay(u16 i)
{
while(i–);
}
void main()
{
led=0;
while(1)
{
if(k10)
{
delay(1000); //延时消抖
if(k1
0)
{
led=~led;
}
while(!k1); //松手检测
}
}
}

五、总结

本次培训讲解了单片机几个基本外设的应用,按键作为第一个我们学到的单片机输入的方式,也是比较重要的一个应用,在以后做作品的时候不免需要使用,希望大家熟练掌握并使用!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!