|
部分程序 全套程序已经放到附录
#include
#include
typedef unsigned char uchar;
typedef unsigned char uint;
//*********IO端口定义********
#define LCD_data P0
sbit lcdrs = P1^1;
sbit lcdRW = P1^0;
sbit lcden = P2^6;
sbit LCD_bg = P2^7;
uchar wd_up;
uchar wd_down;
uchar num1;
uchar bg_flag=0;
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
void delay1(int ms){
while(ms--){
uchar i;
for(i=0;i<250;i++) {
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
void delay2(uint x){
uint i;
uchar j;
for(i=0;i
for(j=0;j<110;j++);
}
//写指令函数
void lcd_wcmd(uchar com)
{
lcdrs=0;
P0=com;
delay2(5);
lcden=1;
delay2(5);
lcden=0;
}
//写数据函数
void lcd_wdat(uchar date)
{
lcdrs=1;
P0=date;
delay2(5);
lcden=1;
delay2(5);
lcden=0;
}
//液晶初始化
void lcd_init()
{
LCD_bg =0;
lcdRW=0;
lcden=0;
lcd_wcmd(0x38);
lcd_wcmd(0x0c);
lcd_wcmd(0x06);
lcd_wcmd(0x01);
}
/******设定显示位置***********/
void lcd_pos(uchar X,uchar Y){
uchar pos;
if (X==0)
{X=0x80;}
else if (X==1)
{X=0x90;}
else if (X==2)
{X=0x88;}
else if (X==3)
{X=0x98;}
pos = X+Y ;
lcd_wcmd(pos);
}
void write_zhi(uchar *s)
{
while(*s>0) { lcd_wdat(*s); s++; }
}
void jiemian(){
lcd_wcmd(0x01);
lcd_wcmd(0x80);
write_zhi("大棚温度控制系统");
lcd_wcmd(0x90);
write_zhi("地址: 处");
lcd_wcmd(0x88); //1234
write_zhi("温度: ℃");
lcd_wcmd(0x98);
write_zhi("(设置) 背光");
}
sbit CSN =P1^2;
sbit MOSI =P1^7;
sbit IRQ =P1^6;
sbit MISO =P1^5;
sbit SCK =P1^4;
sbit CE =P1^3;
//***NRF24L01*******
#define TX_ADR_WIDTH 5
#define RX_ADR_WIDTH 5
#define TX_PLOAD_WIDTH 32
#define RX_PLOAD_WIDTH 32
uint const TX_ADDRESS[5]= {0x34,0x43,0x10,0x10,0x01}; //本地地址
uint const RX_ADDRESS[5]= {0x34,0x43,0x10,0x10,0x01}; //接收地址
//***NRF24L01寄存器指令*****
#define WRITE_REG 0x20 // 写寄存器指令
#define RD_RX_PLOAD 0x61 // 读取接收数据指
#define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式
#define EN_AA 0x01 // 自动应答功能设置
#define EN_RXADDR 0x02 // 可用信道设置
#define SETUP_AW 0x03 // 收发地址宽度设置
#define SETUP_RETR 0x04 // 自动重发功能设置
#define RF_CH 0x05 // 工作频率设置
#define RF_SETUP 0x06 // 发射速率、功耗功能设置
#define STATUS 0x07 // 状态寄存器
#define OBSERVE_TX 0x08 // 发送监测功能
#define CD 0x09 // 地址检测
#define RX_ADDR_P0 0x0A // 频道0接收数据地址
#define RX_ADDR_P1 0x0B // 频道1接收数据地址
#define RX_ADDR_P2 0x0C // 频道2接收数据地址
#define RX_ADDR_P3 0x0D // 频道3接收数据地址
#define RX_ADDR_P4 0x0E // 频道4接收数据地址
#define RX_ADDR_P5 0x0F // 频道5接收数据地址
#define TX_ADDR 0x10 // 发送地址寄存器
#define RX_PW_P0 0x11 // 接收频道0接收数据长度
#define RX_PW_P1 0x12 // 接收频道0接收数据长度
#define RX_PW_P2 0x13 // 接收频道0接收数据长度
#define RX_PW_P3 0x14 // 接收频道0接收数据长度
#define RX_PW_P4 0x15 // 接收频道0接收数据长度
#define RX_PW_P5 0x16 // 接收频道0接收数据长度
#define FIFO_STATUS 0x17 // FIFO栈入栈出状态寄存器设置
|
赞赏
-
1
查看全部赞赏
-
|