久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

立即注冊 登錄
返回首頁

uid:254444的個人空間

日志

基于51單片機的rlc測量儀的程序

熱度 1已有 1903 次閱讀2017-11-27 23:03

程序2:電阻、電容和電感測量值的顯示

//簡易電阻、電容、電感測量儀程序

 

//初始化

#include <reg52.h>

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

#define    PI 3.1415926

 

uchar code table1[8]="Welcome!";

uchar table2[16]="f(Hz)=";

uchar table3[16]="R(Ohm)=";

uchar table4[16]="C(pF)=";

uchar table5[16]="L(uH)=";

 

uchar num,a=0,th0,tl0;

uint C,L;

ulong f,R;

 

sbit lcden=P2^4;                         //液晶使能端  

sbit lcdrs=P2^5;                        //液晶數(shù)據(jù)命令選擇端

 

sbit key_R=P1^5;                      //測量電阻按鍵

sbit key_C=P1^6;                      //測量電容按鍵

sbit key_L=P1^7;                      //測量電感按鍵

 

sbit R_out=P1^2;                        //測量電阻信號輸入

sbit C_out=P1^3;                        //測量電容信號輸入

sbit L_out=P1^4;                        //測量電感信號輸入

 

//聲明子函數(shù)

void delayms(uint xms);               //延時函數(shù)

void write_com(uchar com);        //液晶寫命令函數(shù)

void write_data(uchar date);         //液晶寫數(shù)據(jù)函數(shù) 

void led_init();                            //液晶初始化函數(shù)

void t_init();                               //定時器0初始化函數(shù)

void keyscan();                            //鍵盤檢測函數(shù)(確定被測元件為電阻、電容或電感)

void display_f(ulong f);              //頻率顯示函數(shù)

void display_R(ulong R);             //電阻顯示函數(shù)

void display_C(uint C);              //電容顯示函數(shù)

void display_L(uint L);               //電感顯示函數(shù)

 

//主函數(shù)

void main()

{

  led_init();

  t_init();

  keyscan();

  write_com(0x01);

  while(1)

  {

       display_f(f);

       switch(a)

       {

         case 1:R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break;

         case 2:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break;

         case 3:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break;

      }

  }

}

 

//中斷函數(shù)

void T0_count() interrupt 1

{

  switch(a)

  {

   case 1:while(R_out);

              while(!R_out);

                TH0=0;

                TL0=0;

                while(R_out);

                while(!R_out);

                th0=TH0;

                tl0=TL0;

                TR0=0;

                break;

   case 2:while(C_out);

              while(!C_out);

                TH0=0;

                TL0=0;

                while(C_out);

                while(!C_out);

                th0=TH0;

                tl0=TL0;

                TR0=0;

                break;

       case 3:while(L_out);

              while(!L_out);

                TH0=0;

                TL0=0;

                while(L_out);

                while(!L_out);

                th0=TH0;

                tl0=TL0;

                TR0=0;

                break;

   }

   f=1000000.0/1.085069/(th0*256+tl0)+0.5;

}

 

//延時函數(shù)

void delayms(uint xms) 

{

  uint i,j;

  for(i=xms;i>0;i--)

       for(j=110;j>0;j--);

}

 

//液晶寫命令函數(shù)

void write_com(uchar com)

{

  lcdrs=0;

  P0=com;

  delayms(5);

  lcden=1;

  delayms(5);

  lcden=0;

}

 

//液晶寫數(shù)據(jù)函數(shù)

void write_data(uchar date)  

{

  lcdrs=1;

  P0=date;

  delayms(5);

  lcden=1;

  delayms(5);

  lcden=0;

}

 

//液晶初始化函數(shù)

void led_init()

{

  lcden=0;

  write_com(0x38);                    //設置16×2顯示,5×7點陣,8位數(shù)據(jù)接口               

  write_com(0x0c);                    //設置開顯示,不顯示光標        

  write_com(0x06);                    //寫一個字符后地址指針加1            

  write_com(0x01);                    //顯示清0,數(shù)據(jù)指針清0          

  write_com(0x80);                    //顯示歡迎界面

  for(num=0;num<8;num++)

  {

        write_data(table1[num]);

        delayms(5);

  }

 

}

 

//定時器0初始化函數(shù)

void t_init()

