• CC2530 LED灯控制


     

    有三个寄存器

    分别是功能寄存器、方向寄存器、配置寄存器

    功能寄存器

    通用

    I/O口

    说的就是一般的I/O口,可以输出高低电平

    为外设IO

    例如摄像头或者打印机他们具体实现某些功能(拍照或打印文档),单片机要控制这些外部设备,一般的来说单片机的I/O口与这些外设的引脚相连,通过I/O引脚实现对外部设备的控制,让它们完成我们要求的功能。

     

    通用I/O的使用

    //既然IO有分两种。那么我们就需要设置指定的IO引脚是什么类型的。

    //已知0为设置为通用IO,1为外设IO

     

    功能寄存器PxSEL的配置

     

    例如我们要设置P0_1口为通用IO,只需写以下代码

     

    P0SEL &=~(1<<1);

     

    如果是外设IO呢?我后面也会细讲,这里讲个大概的

     

    P0SEL |=1<<1;

     

    方向寄存器PxDIR的配置

     

    这个是干嘛用呢?其实也非常简单,就是设置该IO口是输入还是输出用的。所以它的配置也相当简单

    /*P0_1设置为输入IO引脚*/

    P0DIR&=~(1<<1);

    /*P0_1设置为输出IO引脚*/

    P0DIR|=1<<1;

     

    实验控制led灯

    通过上面两个寄存器的设置就可以实现简单的LED灯闪烁的功能了。

     

    大概思路是这样子的,如何控制灯亮呢?

    给它一个高电平/低电平

    这里我假设是高电平,怎么给它高电平呢?

    首先配置IO口是通用IO还是外设IO,由于此灯不需要复杂的功能,所以我们只需要将它设置为通用IO即可。接着就是它为输出模式就好了

    /*定义LED1*/

    #define LED1 P0_1

    void Delay(int n)

    {

        int z=n;

        for (int i = 0; i < 125; i++)

            for (int j = 0; j < n; i++);

    }

    void IOinit()

    {

    P0SEL&=~(1<<1);//配置通用IO

    PODIR |=1<<1; //方向输出模式

    }

    void LEDinit()

    {

    LED1=1;//LED初始化

    }

    void main()

    {

    IOinit();

    LEDinit();

    while(1)

    {

    LED1=~LED1;//让灯闪烁

    Delay(1000);

    }

    }

  • 相关阅读:
    Java.Annotations
    Tools.Eclipse.HowToImportAnAndroidLibraryProjectIntoWorkspace
    Android.Tools.Eclipse hangs at the Android SDK Content Loader
    .Net之用户控件笔记
    sql语句之静态行转列(转)
    sql语句之查看数据库及数据表创建日期
    sql语句之UNION,联合查询
    Pyhton不能输入中文注释
    js获取referrer中的参数
    angularJS插入html及更换iframe的src
  • 原文地址:https://www.cnblogs.com/XiaoGuanYu/p/9300465.html
Copyright © 2020-2023  润新知