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);

    }

    }

  • 相关阅读:
    控制容器的反转和依赖注入模式
    缓存和内存区别
    数据库知识总结:sqlserver中事务总结:begin tran,rollback tran,commit tran +IndexDB总结
    SqlServer数据库1433端口问题1
    网络配置:IP+NETMASK+GATEWAY+DNS
    Shell脚本中非交互式修改密码的方法(转)
    Linux之sed:删除某行以及替换
    每日命令:(3)pwd
    Linux目录结构详细介绍
    关于Linux字符集的查看及修改
  • 原文地址:https://www.cnblogs.com/XiaoGuanYu/p/9300465.html
Copyright © 2011-2022 走看看