zoukankan      html  css  js  c++  java
  • 「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 }
  • 相关阅读:
    SPI简述
    stm32和sd卡
    BKP和RTC
    Lwip与底层的接口
    关于Ad-hoc
    stm32 引脚映射 和 ADC
    GDB使用总结
    linux管道和重定向
    学习python的第四天
    学习pyton的第三天
  • 原文地址:https://www.cnblogs.com/Donut/p/4123077.html
Copyright © 2011-2022 走看看