2.1 任务2.1 周期性点亮与熄灭LED_第1页
2.1 任务2.1 周期性点亮与熄灭LED_第2页
2.1 任务2.1 周期性点亮与熄灭LED_第3页
2.1 任务2.1 周期性点亮与熄灭LED_第4页
2.1 任务2.1 周期性点亮与熄灭LED_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

单片机应用技术项目二跑马灯的实现任务2.1周期性点亮与熄灭LED任务要求

CC2530开发板上,以电源端为左端,从左向右依次有D4、D3、D6、D5这4个LED。本任务以CC2530开发板上的D3为目标LED,程序运行后,D3点亮,一段时间后,D3熄灭,再隔一段时间,D3点亮,再隔一段时间后,D3熄灭,如此循环。12相关寄存器引脚3&=~与|=运算符4任务分析5电路分析6任务实现一、引脚

40个引脚外观边长6mm的正边形P1端口8位P2端口5位P0端口8位3个端口;共计21根引脚一、引脚

引脚类型一、引脚

可配置为通用I/O引脚。输入/输出方式,高电平(1表示)、低电平(0表示)可配置为外设I/O引脚配置为通用输入引脚时,输入模式具有上拉、下拉和三态3种。通用I/O,也称为数字I/O,也称为GPIO。一、引脚上拉是引脚通过电阻接VCC,引脚的电平固定为高电平。下拉是引脚通过电阻接GND,是为了把引脚固定为低电平。三态又称为高阻态,简单理解就是电平的高低由这根线上的外部电路决定,当外部电路为高电平的时候,它也是高电平;当外部电路为低电平的时候,它也是低电平;当外部电路为高阻态的时候,它就是高阻态的,状态完全和外部电路一样。二、相关寄存器

特殊功能寄存器(SFR)单片机内部具有一些特殊功能的存储单元,用来存放控制单片机内部器件的命令、数据或运行中的状态信息。操作单片机,本质上就是对SFR进行读写操作。部分SFR可以进行位寻址。举例:P1_1=1;二、相关寄存器第一类:P0、P1、P2寄存器P0(0x80)位名称复位读写描述7:0P0[7:0]0xFFR/W可用作GPIO或者外设I/O,8位,可位寻址P1(0x90)位名称复位读写描述7:0P1[7:0]0xFFR/W可用作GPIO或者外设I/O,8位,可位寻址P2(0xA0)位名称复位读写描述7:5-000R0高3位没有使用4:0P2[4:0]0x1FR/W可用作GPIO或者外设I/O,低5位,可位寻址二、相关寄存器P1=0x21;P1_7P1_6P1_5P1_4P1_3P1_2P1_1P1_0P1寄存器低高00100001设置让P1端口第2位值为1P1_2=1;位寻址00100001B二、相关寄存器第2类:端口选择寄存器:P0SEL、P1SEL、P2SEL

位名称复位操作描述7SELPx[7]0R/W设置Px_7引脚的功能。0:通用I/O引脚。1:外设I/O引脚6SELPx[6]0R/W设置Px_6引脚的功能。0:通用I/O引脚。1:外设I/O引脚5SELPx[5]0R/W设置Px_5引脚的功能。0:通用I/O引脚。1:外设I/O引脚4SELPx[4]0R/W设置Px_4引脚的功能。0:通用I/O引脚。1:外设I/O引脚3SELPx[3]0R/W设置Px_3引脚的功能。0:通用I/O引脚。1:外设I/O引脚2SELPx[2]0R/W设置Px_2引脚的功能。0:通用I/O引脚。1:外设I/O引脚1SELPx[1]0R/W设置Px_1引脚的功能。0:通用I/O引脚。1:外设I/O引脚0SELPx[0]0R/W设置Px_0引脚的功能。0:通用I/O引脚。1:外设I/O引脚P0SEL或P1SEL二、相关寄存器P2SEL位名称复位读写描述7--0R0没有使用6PRI3P10R/W略5PRI2P10R/W略4PRI1P10R/W略3--0R/W略2--0R/W设置P2_4引脚的功能。0:通用I/O引脚。1:外设I/O引脚1--0R/W设置P2_3引脚的功能。0:通用I/O引脚。1:外设I/O引脚0--0R/W设置P2_0引脚的功能。0:通用I/O引脚。1:外设I/O引脚举例设置P2_3为外设I/OP2SEL=0x0200000010B0x02二、相关寄存器第三类,方向寄存器:P0DIR、P1DIR、P2DIR。P0DIR位名称复位读写描述7:00x00R/WP0_7~P0_0方向选择位,0为输入,1为输出P1DIR位名称复位读写描述7:00x00R/WP1_7~P1_0方向选择位,0为输入,1为输出举例设置P0_2引脚为输出方向P0DIR=0x0400000100B0x04P0_7P0_6P0_5P0_4P0_3P0_2P0_1P0_0P0DIR寄存器共八位,从低到高依次为P0_0、P0_1到P0_7引脚进行配置二、相关寄存器P2DIR位名称复位读/写描述7:600R/W略50R0没有使用4:000000R/WP2_4~P2_0方向选择位,0为输入,1为输出。三、

