亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 本軟件為tft型液晶顯示器的驅動程序 可用于車載主機顯示屏等
?? C
字號:
#include "define.h"
#include "variable.h"
#include "I2C.h"
#include "osddisplay.h"
#include "key.h"
#include "IEBus.h"
#include "process.h"
#include "memory.h"

void UART_Init()//UART 初始化
{ 
   UBRRL=25;//25;//51; 
   UCSRB=0x18;//RXEN=1;TXEN=1;
   UCSRA=0x00;
}

void Adc_Init(void)//Test OK!
{
   ADMUX=ADC_REFS+ADC_ADLAR+ADC_MUX;//參考電壓,右對齊,通道
   ADCSRA=ADC_ADPS;//分頻系數(shù)   
}

void Time1_Init(void)
{
   //TOIE1_Enable;
}

void Send_Char(uchar c)//串口通信
{
  ClrBit(UCSRA,TXC);
  UDR=c;
  while(ValBit(UCSRA,TXC)==0);
  ClrBit(UCSRA,TXC);
  NmDelay(1);
}

void Io_Init(void)
{
   TIMEDDR=0xFF;
   IEBusDDR=0xFF;
   I2CDDR=0xFF;
   
   ClrBit(IEBusDDR,2);
   ClrBit(IEBusPORT,2);
   
   SetBit(PORTD,3);
   ClrBit(DDRD,3);
   
   MCUCR=0x0A;//INT0 
}

void PowerOn_Init(void)
{
   Io_Init();
   DECODE_High;
   I2c_Init(); 
   RTC_Init();
   UART_Init();
   Adc_Init();
   ADC_Enable;
   ADIE_Enable;
   INT0_Enable;
   TOIE1_Enable;
   TCCR1A=0x00;
}
void Sys_Init(void)
{
   
}

/* REMO COMMAND */
#pragma vector=INT0_vect
__interrupt void Int0(void)//定義成上升沿觸發(fā),定時器采用time0,8位定時器,clk=8M,1024分頻,定時最長時間為32ms
{
  uint temp;
  TCCR1B=CLK_STOP;
  temp=TCNT1;
  TCNT1=0; 
  if(RedRead==0)
    {
      RedRead=1;
      RedCount=0;
      RedData[0]=0;
      RedData[1]=0;
      //RedData[2]=0;
      RedData[3]=0;      
      TCCR1B=CLK1;//start time0 clk/1024
      return ;
     }
  else if(RedRead==1)//4.5ms
   {       
     if(temp>Time1_4_5_Small&&temp<Time1_4_5_Big)//4.5ms
       {  
         RedRead=2;         
         TCCR1B=CLK1;
        } 
     else if(temp<Time1_2_2_Big&&temp>Time1_2_2_Small)//在識別到按鍵主值后,長按時波形會是2.2ms,兩次2.2ms會在這里停留,從而進行累加,從而判斷出長按
	     {	
               RedCnt++;
               if(RedCnt>5&&RedCmd!=0xFF)
                 {
                   INT0_Disable;
                   RedSuccess=1;
                   RedCmd=RedData[2];
                   RedLong=1;
                   RedCnt=0;
                   return;
                  }
               TCCR1B=CLK_64;
               TCNT1=0xC000;//等待100ms后,在溢出中斷里面執(zhí)行  
               RedRead=0;             
	     }      	        
     else//error
       {       
         RedRead=0; 
        }
     return ;
    }
  else if(RedRead>=2&&RedRead<=5)//data
   {
     RedCount++;
     RedData[RedRead-2]>>=1;//LSB is first
     if(temp> Time1_1_7_Small&&temp<Time1_1_7_Big)//1.7ms---> 1
     {
       RedData[RedRead-2]|=0x80;
     }
     else if(temp> Time1_0_6_Small&&temp<Time1_0_6_Big)//0.6ms ----> 0
     {
       RedData[RedRead-2]&=0x7F;
     }
     else//error return
     {
       RedRead=0;
     }
     if(RedCount>=8)//receive a byte
       {
         //Send_Char(RedData[RedRead-2]);//test the receiving data
         RedRead++;//receive next byte
         RedCount=0;
        }
     if(RedRead==6)//receive complete
       {
         if((RedData[0]==REDCUSTOM0)&&(RedData[1]==REDCUSTOM1)
            /*&&(RedData[2]==~RedData[3])*/) //receive is ok!
            {
               RedCmd=RedData[2]; 
               
               if(RedCmd==REMOONE||RedCmd==REMOTWO||RedCmd==REMOTHREE||RedCmd==REMOFOUR||
                  RedCmd==REMOFIVE||RedCmd==REMOSIX||RedCmd==REMOSEVEN||RedCmd==REMOEIGHT)
                  {
                    TCCR1B=CLK_64;
                    TCNT1=0xC000;//等待100ms后,在溢出中斷里面執(zhí)行  
                   }  
               else
                  {
                    INT0_Disable;               
                    RedSuccess=1;
                  }                        
               RedCnt=0;
               RedRead=0;
               RedCount=0;       
            } 
          else 
             RedRead=0; 
         }
     else if(RedRead>=2&&RedRead<=5)//receice continue
           TCCR1B=CLK1; //start time0;
   }   
}


