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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wt_lcd.c

?? ADV7171是目前功能最全面的視頻編碼芯片
?? C
字號:
#include <Aduc812.H>
#include <absacc.h>
#include <string.h>

  #define V_SET T0 
  #define V_RET T1 
  #define I2C_ADV7170        0x54

  #define VREF      25

  #define BRIGHT_ADDR 0x80f0
  #define V_CDC_ADDR  0x80f1

unsigned char device;     //EEPROM 設(shè)備

unsigned int wr_addr;     //EEPROM 地址
unsigned int rd_addr;     //EEPROM 地址
unsigned int ee_addr;

//    #define DELAY_TIME 60 
    #define DELAY_TIME 120 
    #define TRUE 1
    #define FALSE 0

    #define SCL MCO
    #define SDA MDO
    #define SEN MDE
    #define SDI MDI

//register address
  #define   MODE0_REG          0x00
  #define   MODE1_REG          0x01
  #define   MODE2_REG          0x02
  #define   MODE3_REG          0x03
  #define   MODE4_REG          0x04

  #define   TIMEMODE0_REG      0x07
  #define   TIMEMODE1_REG      0x08

  #define   SUBFREQ0_REG       0x09
  #define   SUBFREQ1_REG       0x0a
  #define   SUBFREQ2_REG       0x0b
  #define   SUBFREQ3_REG       0x0c

  #define   SUBPHASE_REG       0x0d

bit En_Tx_end;
bit En_Rx_end;
bit En_explain;
bit En_rst;
bit En_test;
unsigned char Txbuffer[16];
unsigned char Rxbuffer[8];
unsigned char Txcount,Rxcount;
unsigned int Txtotal;

unsigned char bright;     //
unsigned char v_cdc;      //
unsigned char old_bright;     //
unsigned char old_v_cdc;      //

float  value;      //
unsigned int voltage;      //
unsigned int voltage0;      //
unsigned int voltage1;      //
/****************************************************
*以下為16進(jìn)制數(shù)據(jù) 轉(zhuǎn)換 ASCII碼
*****************************************************/
char asc_h(unsigned char indata)
{
  char outdata,temp;
  temp=(indata>>4)&0x0f;
  if(temp>9)
    outdata=temp+55;
  else
    outdata=temp+48;
  return outdata;
}

char asc_l(unsigned char indata)
{
  char outdata,temp;
  temp=indata&0x0f;
  if(temp>9)
    outdata=temp+55;
  else
    outdata=temp+48;
  return outdata;
}

/*****************************************
*初始化串口  定時器1作串行時鐘 定時器0
*****************************************/
void initSer()
{
// TMOD=0x91;      //T1 GATE:INT1  T0 16 bit cnt 
  TMOD=0x29;       //T0 GATE:INT0  T1 方式2 波特率發(fā)生器  
  TH1=0xfd;
  TL1=0xfd;
  TR1=1;
  SCON=0x50;         /* function 1     */
  PCON=0x80;         //19.2k
}

/**********************************
*初始化定時器2   主工作時鐘
**********************************/
void initT2()       
{
   T2CON=0;    
   TH2=0x4c;        //50ms timer 20為1秒
   TL2=0x00;
   RCAP2L=0x4c;
   RCAP2L=0x00;
   TR2=1;
   ET2=1;
}

/**********************************
定時器2中斷服務(wù)程序
**********************************/
void timer2() interrupt 5 using 0
{                                 
  TF2=0;
  En_test=1;
/*
  if(En_test==1)
  {
    V_SET=0;
    En_test=0; 
  }
  else
  {
    V_SET=1;
    En_test=1; 
  }
  //V_SET=0;
//  V_SET=1;
/*
  t0_cnt++;
  if(t0_cnt>19)
  {
    timer0_1s++;         //1s timer 
    t0_cnt=0;
  }
*/
}

/************************************
*I2C延時
*************************************/
    void DELAY(unsigned int t)
    {
        while(t!=0)
            t--;
    }

