//ICC-AVR application builder : 2007-8-11 20:37:32
// Target : M48
// Crystal: 8.0000Mhz
#include <iom48v.h>
#include <macros.h>
#define uint unsigned int
#define uchar unsigned char
//#pragma interrupt_handler uart0_rx_isr:19
//******************************************************************************
//***********************NRF905端口设置*****************************************
//******************************************************************************
///////////////////////////模式控制定义/////////////////////////////////
//#define nrf905_TX_EN PC3 //输出1
#define Hign_nrf905_TX_EN PORTC |= (1 << PC3);
#define Low_nrf905_TX_EN PORTC &= ~(1 << PC3);
//#define nrf905_TRX_CE PC2 //输出1
#define Hign_nrf905_TRX_CE PORTC |= (1 << PC2);
#define Low_nrf905_TRX_CE PORTC &= ~(1 << PC2);
//#define nrf905_PWR PC1 //输出1
#define Hign_nrf905_PWR PORTC |= (1 << PC1);
#define Low_nrf905_PWR PORTC &= ~(1 << PC1);
//-------------------------------SPI口定义--------------------------------------
//#define nrf905_MISO PB4 //输入0
//#define nrf905_MOSI PB3 //输出1
//#define nrf905_SCK PB5 //输出1
#define Low_nrf905_SCK PORTB &= ~(1 << PB5);
//------------------------------------------------------------------------------
//#define nrf905_CSN PB2 //输出1
#define Hign_nrf905_CSN PORTB |= (1 << PB2);
#define Low_nrf905_CSN PORTB &= ~(1 << PB2);
//-------------------------------状态输出口-------------------------------------
//#define nrf905_CD PC0 //输入0
#define Hign_nrf905_CD PORTC |= (1 << PC0);
#define Low_nrf905_CD PORTC &= ~(1 << PC0);
#define Read_nrf905_CD PINC & (1 << PC0);
//#define nrf905_AM PD3 //输入0
#define Hign_nrf905_AM PORTD |= (1 << PD3);
#define Low_nrf905_AM PORTD &= ~(1 << PD3);
#define Read_nrf905_AM PIND & (1 << PD3);
//#define nrf905_DR PD2 //输入0
#define Hign_nrf905_DR PORTD |= (1 << PD2);
#define Low_nrf905_DR PORTD &= ~(1 << PD2);
#define Read_nrf905_DR PIND & (1 << PD2);
//-------------------------------BELL蜂明器-------------------------------------
//#define Hign_BELL PORTD |= (1 << PD5);
//#define Low_BELL PORTD &= ~(1 << PD5);
//-------------------------------JDQ继电器--------------------------------------
//#define Hign_JDQ PORTD |= (1 << PD7)
//#define Low_JDQ PORTD &= ~(1 << PD7)
#define set_data_out DDRD |= (1 << PD5);//设置DATA为输出
#define set_data_input DDRD &= ~(1 << PD5);//设置DATA为输入
#define set_data_out_1 PORTD |= (1 << PD5);//DATA为高
#define set_data_out_0 PORTD &= ~(1 << PD5);//DATA为低
#define set_sck_out DDRD |= (1 << PD7);//设置SCK为输出
#define set_sck_out_1 PORTD |= (1 << PD7);//SCK为高
#define set_sck_out_0 PORTD &= ~(1 << PD7);//SCK为低
#define noACK 0
#define ACK 1
#define STATUS_REG_W 0x06 //000 0011 0
#define STATUS_REG_R 0x07 //000 0011 1
#define MEASURE_TEMP 0x03 //000 0001 1
#define MEASURE_HUMI 0x05 //000 0010 1
#define RESET 0x1e //000 1111 0
//----------------------------------905-SPI指令---------------------------------
#define WC 0x00
#define RRC 0x10
#define WTP 0x20
#define RTP 0x21
#define WTA 0x22
#define RTA 0x23
#define RRP 0x24
//---------------------------------发送数据-------------------------------------
uchar com_in_buff[32];
uchar TxRxBuffer[32];
uchar state;
uchar state1;
uchar num;
uchar nrfstate;
uint sht11[2];
uint knum=1;
typedef union /*保存所测得的温度&湿度值*/
{
uint i;
float f;
}value;
typedef struct __SHT11__
{
unsigned char gewei;
unsigned char shiwei;
unsigned char DateString1[10];
//unsigned char DateString2[5];
}SHT11;
SHT11 S1;
uchar Txdata[14]=
{
0x68,0x99,0x99,0x99,0x99,0x99,0x99,0x68,
0x01,0x02,0x43,0xC3,0x6F,0x16,
};
uchar TxRxBuf[32]=
{
0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,
0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,
0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,
};
uchar A[1]={0xE5};
uchar B[2]={0xFF,0x00,};
uchar C[31]=
{
0xE9,0x00,0x00,0xB5,0xB1,0xC7,0xB0,0xCE,
0xC2,0xB6,0xC8,0xA1,0xC3,0x0A,0xA3,0xDF,
0xA3,0xDF,0xA3,0xAE,0xA3,0xDF,0xA3,0xDF,
0xC9,0xE3,0xCA,0xCF,0xB6,0xC8,0x00,};
uchar D[31]=
{
0xE9,0x02,0x00,0xB5,0xB1,0xC7,0xB0,0xCA,
0xAA,0xB6,0xC8,0xA1,0xC3,0x0A,0xA3,0xDF,
0xA3,0xDF,0xA3,0xAE,0xA3,0xDF,0xA3,0xDF,
0xA3,0xD2,0xA3,0xC8,0xA3,0xA5,0x00,};
uchar E[14]=
{
0xE9,0x01,0x00,0xA3,0xB0,0xA3,0xB0,
0xA3,0xAE,0xA3,0xB0,0xA3,0xDF,0x00,};
uchar F[14]=
{
0xE9,0x03,0x00,0xA3,0xB0,0xA3,0xB0,
0xA3,0xAE,0xA3,0xB0,0xA3,0xDF,0x00,};
//----------------------------------接收地址------------------------------------
uchar TxAddress[4]={0xcc,0xcc,0xcc,0xcc };
//----------------------------------寄存器配置----------------------------------
uchar RFConf[11]=
{
0x00, //配置命令//
0x4c, //CH_NO,配置频段在423MHZ
0x0C, //输出功率为10db,不重发,节电为正常模式
0x44, //地址宽度设置,为4字节
0x20,0x20, //接收发送有效数据长度为32字节
0xCC,0xCC,0xCC,0xCC, //接收地址
0x58, //CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振
};
//----------------------------------函数申明------------------------------------
void Delay(uint x);
void delay_us(uint x);
//void Spi_initial();
//uchar SpiReadSpiWrite(uchar DATA);
void system_Init(void);
//void Config905(void);
//void TxPacket(void);
//void SetTxMode(void);
//void TX(void);
void uart0_rx_isr(void);
void StartUART(void);
void devinit(void);
void R_S_Byte(uchar R_Byte);
//void SetRxMode(void);
unsigned char CheckDR(void);
//void RxPacket(void);
//void RX(void);
void WDT_init(void);
char write_byte(unsigned char value);
char read_byte(unsigned char ack);
void transstart(void);
void connectionreset(void);
char softreset(void);
char read_statusreg(unsigned char *p_value, unsigned char *p_checksum);
char write_statusreg(unsigned char *p_value);
char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode);
void calc_sth11(float *p_humidity ,float *p_temperature);
void TEM_HUM_DISP(void);
void kaipin(void);
//-------------------------------延时子程序-------------------------------------
void Delay(uint x)
{
uint i;
while(x--)
for(i=0;i<80;i++);
}
//----------------------------------SPI初始化-----------------------------------
/*void Spi_initial()
{
//SPCR=0x50;
//SPSR=0x00;
SPCR = (1<<SPE)|(1<<MSTR)|(0<<CPOL)|(0<<SPR0); // 主机模式,fck/16, SPI方式0
}
//---------------------------------SPI读写程序----------------------------------
uchar SpiReadSpiWrite(unsigned char cData)//r
{
SPDR = cData;
while(!(SPSR & (1<<SPIF) ))
{}; // 等待SPI发送完毕
return SPDR;
}*/
//---------------------------------系统状态初始化-------------------------------
void system_Init(void) //r
{
Hign_nrf905_CSN; // Spi disable
Low_nrf905_SCK; // Spi clock line init low
Low_nrf905_DR; // Init DR for input
Low_nrf905_AM; // Init AM for input
Low_nrf905_CD; // Init nrf905_CDfor input
Hign_nrf905_PWR; // nRF905 power on
Low_nrf905_TRX_CE; // Set nRF905 in standby mode
Low_nrf905_TX_EN; // set radio in Rx mode
}
//--------------------------------NRF905寄存器初始化函数------------------------
/*void Config905(void)
{
uchar i;
Low_nrf905_CSN;
Delay(1); // Spi enable for write a spi command
//SpiWrite(WC); // Write config command写放配置命令
for (i=0;i<11;i++) // Write configration words 写放配置字
{
SpiReadSpiWrite(RFConf[i]);
}
没有合适的资源?快使用搜索试试~ 我知道了~
wenshidu.zip_温湿度传感器
共82个文件
_c:8个
c:5个
cof:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 86 浏览量
2022-09-23
11:15:58
上传
评论
收藏 381KB ZIP 举报
温馨提示
基于AVR单片机(mega48)的温湿度传感器 程序
资源推荐
资源详情
资源评论
收起资源包目录
wenshidu.zip (82个子文件)
温湿
温度湿度显示
温度湿度数据可输出到串口
mega48
MEGA48_SEND.hex 9KB
mega48_send.prj 1KB
MEGA48_SEND.cof 11KB
_270.AAA 194B
MEGA48_SEND.mak 617B
jfp_fasong.s 47KB
XuanWeiProgPlatformConfig.XML 2KB
jfp_fasong.c 19KB
BACKUP
jfp_fasong.c.101207154130 19KB
jfp_fasong.c.101126095920 19KB
jfp_fasong._c 19KB
MEGA48_SEND.SRC 47B
jfp_fasong.dp2 73B
jfp_fasong._c 19KB
MEGA48_SEND.mp 4KB
jfp_fasong.o 21KB
jfp_fasong.lis 98KB
MEGA48_SEND.dbg 7KB
MEGA48_SEND.lk 15B
MEGA48_SEND.lst 72KB
_2MG.AAB 118B
温度节点0
mega48
MEGA48_SEND.hex 10KB
mega48_send.prj 1KB
MEGA48_SEND.cof 14KB
_270.AAA 194B
MEGA48_SEND.mak 609B
XuanWeiProgPlatformConfig.XML 2KB
jfp_fasong.c 19KB
BACKUP
jfp_fasong.c.101207154130 19KB
jfp_fasong.c.101126095920 19KB
jfp_fasong._c 19KB
MEGA48_SEND.SRC 47B
jfp_fasong._c 19KB
MEGA48_SEND.mp 5KB
jfp_fasong.o 25KB
jfp_fasong.lis 107KB
MEGA48_SEND.dbg 9KB
MEGA48_SEND.lk 15B
MEGA48_SEND.lst 78KB
温湿结果.c 19KB
温度节点1
mega48
MEGA48_SEND.hex 9KB
mega48_send.prj 1KB
MEGA48_SEND.cof 10KB
_270.AAA 194B
MEGA48_SEND.mak 492B
jfp_fasong.s 923B
XuanWeiProgPlatformConfig.XML 2KB
jfp_fasong.c 3KB
BACKUP
jfp_fasong.c.101207154130 19KB
jfp_fasong.c.101126095920 19KB
jfp_fasong.c.110319223028 3KB
jfp_fasong._c 3KB
jfp_fasong.c.110306170254 19KB
jfp_fasong.c.101207155124 19KB
jfp_fasong.c.110319223116 3KB
MEGA48_SEND.SRC 47B
jfp_fasong._c 19KB
MEGA48_SEND.mp 4KB
jfp_fasong.lis 94KB
MEGA48_SEND.dbg 7KB
MEGA48_SEND.lk 15B
jfp_fasong.i 1KB
MEGA48_SEND.lst 73KB
_2MG.AAB 118B
温度节点
mega48
MEGA48_SEND.hex 10KB
mega48_send.prj 1KB
MEGA48_SEND.cof 12KB
_270.AAA 194B
MEGA48_SEND.mak 609B
XuanWeiProgPlatformConfig.XML 2KB
jfp_fasong.c 20KB
BACKUP
jfp_fasong.c.101207154130 19KB
jfp_fasong.c.101126095920 19KB
jfp_fasong._c 19KB
MEGA48_SEND.SRC 47B
jfp_fasong._c 19KB
MEGA48_SEND.mp 5KB
jfp_fasong.o 25KB
jfp_fasong.lis 117KB
MEGA48_SEND.dbg 8KB
MEGA48_SEND.lk 15B
MEGA48_SEND.lst 79KB
共 82 条
- 1
资源评论
小贝德罗
- 粉丝: 69
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功