1输出控制实验闪烁流水灯_第1页
1输出控制实验闪烁流水灯_第2页
1输出控制实验闪烁流水灯_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GPIO 输出实验-Led闪烁、流水灯1实验目的1) 通过实验掌握 CC2540GPIO 的配置方法2) 掌握 Led 驱动电路及开关 Led 的原理3) 操作 IO 口3 盏 LED 灯的全亮和全灭、闪烁、流水灯2实验设备硬件:PC 机一台SmartRF cc254x(底板、套软件:板、器、USB 线)一XP/win7 系统,IAR 8.10 集成开发环境3.实验相关电路图由于发光管单向导电特性,即只有在正向电压(二极管的正极接正,负极接负)下才能导通发光。四个 LED 为共阳极接法故相应管脚输出高电LED 点亮。技术工程师:公司:创造思索未来 科技共赢4实验相关寄存器下面我们以 P1.0的

2、 LED1 为例,操作 P1.0 时我们需要掌握相关寄存器的作用和配置方法。如下表所示:按照表格寄存器的内容,对 P1.0、P1.1、P0.4 进行配置,当 IO 口输出高电平时 Led 被点亮。技术工程师:公司:创造思索未来 科技共赢寄存器作用描述P1(0x90)端口 1端口。通用 I/O 端口。可以从 SFR 位寻址。P1SEL(0xF4)端口 1 功能选择P1.7 到 P0.0 功能选择0:通用 I/O1:外设功能P1DIR(0xFE)端口 1 方向P1.7 到 P1.0 的 I/O 方向0:输入1: 输出P1INP(0xF6)端口 1 输入模式P1.7 到 P1.2 的 I/O 输入模

3、式。由于 P1.0 和P1.1 没有上拉/下拉功能,P1INP 暂时不需要配置0: 上拉/下拉(见 P2INP(0xF7)-端口 2 输入模式)1: 三态所以配置如下:P1SEL &=0x03; /配置 P1.0、P1.1 为通用 IO 口P0SEL &=0x10; /配置 P0.4 为通用 IO 口P1DIR |= 0x03; /配置 P1.0、P1.1 为输出P0DIR |= 0x10; /配置 P0.4 为输出由于 CC2540 寄存器初始化时默认值为(详细说明请参考 CC2530(中文).pdf,适用于 CC2540 和 CC2541): P1SEL = 0x00;P1

4、DIR |=0xff;P1INP=0x00;所以 IO 口配置可简化为:P1DIR |= 0x03; /配置 P1.0、P1.1 为输出。同理,LED3 相关的 P0.4 也是同样的用法,开发者可以找相关手册得到法。方5.源码分析/* 文件名: main.c* 作者: 创思通信: 公司*:* 修订: 2016-06-08* 版本: 1.0* 描述: 操作 IO 口4 盏 LED 灯的全亮和全灭、闪烁、流水灯*/ #include <ioCC2540.h>#define uchar unsigned char #define uint unsigned int#define LED1

5、 P1_0/定义 P1.0 口为 LED1#define LED2 P1_1 /定义 P1.1 口为 LED2#define LED3 P0_4/定义 P0.4 口为 LED3端端端技术工程师:公司:创造思索未来 科技共赢/* 名称: Delay_ms()* 功能: 以毫秒为延时,系统时钟不配置时默认为 16M(用示波器测量相当精确)参数: msec 延时参数,值越大,延时越久* 出口参数: 无*/ void DelayMs(uint len)while(len-)for (int i=0; i<535; i+);/* 名称: LedOnOrOff()* 功能: 点亮或熄灭所有 LED

6、灯参数: mode 为 1 时 LED 灯亮 mode 为 0 时 LED 灯阴极* 出口参数: 无*/ void LedOnOff(uchar mode)LED1 = mode; LED2 = mode; LED3 = mode;/* 名称: InitLed()* 功能: 设置 LED 灯相应的 IO 口参数: 无* 出口参数: 无*/ void InitLed(void)P1DIR |= 0x03;/P1.0、P1.1 定义为输出P0DIR |= 0x10;/P0.4 定义为输出LedOnOff(0);/使所有 LED 灯默认为熄灭状态/* 程序函数*/技术工程师:公司:创造思索未来 科技共赢void main(void)uchar i;InitLed();/设置 LED 灯相关 IO 口while(1)/死循环LED1 = !LED1; /流水灯,初始化时 LED 为熄灭执行后则点亮DelayMs(200); LED2 = !LED2;DelayMs(200); LED3 = !LED3;DelayMs(200);for (i=0; i<2; i+) /所有灯闪烁 2 次LedOnOff(0); /关闭所有 LED 灯DelayMs(200);LedOnOff(1); /打开所有 LED 灯DelayMs(200);LedOnOff(0); /使所有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论