/************************************
*I2C操作程序
*************************************/
    void I2C_Start(void)
    {
        SEN=1;
        SDA=1;
        SCL=1;
        DELAY(DELAY_TIME);
        SDA=0;
        DELAY(DELAY_TIME);
        SCL=0;
        DELAY(DELAY_TIME);
//        DELAY(DELAY_TIME);
    }

/*****************************************
	*I2C操作 
*****************************************/
    void I2C_Stop(void)
    {
        SEN=1;
        SDA=0;
        SCL=1;
        DELAY(DELAY_TIME);
        SDA=1;
        DELAY(DELAY_TIME);
        SCL=0;
        DELAY(DELAY_TIME);
    }

/*****************************************
	*I2C操作  
*****************************************/
    void SEND_0(void)   /* SEND ACK */
    {
        SEN=1;
        SDA=0;
        SCL=1;
        DELAY(DELAY_TIME);
        SCL=0;
        DELAY(DELAY_TIME);
    }

/*****************************************
	*I2C操作 
*****************************************/
    void SEND_1(void)
    {
        SEN=1;
        SDA=1;
        SCL=1;
        DELAY(DELAY_TIME);
        SCL=0;
        DELAY(DELAY_TIME);
    }

    bit Check_Acknowledge(void)
    {
        SDA=1;
        SEN=0;

        SCL=1;
        DELAY(DELAY_TIME/2);
//        F0=SDA;
        F0=SDI;
//        DELAY(DELAY_TIME/2);
        SCL=0;
//        DELAY(DELAY_TIME);
        DELAY(DELAY_TIME);
        F0=SDI;
        if(F0==1)
            return FALSE;
        return TRUE;
    }

/*****************************************
	*I2C操作  
*****************************************/
    void WriteI2CByte(unsigned char b)
    {
        char i;
        SEN=1;
        for(i=0;i<8;i++)
            if((b<<i)&0x80)
                SEND_1();
            else
                SEND_0();
    }

     unsigned char ReadI2CByte(void)
    {
        unsigned char b=0,i;
        SEN=0;
        SCL=0;   

        for(i=0;i<8;i++)
        {
//            SDA=1;    /*釋放總線*/
            SCL=1;    /*接受數(shù)據(jù)*/
            DELAY(10);
//            F0=SDA;
//            F0=SDI;
//            DELAY(10);
            DELAY(10);
            SCL=0;
            F0=SDI;
            if(F0==1)
                {
                    b=b<<1;
                    b=b|0x01;
                }
            else
                b=b<<1;
        }
        return b;
    }


void ADV_Write_One_Word(unsigned char device, unsigned char addr,unsigned char thedata)
{
          bit acktemp=1;
          /*write a byte to mem*/
          I2C_Start();
//          WriteI2CByte(0xa0);               
          WriteI2CByte(device);               
          acktemp=Check_Acknowledge();
//          WriteI2CByte(addr>>8);        
//          acktemp=Check_Acknowledge();

          WriteI2CByte(addr);          
          acktemp=Check_Acknowledge();

          WriteI2CByte(thedata);
          acktemp=Check_Acknowledge();
          I2C_Stop();
          DELAY(200);
}

/*****************************************
*ADV7171  在指定地址讀取數(shù)據(jù)
*****************************************/
char ADV_Read_One_Word(unsigned char device, unsigned char addr)
{         bit acktemp=1;
          unsigned char mydata;
           /*read a byte from mem*/
          I2C_Start();
//          WriteI2CByte(0xa0);
          WriteI2CByte(device);
          acktemp=Check_Acknowledge();

//          WriteI2CByte(addr>>8);
//          acktemp=Check_Acknowledge();

          WriteI2CByte(addr);      // 24c512
          acktemp=Check_Acknowledge();
          I2C_Start();
//          WriteI2CByte(0xa1);
          WriteI2CByte(device+1);
          acktemp=Check_Acknowledge();

          mydata=ReadI2CByte();
          acktemp=Check_Acknowledge();

          I2C_Stop();
          return mydata;
}

