找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2255|回復: 1
打印 上一主題 下一主題
收起左側

基于單片機簡易數(shù)字電壓表的設計源碼0-5v

[復制鏈接]
跳轉到指定樓層
樓主
ID:444216 發(fā)表于 2018-12-11 16:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//程序頭函數(shù)
#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;         //小數(shù)點
/*******************************定義全局變量********************************/
unsigned char dis[3];       //顯示數(shù)值
unsigned int sum=0;
unsigned int temp=0;
unsigned int dat=0;
/*******************************共陰LED段碼表*******************************/
unsigned char codetab[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0x5e/*字母U*/};//gc.debfa
/****************************************************************************
函數(shù)功能: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_;
}
/****************************************************************************
函數(shù)功能:延時子程序
入口參數(shù):
出口參數(shù):
****************************************************************************/
void delay(unsigned int x)
{
    unsigned int i,j;
    for(i=0;i<x;i++)
for(j=0;j<121;j++);
}
//=====================================================================================
//=====================================================================================
//=====================================================================================
/****************************************************************************
函數(shù)功能:將0-255級換算成0.00-5.00的電壓數(shù)值
入口參數(shù):i
出口參數(shù):
****************************************************************************/
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;    //小數(shù)點后第1位
}
/****************************************************************************
函數(shù)功能:數(shù)碼管顯示子程序
入口參數(shù):
出口參數(shù):
****************************************************************************/
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;
}
/****************************************************************************
函數(shù)功能:主程序
入口參數(shù):
出口參數(shù):
****************************************************************************/
void main(void)
{
unsigned char p=0;
    while(1)      //主循環(huán)   
    {
  for(p=0;p<20;p++)
  {
   sum=sum+ADC0809();
   display();
  }
//  dat=((sum/20)+dat)/2;
  dat=sum/20;
  convdata(dat);     //數(shù)據(jù)轉換
  sum=0;
  display();      //顯示數(shù)值
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:543303 發(fā)表于 2019-6-4 12:29 | 只看該作者
樓主你有相應的仿真圖和原理圖嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表