亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 基于單片機的電容測量儀設計,原理圖仿真,代碼壓縮包 [打印本頁]

作者: 15765975859    時間: 2020-5-18 00:05
標題: 基于單片機的電容測量儀設計,原理圖仿真,代碼壓縮包
前段時間智能儀器結課做的,
電容測量儀,
里面有proteus仿真文件,單片機代碼


單片機源程序如下:
  1. #include <reg52.h>
  2.         #include<intrins.h> //庫函數
  3.        
  4.         #define DATA P0
  5.         sbit RW=P2^6;       //1602寫數據
  6.         sbit RS=P2^5;       //1602寫地址
  7.         sbit EN=P2^7;       //1602工作使能
  8.         sbit b_test=P3^7;   //開始測量電容的按鍵輸入
  9.         sbit _reset=P3^6;   //555時基芯片工作控制信號
  10.         unsigned int T_flag,N,C,i,Dis1,Dis0;
  11.         unsigned int b[6]={0X13,0X0D,0X00,0X00,0X25,0X16};   //顯示C=00UF
  12.        
  13.         /***********延時1MS******************/
  14.         void Delay1ms(unsigned int mm)
  15.         {unsigned int i;
  16.          for(mm;mm>0;mm--)
  17.            for(i=100;i>0;i--);
  18.         }
  19.         /***************檢查忙否*****************/
  20.         void Checkstates()
  21.         {
  22.          unsigned char dat;
  23.          RS=0;
  24.          RW=1;
  25.          do{EN=1;//下降沿
  26.             _nop_();//保持一定間隔
  27.                 _nop_();
  28.             dat=DATA;
  29.             _nop_();
  30.                 _nop_();
  31.             EN=0;
  32.          }while((dat&0x80)==1);
  33.         }
  34.         /**************LCD寫命令函數*********/
  35.         void wcomd(unsigned char cmd)
  36.         {
  37.          Checkstates();
  38.          RS=0;
  39.          RW=0;
  40.          DATA=cmd;
  41.          EN=1;
  42.          _nop_();
  43.          _nop_();
  44.          _nop_();
  45.          _nop_();
  46.          EN=0;
  47.         }
  48.         /**********LCD寫數據函數**************/
  49.         void wdata(unsigned char dat)
  50.         {
  51.          Checkstates();
  52.          RS=1;
  53.          RW=0;
  54.          DATA=dat;
  55.          EN=1;
  56.          _nop_();
  57.          _nop_();
  58.          _nop_();
  59.          _nop_();
  60.          EN=0;
  61.         }
  62.         /*****************初始化********************/
  63.         void LCDINIT()
  64.         {
  65.          Delay1ms(15);
  66.          wcomd(0x38);//功能設置
  67.          Delay1ms(5);
  68.          wcomd(0x38);//功能設置
  69.          Delay1ms(5);
  70.          wcomd(0x01);//清屏
  71.          Delay1ms(5);
  72.          wcomd(0x08);//關顯示
  73.          Delay1ms(5);
  74.          wcomd(0x0c);//開顯示,不開光標
  75.        
  76.         }
  77.        
  78.         /***********顯示函數**************/
  79.         void Display(void) //顯示函數
  80.         {
  81.         unsigned char i,j;
  82.          unsigned char a[16]={'c','e','s','h','i','z','h','o','n','g','.','.','.','.'};//顯示ceshizhong....
  83.          LCDINIT();
  84.          for(i=0;i<15;i++)//寫顯示第一行
  85.           { wcomd(0x80+i);
  86.             Delay1ms(1);
  87.             wdata(a[i]);
  88.             Delay1ms(1);
  89.            }
  90.          for(j=0;j<6;j++)//寫顯示第二行
  91.          {
  92.           wcomd(0xc0+j);
  93.           Delay1ms(1);
  94.           wdata(0x30+b[j]);
  95.           Delay1ms(1);
  96.           }
  97.         Delay1ms(150);
  98.         }
  99.         void main()
  100.         {
  101.           IE=0x81;                          //打開全部的中斷控制,并開啟外部中斷允許
  102.           TMOD=0x09;                        //T0為16位計數工作方式1
  103.           IT0=1;                            //設置外部中斷的觸發(fā)的方式為脈沖觸發(fā)
  104.           TH0=0x00;
  105.           TL0=0x00;
  106.           T_flag=0;
  107.           _reset=0;
  108.           while(1)
  109.           {
  110.             while(!b_test)                   //如果有測量按鍵輸入就往下執(zhí)行
  111.             {
  112.              i=0;
  113.              _reset=1;                      //啟動555時基芯片
  114.              EX0=1;          //開啟中斷0
  115.              while(_reset)   //超出等待時間,中斷還沒有過來,就退出
  116.               {
  117.                i++;
  118.                if(i>5000)   //設置最長等待時間
  119.                 {
  120.                  _reset=0;  //最長等待時間到還沒有中斷,停止555
  121.                 }
  122.               }
  123.              if(N<800)         //如果計數值小于100,顯示SM,表示應換用小一點的量程
  124.               {
  125.                b[3]=0X1D;
  126.                b[2]=0X23;
  127.               }
  128.              if(N>5000)        //如果計數值大于5000,顯示LA,表示應換用大一點的量程
  129.               {
  130.                b[3]=0X11;
  131.                b[2]=0X1C;
  132.               }
  133.              if(N>=800 && N<=5000)
  134.               {
  135.                C=N/100;         //計算電容的大小
  136.                //if(C>=10)
  137.                                  //{
  138.                                  b[2]=C/10; //計算電容值的十位
  139.                                  b[3]=C-b[2]*10; //計算電容值的個位
  140.                                  //}
  141.                                         /*else
  142.                                         {
  143.                                         b[2]=0;      
  144.                                         b[3]='.';
  145.                 b[4]=C;                                       
  146.                        
  147.                                         }*/
  148.                                          
  149.                                 }
  150.              }
  151.             Display(); //顯示電容的大小
  152.            }
  153.         }
  154.         void int0(void) interrupt 0   //第一次中斷開始計數,第二個中斷停止計數
  155.         {
  156.           T_flag=!T_flag;
  157.           if(T_flag==1)
  158.           {
  159.            TR0=1;         //開始計時
  160.           }
  161.           if(T_flag==0)
  162.           {
  163.            TR0=0;         //停止計時
  164.            EX0=0;         //關閉中斷
  165.            _reset=0;      //停止發(fā)出方波
  166.            N=TH0*256+TL0; //計算計數器的值
  167.            N=N*4.93/3;
  168.            TH0=0x00;      //恢復初值
  169.            TL0=0x00;
  170.           }
  171.          }
復制代碼

所有資料51hei提供下載:
電容測量儀.zip (54.41 KB, 下載次數: 192)


作者: lon7085    時間: 2020-5-18 08:45
剛好需要,感謝樓主分享。
作者: 桑榆未老    時間: 2020-5-26 22:51
誤差是多少啊
作者: JasonW    時間: 2020-10-9 11:54
感謝樓主分享,正好在做一個項目能用上
作者: yonya    時間: 2020-10-11 17:40
要protue8.6以上才能運行
作者: 2949521807    時間: 2020-12-20 23:54
測量范圍多少啊
作者: qzyhlf    時間: 2022-12-20 11:18

剛好需要,感謝樓主分享。
作者: 我在人間撿故事    時間: 2024-11-28 23:11
測量范圍多少
作者: 筱豆先生    時間: 2026-6-16 09:19
仿真一直顯示測試中,不出測量值




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