/********************************
*基準(zhǔn)電源
********************************/
void DACinit()
{
  DACCON=0x1f;    // DAC0 on, 12bit, asynchronous
  DAC0H=0;//0x0e;
  DAC0L=0;//0x13;     // DAC0 2.2V bright signal
  DAC1H=0;//0x04;
  DAC1L=0;//0x00;     // DAC1 to mid-scale
}

void setvoltage()
{
	   if(old_bright!=bright)
	   {
	     old_bright=bright;
		 value=bright*4095.0/250;
         voltage=(int)value;
         voltage0=voltage;
		 DAC0H=voltage>>8;
         DAC0L=voltage;     // DAC0 bright signal
	   }
	   if(old_v_cdc!=v_cdc)
	   {
	     old_v_cdc=v_cdc;
		 value=v_cdc*4095.0/250;
         voltage=(int)value;
         voltage1=voltage;
         DAC1H=voltage>>8;
         DAC1L=voltage;     // DAC0 v_cdc signal
	   }
}

void ADV_init()
{
  ADV_Write_One_Word(device,MODE0_REG,0x00);  
//  ADV_Write_One_Word(device,MODE1_REG,0x80);  //enable output color bar 0x80
  ADV_Write_One_Word(device,MODE1_REG,0x00);  //enable output color bar 0x80
  ADV_Write_One_Word(device,MODE2_REG,0x00);  //720 pixel
  ADV_Write_One_Word(device,MODE3_REG,0x00);  //MR37 defalut color  MR33=0 MR34=0 
  ADV_Write_One_Word(device,MODE4_REG,0x0d);    //RGB sync VSYNC  MR41 MR40=1  MR43 V_SYNC_3H
  ADV_Write_One_Word(device,TIMEMODE0_REG,0x0d);  //master 8 bit TR05=0 TR04=1 74ns delay
  ADV_Write_One_Word(device,TIMEMODE1_REG,0x33);  //Tpclk
  ADV_Write_One_Word(device,SUBFREQ0_REG,0x1f);  // 
  ADV_Write_One_Word(device,SUBFREQ1_REG,0x7c);  // 
  ADV_Write_One_Word(device,SUBFREQ2_REG,0xf0);  // 
  ADV_Write_One_Word(device,SUBFREQ3_REG,0x21);  // 

  ADV_Write_One_Word(device,SUBPHASE_REG,0x00);  //Tpclk
}

