欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于51單片機的AD8080驅動程序

作者:佚名   來源:本站原創(chuàng)   點擊數:  更新時間:2012年03月22日   【字體:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit  P2_1=P2^1;         //定義數碼管位碼端口
sbit  P2_2=P2^2;
sbit  P2_3=P2^3;
sbit  OE=P3^0;         //定義ADC0808端口
sbit  EOC=P3^1;
sbit  ST=P3^2;
sbit  P3_4=P3^4;
sbit  P3_5=P3^5;
sbit  P3_6=P3^6;
uchar  code  leddata_dot[]={0x40,0x79,0x24,0x30,0x19,0x12};//帶小數點的0~5六個
uchar  code  leddata[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
          //共陽極0~9十個段碼/段碼
//*********************************
//延時子程序
//*********************************
void delay(uchar n)
{   uchar i,j;
       for(i=0;i<n;i++)
         for(j=0;j<125;j++);
}
//*********************************
//將AD轉換輸出的數據轉換成相應的
//電壓值并且顯示出來
//*********************************
void convert(int volt_data)
{
   uchar temp;
   P0=leddata_dot[volt_data/51];       //AD轉換的值/51即為個位的電壓值
   P2_1=1;           //顯示個位的值
   delay(3);
   P2_1=0;
   if((volt_data%51)<0x19)        //余數小于19H,顯示小數點的后第一位
     {
    P0=leddata[(volt_data%51)*10/51];
    P2_2=1;
    delay(3);
  P2_2=0;
   }
   else
      {
     P0=leddata[(volt_data%51)*10/51]; //余數大于19H,結果再加上5
  P2_2=1;       //顯示小數點的后的第一位
  delay(3);
  P2_2=0;
   }
  temp=(((volt_data%51)*10)%51);
   if(temp<0x19)       //余數小于19H,顯示小數點的后第二位
     {
    P0=leddata[temp*10/51];
    P2_3=1;
    delay(3);
    P2_3=0;
  }
 else
  {
    P0=leddata[temp*10/51];    //余數大于19H,結果再加上5
    P2_3=1;        //顯示小數點的后的第二位
    delay(3);
    P2_3=0;
   }
}
void main()
{
  int volt_data;
  P3_4=1;        //選擇通道3
  P3_5=1;
  P3_6=0;
  while(1)
  {
    ST=0;
    _nop_();
    ST=1;
    _nop_();
    ST=0;          //啟動AD轉換
  if(EOC==0)         //等待轉換結束
   delay(100);
   while(EOC==0);
  OE=1;        //允許輸出
  volt_data=P1;      //暫存轉換結果
  OE=0;        //關閉輸出
  convert(volt_data);     //調用數據處理子程序
 }
}
關閉窗口

相關文章