51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

点亮LED

    • 一、LED基本概念
    • 二、LED工作参数
    • 三、LED原理图分析
    • 四、实践编程

一、LED基本概念

什么是LED

LED(light-emitting diode): 发光二极管

是一种常用的发光器件

发光二极管可高效地将电能转化为光能,可以将电信号转换为光信号的发光器件

特点:功耗低、高亮度、色彩鲜艳、抗震动、寿命长

直插式

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

长正短负(长的代表正极,短的代表负极)

贴片式

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

LED灯有一头为绿色,就意味着这头是负极,另外一头就是正极

二、LED工作参数

LED工作参数

LED灯在电路图中的符号为:

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

普通发光二极管工作压降为:1.6v ~ 2.1v

工作电流为:1~20mA

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

通过电路原理图可以得出:要点亮开发板上LED灯,只需要控制P1口输出低电平即可(编程时,给P1口赋值“0”)

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

如何在Keil4中进行编程

1、建立工程文件

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

在烧录软件中

  1. 根据自己单片机的型号进行选择 我的单片机是stc89c52
  2. 选择自己usb的串口号(串口号可以百度怎么查 不知道怎么查 私信我)
  3. 选择内部扩展RAM可用
  4. 勾选所圈出的地方(2个地方都圈出来)
  5. 打开之前在Keil uVision4中建立好的文件
  6. 点击下载/编程就可以烧录进单片机了

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

点亮第一个LED

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

发现只有电源指示灯是亮着的,LED1的灯熄灭

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)
LED闪烁

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

有熄灭效果的LED

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

unsigned int i; 数据类型 变量名

变量是在程序执行过程中其值能不断变化的量。

在使用一个变量之前必须进行定义,用一个标识符作为变量名,并指出它的数据类型

while(1) {} 只有当while后面圆括号内条件表达式的值为真时,程序才会重复执行花括号内语句,当条件表达式为假时则不执行花括号内语句

IO口与一个字节位的对应关系

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)
流水灯

利用define进行宏定义

注意宏定义后面不能加分号,它是预处理指令不是语句

“uchar”直接替换了”unsigned char”

此时,uchar i;等价于unsigned char i;

函数就是将多条语句集合在一块,来完成一种特定功能

函数分为标准函数和用户自定义函数

标准函数库:keil编译器提供的,不需要用户进行定义

自定义函数:用户根据自己需要编写的函数,它必须在使用前先定义

void delay(unsigned int z)

void 函数返回类型

delay 函数名

unsigned int z 形式参数

unsigned int x,y 定义局部变量

**for(x = z; x > 0; x–)
{
for(y = 114; y > 0 ; y–);
} ** 函数体语句

delay(100); 延时100ms

#include <intrins.h> 头文件,里面有一些库函数,包括

字符型循环左移函数_ crol _(a,b) a代表参与运算的数值 b代表循环左移的位数

51单片机基础入门(2)点灯大师:单个LED点亮、多个LED点亮、流水灯(附程序代码、解析)

区别:循环左移是把最高位移到最低位上,左移运算符是把最高位移除最低位补0

从LED1开始实现流水灯

来源:chris只会写bug

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月23日
下一篇 2021年9月23日

相关推荐