&=~与|=运算符&=~运算符用途:用于使寄存器某位复位,即值为0。该符号后面二进制数字为1对应的寄存器位为0,其他位保持不变。例:P1SEL&=~0x01。位与运算符(&)规则:二进制数字0或1,与0位与运算,结果都是0;与1位与运算,结果都是数字本身原式P1SEL&=~0x01变形,转换为P1SEL&=~00000001B变形,转换为P1SEL&=(~00000001B)变形,转换为P1SEL&=(11111110B)变形,转换为P1SEL=P1SEL&(11111110B)结果P1SEL寄存器最低位的值变为0,其他7位的值保持不变三、&=~与|=运算符举一反三:P0SEL&=~0x3E。解:P0SEL&=~0x3EP0SEL=P0SEL&~00111110BP0SEL=P0SEL&(~00111110B)P0SEL=P0SEL&(11000001B)即P0SEL的第1、2、3、4、5位值为0。三、&=~与|=运算符|=运算符用途:用于使寄存器某位置位,即值为1,符号后面二进制数字为1对应的寄存器位为1,其他位保持不变。例:P1DIR|=0x01;位或运算符(|)规则:二进制数字0或1,与0位或运算,结果都是数字本身;与1位或运算,结果都是1原式P1DIR|=0x01变形,转换为P1DIR|=

00000001B变形,转换为P1DIR=(P1DIR|00000001B)结果P1DIR寄存器最低位的值变为1,其他7位的值保持不变三、&=~与|=运算符例:P0端口的低4位配置为数字输出功能,高4位配置为数字输入功能。分析:(1)功能选择。配置P0端口为GPIO,所以,P0SEL&=~0xFF。或者,P0SEL=0x00。一般,要使某位为0,用&=~运算表达式;要使某位为1,用|=运算表达式。(2)方向选择。设置低4位为输出功能,则P0DIR|=0x0F;设置高4位为输入功能,则P0DIR&=~0xF0。四、任务分析

1.CC2530单片机上电,设置并点亮D3。2.延时一段时间,熄灭D3。3.延时一段时间,点亮D3。4.返回步骤2,继续重复执行。五、电路分析

D3(即LED1)的负极端通过一个限流电阻(R8,1KΩ)连接到地(低电平),D3正极端连接到CC2530单片机的P1_0引脚。六、任务实现

关键代码设置P1_0引脚为普通I/O引脚P1SEL

&=~

0x01;设置P1_0引脚为输出方向P1DIR

|=

0x01;六、任务实现

#include

"ioCC2530.h"

//导入头文件

//延时函数实现

void

delay(unsigned

int

time)

{

unsigned

int

i;

unsigned

int

j;

for(i=0;i<time;i++){

for(j

=

0

;j<720;j++)

{

asm("NOP");

}

}

}void

main()

{

P1SEL

&=~

0x01;

P1DIR

|=

0x01;

P1_0

=

0;

delay(1000);

while(1)

{

温馨提示

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

评论

0/150

提交评论