⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptr6000.h

📁 msp430f413和prt6000程序c语言
💻 H
字号:
#include<MSP430X21X1.H>
#define uchar unsigned char
#define uint  unsigned int
/**************************定义DS18B20********************************/
#define DS18B20_DIR  P2DIR
#define DS18B20_IN   P2IN
#define DS18B20_OUT  P2OUT
#define DS18B20_DQ   BIT5  //定义DS18B20的接口

unsigned int nn=0;
unsigned int seconds=0;
// DS18B20 ROM命令宏定义
#define ReadRom   0x33
#define MatchRom  0x55
#define SearchRom  0xf0
#define AlertSearch  0xec
#define CopyScratchpad  0x48
#define SkipRom   0xcc
#define ReadPower  0xb4

// DS18B20 功能命令宏定义
#define ConvertTemperature 0x44
#define ReadScratchpad  0xbe
#define WriteScratchpad  0x4e
#define RecallE   0xb8
const unsigned  int tal8[]= 
{ 
0,94,188,226,97,63,221,131,
194,156,126,32,163,253,31,65,
157,195,33,127,252,162,64,30, 
95,1,227,189,62,96,130,220,
35,125,159,193,66,28,254,160,
225,191,93,3,128,222,60,98,
190,224,2,92,223,129,99,61,
124,34,192,158,29,67,161,255,
70,24,250,164,39,121,155,197,
132,218,56,102,229,187,89,7,
219,133,103,57,186,228,6,88, 
25,71,165,251,120,38,196,154,
101,59,217,135,4,90,184,230,
167,249,27,69,198,152,122,36,
248,166,68,26,153,199,37,123,
58,100,134,216,91,5,231,185,
140,210,48,110,237,179,81,15,
78,16,242,172,47,113,147,205,
17,79,173,243,112,46,204,146,
211,141,111,49,178,236,14,80,
175,241,19,77,206,144,114,44,
109,51,209,143,12,82,176,238,
50,108,142,208,83,13,239,177,
240,174,76,18,145,207,45,115,
202,148,118,40,171,245,23,73,
8,86,180,234,105,55,213,139,
87,9,235,181,54,104,138,212,
149,203,41,119,244,170,72,22,
233,183,85,11,136,214,52,106,
43,117,151,201,74,20,246,168,
116,42,200,150,21,75,169,247,
182,232,10,84,215,137,107,53
};
/******************定义射频模块***************************************/
   #define si  BIT1
   #define max_rt 0x10
   #define tx_ds  0x20
   #define rx_dr  0x40
   #define flush_tx 0xe1
   #define flush_rx 0xe2
extern unsigned char read_shuju=0;
extern unsigned char  addr_wd=0x03;        //地址宽度
//addr_wd=0x00;       无效
//addr_wd=0x01;       3个字节宽度
//addr_wd=0x02;       4个字节宽度
//addr_wd=0x03;       5个字节宽度
  unsigned  char sent_addr[5]={0x34,0x43,0x10,0x10,0x01};      //发送地址
  unsigned  char recive_addr[5]={0x34,0x43,0x10,0x10,0x01};    //接收地址
  //$$$$$$$$$$$$$$$$$$$$$$$$
   unsigned int send_date_width=16;   //发送数据长度
   unsigned int send_date[16]={0x07,0x0b,0x0d,0x0e,0x07,
                               0x07,0x0b,0x0d,0x0e,0x07,
                                0x07,0x0b,0x0d,0x0e,0x07,
                                0x07};  //发送的数据
   unsigned int receive_date_width=16;              //接收数据长度
   unsigned char receive_date[16]={0xaa,0xbb,0xcc,0xdd,0xee,0xff} ;           //接收数据缓冲区
/*****************************************************************************/
//函数定义
void  Init_Port(void);
void  write(uchar b);
uchar read(void);
void  w_register(uchar addr,uchar com);
uchar r_register(uchar addr);
void  w_tx(void);
void  r_rx(void);
void  clr_tx(void);
void  clr_rx(void); 

