交流信号测量仪

发布者:MysticMoon最新更新时间:2015-07-24 来源: 51hei关键字:交流信号  测量仪 手机看文章 扫描二维码
随时随地手机看文章
本作品为匆忙制作,考试逼近,为了应付竞赛,用了几天时间,整出这个一个东西交差,程序算法有待提高

如有朋友做AD方面的东西,相互交流


完整的源码下载:http://www.51hei.com/f/jiaoliu.rar
 以下是部分代码:

#include            
#include    
#include      
#define nop() _nop_()

#define N0 65336
#define uint unsigned int
#define uchar unsigned char  
#define ulong unsigned long

uchar code xian[]={"Welcome"};
uchar code xian1[]={"Designed by WJJ"};
uchar tab[7];
uchar tab2[7];
uchar tab3[5];
uchar tab4[8]={"        "};

sbit EOC=P2^6;
sbit OE=P2^5;
sbit START=P2^7;
sbit lcdrs=P3^5;
sbit lcdrw=P3^6;
sbit lcden=P3^7;

uint vmax=0; //  电压测量运算变量
uint count1;  //电压测量控制变量
uint count;   //频率测量控制变量
ulong mt=0;    //  频率测量运算变量
ulong vs=0;
ulong t;


bit flag=0;    //是否显示标志位  对频率


void  DelayNS(uint dly)  
{ 
   uint i;
   for(; dly>0; dly--)
      for(i=0; i<100; i++);
}

bit lcd_busy()
{
 bit result;
 lcdrw = 1;
 lcdrs = 0;
 lcden = 1;
 nop();nop();nop();nop();
 result = (bit)(P1&0x80);
 lcden = 0;
 return(result);
}

void write_com(uchar com)
{
    while(lcd_busy());      //LCD忙等待
 lcdrs = 0;
 lcdrw = 0;
 P1 = com;
 DelayNS(5);
 lcden = 1;
 DelayNS(5);
 lcden = 0;
}
void write_data(uchar date)
{
    while(lcd_busy());      //LCD忙等待
 lcdrs = 1;
 lcdrw = 0;
 P1 = date;
 DelayNS(5);
 lcden = 1;
 DelayNS(5);
 lcden = 0;
}
void lcd_init()
{
 lcden = 0;
 write_com(0x38);
 DelayNS(5);
 write_com(0x0c);
 DelayNS(5);
 write_com(0x04);
 DelayNS(5);
 write_com(0x01);
}
void timer_init()  
{
 EA = 1;

 EX0=1;
 IT0=1;

 TMOD = 0x11;

 TH0=0;
 TL0=0;
}[page]
void main()
{
    uint i;
 ulong v=0;
 ulong av;
 uint hz;
    bit flag=0;
 ulong t1=0,t2=0;
 lcd_init();
 write_com(0x84);
 for(i=0;i<7;i++)
 {
  write_data(xian[i]);
  DelayNS(2);  
 }
 write_com(0x80+0x40);
 for(i=0;i<15;i++)
 {
  write_data(xian1[i]);
  DelayNS(2);  
 }
 DelayNS(1000); 
 DelayNS(1000);  
 timer_init();
 write_com(0x01);
 while(1)
    {
  if(count==40)
  {
   count=0;
      EX0=0;
   ET0=0;
   TR0=0;

   t1=100000000/mt;
   tab[0]=t1/1000+0x30;
   tab[1]=t1%1000/100+0x30;
   tab[2]=0x2e;
   tab[3]=t1%1000%100/10+0x30;
   tab[4]=t1%1000%100%10+0x30;        //周期显示十位
   tab[5]=0x48;
         tab[6]=0x7a;
   hz=t1/100;


   t=1000000/(50*hz)+100;


      TH1=65536-t/256;
            TL1=65535-t%256;
   t2=mt/10;
   tab2[0]=t2/1000+0x30;
   tab2[1]=t2%1000/100+0x30;
   tab2[2]=0x2e;
   tab2[3]=t2%1000%100/10+0x30;
   tab2[4]=t2%1000%100%10+0x30;
      tab2[5]=0x6d;
         tab2[6]=0x73;    
   ET1=1;
   TR1=1;
  }
     if(count1==80)     
  {
   ET1 = 0;
   TR1 = 0;
   count1=0;

            v=(vmax+1)*196/100;
   tab3[4]=0x56;
   tab3[3]=(v%100)%10+0x30;
   tab3[2]=(v%100)/10+0x30; 
   tab3[1]=0x2e;
   tab3[0]=v/100+0x30;

   vs=vs*0.0195*0.0195;
   av=(sqrt(vs/50))*100;

   tab4[4]=0x56;
   tab4[3]=(av%100)%10+0x30;
   tab4[2]=(av%100)/10+0x30; 
   tab4[1]=0x2e;
   tab4[0]=av/100+0x30;
   if((v/sqrt(2)-av)>25)
   {
    tab4[7]=0x32;
   }
   else
   {
    tab4[7]=0x31;
   }
   av=0;
   flag=1;
  }
  if(flag==1)
  {
   flag=0;

   write_com(0x80);
   for(i=0;i<7;i++)
   {
    write_data(tab[i]);
    DelayNS(2); 
   }


   write_com(0x80+0x09);
   for(i=0;i<7;i++)
   {
    write_data(tab2[i]);
    DelayNS(2); 
   }

      write_com(0x80+0x40);
   for(i=0;i<5;i++)
   {
    write_data(tab3[i]);
    DelayNS(20);
   }

      write_com(0x80+0x47);
   for(i=0;i<8;i++)
   {
    write_data(tab4[i]);
    DelayNS(20);
   }
   //write_com(0x80+0x54);
   //write_data(tab4[7]);
   //DelayNS(20);
   vmax=0;
   EX0=1;
  }
 }
}


