原创 CC2430基础实验一:自动闪烁

2008-9-19 16:15 3274 5 5 分类: MCU/ 嵌入式

1.1 实验说明<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


使用CC2430I/O来控制外设。以LED灯为外设,将I/O设置为输出,用CC2430控制LED闪烁。


实验中操作了的寄存器有P1P1DIR,没有设置而是取默认值的寄存器有:P1SELP1INP




   


位号


复位值


操作性


功能描述


P1


7:0


0x00


R/W


P1端口普通功能寄存器,可位寻址


P1DIR(DIRP1_x)


7:0


0


R/W


P1端口方向:0-输入,1-输出


P1SEL(SELP1_x)


7:0


0


R/W


P1口功能选择:0-普通I/O1-外设功能


P1INP(MDP1_x)


7:2


0


R/W


P1I/O输入模式:0-上/下拉;1-三态


P1INP


1:0


0x00


R0


不使用


1.2 实验程序


#include <ioCC2430.h>


 


#define uint unsigned int


#define uchar unsigned char


//定义控制灯的端口


#define RLED P1_0   


/* 根据原理图,LD1(黄)为P1_0口控制;主扩展板为RLED;JKS底板为D2(红) */


#define GLED P1_1   


/* 根据原理图,LD2(红)为P1_1口控制;主扩展板为GLED;JKS底板为D3(黄) */


#define YLED P1_2    //根据原理图,主扩展板的YLEDP1_2口控制;


 


//函数声明


void Delay(uint);         //延时函数


void Initial(void);          //初始化函数


/****************************


//延时程序,延时时间约为5*n/32μs


*****************************/


void Delay(uint n)


{


       uint tt;


       for(tt = 0;tt<n;tt++);


       for(tt = 0;tt<n;tt++);


       for(tt = 0;tt<n;tt++);


       for(tt = 0;tt<n;tt++);


       for(tt = 0;tt<n;tt++);


}


/****************************


//初始化程序


*****************************/


void Initial(void)


{


              P1DIR |= 0x07;    //P1_0P1_1P1_2定义为输出


        RLED = 1;


              GLED = 1;


        YLED = 1;           //置高电平,LED


}


/***************************


//主函数


***************************/


void main(void)


{


       Initial();          //调用初始化函数


       RLED = 0;


       GLED = 0;


    YLED = 0;     //置低电平,LED


       while(1)         //循环,实现LED闪烁


       {


           GLED = !GLED;


           Delay(10000);


       }


}



实验源程序来源于WXL的CC2430基础实验,我用的是C51RF-JKS-CC2430
,有些接口和我的板子不一样,所以做了一些改动。


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /3 下一条