/****************************************************
*以下串行中斷服務(wù)程序
*****************************************************/
void inrs() interrupt 4 using 3
{
  if(RI)
  {
    RI=0;
    Rxbuffer[Rxcount]=SBUF;
	Rxcount++;
    En_explain=1;    
    if(Rxcount>6) Rxcount=0; //接收數(shù)據(jù)最大為6個  
  }

  if(TI)
  {
    TI=0;
    Txcount++;
    if(Txcount>=Txtotal) 
	{
      Txcount=0;
      En_Tx_end=1;
	}
    else
      SBUF=Txbuffer[Txcount];
  }
}
/****************************************************
*以下為主函數(shù)
*****************************************************/
void main (void)  
{
//  int i;
  unsigned char v_data;
  DELAY(50000);
  V_RET=0;
  DELAY(100);
  V_RET=1;
  En_rst=1;

  I2CCON=0xa8;  //I2C控制器

  device=I2C_ADV7170;  //EEPROM 
  ADV_init();

  initSer();
  initT2();	
  DACinit();

  En_test=0;
  Txcount=0;
  Rxcount=0;
  En_explain=0;

  bright=0;
  v_cdc=0;
  old_bright=0;
  old_v_cdc=0;
  ES=1;
  EA=1;

  while (1) 
  {                         /* Loop forever */
//    V_SET=0;
//    V_SET=1;
    if(En_test==1)
    {
       En_test=0;
       bright=XBYTE[BRIGHT_ADDR];
       v_cdc=XBYTE[V_CDC_ADDR];
       setvoltage();
    }
//V_SET=0;
//  V_SET=1;
    if(En_explain)
    {
      if(Rxbuffer[0]=='a') 
      {
         Rxcount=0;
         En_explain=0;   
         v_data=ADV_Read_One_Word(device, MODE0_REG);
         Txbuffer[0]=asc_h(v_data);
         Txbuffer[1]=asc_l(v_data);

         v_data=ADV_Read_One_Word(device, MODE1_REG);
         Txbuffer[2]=asc_h(v_data);
         Txbuffer[3]=asc_l(v_data);

         v_data=ADV_Read_One_Word(device, MODE2_REG);
         Txbuffer[4]=asc_h(v_data);
         Txbuffer[5]=asc_l(v_data);

         v_data=ADV_Read_One_Word(device, MODE3_REG);
         Txbuffer[6]=asc_h(v_data);
         Txbuffer[7]=asc_l(v_data);

         v_data=ADV_Read_One_Word(device, MODE4_REG);
         Txbuffer[8]=asc_h(v_data);
         Txbuffer[9]=asc_l(v_data);

         v_data=ADV_Read_One_Word(device, TIMEMODE0_REG);  //master
         Txbuffer[10]=asc_h(v_data);
         Txbuffer[11]=asc_l(v_data);

         v_data=ADV_Read_One_Word(device, TIMEMODE1_REG);  //Tpclk
         Txbuffer[12]=asc_h(v_data);
         Txbuffer[13]=asc_l(v_data);

         Txtotal=14;
         SBUF=Txbuffer[0];
      }
      else if(Rxbuffer[0]=='b') 
      {
         Rxcount=0;
         En_explain=0;   
         v_data=ADV_Read_One_Word(device, SUBFREQ0_REG);
         Txbuffer[0]=asc_h(v_data);
         Txbuffer[1]=asc_l(v_data);
         v_data=ADV_Read_One_Word(device, SUBFREQ1_REG);
         Txbuffer[2]=asc_h(v_data);
         Txbuffer[3]=asc_l(v_data);
         v_data=ADV_Read_One_Word(device, SUBFREQ2_REG);
         Txbuffer[4]=asc_h(v_data);
         Txbuffer[5]=asc_l(v_data);
         v_data=ADV_Read_One_Word(device, SUBFREQ3_REG);
         Txbuffer[6]=asc_h(v_data);
         Txbuffer[7]=asc_l(v_data);
         v_data=ADV_Read_One_Word(device,SUBPHASE_REG);
         Txbuffer[8]=asc_h(v_data);
         Txbuffer[9]=asc_l(v_data);

         Txtotal=10;
         SBUF=Txbuffer[0];
      }
      else if(Rxbuffer[0]=='r') 
      {
         Rxcount=0;
         En_explain=0;   
/*
         if(En_rst==1)
         { 
           V_RET=0;
           En_rst=0;
           Txbuffer[1]='0';
         }
         else
         { 
           V_RET=1;
           En_rst=1;
           Txbuffer[1]='1';
         } 
*/
         Txbuffer[0]=Rxbuffer[0];
         Txtotal=2;
         SBUF=Txbuffer[0];
      }
      else if(Rxbuffer[0]=='m') 
      {
         Rxcount=0;
         En_explain=0;   
//         XBYTE[BRIGHT_ADDR]=0x55;     
//         XBYTE[V_CDC_ADDR]=0xaa;     
         bright=XBYTE[BRIGHT_ADDR];
         v_cdc=XBYTE[V_CDC_ADDR];
//         setvoltage();

         Txbuffer[0]=asc_h(bright);
         Txbuffer[1]=asc_l(bright);
         Txbuffer[2]=asc_h(v_cdc);
         Txbuffer[3]=asc_l(v_cdc);
         Txtotal=4;
         SBUF=Txbuffer[0];
      }
      else if(Rxbuffer[0]=='s') 
      {
         Rxcount=0;
         En_explain=0;   
         ADV_init();
         Txbuffer[0]=Rxbuffer[0];
         Txtotal=1;
         SBUF=Txbuffer[0];
      }
      else if(Rxbuffer[0]=='v') 
      {
         Rxcount=0;
         En_explain=0;   
         bright=XBYTE[BRIGHT_ADDR];
         v_cdc=XBYTE[V_CDC_ADDR];
		 value=bright*4095.0/250;
		 voltage0=(int)value;
		 value=v_cdc*4095.0/250;
		 voltage1=(int)value;
         Txbuffer[0]=asc_h(bright);
         Txbuffer[1]=asc_l(bright);
         Txbuffer[2]=asc_h(v_cdc);
         Txbuffer[3]=asc_l(v_cdc);
         Txbuffer[4]=asc_h((voltage0>>8));
         Txbuffer[5]=asc_l((voltage0>>8));
         Txbuffer[6]=asc_h(voltage0);
         Txbuffer[7]=asc_l(voltage0);
         Txbuffer[8]=asc_h((voltage1>>8));
         Txbuffer[9]=asc_l((voltage1>>8));
         Txbuffer[10]=asc_h(voltage1);
         Txbuffer[11]=asc_l(voltage1);
         Txtotal=12;
         SBUF=Txbuffer[0];
      }
    }
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文字幕一区二区| 国产午夜精品福利| 国产精品欧美久久久久一区二区| 日日夜夜免费精品| 欧美视频三区在线播放| 亚洲精品视频在线看| 99精品视频一区二区| 综合亚洲深深色噜噜狠狠网站| 欧美亚洲动漫制服丝袜| 成人免费在线视频| 顶级嫩模精品视频在线看| 欧美色图免费看| 亚洲一二三区不卡| 欧美日韩美少妇| 舔着乳尖日韩一区| 日韩欧美色综合网站| 麻豆国产91在线播放| 69堂国产成人免费视频| 日日噜噜夜夜狠狠视频欧美人| 欧美日本精品一区二区三区| 午夜欧美一区二区三区在线播放| 欧美福利视频一区| 久久国产成人午夜av影院| 欧美精品一区二区精品网| 国产原创一区二区| 欧美韩国一区二区| 人人精品人人爱| 8v天堂国产在线一区二区| 天堂蜜桃一区二区三区| 日韩无一区二区| 国产91精品一区二区| 日韩一区在线看| 欧美日韩精品一区二区| 麻豆中文一区二区| 日本一区二区视频在线观看| 91丨九色丨国产丨porny| 亚洲一区在线播放| 久久综合九色综合欧美亚洲| 99久久er热在这里只有精品66| 一区二区三区免费观看| 51精品秘密在线观看| 国产精品亚洲一区二区三区在线| 中文幕一区二区三区久久蜜桃| 色婷婷综合激情| 久久99精品久久久久久久久久久久| 欧美国产视频在线| 欧美视频一区二区三区四区 | 制服丝袜成人动漫| 精品一区二区三区在线视频| 亚洲天天做日日做天天谢日日欢 | 91亚洲精品久久久蜜桃网站 | 中文字幕精品在线不卡| 色悠久久久久综合欧美99| 视频一区视频二区中文| 国产精品久久久久久久久免费丝袜| 欧美日韩免费高清一区色橹橹 | 自拍偷拍亚洲综合| 欧美一区二区三区播放老司机| 国产精品国产三级国产专播品爱网| 91在线观看一区二区| 另类小说视频一区二区| 亚洲男人的天堂一区二区 | 日韩视频一区二区| 一本久道久久综合中文字幕| 韩日精品视频一区| 婷婷亚洲久悠悠色悠在线播放| 欧美经典三级视频一区二区三区| 337p亚洲精品色噜噜狠狠| aaa欧美色吧激情视频| 久草中文综合在线| 亚洲国产日韩一级| 国产精品免费久久| 久久夜色精品一区| 日韩视频中午一区| 99国产精品国产精品久久| 国内精品伊人久久久久av一坑| 日韩国产成人精品| 亚洲午夜久久久久中文字幕久| 中文字幕一区二区三区在线播放| 久久免费视频色| 日韩欧美国产麻豆| 在线成人av网站| 色狠狠av一区二区三区| 成人激情免费网站| 美腿丝袜在线亚洲一区| 爽好多水快深点欧美视频| 一区二区三区视频在线观看| 国产精品初高中害羞小美女文| 久久久五月婷婷| 国产麻豆精品theporn| 韩国精品免费视频| 成人网在线免费视频| 粉嫩av一区二区三区在线播放 | 久久久国产午夜精品| 国产亚洲人成网站| 国产精品福利一区二区| 亚洲女人小视频在线观看| 夜夜精品浪潮av一区二区三区| 亚洲一区精品在线| 青青草国产成人av片免费| 久久精品国产色蜜蜜麻豆| 国产美女主播视频一区| 暴力调教一区二区三区| 欧美色区777第一页| 日韩一级黄色大片| 国产亚洲综合在线| 亚洲色图欧美在线| 三级不卡在线观看| 国产精品123区| 91麻豆精品一区二区三区| 欧美精品vⅰdeose4hd| 久久夜色精品国产欧美乱极品| ...xxx性欧美| 青娱乐精品视频| 成人av在线网站| 制服视频三区第一页精品| 国产午夜精品理论片a级大结局| 亚洲女同ⅹxx女同tv| 久久成人免费日本黄色| 成人天堂资源www在线| 欧美日韩综合在线| 国产欧美精品一区aⅴ影院 | 国产精品亲子乱子伦xxxx裸| 亚洲综合色噜噜狠狠| 久久国产三级精品| 91丨九色porny丨蝌蚪| 日韩一区中文字幕| 激情久久五月天| 色综合亚洲欧洲| 精品久久久久久久久久久院品网| 亚洲欧美另类小说| 精久久久久久久久久久| 日本韩国精品在线| 国产日韩三级在线| 日韩不卡在线观看日韩不卡视频| av网站一区二区三区| 精品99999| 日韩精品电影一区亚洲| 波多野结衣精品在线| 精品国产第一区二区三区观看体验| 一个色综合网站| 成人免费福利片| 久久蜜臀中文字幕| 日本不卡一二三| 91福利区一区二区三区| 国产精品久久久久久久岛一牛影视| 免费高清在线视频一区·| 欧美日韩在线一区二区| 亚洲色图欧美在线| www.欧美日韩国产在线| 国产区在线观看成人精品 | 国产在线观看免费一区| 欧美丰满少妇xxxxx高潮对白| 亚洲四区在线观看| 国产成人精品影视| 欧美精品一区二区三区蜜桃视频| 奇米色777欧美一区二区| 欧美三级资源在线| 亚洲一区二区三区在线| 色婷婷久久久亚洲一区二区三区| 国产精品美女久久久久av爽李琼 | 国产精品欧美久久久久一区二区| 国产自产视频一区二区三区| 日韩视频免费观看高清在线视频| 午夜精品久久久久久不卡8050| 在线观看国产一区二区| 亚洲精品伦理在线| 日本精品裸体写真集在线观看| 《视频一区视频二区| 色婷婷久久久综合中文字幕 | 国模一区二区三区白浆| 欧美精品一区二区三区四区| 国产资源精品在线观看| 欧美精品一区二区久久久| 国产一区二区在线影院| 久久久99精品久久| 欧美不卡一区二区| 久草热8精品视频在线观看| 久久只精品国产| 国产成人午夜精品影院观看视频| 国产偷v国产偷v亚洲高清| 成人一区在线观看| 一区二区视频免费在线观看| 在线免费视频一区二区| 日韩电影在线看| 欧美不卡一区二区三区四区| 国产精品99久久久久久久女警| 国产精品你懂的| 欧美色网一区二区| 美女视频免费一区| 久久新电视剧免费观看| 成人h精品动漫一区二区三区| 亚洲另类春色校园小说| 欧美日韩精品一区二区天天拍小说| 日产国产欧美视频一区精品| 精品免费日韩av| 国产成人小视频| 亚洲一区在线观看视频| 精品欧美黑人一区二区三区| 成人免费毛片aaaaa**|