「ZigBee模块」基础实验(1)点亮LED

1.IO配置

CC2530 的 IO 口配置需要三个寄存器:PXSELPXDIRPXINP 

 

IO口寄存器

P0

P1

P2

地址

0x80

0x90

0xA0

 

PXSEL

P0SEL

P1SEL

P2SEL

地址

0xF3

0xF4

0xF5

PX[7:0]功能设置寄存器,默认普通IO口 (0:普通 IO 口 1:第二功能)(P2SEL比较特殊,后面再提...)

 

PXDIR

P0DIR

P1DIR

P2DIR

地址

0xFD

0xFE

0xFF

PX[7:0] 输入输出设置寄存器 (0:输入 1:输出) (P2[4:0]是这样的...其余后面再说...)

 

PXINP

P0INP

P1INP

P2INP

地址

0x8F

0xF6

0xF7

PX[7:0]做输入口时的电路模式寄存器 (0:上拉/下拉 1:三态)(P2[4:0]是这样,其余后面再说)

2.LED部分接线方式

LED1P1_0

LED2P1_1

 

3.实现功能

通电后LED1LED2交替闪烁

 

4.部分代码分析

P1_0P1_1口进行配置

P1SEL &= ~0x03;

P1DIR |= 0x03;

P1INP &= ~0x03; 

 

5.完整代码

 1 #include <ioCC2530.h>
 2 
 3 #define LED1 P1_0
 4 #define LED2 P1_1
 5 
 6 #define uchar unsigned char
 7 #define uint  unsigned int
 8 
 9 void ledInit();
10 void delayms(uint ms);
11 
12 void ledInit()
13 {
14   P1SEL &= ~0x03;
15   P1DIR |= 0x03;
16   P1INP &= ~0x03;
17   
18   LED1 = 1;
19   LED2 = 0;
20 }
21 
22 void delayms(uint ms)
23 {
24   uint i,j;
25   for(i=ms; i>0; i--)
26     for(j=587; j>0; j--);
27 }
28 
29 void main()
30 {
31   ledInit();
32   while(1)
33   {
34     delayms(1000);
35     LED1 = !LED1;
36     LED2 = !LED2;
37   }
38 }
原文地址:https://www.cnblogs.com/Donut/p/4123077.html