0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机点亮一个LED灯

CHANBAEK 来源:科创追梦者 作者: 谢士金 2023-11-02 15:40 次阅读

一、MDK uVision开发环境界面介绍

图片

二、什么是宏定义

  • 宏定义就是用我们人比较好理解的字符串来代替某个数或字符串。宏定义是由#define空格+新字符串+空格+被代替的数或字符串。如下面的例子:
  • #define TRUE 1 //用TRUE来代替1
  • #define FALSE 0 //用FALSE来代替0
  • #define Pin_LED P32 //用Pin_LED来代替P32
  • #define PinLed_High() Pin_LED=1 //用Pin_LedHigh()来代替Pin_LED=1

三、#include 含义

C语言中,经常会用到其它已经定义好的文件,这时我们不必重新写一遍,只需要用#include <文件名>的格式,就可以把文件包含到我们的程序项目中。如:#include 就表示将已有的STC15.H文件加入到我们的项目当中。<>表示这个文件的路径是在MDK的安装目录中。

四、什么是函数

在C语言中,我们经常会用到函数。如C语言程序的入口函数main。一个函数通常用来表示一个程序功能块。这个功能块有输入参数和输出参数。就像一个水箱有一个进水口和一个出水口。如下面的函数:

图片

五、什么是函数原型

  • 在C语言中,所谓函数原型,就是指我们只定义了一个函数的名字和输入、输出参数,但并没有在函数中实现功能。如下面的例子:
  • void PinLED_DirOut(void);
  • 表示这是个LED灯的管脚输出控制函数定义。
  • 输入参数为无效参数,输出参数也为无效参数。

六、单片机输出口设置和输出

为了让单片机能点亮/熄灭指示灯,我们必须控制与LED指示灯相连接的引脚。在这里,P32表示是单片机的输出品P3的第2个脚。从原理图上可以看出,如果要点亮LED指示灯,则必须将P32这个引脚输出低电平。下面是与P32引脚有关的宏定义:

#define Pin_LED P32

#define Pin_LED_M1 P3M1

#define Pin_LED_M0 P3M0

#define Pin_LED_BIT BIT2

#define PinLed_High() Pin_LED=1

#define PinLed_Low() Pin_LED=0

我们要让单片机P32引脚控制LED指示灯,就必须将P32引脚设置为输出模式,下面这个函数就是设置P32为输出的代码:

//Pin_LED_M1实际上就是P3M1

//Pin_LED_M0实际上就是P3M0

//P3M1和P3M0两个寄存器单元,是用来配置P3口各引脚的输入/输出模//式

void PinLED_DirOut(void)

{

Pin_LED_M1 &=~Pin_LED_BIT;

  Pin_LED_M0 |=Pin_LED_BIT;

}

七、点亮LED指示灯的完整源程序

* #include < STC15.h >
*
* #define BIT0 0x01
* #define BIT1 0x02
* #define BIT2 0x04
* #define BIT3 0x08
* #define BIT4 0x10
* #define BIT5 0x20
* #define BIT6 0x40
* #define BIT7 0x80
* #define TRUE 1
* #define FALSE 0
* #define BEEP_ON          1
* #define BEEP_OFF        0
* #define Pin_LED P32
* #define Pin_LED_M1 P3M1
* #define Pin_LED_M0 P3M0
* #define Pin_LED_BIT BIT2
* #define PinLed_High()Pin_LED=1
* #define PinLed_Low()Pin_LED=0
*
* void PinLED_DirIn(void);
* void PinLED_DirOut(void);
*
* void main(void)
* {
*         PinLED_DirOut();
*         PinLed_Low();
*         while(TRUE)
*         {
*
*         }
* }

八、单片机程序编译

在uVision开发环境的菜单中,选择[Project(项目)]->[Build Target(编译目标)],然后开始编译程序。

图片

九、找到单片机烧写文件

在项目文件夹下找到刚才编译好的烧写文件(HEX文件),在本项目中为STC15WPrj.hex文件。

图片

十、下载烧写文件到单片机中

(1)先在网上找到STC单片机下载程序STC-ISP(V6.89).exe,然后下载到本地。

(2)启动STC-ISP(V6.89C)程序,然后点击[打开程序文件],在文件夹中找到刚才编译好的STC15WPrj.hex文件。

图片

(3)断开单片机电源,然后点击[下载/编程],然后再将单片机电源接通,则接下来等待下载完成。

图片