void  ce_High(void)
{
	//P2.0管脚输出为高电平
	P2OUT |= BIT3;		
    _NOP();
    _NOP();
    return;
}
void ce_Low(void)
{
	//P2.0管脚输出为低电平
	P2OUT &= ~(BIT3);		
    _NOP();
    _NOP();
    return;
}
void csn_High(void)
{
	//P2.1管脚输出为高电平
	P2OUT |= BIT2;		
    _NOP();
    _NOP();
    return;
}
void csn_Low(void)
{
	//P2.1管脚输出为低电平
	P2OUT &= ~(BIT2);		
    _NOP();
    _NOP();
    return;
}
void mo_High(void)
{
	//P1.2管脚输出为高电平
	P1OUT |= BIT2;		
    _NOP();
    _NOP();
    return;
}
void mo_Low(void)
{
	//P1.2管脚输出为低电平
	P1OUT &= ~(BIT2);		
    _NOP();
    _NOP();
    return;
}
void sck_High(void)
{
	//P1.3管脚输出为高电平
	P1OUT |= BIT3;		
    _NOP();
    _NOP();
    return;
}
void sck_Low(void)
{
	//P1.3管脚输出为低电平
	P1OUT &= ~(BIT3);		
    _NOP();
    _NOP();
    return;
}
   void Init_Port(void)
{
        P1SEL &= ~BIT0;
        P1SEL &= ~BIT1;
        P1SEL &= ~BIT2;
        P1SEL &= ~BIT3;
	P2DIR |= BIT3;      //CE    //输出方向
        P2DIR |= BIT2;      //CSN
        P1DIR |= BIT2;      //MOSI
        P1DIR |= BIT3;      //SCK
        P1DIR &= ~BIT0;      //IRQ       //输入方向
       P1DIR &= ~BIT1;      //MISO          //输入方向
       P1OUT |= BIT2;       //MOSI        //输出高电平
       P1OUT |= BIT3;       //SCK         //
       P2OUT |= BIT3;       //CE          //
       P2OUT |= BIT2;       //CSN        //
	return;
}
 void write(uchar b)   //高位在前,低位在后
     {char i,j;
         for(i=0;i<8;i++)
    {
      if((b&0x80)==0x80)
      {
      mo_High();
      }
      else
      {
      mo_Low();
      }
      //for (j=10;j>0;j--);//延迟一段时间
      sck_High();
      for (j=10;j>0;j--);//延迟一段时间
      sck_Low();
      b<<=1;
    }
     }
 uchar read(void)
     {
     uchar i,j,a=0;
     for(i = 0;i < 8;i++)
    {
    	if(P1IN & si)
    	{
    	    a |= (0x01 << (7-i));
    	}
        sck_High();
        for(j = 10;j > 0;j--);
        sck_Low();
    }
     return(a);
     }
 void w_register(uchar addr,uchar com)   //写寄存器
     {
      sck_Low();
      csn_Low();
      write(addr);
      write(com);
      csn_High();
      }
 uchar r_register(uchar addr)       //读寄存器
      {
       uchar date;
       sck_Low();
       csn_Low();
       write(addr);
       date=read();
       csn_High();
       return(date);
       }
  void w_tx(void)
       {uchar i;
        sck_Low();
        csn_Low();
        write(0xa0);
        for(i=0;i<send_date_width;i++)         //写tx_fifo
           write(send_date[i]);
        csn_High();
        }
  void r_rx(void)
        {uchar i;
         sck_Low();
         csn_Low();
         write(0x61);
         for(i=0;i<receive_date_width;i++)
         receive_date[i]=read();
         csn_High();
        }
  void clr_tx(void)
        {
         sck_Low();
         csn_Low();
         write(flush_tx);
         csn_High();
        }
   void clr_rx(void)    //一般读完rx_fifo会自动清除,不必调用该函数
        {
         sck_Low();
         csn_Low();
         write(flush_rx);
         csn_High();
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -