[关闭]
@Purpose 2016-08-16T13:13:30.000000Z 字数 1104 阅读 1072

单片机

蛋协


预期效果

预期效果

代码

代码
这节课不讲解具体的代码是什么,,,
只是会讲解这些为什么我们要写这些代码,
或者说我们写这些代码是为了实现什么功能

1.晶振

在开始代码之前我先给你们科普一点就是晶振对于单片机而言意味着什么
额,,先告诉你们晶振就是一个能以一定频率发出方波的玩意儿
晶振
就是他发出的信号是这个样子的(原谅我的手残)

百度百科
晶体振荡器是指从一块石英晶体上按一定方位角切下薄片,石英晶体谐振器,简称为石英晶体或晶体、晶振;而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。

晶振就相当于是单片机的心脏

单片机工作的时候是一条指令一条指令的去执行的,而每一条指令的执行都是需要机械周期的

总之就是晶振是单片机能够正常的执行指令的必备之物,或者说单片机是踩着晶振的节奏来执行指令的

同时这玩意儿也是单片机定时器和计数器的时间基准

晶振2
就是中间那玩意儿

然后我们看回代码.

首先我们是要打开相关外设的时钟

你们可以认为就是把时钟信号输入到相关外设

外设是什么你们自己百度吧,,,这里不好讲。。。。暂时理解成是外部设备好了,,,

总之就是将时钟信号输入到我这次用来点灯需要用到的东西上

然后选择好我们使用的引脚
引脚

芯片上那些一条条的就是引脚

每个引脚都有他的编号,这里我们选择好

然后我们将这个引脚设置成输出模式,也就我能够用这个引脚去输出,额,也就是我能够用代码去把引脚的电压设置成高电压(3.3V)或者是低电压也就是0V

将引脚设置好之后,我们用将这个引脚的电压拉高

引脚是高电压的话,根据中学物理我们就可以知道,这个发光二极管也就是LED就会被点亮啦~

如果我们让一盏灯慢慢的变亮我们要怎么办呢?

可能第一反应是将输出电压从0慢慢加到3.3V

但是我们要知道,单片机输出的要么是1(高电压),要么是0(低电压),也就是我们不能输出2V这些既不是高电平也不是低电平的值

但是我们可以换个办法,比如说,我在1ms的时间里,0.5ms是高电平,0.5ms是低电平的话,虽然实际上灯是在不断闪烁的

但是我们要知道有种东西叫做视觉残留
所以你看到的这盏LED是亮着的,但是亮度只有我正常点亮的一半
所以,机智如我就在一个足够短的时间周期内,把高电平的时间从0逐渐加到满
这样用肉眼看到的效果就是这LED慢慢的变亮了
函数
Delay_us就是一个延时函数,单片机会等待i us后再执行下面的代码
蛋协开发板上集成了个三色LED,所以按照上面讲解的步骤,就能够实现三种颜色依次缓慢亮起,缓慢熄灭
缓慢熄灭就是缓慢亮起的逆过程
然后,如果你们把很多盏LED排成心形,然后用单片机去控制,让他们缓慢亮起缓慢熄灭,你就得到一个有心跳的心了
6不6?

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注