?? main.c
字號:
/*廣州穗佳電子科技有限公司
冷火MCF52255多功能開發板
更多精彩產品,關注穗佳電子淘寶店
http://sogadz.taobao.com*/
#include "support_common.h" /* include peripheral declarations and more */
#if (CONSOLE_IO_SUPPORT || ENABLE_UART_SUPPORT)
/* Standard IO is only possible if Console or UART support is enabled. */
#include <stdio.h>
#endif
#include "NRF24L01.h"
#define uchar unsigned char
#define uint unsigned int
/*********************************************/ //延時 /*********************************************/
void delay(int xms) //xms毫秒延時
{
int ii,jj;
for(ii=0;ii<xms;ii++)
for(jj=0;jj<2000;jj++);
}
void delay_us(int xus) //xus微秒延時
{
int ii,jj;
for(ii=0;ii<xus;ii++)
for(jj=0;jj<2;jj++);
}
/*********************************************/ //流水燈,數碼管 蜂鳴器 /*********************************************/
#define Du MCF_GPIO_PORTUC_PORTUC0 //段選鎖存器控制端
#define We MCF_GPIO_PORTUC_PORTUC1 //位選鎖存器控制端
#define Du_1 MCF_GPIO_PORTUC|=Du //段選鎖存器控制端置1
#define We_1 MCF_GPIO_PORTUC|=We //位選鎖存器控制端置1
#define Du_0 MCF_GPIO_PORTUC&=~Du //段選鎖存器控制端置0
#define We_0 MCF_GPIO_PORTUC&=~We //位選鎖存器控制端置0
#define Beeper MCF_GPIO_PORTUC_PORTUC3
#define Beeper_1 MCF_GPIO_PORTUC|=Beeper
#define Beeper_0 MCF_GPIO_PORTUC&=~Beeper
#define LED_EN MCF_GPIO_PORTTJ_PORTTJ7 //LED 使能EN信號
#define LED_EN_0 MCF_GPIO_PORTTJ=0x0f
#define LED_EN_1 MCF_GPIO_PORTTJ=0x8f
void IO_init()
{
MCF_GPIO_PTJPAR = 0x00; // 配置PTJ為普通IO
MCF_GPIO_DDRTJ = 0xff; // 設置PTJ為輸出
MCF_GPIO_PORTTJ = 0x00; //關閉PTJ口
MCF_GPIO_PUCPAR = 0x00; // 配置PUC為普通IO
MCF_GPIO_DDRUC = 0xff; // 設置PUC為輸出
MCF_GPIO_PORTUC = 0x08; //關閉PUC口
}
void led(uchar n) //n;顯示內容
{
char i;
MCF_GPIO_PORTTJ=0; //流水燈控制端
Du_1; //段選鎖存器
Du_0;
LED_EN_0; //流水燈公共端
We_1; //位選鎖存器
We_0;
MCF_GPIO_PORTTJ=n; //流水燈控制端
Du_1; //段選鎖存器
Du_0;
}
uchar num_we[]={0x87,0x8b,0x8d,0x8e,};//數碼管位控制
uchar num_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};//數碼管段碼表
void Segment_clr()
{
MCF_GPIO_PORTTJ=0x00; //消影
Du_1; //段選鎖存器
Du_0;
}
void Seg_1(uchar n,uchar m)//第n位顯示數m
{
MCF_GPIO_PORTTJ=0x00; //消影
Du_1; //段選鎖存器
Du_0;
MCF_GPIO_PORTTJ=num_we[n]; //位選信號
We_1; //位選鎖存器
We_0;
MCF_GPIO_PORTTJ=m; //段選信號
Du_1; //段選鎖存器
Du_0;
}
void Segment_4(uint m)//顯示數m
{
Seg_1(0,num_du[m%10]);
Seg_1(1,num_du[m/10%10]);
Seg_1(2,num_du[m/100%10]);
Seg_1(3,num_du[m/1000%10]);
}
void beep(uint ms)
{
Beeper_0;
delay(ms);
Beeper_1;
}
/*********************************************/ //按鍵 /*********************************************/
#define key1_IO MCF_GPIO_SETNQ_SETNQ1 //
#define key2_IO MCF_GPIO_SETNQ_SETNQ3 //
#define key3_IO MCF_GPIO_SETNQ_SETNQ5 //
#define key4_IO MCF_GPIO_SETNQ_SETNQ7 //
#define key1 MCF_GPIO_SETNQ&key1_IO //
#define key2 MCF_GPIO_SETNQ&key2_IO //
#define key3 MCF_GPIO_SETNQ&key3_IO //
#define key4 MCF_GPIO_SETNQ&key4_IO //
void key_init()
{
MCF_GPIO_PNQPAR = 0x00; // 配置PNQ為普通IO
MCF_GPIO_DDRNQ = 0x00; // 設置PNQ為輸入
}
char key_scan()
{
if((key1)==0)
{
delay_us(10);
if((key1)==0)
{
delay_us(10);
while((key1)==0);
return 1;
}
}
if((key2)==0)
{
delay_us(10);
if((key2)==0)
{
delay_us(10);
while((key2)==0);
return 2;
}
}
if((key3)==0)
{
delay_us(10);
if((key3)==0)
{
delay_us(10);
while((key3)==0);
return 3;
}
}
if((key4)==0)
{
delay_us(10);
if((key4)==0)
{
delay_us(10);
while((key4)==0);
return 4;
}
}
return 0;
}
/**********************************************************************************************************
**********************************************************************************************************/
extern uchar TxBuf[];
extern uchar RxBuf[];
uchar TxBuf1[32]=
{
"K=1: 1234567890"
};
uchar TxBuf2[32]=
{
"K=2: abcdefghijklmnopqrs"
};
uchar TxBuf3[32]=
{
"K=3: ~!@#$%^&*()_+{}:<>?"
};
uchar TxBuf4[32]=
{
"K=4"
};
void main(void)
{
int counter;
int i=0,j=0,k=0;
__initialize_hardware();
IO_init();
key_init();
//****************** NRF24L01 ******************
init_NRF24L01(); //無線模塊初始化
//nRF24L01_TxPacket(TxBuf); // 發送TxBuf中的數據
delay(1000);
// SetRX_Mode();
nRF24L01_TxPacket(TxBuf1);beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
delay(1000);
nRF24L01_TxPacket(TxBuf2);beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
delay(1000);
nRF24L01_TxPacket(TxBuf3);beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
delay(1000);
nRF24L01_TxPacket(TxBuf4);beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
delay(1000);
while(1)
{
i=key_scan();
if(i==1)
{
nRF24L01_TxPacket(TxBuf1);
beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
Seg_1(0,num_du[i]);
}
else if(i==2)
{
nRF24L01_TxPacket(TxBuf2);
beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
Seg_1(0,num_du[i]);
}
else if(i==3)
{
nRF24L01_TxPacket(TxBuf3);
beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
Seg_1(0,num_du[i]);
}
else if(i==4)
{
for(j=0;j<10;j++)
{
TxBuf4[2]=j+48;
nRF24L01_TxPacket(TxBuf4);
beep(10) ;SPI_RW(FLUSH_TX);// 沖洗發送 FIFO指令
Seg_1(0,num_du[j]);
delay(1000);
}
}
i=0;
//Seg_1(0,num_du[i]);
}
//*/
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -