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

📄 342.c

📁 12864接口电路 12864接口电路12864接口电路 12864接口电路
💻 C
📖 第 1 页 / 共 3 页
字号:
               *P_DAC_Ctrl=0x0000;               //通过读P-ADC_MUX_DATA 启动转换
               *P_LVD_Ctrl=0x0003;               //设置低电压检测为3。6V
     while(1)
          {
          
          *P_SystemClock=0x00f0;                 //设置时钟为49。152M
          asm("int off");                    
           if(time_flag==1)                      //如显示时间标志为1,则循环显示  
             {  da(8,0,gaoshi,0);
                da(9,0,shi,0); 
                da(10,0,':',0);
                da(11,0,gaofen,0);
                da(12,0,fen,0);
                da(13,0,':',0);
                da(14,0,miao,0);
                da(15,0,j,0);
                                }
               asm("IRQ ON");
              asm("FIQ  ON");                 
                delay();
                delay();
             *P_ADC_MUX_Ctrl=0x0007;                //选择温度检测通道7
             *P_ADC_Ctrl=0x0039;                    //允许A/D转换
              asm("IRQ ON");
              asm("FIQ  ON"); 
          *P_Watchdog_Clear=0x0001; 
        
        }  
        
      }  
void IRQ5(void) __attribute__ ((ISR));               //2HZ时钟中断程序,时钟运算
void IRQ5(void)
     {  
         if (*P_INT_Ctrl&C_IRQ5_4Hz)
               *P_INT_Clear=C_IRQ5_4Hz;
        if (*P_INT_Ctrl&C_IRQ5_2Hz)
            { *P_INT_Clear=C_IRQ5_2Hz;  
                i=i+1;
               if ((i/2)==1)
                {  i=0;
                   j=j+1;
                   if(j==10) {j=0;miao=miao+1; }
                   if(miao==6) {j=0;miao=0;fen=fen+1;}
                   if(fen==10) {j=0;miao=0;fen=0;gaofen=gaofen+1;}
                   if(gaofen==6) {j=0;miao=0;fen=0;gaofen=0;shi=shi+1;}
                   if(shi==10)  {j=0;miao=0;fen=0;gaofen=0;shi=0;gaoshi=gaoshi+1;}
                   if((gaoshi==2)&&(shi==4)){j=0;miao=0;fen=0;gaofen=0;shi=0;gaoshi=0;}
                          }
              } 
             }
 