{

  TMOD=0x01;                         //設置定時器0工作方式1(M1M0=0x0001)                                                    

  TH0=0;                                  //裝初值               

  TL0=0;

  EA=1;                                    //開總中斷                  

  ET0=1;                                   //開定時器0中斷

  TR0=1;                                   //啟動定時器0

}

 

//鍵盤檢測函數(shù)(確定被測元件為電阻、電容或電感)

void keyscan()

{

  if(key_R==0)

  {

       delayms(10);

       if(key_R==0)

         a=1;

  }

  else

    if(key_C==0)

    {

         delayms(10);

         if(key_C==0)

           a=2;

    }

      else

      if(key_L==0)

      {

           delayms(10);

           if(key_L==0)

             a=3;

      }

         else

              while(key_R&&key_C&&key_L);              //按鍵按下時退出死循環(huán)

}

 

//頻率顯示函數(shù)

void display_f(ulong f) 

{

  uchar count=0;

  ulong f0;

  f0=f;

  while(f)

  {

        f=f/10;

        count++;

  }

  for(num=5+count;num>5;num--)

  {

      table2[num]=f0%10+48;

       f0=f0/10;

  }

  write_com(0x80);

  for(num=0;num<6+count;num++)

  {

       write_data(table2[num]);

       delayms(5);

  }

}

 

//電阻顯示函數(shù)

void display_R(ulong R)

{

  uchar count=0;

  ulong R0;

  R0=R;

  while(R)

  {

        R=R/10;

        count++;

  }

  for(num=6+count;num>6;num--)

  {

      table3[num]=R0%10+48;

       R0=R0/10;

  }

  write_com(0x80+0x40);

  for(num=0;num<7+count;num++)

  {

       write_data(table3[num]);

       delayms(5);

  }

}

 

//電容顯示函數(shù)

void display_C(uint C) 

{

  uchar count=0;

  uint C0;

  C0=C;

  while(C)

  {

        C=C/10;

        count++;

  }

  for(num=5+count;num>5;num--)

  {

      table4[num]=C0%10+48;

       C0=C0/10;

  }

  write_com(0x80+0x40);

  for(num=0;num<6+count;num++)

  {

       write_data(table4[num]);

       delayms(5);

  }

}

 

//電感顯示函數(shù)

void display_L(uint L)

{

  uchar count=0;

  uint L0;

  L0=L;

  while(L)

  {

        L=L/10;

        count++;

  }

  for(num=5+count;num>5;num--)

  {

      table5[num]=L0%10+48;

       L0=L0/10;

  }

  write_com(0x80+0x40);

  for(num=0;num<6+count;num++)

  {

       write_data(table5[num]);

       delayms(5);

  }

}



路過

雞蛋

鮮花

握手

雷人

發(fā)表評論 評論 (2 個評論)

回復 哈哈哈哈慕 2019-8-9 20:26
有沒有原理圖啊
回復 哈哈哈哈慕 2019-8-9 20:26
您能給個原理圖嗎?

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

Powered by 單片機教程網(wǎng)

返回頂部
主站蜘蛛池模板: 中文字幕视频在线 | 国产精品久久久久久婷婷天堂 | 亚洲美女天堂网 | 久久久国产亚洲精品 | 精品国产一区二区国模嫣然 | 精品国产乱码久久久久久影片 | 亚洲精品在线观看视频 | 欧美天堂一区 | 国产一区二区 | 精品国产精品三级精品av网址 | 青青草国产在线观看 | 亚洲综合第一页 | 男人的天堂久久 | 日本成人久久 | 99视频在线播放 | 日日夜夜草 | 欧美中文在线 | 精品国产一区二区在线 | 大陆一级毛片免费视频观看 | www.国产精品 | 日韩图区| 欧美中文视频 | 亚洲精品大片 | 在线观看中文字幕亚洲 | 羞羞视频网站在线观看 | 91在线看| 大乳boobs巨大吃奶挤奶 | 精品视频一区二区三区 | 国产在线中文字幕 | 国产激情网 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 国产在线二区 | 在线观看中文字幕dvd播放 | 亚洲一区二区久久久 | 亚洲激情专区 | 亚洲精品九九 | 欧美lesbianxxxxhd视频社区 | 欧美一二三四成人免费视频 | 青青草综合网 | 国产精品久久久久久二区 | 天天天操操操 |