立即注册 登录
返回首页

uid:190346的个人空间

日志

数字电压表源程序

已有 1006 次阅读2017-4-17 10:47 | 电压表, 源程序

#include <reg51.h>
#include <1602.c>
#include <mcp3204.c>
unsigned int code rt[21]={14230,13602,13005,12439,11900,11388,10901,10438,9998,9578,
                          9181,8799,8437,8092,7763,7449,7150,6865,6592,6332,6084};    //0~20度阻值表
void main(void)
{
//定义变量
    unsigned int ad_dat=0,RT=0,T=0;
 unsigned char disbuf[16]={0},i=0;
//单片机及外围部件初始化
    lcd_init();
//实现功能
    while(1)
 {
     ad_dat=mcp3204(0);
        disbuf[0]=(ad_dat/10)/100;
  disbuf[1]=(ad_dat/10)%100/10;
  disbuf[2]=(ad_dat/10)%10;         //求电压值,保留两位小数
  disbuf[3]=ad_dat/1000;
  disbuf[4]=ad_dat%1000/100;
  disbuf[5]=ad_dat%100/10;
  disbuf[6]=ad_dat%10;             //将AD转换数字量转换为十进制
  RT=40960000/ad_dat-10000;        //求热敏电阻阻值
        disbuf[7] =RT/10000;
  disbuf[8] =RT%10000/1000;
  disbuf[9] =RT%1000/100;
  disbuf[10]=RT%100/10;
  disbuf[11]=RT%10;               //将NTC阻值转换为十进制
  for(i=0;i<21;i++)               //求温度数值
  {
      if(RT ==rt[i])
       T=i*100;
   else
   {
       if((RT<rt[i]) && (RT>rt[i+1]))
           T=(rt[i]-RT)*100/(rt[i]-rt[i+1])+i*100;
   }
  }
        disbuf[12]=T/1000;
  disbuf[13]=T%1000/100;
  disbuf[14]=T%100/10;
  disbuf[15]=T%10;               //将温度数值转换为十进制
  WriteCommandLcd(0x80);
  WriteDataLcd('U');
  WriteDataLcd('=');
        WriteDataLcd(disbuf[0]+48);
  WriteDataLcd('.');
  WriteDataLcd(disbuf[1]+48);
  WriteDataLcd(disbuf[2]+48);
  WriteDataLcd('V');
  WriteCommandLcd(0x88);
  WriteDataLcd('R');
  WriteDataLcd('T');
  WriteDataLcd('=');
        WriteDataLcd(disbuf[7]+48);
  WriteDataLcd(disbuf[8]+48);
  WriteDataLcd(disbuf[9]+48);
  WriteDataLcd(disbuf[10]+48);
  WriteDataLcd(disbuf[11]+48);
        WriteCommandLcd(0xc0);
        WriteDataLcd(disbuf[3]+48);
  WriteDataLcd(disbuf[4]+48);
        WriteDataLcd(disbuf[5]+48);
  WriteDataLcd(disbuf[6]+48);
  WriteCommandLcd(0xc8);
  WriteDataLcd('T');
  WriteDataLcd('=');
        WriteDataLcd(disbuf[12]+48);
  WriteDataLcd(disbuf[13]+48);
        WriteDataLcd('.');
        WriteDataLcd(disbuf[14]+48);
  WriteDataLcd(disbuf[15]+48);
 }
}

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部