色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用PCF8591進(jìn)行ADDA轉(zhuǎn)換

          使用PCF8591進(jìn)行ADDA轉(zhuǎn)換

          作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
          void display(uchar ge,uchar shi,uchar bai)
          {
          P0=0xff;
          LS138A=1;   //第一位
          LS138B=1;
          LS138C=1;
          P0=table[ge];
          delay_1ms(5);
          P0=0xff;
          LS138A=0;   //第二位
          LS138B=1;
          LS138C=1;
          P0=table[shi];
          delay_1ms(5);
          P0=0xff;
          LS138A=1;   //第三位
          LS138B=0;
          LS138C=1;
          P0=table[bai];
          delay_1ms(5);
          }
          void main()
          {      
          uchar num,ge,shi,bai;
          init();
          while(1)
          {
          display(ge,shi,bai);
          num=read_add(0x40);
          ge=num;
          num/=10;
          shi=num;
          num/=10;
          bai=num;
          }
          }

          3.DA轉(zhuǎn)換

          本文引用地址:http://cafeforensic.com/article/201611/322104.htm

          //I2C總線很強(qiáng)大
          //程序功能:通過DA轉(zhuǎn)換把輸出電壓逐漸增大,使加在上面的發(fā)光二級(jí)管慢慢變亮
          // 到最亮后再變暗,如此循環(huán)
          #include 
          #define uchar unsigned char
          #define uint unsigned int
          #define PCF8591 0x90 //PCF8591 地址
          sbit SCL=P2^1;      //串行時(shí)鐘輸入端
          sbit SDA=P2^0;  //串行數(shù)據(jù)輸入端
          void delay()       //延時(shí)4-5個(gè)微秒
          {;;}
          void delay_1ms(uint z)
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=110;y>0;y--)
          ;
          }
          void start()//開始信號(hào)
          {
          SDA=1;
          delay();
          SCL=1;
          delay();
          SDA=0;
          delay();
          }
          void stop()      //停止信號(hào)
          {
          SDA=0;
          delay();
          SCL=1;
          delay();
          SDA=1;
          delay();
          }
          void respons()//應(yīng)答 相當(dāng)于一個(gè)智能的延時(shí)函數(shù)
          {
          uchar i;
          SCL=1;
          delay();
          while((SDA==1)&&(i<250))
          i++;
          SCL=0;
          delay();
          }
          void init()      //初始化
          {
          SDA=1;
          delay();
          SCL=1;
          delay();    
          }
          void write_byte(uchar date)      //寫一字節(jié)數(shù)據(jù)
          {
          uchar i,temp;
          temp=date;
          for(i=0;i<8;i++)
          {
          temp=temp<<1; //左移一位 移出的一位在CY中
          SCL=0;                      //只有在scl=0時(shí)sda能變化值
          delay();
          SDA=CY;
          delay();
          SCL=1;
          delay();            
          }   
          SCL=0;
          delay();
          SDA=1;
          delay();
          }
          void write_add(uchar control,uchar date)
          {
          start();
          write_byte(PCF8591);        //10010000 前四位固定 接下來三位全部被接地了 所以都是0 最后一位是寫 所以為低電平
          respons();
          write_byte(control);
          respons();
          write_byte(date);
          respons();
          stop();
          }
          void main()
          {
          uchar a;
          init();
          while(1)
          {
          write_add(0x40,a);
          delay_1ms(5);
          a++;
          if(a>250)
          a=0;                
          }
          }

          上一頁 1 2 下一頁

          關(guān)鍵詞: PCF8591ADDA轉(zhuǎn)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