zoukankan      html  css  js  c++  java
  • 第一个程序点亮一个LED灯

    #include <reg52.h> // 引用52包文件 可以理解为命名空间

    sbit P1_0 = P1^0;   // 定义P1管脚0

    void main()             // 主程序 C语言所必需要有的
    {
    P1_0 = 0;              // 点亮P1第0管脚连接的LED
    }

    ===============以下非程序代码===================

    上面的程序,首先引用reg52.h,这里有对操作单片机相关数据的封装,方便用户使用

    接着,用P1_0这个sbit类型的变量,引用P1口的第1个引脚(P1^0)

    接着,主程序开始

    将P1口的第1个引脚置为低电平(亮)

    结束程序

    在reg52.h上右键菜单(Keil中)open document<reg52.h>可以打开reg52单元,发现P1的定义:sfr P1 = 0x90;什么意思呢?

    sfr 是用于定义特殊寄存器(Special Function Register)的关键字,是单片计算机中的一组特殊的临时存储区域,用于动态存放计算机运行过程的一些状态信息、并依此做相应的控制。51系列单片机中,通常每个寄存器也就一个字节,这个字节是P1(通用寄存器1)P1有8个位,但0x91~0x97与P1毫无关系,同理其他3个寄存器P0, P2, P3也是这个道理。MCS-51单片机就设有18个专用寄存器,P0-P3端口,定时/计数器T0、T1,TMOD、TCON、PCON、SCON 、PSW、IE、A、B、IP等等。SFR越多,编和控制功能越强、越灵活,但需要硬资源,所以系统设计时会根据需要来确定。

    sbit(Set Bit)与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1。

    要点:

    1.sfr和sbit的含意,特殊功能寄存器的含意

    2.如何用位控制引脚

  • 相关阅读:
    组合继承
    包装明星——封装
    多种添加公用方法的方式
    专有扩展
    插入标记
    mac 命令操作
    php(apache)切换版本
    SqlServer索引+约束篇章
    sqlserver 常用语法
    C# 通用数据访问类
  • 原文地址:https://www.cnblogs.com/coloregg/p/3554714.html
Copyright © 2011-2022 走看看