
A板子
#include "hal_defs.h"
#include "hal_cc8051.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_led.h"
#include "hal_rf.h"
#include "basic_rf.h"
#include "hal_uart.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#define LED1 P1_3
#define LED2 P1_4
#define LED3 P1_0
#define LED4 P1_1
#define SW P1_2
unsigned char Send[2] = {0};
unsigned char Read[2] = {0};
/*A*/
/*****点对点通讯地址设置******/
#define RF_CHANNEL 20 // 频道 11~26
#define PAN_ID 0x1010 //网络id
#define MY_ADDR 0xA //本机模块地址
#define SEND_ADDR 0xB //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;
// 无线RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID;
basicRfConfig.channel = RF_CHANNEL;
basicRfConfig.myAddr = MY_ADDR;
basicRfConfig.ackRequest = TRUE;
while(basicRfInit(&basicRfConfig) == FAILED);
basicRfReceiveOn();
}
void init(){
P1SEL &= ~0x1F;
P1DIR |= 0x1B;
P1 = 0;
}
void init_time(){
T1CC0L = 0xD4;
T1CC0H = 0x30;
T1CCTL0 |= 0x04;
T1CTL |= 0x0E;
EA = 1;
T1IE = 1;
}
void delay(unsigned int time){
unsigned int i;
unsigned char j;
for(i = 0;i < time ;i++){
for(j = 0;j < 240;j++){
}
}
}
void LS(){
LED1 = 0;
LED4 = 1;
delay(1000);
LED4 = 0;
LED3 = 1;
delay(1000);
LED3 = 0;
LED2 = 1;
delay(1000);
LED2 = 0;
LED1 = 1;
delay(1000);
}
/********************MAIN************************/
void main(void)
{
halBoardInit();//选手不得在此函数内添加代码
ConfigRf_Init();//选手不得在此函数内添加代码
init();
init_time();
while(1)
{
/* user code start */
while(SW == 0){
Send[0] = 1;
basicRfSendPacket(SEND_ADDR,Send,2);
}
if(Send[0] == 1){
Send[0] = 2;
basicRfSendPacket(SEND_ADDR,Send,2);
}
if(Read[0] == 1){
LS();
}
/* user code end */
}
}
#pragma vector = T1_VECTOR
__interrupt void T1(){
T1STAT &= ~0x01;
if(basicRfPacketIsReady()){
basicRfReceive(Read,2,NULL);
}
}
B板子
#include "hal_defs.h"
#include "hal_cc8051.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_led.h"
#include "hal_rf.h"
#include "basic_rf.h"
#include "hal_uart.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#define LED1 P1_3
#define LED2 P1_4
#define LED3 P1_0
#define LED4 P1_1
#define SW P1_2
unsigned char Send[2] = {0};
unsigned char Read[2] = {0};
/*B*/
/*****点对点通讯地址设置******/
#define RF_CHANNEL 20 // 频道 11~26
#define PAN_ID 0x1010 //网络id
#define MY_ADDR 0xB //本机模块地址
#define SEND_ADDR 0xA //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;
// 无线RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID;
basicRfConfig.channel = RF_CHANNEL;
basicRfConfig.myAddr = MY_ADDR;
basicRfConfig.ackRequest = TRUE;
while(basicRfInit(&basicRfConfig) == FAILED);
basicRfReceiveOn();
}
void touch();
void init(){
P1SEL &= ~0x1F;
P1DIR |= 0x1B;
P1 = 0;
}
void init_time(){
T1CC0L = 0xD4;
T1CC0H = 0x30;
T1CCTL0 |= 0x04;
T1CTL |= 0x0E;
EA = 1;
T1IE = 1;
}
void delay(unsigned int time){
unsigned int i;
unsigned char j;
for(i = 0;i < time ;i++){
for(j = 0;j < 240;j++){
}
}
}
void LS(){
LED1 = 0;
LED4 = 1;
delay(300);
LED4 = 0;
LED3 = 1;
delay(300);
LED3 = 0;
LED2 = 1;
delay(300);
LED2 = 0;
LED1 = 1;
delay(300);
}
void HX(){
unsigned int i,j;
for(i = 0;i < 1000;i++){
do{
for(j = 0;j < i ;j++){
LED4 = 1;
touch();
}
for(j = 0;j <1000 - i ;j++){
LED4 = 0;
touch();
}
}while(Read[0] > 1);
}
for(i = 0;i < 1000;i++){
do{
for(j = 0;j < i ;j++){
LED4 = 0;
touch();
}
for(j = 0;j <1000 - i ;j++){
LED4 = 1;
touch();
}
}while(Read[0] > 1);
}
}
void touch(){
if(SW == 0){
while(SW == 0);
halMcuWaitMs(150);
if(SW == 0){
Send[0] = 1;
basicRfSendPacket(SEND_ADDR,Send,2);
}
}
}
/********************MAIN************************/
void main(void)
{
halBoardInit();//选手不得在此函数内添加代码
ConfigRf_Init();//选手不得在此函数内添加代码
init();
init_time();
while(1)
{
/* user code start */
touch();
if(Read[0] >= 1){
HX();
}
/* user code end */
}
}
#pragma vector = T1_VECTOR
__interrupt void T1(){
T1STAT &= ~0x01;
if(basicRfPacketIsReady()){
basicRfReceive(Read,2,NULL);
}
}