void IRQ3(void) __attribute__ ((ISR));   // 红外解码外中断EXT1
void IRQ3(void)
     { 
         if (*P_INT_Ctrl&C_IRQ3_KEY)
                                 *P_INT_Clear=C_IRQ3_KEY;
             
         if  (*P_INT_Ctrl&C_IRQ3_EXT2)
              
                                 *P_INT_Clear=C_IRQ3_EXT2;  
           
         if  (*P_INT_Ctrl&C_IRQ3_EXT1)
                 { *P_INT_Clear=C_IRQ3_EXT1;
                    a=*P_TimerB_Data;
                     if ((a>=60)|| ((a<=35)&&(a>=25)) ) 
                       {   if ((a>=60)&&(a<=75)) CY=1;
                           if ((a<=40)&&(a>=25)) CY=0;
                              data1=data1|CY;
                               data1<<=1;
                                co=co-1;
                 if (co==0x08) data2 = data1;
                 if (co==0x00)  {      co=0x10;
                                   if  (data2==0xe2)
	                                     {   switch(data1&0x00ff)        //以上为红外解码程序
	                                       { 
	                                         case  0x40:                 //开关背光  按键ON/OFF
	                                                 if(light_flag==1)    { Set_IOA_Bit(light,1,1,0,0);
	                                                                         light_flag=0;}
	                                                 else               { Set_IOA_Bit(light,1,1,1,1);
	                                                                         light_flag=1;}
	                                                  break;    
	                                          case 0x00:                // 显示“郑州轻工业学院 206工作室欢迎你”
	                                                  Init_lcd();       //按键 “1”
	                                                  time_flag=0;      //时间显示消隐
	                                                    hang=0; lie=1;
                                                        for(count=0;count<7;count++)
                                                          { dh(lie,hang,count,0);
                                                            lie+=2;};
                                                           da(3,3,2,0);
                                                           da(4,3,0,0);
                                                           da(5,3,6,0);
                                                           hang=3;lie=6;
                                                       for(count=7;count<10;count++)
                                                           { dh(lie,hang,count,0);
                                                             lie+=2;}
                                                           hang=6;lie=1;
                                                       for(count=10;count<17;count++)
                                                           { dh(lie,hang,count,0);
                                                              lie+=2;}               
                                                      break;
                                                  case 0x10:
                                                         time_flag=0;        //时间显示消隐
                                                         show_pic(1,0);  
                                                      break;                       
                                                  case 0x08:                //语音报温及显示
                                                      Init_lcd();
                                                      hang=3;lie=1;
                                                      for(count=17;count<22;count++)
                                                         { dh(lie,hang,count,0);
                                                            lie+=2;}
                                                          temp=read_tem(); 
                                                       qa=temp/10;
                                                       qa2=temp-(qa*10);
                                                 da(11,3,qa,0);
                                                 da(12,3,qa2,0);
                                                 dh(13,3,22,0);
                                                  playvoice(temp);             //播报温度
                                                    temp=0;
                                                    j=j+3;                    //播放温度时的时间补偿
                                                    if(j==10) {miao+=1;j=0;}
                                                    if(j==11) {miao+=1,j=1;}
                                                    if(j==12) {miao+=1,j=2;}
                                                    asm("INT OFF");	
                                                    *P_ADC_Ctrl=0x0039;       //恢复语音播报所占用寄存器的值
                                                    *P_DAC_Ctrl=0x0000;
                                                    *P_INT_Ctrl=0x0104;
                                                    asm("IRQ ON");
                                                     asm("FIQ  ON"); 
                                              break;
                                          case 0x50:                       //时间设置功能键,按键CH^
                                               time_flag=0;
                                               *P_INT_Ctrl=0x0100;         //关2HZ中断,停止时间记数
                                                da(10,0,':',0);
                                                da(13,0,':',0);
                                               set=set+1;                 //指针焦点移动 
                                              if (set==7) set=1; 
                                               if(set==1)  {  da(8,0,gaoshi,1);da(9,0,shi,0);
                                                              da(11,0,gaofen,0);da(12,0,fen,0);
                                                              da(14,0,miao,0);da(15,0,j,0);
                                                                }
                                               if(set==2)  {   da(8,0,gaoshi,0);da(9,0,shi,1);
                                                               da(11,0,gaofen,0);da(12,0,fen,0);
                                                               da(14,0,miao,0);da(15,0,j,0);
                                                              }
                                                 if(set==3)  {  da(8,0,gaoshi,0);da(9,0,shi,0);
                                                                da(11,0,gaofen,1);da(12,0,fen,0);
                                                                da(14,0,miao,0);da(15,0,j,0);}
                                               if(set==4)  {    da(8,0,gaoshi,0);da(9,0,shi,0);
                                                                da(11,0,gaofen,0);da(12,0,fen,1);
                                                                da(14,0,miao,0);da(15,0,j,0);}
                                               if(set==5)  {  da(8,0,gaoshi,0);da(9,0,shi,0);
                                                              da(11,0,gaofen,0);da(12,0,fen,0);
                                                              da(14,0,miao,1);da(15,0,j,0);}
                                               if(set==6)  {  da(8,0,gaoshi,0);da(9,0,shi,0);
                                                              da(11,0,gaofen,0);da(12,0,fen,0);
                                                              da(14,0,miao,0);da(15,0,j,1);}
                                                   delay();
                                                   delay();
                                                    break;
                                           case 0x44:        //调整时间值  按键VOL^  
                                                 if(set==1) {gaoshi=gaoshi+1;
                                                             if(gaoshi>=3)  gaoshi=0;
                                                               da(8,0,gaoshi,1);}
                                                             
                                                 if(set==2) {shi=shi+1;
                                                             if(shi>=10)   shi=0;
                                                             if((shi>=4)&&(gaoshi==2)) shi=0;
                                                               da(9,0,shi,1);}
                                                 if(set==3) {gaofen=gaofen+1;
                                                             if(gaofen>=6)  gaofen=0;
                                                              da(11,0,gaofen,1);}
                                                 if(set==4) {fen=fen+1;
                                                             if(fen>=10)   fen=0;
                                                             da(12,0,fen,1);}
                                                 if(set==5) {miao=miao+1;
                                                              if(miao>=6) miao=0;
                                                              da(14,0,miao,1); }
                                                 if(set==6) {j=j+1;
                                                             if(j>=10)  j=0;
                                                              da(15,0,j,0);}        
                                                       delay();
                                                      delay();
                                                  break;   
                                             case 0x54:    //打开时间中断,时间开始记数,
                                                   *P_INT_Ctrl=0x0104;
                                                    time_flag=1;       //时间显示
                                                    set=0;            //消除时间设置焦点 
                                                    da(10,0,':',0);
                                                    da(13,0,':',0);
                                                   break; 
                                             case 0x1c:              //开关时间的消隐与显示  按键“8”
                                                  if(time_flag==1)   {    time_flag=0;
                                                                         da(8,0,' ',0);
                                                                         da(9,0,' ',0);
                                                                         da(10,0,' ',0);
                                                                         da(11,0,' ',0);
                                                                         da(12,0,' ',0);
                                                                         da(13,0,' ',0);
                                                                         da(14,0,' ',0);
                                                                         da(15,0,' ',0);
                                                                         delay();
	                                                                     delay();
	                                                                        }   
	                                                      else       { time_flag=1;
	                                                                    delay();
	                                                                    delay();
	                                                                    delay();
	                                                                    delay();} 
	                                                                    delay();
	                                                                    delay();
	                                                                    delay();
	                                                                    delay(); 
	                                                  break; 
	                                        case  0x18:                //语音播报时间
	                                              playtime();
	                                              j=j+4;               //时间记数补偿
                                                    if(j==10) {miao+=1;j=0;}
                                                    if(j==11) {miao+=1,j=1;}
                                                    if(j==12) {miao+=1,j=2;}
                                                    if(j==13) {miao+=1,j=3;}
	                                                asm("INT OFF");	     //恢复播放语音占用的寄存器
                                                    *P_ADC_Ctrl=0x0039;
                                                    *P_DAC_Ctrl=0x0000;
                                                    *P_INT_Ctrl=0x0104;
                                                    asm("IRQ ON");
                                                     asm("FIQ  ON"); 
	                                              break; 
	                                        case 0x00dc:         //低电压检测功能的保存数据,按键LDV
	                                             power=*P_LVD_Ctrl;
	                                             power&=power&0x8000;
	                                             if(power==0x8000)
	                                                { F_FlashErase(0xfe00);                   
	                                                  F_FlashWrite1Word(0xfe00,temp);
	                                                  F_FlashWrite1Word(0xfe01,gaoshi);
	                                                  F_FlashWrite1Word(0xfe02,shi);
	                                                  F_FlashWrite1Word(0xfe03,gaofen);
	                                                  F_FlashWrite1Word(0xfe04,fen);
	                                                  F_FlashWrite1Word(0xfe05,miao);
	                                                  F_FlashWrite1Word(0xfe06,j);
	                                                 }
	                                         case 0x98:                 //读取掉电后的数据,按键2+
	                                                    temp=F_FlashRead(0xfe00);
	                                                    gaoshi=F_FlashRead(0xfe01);
	                                                    shi=F_FlashRead(0xfe02);
	                                                    gaofen=F_FlashRead(0xfe03);
	                                                    fen=F_FlashRead(0xfe04);
	                                                    miao=F_FlashRead(0xfe05);
	                                                    j=F_FlashRead(0xfe00);
	                                           break;
	                                                          	                                              
                                          default:
                                              break;
                                              }
                                              }
                                         data1=0;       //数据为零
	                                          }
	         
                                       };
                
                       } 
  

               *P_TimerB_Data=0x0000;                   //定时器回初值
               *P_TimerB_Ctrl=0x0032;
   
 	
 	}

⌨️ 快捷键说明

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