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

📄 2.c

📁 24位AD压力实验板 protell99se打开
💻 C
📖 第 1 页 / 共 3 页
字号:
   while(P1IN&BIT0) {;}    
  //ADS1240SendByte(ADS1240_CMD_SELFCAL);
   ADS1240WriteRegister(ADS1240_SETUP_REGISTER, 3, AD1240_Reg_Val);
   
   ADS1240SendByte(ADS1240_CMD_SELFCAL);
 //ADS1240SendByte(ADS1240_CMD_SYSOCAL);
  // ADS1240SendByte(ADS1240_CMD_SYSGCAL);
   for (i=0; i<4; i++)
      ADS1240WaitForDataReady(0);   
  // for(i=2;i>=1;i--)
   //{  for(j=191;j>=1;j--) {;}
   //}
   
  // while(P1IN&BIT0) {;}
   /* while(P1IN&BIT0) {;}
   ADS1240SendByte(0x50);//WREG CMD 1
   ADS1240SendByte(0x02);//WREG CMD 2
   ADS1240SendByte(0x02);//Set PGA 1
   ADS1240SendByte(0x01);//MUX AIN0+,AIN1-
   ADS1240SendByte(0x00);//ACR 15Hz  0 U/B 0 0 0 0 0 0  U/B=0,Bipolar 1,Unipolar
   for(i=1;i>=1;i--)
   {  for(j=191;j>=1;j--) {;}
   }
   while(P1IN&BIT0) {;}*/
   
   
   
   
}
//========================================================================================
//函数:void reset_AD_reg(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void reset_AD_reg(void)
{
unsigned char i;
AD_num=0;
ad_flag=0;
for(i=0;i<5;i++)
{
  ad1240_test[i]=0; 
  ad1240_test1[i]=0; 
}
}
//========================================================================================
//函数:void mode_check(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================


void mode_check(void)
{ 
 unsigned char i;
switch(key_data)
   {
   case 2:
     { 
       Mode=2;
       key_data=0;
       WDTCTL =WDT_ADLY_1000;  //WDT_ADLY_250;//WDT_ADLY_1000;                  // WDT 1s/4 interval timer
       IE1 |= WDTIE;                             // Enable WDT interrupt 
       
      }
   break;
   case 1:
     { 
       Mode=1;
       key_data=0;  
       set_lcd_out();
       LCD_Cursor_Addr=0;
       for(i=0;i<6;i++)
         LCD_Key_bar[i]=0;
       password_ok_flag=0;
      }
   break;
   case 3:
     { 
       Mode=3;
       key_data=0;      
      }
   break;
   case 4:
     { 
       Mode=4;
       key_data=0;      
      }
   break;
   }  
   
}
//========================================================================================
//函数:void Password_check(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Password_check(void)
{
 unsigned char flag,i;
////校正密码验证
  while(!password_ok_flag)
  {
    if(key_data==0x02)
    {
      LCD_Cursor_Addr++;
     if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
     key_data=0;
    } 
    if(key_data==0x03)
    {
      LCD_Key_bar[LCD_Cursor_Addr]++;
      if(LCD_Key_bar[LCD_Cursor_Addr]>=10) LCD_Key_bar[LCD_Cursor_Addr]=0;
          key_data=0;    
    }
    if(key_data==0x01)
    {
       flag=0;
       for(i=0;i<LCD_NUM;i++)
       {
         if(LCD_Key_bar[i]!=password[i])//password_ok_flag
         { flag=1;break;}         
       }
       if(flag==1)
         password_ok_flag=0;
       else 
         password_ok_flag=1;
       key_data=0;
     }
  LCD_Display(LCD_Cursor_Addr,LCD_Key_bar);
  }
}
//========================================================================================
//函数:void LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
//闪烁显示函数
void LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
{
 unsigned char i; 
 for(i=0;i<LCD_NUM;i++)  
   {
     if(i==LCD_Cursor_Addr)
        DisplayNum((Cursor_Addr+1),LCD_data[Cursor_Addr],0,0); 
     else
       DisplayNum((i+1),LCD_data[i],0,0);
   }
     Delay(26500);
    for(i=0;i<LCD_NUM;i++)  
   {
     if(i==LCD_Cursor_Addr)
        DisplayNum((Cursor_Addr+1),LCD_data[Cursor_Addr],0,1);
     else
       DisplayNum((i+1),LCD_data[i],0,0);
   }    
     Delay(26500);
  
}
//========================================================================================
//函数:unsigned char get_key_bar(unsigned char *out_key_bar)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
unsigned char get_key_bar(unsigned char *out_key_bar)
{
 unsigned char flag;
////校正密码验证
    flag=0;
    if(key_data==0x02)
    {
      LCD_Cursor_Addr++;
     if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
     key_data=0;
    } 
    if(key_data==0x03)
    {
      out_key_bar[LCD_Cursor_Addr]++;
      if(out_key_bar[LCD_Cursor_Addr]>=10) out_key_bar[LCD_Cursor_Addr]=0;
          key_data=0;    
    }
    if(key_data==0x01)
    {
      flag=1;       
       key_data=0;
     }
  LCD_Display(LCD_Cursor_Addr,out_key_bar);
  return flag;
}
//========================================================================================
//函数:void Save_key_data(unsigned long  *data,unsigned int EE_addr)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Save_key_data(unsigned long int*data,unsigned int EE_addr)
{
unsigned char i;    
   *data=0;   
   for(i=0;i<(LCD_NUM-1);i++)
      *data=(*data+(unsigned long)LCD_Key_bar[i])*10;
   *data=*data+(unsigned long)LCD_Key_bar[5];
   Save_AD_Data(data,EE_addr);   
}
//========================================================================================
//函数:void rest_LCD_data(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void rest_LCD_data(void)
{
unsigned char i;
LCD_Cursor_Addr=0;
for(i=0;i<6;i++) 
  LCD_Key_bar[i]=0;

}
//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Open_AD_Sampling(void)
{  
   AD_num=0;
   Open_AD_Power();
   Delay(20);    
   adc_init();
   En_AD_DRDY_INT();
   Delay(20);
   ad_flag=0; 
}