十一、单片机点亮LED指示灯输出结果

图片

至此,一个完整的单片机编写、编译、下载过程就讲完了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620866
  • led灯
    +关注

    关注

    22

    文章

    1554

    浏览量

    107032
  • C语言
    +关注

    关注

    180

    文章

    7533

    浏览量

    128782
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
  • MDK
    MDK
    +关注

    关注

    4

    文章

    208

    浏览量

    31772
收藏 人收藏

    评论

    相关推荐

    单片机点亮led程序

    单片机点亮led程序,其实题目所说的并不是绝对的,这个是需要看外围电路的,不
    发表于 07-14 07:01

    51单片机点亮led电路图

    51单片机点亮led电路图,我用的开发板型号是金沙滩51
    发表于 07-21 07:29

    如何实现种基于STC单片机点亮LED的设计

    LED是什么?LED发光二极管是如何工作的?如何实现种基于STC单片机点亮
    发表于 09-15 07:55

    如何利用C51单片机点亮LED

    我在学习单片机的第课就是点亮LED,因为我在
    发表于 11-23 07:34

    如何利用51单片机点亮LED

    如何利用51单片机点亮LED
    发表于 01-24 07:27

    使用51单片机点亮一个LED的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机点亮一个LED的程序免费下载。
    发表于 08-28 17:29 30次下载
    使用51<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>的程序免费下载

    使用单片机点亮一个LED的教程详细说明

    LED由含镓、砷、磷、氮的化合物,按照二极管工艺制作。二极管内部的电子与空穴复合时,辐射出光线。砷化镓二极管红光(2V),碳化硅二极管发黄光(2V),磷化镓二极管发绿光(3V),氮化镓二极管发蓝光(3V)。白色、粉红色等 都是由这4种颜色,用色粉调和而成 。所以白色是3V左右。
    发表于 12-05 17:23 2次下载
    使用<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>的教程详细说明

    如何使用单片机点亮一个LED

    二极管内部的电子与空穴复合时,辐射出光线。砷化镓二极管红光(2V),碳化硅二极管发黄光(2V),磷化镓二极管发绿光(3V),氮化镓二极管发蓝光(3V)。白色、粉红色等 都是由这4种颜色,用色粉调和而成 。所以白色是3V左右。
    发表于 12-13 17:07 1次下载
    如何使用<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>

    STC15单片机 点亮一个LED

    STC15F2K60S2单片机评估版开发日志①
    发表于 11-11 13:36 17次下载
    STC15<b class='flag-5'>单片机</b> <b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>

    STC单片机点亮一个LED

    LED的阴极(-)的时候才能工作,如果反接LED是不能正常工作的。3 . 看懂原理图LED的原理图解析 一共有八个led灯D1 - D8,开发板上面
    发表于 11-19 11:51 21次下载
    STC<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>灯

    51单片机 点亮一个LED LED闪烁

    (1) //循环 { }}使用51单片机点亮一个LED#include <reg52.h> //51单片机头文件sbit
    发表于 11-23 17:06 5次下载
    51<b class='flag-5'>单片机</b> <b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b> <b class='flag-5'>LED</b>闪烁

    51单片机点亮一个LED并闪烁(仿真+代码)

    点亮一个LED,这是单片机的一个最简单的入门实验。能让你初步了解到单片机的作用。(因为简单就只在仿真软件上给大家看一下)先给大家看一下仿真软件的电路(软件为Proteus)左侧为时钟电
    发表于 11-23 17:36 109次下载
    51<b class='flag-5'>单片机</b>:<b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>并闪烁(仿真+代码)

    51单片机——点亮一个LED

    51单片机——点亮一个LED灯文章目录51单片机——点亮一个LED灯一、原理图二、
    发表于 11-23 18:06 16次下载
    51<b class='flag-5'>单片机</b>——<b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>灯

    基于51单片机点亮一个LED灯(一)

    不论学习什么单片机,最简单的外设莫过于IO口的高低电平控制。而对于一个IO口的高低电平控制入门阶段将是从点亮一个LED开始的。
    的头像 发表于 11-01 11:44 1015次阅读
    基于51<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>灯(一)

    基于51单片机点亮一个LED灯(二)

    前面学习完怎么对单片机的一个IO口的高低电平的控制,并且成功点亮LED,接下来学习一下流水灯的写法。
    的头像 发表于 11-01 11:47 516次阅读
    基于51<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b>一个<b class='flag-5'>LED</b>灯(二)