1 单片机点亮一个LED灯-德赢Vwin官网 网
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指示灯输出结果

图片

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

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

    关注

    6035

    文章

    44554

    浏览量

    634580
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    107948
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136676
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62567
  • MDK
    MDK
    +关注

    关注

    4

    文章

    209

    浏览量

    32063
收藏 人收藏

    评论

    相关推荐

    单片机点亮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的资料和程序免费下载

    首先,在使用单片机以及单片机开发板的时候,要明白这是堆非常不可靠的电路……然后就可以入坑了。我用的开发板型号是HC6800-EM3 V2.0,感觉非常坑,有时间有兴趣的还是买元件自己焊板子吧。
    发表于 09-18 17:21 1次下载
    使用51<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>的资料和程序免费下载

    如何使用单片机点亮LED

    我们学单片机,第一个程序就是点亮LED,那么我单片机
    发表于 07-16 17:39 4次下载
    如何使用<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    使用单片机实现点亮LED的程序和仿真资料免费下载

    本文档的主要内容详细介绍的是使用单片机实现点亮LED的程序和仿真资料免费下载。
    发表于 03-18 17:11 21次下载

    51单片机——LED点亮

    点亮LED原理单片机点亮LED 利用LED阳极为正阴极为负才会导通
    发表于 11-11 19:21 19次下载
    51<b class='flag-5'>单片机</b>——<b class='flag-5'>LED</b><b class='flag-5'>灯</b>的<b class='flag-5'>点亮</b>

    STC单片机点亮LED

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

    金沙滩51单片机点亮LED

    我用的开发板型号是金沙滩51单片机IDE是keil4,普通的C语言环境。#include &lt;reg52.h&gt; //包含特殊功能寄存器定义的头文件
    发表于 11-23 16:36 0次下载
    金沙滩51<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    51单片机——点亮LED

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

    基于单片机点亮LED

    单片机点亮LED就像用C语言输出“hello world”样,是入门的第课。
    的头像 发表于 05-24 14:25 1816次阅读
    基于<b class='flag-5'>单片机</b><b class='flag-5'>点亮</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>

    基于51单片机点亮LED(

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

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

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