//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Close_AD_Sampling(void)
{ 
  
  Close_AD_Power();//关AD电源 
   Dis_AD_DRDY_INT(); //关中断
    
   //Delay(500);//消抖
   AD_num=0;
    ad_flag=0;
}
//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Open_WatchDog(void)
{
 WDTCTL =WDT_ADLY_1000;  //WDT_ADLY_250;//WDT_ADLY_1000;                  // WDT 1s/4 interval timer
 IE1 |= WDTIE;                             // Enable WDT interrupt    
}
//========================================================================================
//函数:void Open_AD_Sampling(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Close_WatchDog(void)
{
 WDTCTL=WDTPW+WDTHOLD;//Stop WDT 
 
}
//========================================================================================
//函数:void Show_AD_Data(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Show_AD_Data(void)
{
unsigned char i;
AD_Sampling_num=4; 
    if(AD_num>(AD_Sampling_num-1))
       {         
         for(i=0;i<(AD_Sampling_num+1);i++)
           ad1240_test1[i]=ad1240_test[i+1];
         set_lcd_out();                   
         ad1240=0;        
         ad1240=AD_Data_Manage(ad1240_test1,AD_Sampling_num);        
         I_VDisplay(6,ad1240);
          set_lcd_powdn();
         dataa=Hex_to_BCD(ad1240);        
         for(i=7;i>0;i--)
         {
           re_buffer1[i-1]=(dataa&0x0000000f);
           re_buffer1[i-1]=re_buffer1[i-1]+0x30;          
          dataa=dataa>>4;           
         }
         for(i=0;i<8;i++)
         {           
           sent_byte(re_buffer1[i+1]);           
         }      
         
         sent_byte(0x0D);
         sent_byte(0x0A);
         AD_num=0;
       }
  



}
//========================================================================================
//函数:void Save_AD_Data(unsigned long int*data,unsigned int EE_addr)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Save_AD_Data(unsigned long int*data,unsigned int EE_addr)
{
unsigned char char_bar,i;
unsigned long long_bar;  
   Dis_key_INT();
   long_bar=*data; 
   char_bar=(0x000000ff&long_bar);
   WriteWord((EE_addr),char_bar);
   long_bar=*data; 
   for(i=0;i<4;i++) 
   {        
      long_bar=long_bar>>8;
      char_bar=(unsigned char)(0x000000ff&long_bar);
      WriteWord((EE_addr+1+i),char_bar);
   }  
  En_key_INT();
}


void writetoreg(uchar ad_reg)
{  uchar i;
   for(i=8;i>=1;i--)
   {  P1OUT&=~BIT2;//SCLK=0
      if(ad_reg&0x80) P6OUT|=BIT4;//DIN=1
      else P6OUT&=~BIT4;//DIN=0
      _NOP();_NOP();_NOP();
      ad_reg=ad_reg<<1;
      P1OUT|=BIT2;//SCLK=1
      _NOP();_NOP();_NOP();
   }
   for(i=15;i>=1;i--) {;}
}




⌨️ 快捷键说明

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