单片机小白学步系列(十四) 点亮第一个LED的程序分析

本文详细分析了51单片机点亮LED的程序,解释了包含头文件、C51的sbit变量类型、位寻址以及主函数特点。通过代码解析,阐述了如何使用sbit定义LED变量并控制IO口输出,介绍了单片机程序设计的基本原则,强调了程序可靠性和主函数的死循环重要性。
摘要由CSDN通过智能技术生成

本篇我们将分析上一篇所写的程序代码。未来学习单片机的大部分精力,我们也将放在程序代码的编写上。但是不用担心,我会非常详细的介绍每个程序的编写思路和各种注意事项等。

之前我们写的程序如下:

#include <reg52.h>

sbit LED = P1^0;

void main()

{

    LED = 0;

    while(1);

}

头文件

第一行包含头文件,这个和C语言编写HelloWorld时的#include 一样。头文件reg52.h中定义了单片机的一些寄存器,如P0~P3等。至于什么是寄存器,将在原理篇中具体介绍,现在我们只要把它想象成C语言中常说的内存就好了。有兴趣的读者可以右击reg52.h打开头文件看一看。

C51的变量类型

这里我们使用的语言是C51,和标准C语言相比,最主要的特点就是多出来两种变量类型:sfr和sbit。sfr和char一样是一个8位数据类型,表示一个8位的寄存器。例如头文件reg52.h中就有一句sfr P1 = 0x90,它定义了寄存器P1。由于P1是IO口寄存器,所以对P1赋值,则相应的, IO口P1将输出对应的高低电平。而sbit则是一个1位数据类型,只有0和1两种值,它对应寄存器中的一个位。

于是在第二行里,我们定义了sbit型变量LED,并设置LED对应P1的最低位bit0。此时变量LED就和IO口P1.0关联起来。执行赋值语句LED = 0,IO口P1.0就会输出低电平,于是我们电路中的LED就会亮起来了。是不是非常神奇呢?在原理篇中,我会一步一步讲解单片机是如何实现这种功能的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值