#pragma vector=TIMER1_OVF_vect
__interrupt void Time1_Over_Interrupt(void)
{
      if(RedCmd!=0xFF)
      {
        RedSuccess=1;
        RedCnt=0;
        INT0_Disable;
      }
      Send_Char(0x13);
      RedLong=0;
      RedCnt=0;
      RedRead=0;
      RedData[0]=0;
      RedData[1]=0;
      //RedData[2]=0xFF;
      RedData[3]=0;   
      TCCR1B=CLK_STOP;
      TCNT1=0;      
}

#pragma vector=INT1_vect
__interrupt void Int1(void)//
{
   RTC_SendData(0x01,0x11);
   RTC_SendData(0x0F,64);
   Hour=RTC_ReadData(0x04)&0x3F;
   Minute=RTC_ReadData(0x03)&0x7F;
   Year=RTC_ReadData(0x08);
   Month=RTC_ReadData(0x07)&0x1F;
   Data=RTC_ReadData(0x05)&0x3F;
   
   SetHour=(Hour/16*10)+Hour%16;
   SetMinute=(Minute/16*10)+Minute%16;
   SetYear=(Year/16*10)+Year%16;
   SetMonth=(Month/16*10)+Month%16;
   SetData=(Data/16*10)+Data%16;
   
   if(UsrMenu&0x02)
      Time_Disp(Hour,Minute);
   else
      Row_Clear(STATUSROW,23,6);
   if(UsrMenu&0x01)
      Data_Disp(Year,Month,Data);
   else
      Row_Clear(STATUSROW+1,20,9); 
}

/*
#pragma vector=TIMER0_OVF_vect
__interrupt void Time0_Over_Interrupt(void)
{
  
}
*/


uchar Key_Judge(uchar c)// AD0 or AD1 key judge
{
   if(c>0xD7)//0x35C,4.2V----> No key press
       return NOKEY;
   else if(c>0xB8)//0x2E0,3.6V --->3.8Vkey
       return KEY01;
   else if(c>0x9E)//0x27A,3.1V --->3.4Vkey
       return KEY02;
   else if(c>0x80)//0x200,2.5V --->2.91Vkey
       return KEY03;
   else if(c>0x66)//0x199,2.0V --->2.38Vkey
       return KEY04;
   else if(c>0x50)//0x11E,1.4V --->1.83Vkey    0x47
       return KEY05;
   else if(c>0x3A)//0x0EB,1.15V --->1.34Vkey 0x3A
       return KEY06;
   else if(c>0x2B)//0x0AE,0.85V --->1.03Vkey
       return KEY07;
   else if(c>0x19)//0x066,0.5V --->0.69Vkey
       return KEY08;
   else if(c>0x0A)//0x029,0.2V --->0.39Vkey
       return KEY09;
   else if(c>0x04)//0x012,0.09V --->0.18Vkey
       return KEY0A;
   else           //0x2E0,0V --->0Vkey
       return KEY0B;
}

