zoukankan      html  css  js  c++  java
  • 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);

    }

    }

  • 相关阅读:
    云计算大会有感—MapReduce和UDF
    C++对象模型
    oracle中LAG()和LEAD()等分析统计函数的使用方法(统计月增长率)
    .NET MVC学习笔记(一)
    解决mysql控制台查询数据乱码的问题,有图有真相
    java linux 项目常常无故被关闭 进程无故消息
    android点滴之ContentObserver的使用
    GEF-whole-upload教程中遇到的问题及解决方案
    第四届蓝桥杯JavaB组省赛真题
    第四届蓝桥杯JavaA组省赛真题
  • 原文地址:https://www.cnblogs.com/XiaoGuanYu/p/9300465.html
Copyright © 2011-2022 走看看