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

標題: 基于51單片機的數字電壓表設計 [打印本頁]

作者: 940112874    時間: 2017-9-23 09:26
標題: 基于51單片機的數字電壓表設計
//程序頭函數
#include <reg52.h>
//宏定義
#define uint unsigned int
#define uchar unsigned char
#define Data_ADC0809 P1
//ADC0809
sbit ST=P3^2;
sbit EOC=P3^3;
sbit OE=P3^1;
sbit DIAN = P0^5;          //小數點
/*******************************定義全局變量********************************/
unsigned char dis[3];       //顯示數值
unsigned int sum=0;
unsigned int temp=0;
unsigned int dat=0;
/*******************************共陰LED段碼表*******************************/
unsigned char code tab[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0x5e/*字母U*/}; //gc.debfa
/****************************************************************************
函數功能:AD轉換子程序
****************************************************************************/
//ADC0809讀取信息
uchar ADC0809()
{
uchar temp_=0x00;
//初始化高阻太
OE=0;
//轉化初始化
ST=0;
//開始轉換
ST=1;
ST=0;
//外部中斷等待AD轉換結束
while(EOC==0)
//讀取轉換的AD值
OE=1;
temp_=Data_ADC0809;
OE=0;
return temp_;
}
/****************************************************************************
函數功能:延時子程序
入口參數:
出口參數:
****************************************************************************/
void delay(unsigned int x)
{
    unsigned int i,j;
    for(i=0;i<x;i++)
for(j=0;j<121;j++);
}
//=====================================================================================
//=====================================================================================
//=====================================================================================
/****************************************************************************
函數功能:將0-255級換算成0.00-5.00的電壓數值
入口參數:i
出口參數:
****************************************************************************/
void convdata(unsigned char dat1)
{
unsigned int Vo;
Vo=dat1*1.96;  
    dis[0] = Vo/100;       //十位
    dis[1] = Vo%100/10;      //個位  
    dis[2] = Vo%100%10;     //小數點后第1位
}
/****************************************************************************
函數功能:數碼管顯示子程序
入口參數:
出口參數:
****************************************************************************/
void display(void)
{  
    P0=~tab[dis[0]];      
    P2=0xfe;                  //11011111
DIAN=0;
    delay(1);   
    P2=0xff;
    P0=~tab[dis[1]];      
    P2=0xfb;                //10111111
    delay(1);
    P2=0xff;
    P0=~tab[dis[2]];      
    P2=0xef;              //01111111  
    delay(1);
    P2=0xff;
P0=~tab[10];      
    P2=0xbf;              
    delay(1);
    P2=0xff;
}
/****************************************************************************
函數功能:主程序
入口參數:
出口參數:
****************************************************************************/
void main(void)
{
unsigned char p=0;
    while(1)       //主循環   
    {
  for(p=0;p<20;p++)
  {
   sum=sum+ADC0809();
   display();
  }
//  dat=((sum/20)+dat)/2;
  dat=sum/20;
  convdata(dat);      //數據轉換
  sum=0;
  display();      //顯示數值
    }
}

作者: 倪爹    時間: 2019-6-5 17:27
電路圖?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1