void ex0() interrupt 0
{ 
 count++;
 if(count%2==0)
 {
     ET0=1;
  TR0=1;
  TH0=0;
     TL0=0;
 }
 else
 {
     ET0=0;
  TR0=0;
  mt=TH0*256+TL0; 
 }
}

void timer0() interrupt 1 //测频率时计时
{  
    TH0=0;
    TL0=0;
}

void  timer1() interrupt 3 //控制AD转换
{
 uint data1;
 count1++;
 OE = 0;
 START = 0;
 _nop_();
 START = 1;
 _nop_(); 
 START = 0; 
 while(EOC==0); 
 OE = 1; 
 _nop_();
 data1 = P0;
 _nop_();
 OE = 0;
 if(data1>vmax)
 {
  vmax=data1;
 }
 if(count1<=52)
 {
  vs=vs+data1*data1;
 }
    TH1=65536-t/256;
    TL1=65535-t%256;
}
关键字:交流信号  测量仪 引用地址:交流信号测量仪

上一篇:自己做的门禁系统3
下一篇:基于单片机设计的超声波倒车防撞系统

推荐阅读最新更新时间:2024-03-16 14:26

“2007安捷伦电子测量仪器展暨专题研讨会”在南京成功召开
(南京,2007年3月22日)---- 全球领先的跨国高科技公司安捷伦科技(NYSE: A)今天在南京成功举办了“2007安捷伦电子测量仪器展暨专题研讨会”。在此次为期两天的会议期间,安捷伦重点展出电子测量事业部(EMG)在近些年所推出的多种测试仪器与系统。同时,还针对不同领域的测试应用需求,举办了16场技术讲座。 本次研讨会的内容涵盖广泛但主题突出,会场一的八场会议主要围绕航空/航天及国防领域的复杂信号的产生、分析和系统组件的测试进行,主题包括“复杂雷达信号的仿真”,“复杂雷达与通信信号的分析”,“T/R组件的测试”等等;会场二的八场会议主要围绕数据通信、数字电路设计与验证以及下一代自动化测试总线和平台建设进行,主题包括“数据通
[焦点新闻]
湿度测量仪的原理和技术特点
湿度测量仪是一种常用的温度测量仪器,主要用来检测空气及各种气体的湿度,具有测量精确度高、测量范围宽、操作简便、使用寿命长、维护简便等优点。今天小编主要来介绍一下湿度测量仪的原理和技术特点,希望可以帮助到大家。 湿度测量仪的应用 湿度测量仪适用的领域非常广泛,空气、氮气、惰性气体以及任何不含腐蚀性介质的气体的湿度测量,尤其适合于SF6气体的湿度测量,电力、石化、冶金、环保、科研院所等部门均可采用。 湿度测量仪的原理 湿度测量仪采用了原装进口湿度传感器作为湿度敏感元件。当被测气体中的微量水分进入传感器采样室,水蒸汽被吸附到传感器的微孔中,使其容抗发生变化,传感器将这种变化是进行放大转换成标准线性电信号,通过微处理器加以处理,最后送
[测试测量]
测量仪表选择应该注意的2点
1.仪表准确度等级的选择 仪表准确度等级越高(即数的数值越小),测量结果越准确。但是,仪表准确度越高,价格越贵,维修也就越麻烦。所以,仪表准确度等级应该根据被测对象的要求确定,并应与互感器准确度等级相配合。 电气测量仪表的数值及其测量电路必须满足电压互感器和电流互感器误差的要求,即仪表的电压线圈并入电压互感器二次侧后,电压互感器的负载总容量不能超过在相应准确度等级下的容量;仪表电流线圈串入电流互感器二次侧后,电流互感器的二次负载阻抗不能超过其允许阻抗值,否则测量误差增大。 (1)仪表准确度等级。用于发电机和调相机上的交流仪表,不低于1.5级;用于其它设备和馈线上的交流仪表,不应低于2.5级;直流仪表,不应低于1.5级。 (
[测试测量]
<font color='red'>测量仪</font>表选择应该注意的2点
什么是影像测量仪
影像测量仪是当今工业检测与计量技术领域中的一个新名词,它代表的是计算机科技溶入工业检测与计量,进行空间几何运算的先进测量技术。正因为它的前沿性并不被大众所熟知,时下很多 一赶时髦,而冠以“影像测量仪”之名来称呼自已。 具有一个十分突出的特征,即:既带 又接计算机。这个特征本身非常搞笑,因为既然有了电脑的显示器,那么 本该毫无 意义,计算机能显示出的信息格式与容量实在是数显屏所无法企及的。在影像式投影测量仪中的电脑,可怜到了只相当于一个带有十字发生器的电视机或监示器一般,仅仅用来作为视觉对位的“靶场”和成为一件冒名的摆设,一堆毫无“智慧”可言的电子与机械。所以,要区分真假影像测量仪并不难,首先就看其是否多带了一个数显屏,其次看其是否
[测试测量]
三星新专利曝光:S Pen将内置酒精测量仪
    酒驾酿成了许多的悲剧,这是许多用户和司机们深恶痛绝的,下一代三星Note9可能有望改善这一情况。   据外媒曝光的一份三星专利显示,未来三星S Pen手写笔将内置体内酒量测定器(breathalyzer),它能够检查你体内酒精的浓度,同时也还内置麦克风,能够语音通话。 三星S Pen新专利曝光   如图所示,这个手写笔的一端能够弯曲90度,放置在嘴边。手写笔内置气体传感器,能够在用户通过手写笔麦克风跟他人通话时,检查呼出气体的酒精浓度,测试用户当前适不适合开车。 三星S Pen新专利曝光   这可能会大幅的减少醉酒后胡乱打电话伤人,或者开车引起的人间悲剧。不过由于这还只是一项专利,不知道三星何时会将它变为现实,或许在明年的
[手机便携]
微水测量仪的探头性能和产品特征
SF6微水测量仪作为气体湿度精密检测的专用仪表,适用于变电站SF6开关气体湿度及制氢站、氢冷发电机组氢气湿度的精密、快速检测,也可适用于冶金、化纤、石化等行业特殊气体的湿度检测。在低露点且需要控制干点的工业环境的理想选择,能在高浓度化学物质和清洁剂的环境中能进行精确稳定的测量,保证每次校验间隔之间的准确测量。 SF6微水测量仪的探头性能: 当周围湿度增加或减少时,传感器薄膜聚合物能够吸收或释放水蒸汽。合物的介电特性随着传感器周边湿度的变化而变化,传感器电容因之发生变化。电容可转换为湿度读数。在电容式聚合物传感器与温度传感器结合使用情况下,露点值可通过湿度和温度数值计算得出。 自动校准功能实现了低露点测量稳定性的优化。在程序
[测试测量]
微水<font color='red'>测量仪</font>的探头性能和产品特征
航空交流供电测试系统信号源的设计
针对航空交流供电系统设备冷台调试技术的研究,本文对测试系统主要组成部分之一的发电机交流信号源的设计进行了较为详细的论述,主要介绍了其硬件基本构成。本系统采用模块化设计与 总线 结构,扩展性与可维护性较好。可根据需要调整并应用于其他测试系统。有良好的使用发展空间。 一、引言 随着飞机供电系统的发展,交流供电已经成为目前大多数飞机的主要供电方式。目前各 *仍延续着传统“变频器—发电机—拖动台”方式的热台调试技术。其缺点是投资大,修 理成本高, 能源 消耗大,操作繁杂。针对以上热台调试技术的缺点,我们进行了对航空交流 供电系统冷台调试技术的研究。本文所介绍的信号源,是为冷台调试系统供电以及提供检测 信号的环节。 二、信号源主要 模
[模拟电子]
谈谈二次元影像测量仪的工作原理及应用领域
  二次元影像测量仪(又名影像式测绘仪)是建立在CCD数位影像的基础上,依托于计算机屏幕测量技术和空间几何运算的强大软件能力而产生的。二次元影像测量仪是对传统的测量技术的飞跃性发展,是将传统的光学投影和计算机完美结合的产物。二次元影像测量仪是工业检测与计量技术领域中的一个新名词,它代表的是数位科技溶入工业检测与计量,进行空间几何运算的先进测量技术。   二次元影像测量仪的工作原理   二次元影像测量仪使用本身的硬件将所能捕捉到的图像通过数据线传输到电脑的数据采集卡中,之后由软件在电脑显示器上成像,由操作员用鼠标在电脑上进行快速的测量。以上的工序基本在几万分之一秒完成,所以可以把他看作是实时检测设备,或者狭隘一点可以称为动态测量设备
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved