有三个寄存器

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

功能寄存器

通用

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

}

}

CC2530 LED灯控制的更多相关文章

  1. 基于TINY4412的Andorid开发-------简单的LED灯控制【转】

    本文转载自:http://www.cnblogs.com/pengdonglin137/p/3857724.html 基于TINY4412的Andorid开发-------简单的LED灯控制   阅读 ...

  2. [转] 基于TINY4412的Andorid开发-------简单的LED灯控制

    阅读目录 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源代码情景分析> ...

  3. 基于TINY4412的Andorid开发-------简单的LED灯控制

    参考资料: <Andriod系统源代码情景分析> <嵌入式Linux系统开发完全手册_基于4412_上册> 作者:彭东林 邮箱:pengdonglin137@163.com 平 ...

  4. 【转载】基于TINY4412的Andorid开发-------简单的LED灯控制

    阅读目录(Content) 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源 ...

  5. android驱动例子(LED灯控制)

    本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导 要达到的效果:通过a ...

  6. 让USB键盘的LED灯听你的!(不干扰使用)

    最近在研究一个课题,如何能利用键盘的led灯通道进行有效通信,那么首先要做的就是尝试能否在不影响键盘的情况下控制LED灯(num lock ,caps lock ,scroll lock)的使用. 首 ...

  7. CC2530学习路线-基础实验-GPIO 控制LED灯亮灭(1)

    目录 1.前期预备知识 1.1 新大陆ZigBee模块LED灯电路 1.2 CC2530相关寄存器 1.3 寄存器操作技巧 1.4 CPU空转延时 1.4 操作流程图 2.程序代码 The End 1 ...

  8. 嵌入式Linux学习入门:控制LED灯

    记录自己linux学习过程,让自己能够一直坚持下去 1.原理图分析: nLED_1, nLED_2, nLED_4, 给低电平则对应LED灯亮,高电平则对应LED灯灭, S3C2440芯片GPF4-G ...

  9. arduino 蓝牙控制RGB LED灯

    /* 日期:2016.9.2 功能:arduino 蓝牙控制RGB LED灯 元件: 跳线公公头 * 8 rgbled, 220欧电阻 蓝牙模块 接线: 蓝牙模块VCC,GND分别接5V,GND;TX ...

随机推荐

  1. python-无名管道进程通信

    #!/usr/bin/python #coding=utf-8 import sys,os from time import sleep (r,w)=os.pipe() #创建无名管道,返回两个整数, ...

  2. cors允许的方法和contype-type

    https://fetch.spec.whatwg.org/#cors-safelisted-request-header get head post text/plain multipart/for ...

  3. 2-5 js基础-简易运动框架

    'use strict'; function getStyle(obj,sName){ return (obj.currentStyle||getComputedStyle(obj,false))[s ...

  4. linux和Android的Makefile和android.mk

    1. makefile 1.1 gcc的参数 -Wall: 是打开警告开关, -O:    代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化. -g ...

  5. developer.android.google.cn

    Android Studio官方 Android IDE https://developer.android.google.cn/studio/index.html 探索 Android Studio ...

  6. lodop判断是否打印成功

    需要引用js <script src="js/jquery-3.3.1.js"></script> <script src="js/Lodo ...

  7. C# XML创建解析、XML格式化

    导入命名空间: VS需要在项目中添加引用system.XML; 代码中添加 using System.XML和using System.IO; XML范例: <?xml version=&quo ...

  8. 【SSH网上商城项目实战20】在线支付平台的介绍

    转自:https://blog.csdn.net/eson_15/article/details/51441431 之前已经完成了首页的显示,用户添加购物车,确认订单等功能,下面就是支付功能的开发了. ...

  9. visualvm 插件 visual gc 使用介绍

    visual gc 是 visualvm 中的图形化查看 gc 状况的插件. 具体详细介绍可参照: http://www.oracle.com/technetwork/java/visualgc-13 ...

  10. 借助 Filter 生成静态页面缓存问题

    如果有些 jsp 页面,在一次 jsp 页面生成后 html 后, 就不太可能需要更新.可以使用缓存机制来解决这个问题. 解决思路如下 1.  定义一个文件夹 pagestaticize,用来存放 j ...