#pragma vector=ADC_vect
__interrupt void Adc_Interrupt(void)// two chanel Test OK!
{  

   KeyCurrent=Key_Judge(ADCH);
   KeyCurrent|=(AUX_CHVal<<7);//Audge AD0 or AD1
   if(KeyCurrent==NOKEY)
    {
       if(KeyCount>KEYCOUNT1)//key press and up 
        {
          KeySuccessFlagSet;
          KeyLongFlagClr;
          //KeyPrevious=KeyCurrent;
          KeyCount=0;
          Send_Char(KeyPrevious);
          return;
         }
       else// no key ,2 chanel 交替掃描
        {
          KeySuccessFlagClr;
          KeyLongFlagClr;
          KeyPrevious=NOKEY;
          KeyCount=0;
          ADMUX&=0xF8;
          if(AUX_CHVal)//1 AD1
             AUX_CHSetAD0;
          else
             AUX_CHSetAD1;
          ADMUX|=AUX_CHVal;
         }
     }
   else
   {
      if(KeyCurrent!=KeyPrevious)//與上次相同
        {
          KeyPrevious=KeyCurrent;
          KeyCount=1;
          KeyLongFlagClr;
         }
      else
         KeyCount++;
      
      if((KeyCount>KEYCOUNT2)||//達到長按次數(shù)
         ((KeyCount>KEYCOUNT3)&&KeyLongFlagVal))//已經(jīng)是長按鍵而且準備下一次操作
       {
          KeyPrevious=KeyCurrent;
          KeyCount=1;
          KeyLongFlagSet;
          KeySuccessFlagSet;
          Send_Char(KeyPrevious);
          return;
        }
    }
   ADC_Start;
}


