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

📄 +

📁 基于msp430和1286的红外控制的万年历
💻
字号:


#include  <msp430x14x.h>
#include "main.h"
#include "lcd12864.h"
#include "menue.h"
#include "key_scan.h"
#include  "Flash.h"
#include "display.h"
#include "jiema.h" 
#include "ds1302.h"
#include "gdata.h"
#include "light.h"
#include "yinli.h"
#include "ds18b20.h" 

unsigned char light_flag=0;
unsigned char alarm_flag=0;
unsigned char delay16ms=0;
unsigned char delay200ms=0;
unsigned char delay96ms=0;//ds18b20程序
 


 
void main()
{//0
 
  WDTCTL = WDT_ADLY_16;      // WDT 16ms, ACLK, interval timer
  IE1 |= WDTIE;              // Enable WDT interrupt
  lcd12864_init();
  key_scan_init();
   Flash_Init();
  Reset_DS1302();
  light_init();
  int_ex();   //初始化P1.0口外部中断  红外中断使用
 
 
 
   if(Flash_read_char(0)==0xff)
  {
//    初始化闹钟
  Flash_write_char(0,6);
  Flash_write_char(1,7);
  Flash_write_char(2,8);
  Flash_write_char(3,9);
  
  //初始化设置为关 0表示开闹钟
  Flash_write_char(5,1);
  Flash_write_char(6,1);
  Flash_write_char(7,1);
  Flash_write_char(8,1);
   }
 
  
  
  
 _EINT();//开总中断
  
  while(1)
  {//1
  if(delay16ms==0)
     {//2
       delay16ms=1;
       key_scan(); 
     }//2 
  
   if(delay200ms==0)
  {//3
          delay200ms=12;
          ds1302_work(); 
        menue_state_change();
          dispaly_menue();
  }//3
  
   if(delay96ms==0)
  {//91
      delay96ms=6;
    get_ds18b20_temperture();
  }//91
      
 }//1
  
  

}//0
 
 
// Watchdog Timer interrupt service routine
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{

  if(delay16ms>0) delay16ms--;
  if(delay200ms>0) delay200ms--;
  if(delay96ms>0)  delay96ms--; 
} 




#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{ 
  
      if(P1IFG&BIT0)
          {
             get_jiema(); 
             P1IFG=0;
             if(menue_b4_state==1)
             {//00
               Flash_write_char(menue_b4_where+menue_b4_which+11,IRcode[3]);
               for(unsigned char  i=0;i<4;i++)
               {
                 IRcode[i]=0;
               }
               menue_b4_state=0;
             
             }//00
             else
              {//11
              if(IRcode[3]==Flash_read_char(15))
                key_value=3;
              if(IRcode[3]==Flash_read_char(16))
                key_value=1;
              if(IRcode[3]==Flash_read_char(17))
                key_value=2;
              if(IRcode[3]==Flash_read_char(11))
                light_flag=1;
              if(IRcode[3]==Flash_read_char(12))
                light_flag=2;
              if(IRcode[3]==Flash_read_char(13))
                light_flag=3;
              if(IRcode[3]==Flash_read_char(14))
                light_flag=4;
               for(unsigned char  i=0;i<4;i++)
               {
                 IRcode[i]=0;
               }
              }//11
             
              
              switch(light_flag)
              {
               case 0:
                
                break;
                case 1:light_1_change;
                   light_flag=0;
                  
                break;
                case 2:light_2_change;
                       light_flag=0;
                break;
                case 3:light_3_change;
                       light_flag=0;
                break;
                case 4:light_4_change;
                       light_flag=0;
                break;
              }
              
             
            
          }      
       
 
}

⌨️ 快捷键说明

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