辜渝傧

13037102709

027-87870986

教学实训

您当前的位置:首页 > 教学资源 > 实训方案 >

无线传感网络实训|实验3.4 红外发送实验

发布者:唯众    布时间:2020-11-27 15:43:17    点击量:

1.实验目的

1)、通过实验掌握CC2530芯片GPIO的配置方法
2)、掌握GPIO模拟红外编码,实现遥控器的功能

2.实验设备

硬件:PC机1台、ZIGBEE节点板1套(底板、核心板、仿真器、USB 线)、唯众红外收发模块1个
软件:2000/XP/win7 系统,IAR 8.10 集成开发环境

3.实验相关电路图

实验3.4 红外发送实验

4.实验相关寄存器

5.源码分析

#include "Delay.h"
#include "OLED.h"
 
#include "IRSend.h"
#include <stdio.h>
 
 
#define KEY2 P2_0                           //KEY2为P2.0口控制
 
uint16 stringlen;
extern uint16 HWSendAddcode;     //红外发送地址码
 
 
void InitKey()

  P2SEL &= ~0X01;                     //设置P20为普通IO口 
  P2DIR &= ~0X01;                      //按键在P20 口,设置为输入模式
  P2INP &=  ~0x01;                   //打开P20上拉电阻,不影响 
}
 
 
uint8 KeyScan(void)
{
  if(KEY2==0)                                 //同上,按键不一样而已
  {
    Delay_ms(10);
    if(KEY2==0)
    {
      while(!KEY2);
      return 2;   
    }
  } 
  return 0;         
}
 
void clock_setup(void)
{
       CLKCONCMD &= ~0x40;                         //设置系统时钟源为32MHZ晶振
    while(CLKCONSTA & 0x40);                    //等待晶振稳定
    CLKCONCMD &= ~0x47;                         //设置系统主时钟频率为32MHZ
}
/****************************************************************
主函数                                           
****************************************************************/
void main(void)
{     
       unsigned char str[40];      
       uint8 key=0;
      
       clock_setup();
      
       oled_port_init();
       initial_lcd(); 
      
       clear_screen();                                       //清屏
       display_string_8x16_16x16(1,1,"武汉唯众智创科技");                                                 
       display_string_8x16_16x16(3,1,"有限公司荣耀创造");
       Delay_ms(100);
       clear_screen();
      
       IRSendInit();
      
       sprintf((char *)str, "0x%04X", HWSendAddcode);      //把地址码转成字符串
       display_string_8x16_16x16(3,1, str);                  //显示地址码
                           
       while(1)
       {
              key = KeyScan();                //按键扫描
              if(key==2)
              {
                     IR_Sending(0xF807);         //发送红外 只输入指令码就可以了,地址码本遥控器都是0xff00
                     sprintf((char *)str, "0x%04X", 0xF807); //把指令码转成字符串
                     display_string_8x16_16x16(1,1, str);    //显示指令码
                     display_string_8x16_16x16(3,1, "VOL- ");//显示指令名称
              }
       }
}

6.实验现象

       当按下节点板上的按键时,发送一个红外信号,码值是0xF807。具体现象请结合红外接收实验观察。
 


上一篇:无线传感网络实训|实验3.3 温湿度采集实验

下一篇:无线传感网络实训|实验3.5 红外接收实验