void main( void )
{
  PowerOn_Init();
  MemoryInit_Check();
  IEBus_Init(); 
  RTC_Init();
  SysOff_Init();
  Send_Char(0x12);
  
  EA_Enable;
  ADC_Start;
  ClrBit(PORTD,5);
  LED2_Low;
  LED1_Low;
  RGBSw_High;
  OSDSw_High;
  
  while(1)
  {  
    
    RTCCount++;
    IEBusDataCheck();     
    if(IEBusRxFlagVal)//if IEBus receive ok ,process
     {
       EA_Disable;
       Cmd_Process();
       IEBusRxFlagClr;
       EA_Enable;
      } 
    if(KeySuccessFlagVal)//if key press
     { 
       Key_Process();//send key to IEBus
       KeySuccessFlagClr;
       ADC_Start;  
      }
    if(RedSuccess==1)
     {       
       Remo_Process();
       RedSuccess=0;       
       RedLong=0;   
       RedCmd=0xFF;
       INT0_Enable;
      }
    }  
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三级电影在线观看 | 亚洲va国产天堂va久久en| 欧美xfplay| 精品久久一区二区| 久久亚洲一区二区三区四区| 日韩视频在线你懂得| 日韩一级在线观看| 欧美成人精精品一区二区频| 日韩亚洲欧美在线| 久久综合九色综合欧美98| 国产日韩v精品一区二区| 欧美高清在线视频| 亚洲精品久久久久久国产精华液| 亚洲亚洲精品在线观看| 香蕉av福利精品导航| 全国精品久久少妇| 国产成人av电影在线| 色琪琪一区二区三区亚洲区| 欧美精品久久久久久久多人混战| 精品欧美一区二区久久| 久久久精品tv| 亚洲一区二区美女| 久久精品久久综合| 北岛玲一区二区三区四区| 91高清视频免费看| 日韩午夜av一区| 国产精品美女久久久久高潮 | 337p亚洲精品色噜噜| 久久综合九色综合97婷婷| 国产精品青草久久| 亚洲成人av在线电影| 九一九一国产精品| 91丨porny丨在线| 91精品国产麻豆国产自产在线| 2020国产精品自拍| 一区二区成人在线视频| 男人的j进女人的j一区| av不卡在线观看| 91精品国产综合久久久蜜臀粉嫩| 欧美国产激情一区二区三区蜜月| 香蕉成人伊视频在线观看| 成人激情校园春色| 日韩精品一区二区在线| 夜夜嗨av一区二区三区中文字幕 | 国产欧美在线观看一区| 亚洲高清三级视频| 成人激情免费网站| 欧美成人video| 亚洲成人av电影在线| 成人高清视频在线观看| 久久久久久影视| 日韩和欧美的一区| 在线精品视频小说1| 中文字幕免费观看一区| 久久国产精品色婷婷| 777奇米四色成人影色区| 一区二区三区四区精品在线视频| 国产精品资源网站| 欧美精品一区二区精品网| 亚洲第一会所有码转帖| 91免费视频网| 国产精品久久久久久户外露出| 极品少妇一区二区三区精品视频| 欧美色视频在线观看| 一区二区三区免费网站| jlzzjlzz亚洲女人18| 国产精品美女久久久久aⅴ| 国产成人综合亚洲91猫咪| 久久久精品人体av艺术| 黑人巨大精品欧美黑白配亚洲| 欧美精品vⅰdeose4hd| 亚洲aaa精品| 欧美体内she精高潮| 一区二区高清在线| 欧美日韩国产高清一区二区| 一区二区三区精品| 欧美熟乱第一页| 丝袜a∨在线一区二区三区不卡 | 久久精品一级爱片| 国产精品 日产精品 欧美精品| 久久综合久久久久88| 国产91高潮流白浆在线麻豆| 国产日产欧美精品一区二区三区| 国产91在线|亚洲| 日韩美女视频一区| 精品视频在线看| 蜜臀精品一区二区三区在线观看 | 99精品在线免费| 一区二区三区欧美日| 777午夜精品视频在线播放| 奇米亚洲午夜久久精品| 久久久久久97三级| 一本大道av伊人久久综合| 亚洲国产成人av网| 精品国产亚洲在线| 福利电影一区二区三区| 亚洲欧美日韩国产综合| 91精品欧美久久久久久动漫| 国产一区二区主播在线| 亚洲人成小说网站色在线| 7777精品伊人久久久大香线蕉最新版| 免费成人av在线播放| 久久一区二区三区四区| 色综合色综合色综合色综合色综合 | 国产精品污污网站在线观看| 欧美图区在线视频| 韩国成人精品a∨在线观看| 国产精品国产成人国产三级| 欧美日韩免费一区二区三区视频 | 丰满白嫩尤物一区二区| 亚洲一区二区三区四区的| 欧美不卡一二三| 欧洲在线/亚洲| 国产一区二区三区四区在线观看 | 欧美一区二区视频网站| 欧美色图片你懂的| 精品一区二区国语对白| 亚洲精品高清视频在线观看| 精品国产污污免费网站入口| 在线观看区一区二| 成人av午夜影院| 精品中文字幕一区二区小辣椒| 一区二区三区免费在线观看| 中文字幕欧美激情| 精品国产伦一区二区三区观看体验| 91视频91自| 大桥未久av一区二区三区中文| 奇米亚洲午夜久久精品| 亚洲高清在线视频| 亚洲婷婷国产精品电影人久久| 欧美精品一区二区三区蜜桃| 91精品国产91久久久久久一区二区 | 国产精品卡一卡二卡三| 欧美一区二区三区视频在线 | 国产成人综合亚洲网站| 免费观看一级特黄欧美大片| 亚洲国产精品欧美一二99| 亚洲天堂av一区| 国产精品乱人伦中文| 国产欧美一区二区三区鸳鸯浴| 欧美大片国产精品| 制服.丝袜.亚洲.中文.综合| 欧美图片一区二区三区| 欧美曰成人黄网| 欧美丝袜丝交足nylons图片| 日本福利一区二区| 欧美亚男人的天堂| 色视频成人在线观看免| 欧美熟乱第一页| 欧美老肥妇做.爰bbww视频| 欧美日韩在线播| 欧美日韩成人高清| 7777精品久久久大香线蕉 | 久久色中文字幕| 亚洲精品在线一区二区| 久久综合狠狠综合久久激情 | 日韩午夜在线观看| 欧美一区二视频| 日韩精品中文字幕在线不卡尤物 | 国内精品伊人久久久久影院对白| 精品亚洲国产成人av制服丝袜| 紧缚奴在线一区二区三区| 国产一区二区三区| av成人老司机| 欧美日韩国产高清一区二区| 日韩欧美高清dvd碟片| 久久久久久久久蜜桃| 国产精品理伦片| 亚洲一区精品在线| 久久精品国产亚洲高清剧情介绍| 激情文学综合插| av亚洲精华国产精华| 欧美性感一类影片在线播放| 欧美一区二区三区免费观看视频| 精品国产三级a在线观看| 国产日韩成人精品| 亚洲成人免费看| 国产黄色91视频| 欧美性色欧美a在线播放| 日韩一区二区免费在线电影| 欧美国产欧美综合| 视频在线在亚洲| 高清在线观看日韩| 欧美片网站yy| 国产精品伦一区| 极品少妇xxxx偷拍精品少妇| 91捆绑美女网站| 精品久久久久久久久久久院品网| 中文欧美字幕免费| 日韩国产欧美在线播放| 粉嫩一区二区三区在线看| 欧美日韩二区三区| 国产精品色噜噜| 久久国产精品99精品国产| 色域天天综合网| 国产精品免费视频一区| 免费观看在线色综合| 91精彩视频在线| 国产精品乱码久久久久久 | 国产精品网友自拍|