该教程利用单片机开发板学习 C 语言,这里的侧重点是 C 语言编程,因此我们会讲很多与编程相关的知识。
我们用这种“语言”控制单片机的行为,让它完成我们想要达到的目的。
void main(void)
{
while (1)
;
}
顾名思义,include 就是包含的意思。
插图
文件A的内容 |
文件B的内容 |
把两件文件结合在一起,组装成一个文件后再进行后面的处理。
单片机的内部只识别 1 和 0 组合成的机器语言。
uint8_t array[4] = {1, 2, 3, 4};
for (i = 0; i < 4; i++)
{
PORTC = array[i];
_delay_ms(2000);
}
(1)
#include <avr/io.h>
void main(void)
{
int i;
for (i = 0; i < 5; i++) // 循环 5 次
{
PORTC = 0b00000001; // LED 亮
_delay_ms(1000);
PORTC = 0b00000000; // LED 灭
_delay_ms(1000);
}
while (1)
{
// 这里面没有任何代码,什么都不干
}
}
注意观察 LED 的闪烁,它会闪烁 5 次,然后熄灭,最后进入无尽的 while(1) 循环。按 Reset 键,单片机会被“重启”(我们这里叫做复位),程序又会 main 开始运行,因此 LED 又会闪 5 次,然后熄灭。你可以把 i < 5 改成别的数字,然后观察效果。
参考下面的网页
所谓的库,就是一些事先编写好的函数。这就好比我们要做一个单片机电路,需要用到电阻,LED,我们需要做的是直接从零件库里取出来用就可以了,而不必自己再去做一个电阻或是 LED,这样做的好处显而易见:节省大量的时间。你还可以把自己的程序做成库发布在网上给别人使用。
我们先来看一个例子,以便得到直观的感受:
C 语言提供了一套标准的库函数。
首先,要在程序里包含相应的头文件(即 .h 文件)
然后,查看库函数的使用方法,比如它需要什么样的参数,它运行完成后会返回一个什么样的值。
把大的任务分成一个小的功能块。 怎样调用一个函数。调用之后再返回到此处。(加插图)
伪代码(不是真正的程序,但是可以把它翻译成真正的程序)
main:
把 I/O 的方向设置成输出模式
循环:
点亮 LED
拖延时间,什么都不干
关掉 LED
拖延时间,什么都不干
重复
值会变的量。
用 LED 做实验。
PORTC = 1 + 1;
观察 PORTC 上的 LED,因为 1 + 1 = 2,因此第二个 LED 会亮,因为数字 2 的二进制形式是 10.
PORTC = 5 - 1;
观察 PORTC 上的 LED,因为 5 - 1 = 4,因此第 3 个 LED 会亮,因为数字 4 的二进制形式是 100.
PORTC = 3 * 3;
观察 PORTC 上的 LED,因为 3 * 3 = 9,因此第 1 个和第 4 个 LED 会亮,因为数字 9 的二进制形式是 1001.
PORTC = 7 / 3;
观察 PORTC 上的 LED,因为 7 / 3 = 2.5,但在 C 语言里,整数和整数相除会舍去小数部分,因此 7 / 3 的结果是 2,因此第 2 个 LED 会亮,因为数字 2 的二进制形式是 10.
用实际例子来讲解。LED
按位与批的是,按对应的位之间执行与操作。 用 LED 举例子。