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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2868|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)各位朋友幫忙指正下我單片機(jī)電容值測(cè)試程序的錯(cuò)誤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
50黑幣
我的仿真只有第一檔能夠準(zhǔn)確測(cè)量出電容容值,其余三擋不準(zhǔn)確。請(qǐng)問(wèn)是程序哪里出現(xiàn)錯(cuò)誤了?能幫我指正一下嗎?謝謝!

具體可查看附件。




檔位        阻值                           量程

一檔       R=77.2                        1~50微法
                              
二擋       R=772                         0.1~5微法

三擋       R=7720                       0.01~0.5微法

四擋       R=77200                    0.00~0.05微法

單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include<intrins.h>//庫(kù)函數(shù)

  3. #define DATA P0
  4. sbit RW=P2^1;//1602寫數(shù)據(jù)
  5. sbit RS=P2^0;//1602寫地址
  6. sbit EN=P2^2; //1602工作使能
  7. sbit b_test=P3^7;   //開始測(cè)量電容的按鍵輸入
  8. sbit _reset=P3^5;   //555時(shí)基芯片工作控制信號(hào)
  9. unsigned int T_flag,N,C,i,Dis1,Dis0;
  10. unsigned int b[6]={0X13,0X0D,0X00,0X00,0X25,0X16};   //顯示C=00UF

  11. /***********延時(shí)1MS******************/
  12. void Delay1ms(unsigned int mm)
  13. {unsigned int i;
  14. for(mm;mm>0;mm--)
  15.    for(i=100;i>0;i--);
  16. }
  17. /***************檢查忙否*****************/
  18. void Checkstates()
  19. {
  20. unsigned char dat;
  21. RS=0;
  22. RW=1;
  23. do{EN=1;//下降沿
  24.     _nop_();//NOP為單周期指令,延時(shí)1微妙
  25.         _nop_();
  26.     dat=DATA;
  27.     _nop_();
  28.         _nop_();
  29.     EN=0;
  30. }while((dat&0x80)==1);
  31. }
  32. /**************LCD寫命令函數(shù)*********/
  33. void wcomd(unsigned char cmd)
  34. {
  35. Checkstates();         //判忙
  36. RS=0;        //命令
  37. RW=0;         //寫
  38. DATA=cmd; //準(zhǔn)備發(fā)送命令
  39. EN=1;         //使能端為1時(shí) ,允許數(shù)據(jù)交換
  40. _nop_();
  41. _nop_();
  42. _nop_();
  43. _nop_();
  44. EN=0;         //完成數(shù)據(jù)交換,使能端電位拉低
  45. }
  46. /**********LCD寫數(shù)據(jù)函數(shù)**************/
  47. void wdata(unsigned char dat)
  48. {
  49. Checkstates();                 //判忙
  50. RS=1;                //數(shù)據(jù)
  51. RW=0;           //寫
  52. DATA=dat;
  53. EN=1;
  54. _nop_();
  55. _nop_();
  56. _nop_();
  57. _nop_();
  58. EN=0;
  59. }
  60. /*****************初始化********************/
  61. void LCDINIT()
  62. {
  63. Delay1ms(5);
  64. wcomd(0x38);//顯示功能設(shè)置
  65. Delay1ms(5);
  66. wcomd(0x38);
  67. Delay1ms(5);
  68. wcomd(0x01);//清屏
  69. Delay1ms(5);
  70. wcomd(0x08);//關(guān)顯示
  71. Delay1ms(5);
  72. wcomd(0x0c);//開顯示,不開光標(biāo)

  73. }

  74. /***********顯示函數(shù)**************/
  75. void Display(void) //顯示函數(shù)
  76. {
  77. unsigned char i,j;
  78. unsigned char a[12]={0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53};//顯示measurements
  79. LCDINIT();
  80. for(i=0;i<12;i++)//寫顯示第一行
  81.   { wcomd(0x80+i);         //0x80di第一行第一個(gè)字符的地址
  82.     Delay1ms(1);
  83.     wdata(a[i]);
  84.     Delay1ms(1);
  85.    }

  86. for(j=0;j<6;j++)//寫顯示第二行
  87. {
  88.   wcomd(0xc0+j); //第二行第二個(gè)字符地址
  89.   Delay1ms(1);
  90.   wdata(0x30+b[j]);
  91.   Delay1ms(1);
  92.   }
  93. Delay1ms(150);

  94. }
  95. void main()
  96. {
  97.   EA=1;                          //打開全部的中斷控制,并開啟外部中斷允許
  98.   TMOD=0x09;                        //T0為16位計(jì)數(shù)工作方式1
  99.   IT0=1;                            //設(shè)置外部中斷的觸發(fā)的方式為脈沖觸發(fā)
  100.   TH0=0x00;
  101.   TL0=0x00;
  102.   T_flag=0;
  103.   _reset=0;
  104.   while(1)
  105.   {
  106.     while(!b_test)                   //如果有測(cè)量按鍵輸入就往下執(zhí)行
  107.     {
  108.      i=0;
  109.      _reset=1;                      //啟動(dòng)555時(shí)基芯片
  110.      EX0=1;          //開啟中斷0
  111.      while(_reset)   //超出等待時(shí)間,中斷還沒(méi)有過(guò)來(lái),就退出
  112.       {
  113.        i++;
  114.        if(i>5000)   //設(shè)置最長(zhǎng)等待時(shí)間
  115.         {
  116.          _reset=0;  //最長(zhǎng)等待時(shí)間到還沒(méi)有中斷,停止555
  117.         }
  118.       }
  119.      if(N<100)         //如果計(jì)數(shù)值小于100,顯示SM,表示應(yīng)換用小一點(diǎn)的量程
  120.       {
  121.        b[3]=0X1D;
  122.        b[2]=0X23;
  123.       }
  124.      if(N>5000)        //如果計(jì)數(shù)值大于5000,顯示LA,表示應(yīng)換用大一點(diǎn)的量程
  125.       {
  126.        b[3]=0X11;
  127.        b[2]=0X1C;
  128.       }
  129.      if(N>=100 && N<=5000)
  130.       {
  131.        C=N/100;         //計(jì)算電容的大小
  132.        b[2]=C/10;       //計(jì)算電容值的十位
  133.        b[3]=C-b[2]*10;  //計(jì)算電容值的各位
  134.       }
  135.      }
  136.     Display(); //顯示電容的大小
  137.    }
  138. }
  139. void int0(void) interrupt 0   //第一次中斷開始計(jì)數(shù),第二個(gè)中斷停止計(jì)數(shù)
  140. {
  141.   T_flag=!T_flag;
  142.   if(T_flag==1)
  143.   {
  144.    TR0=1;         //開始計(jì)時(shí)
  145.   }
  146.   if(T_flag==0)
  147.   {
  148.    TR0=0;         //停止計(jì)時(shí)
  149.    EX0=0;         //關(guān)閉中斷
  150.    _reset=0;      //停止發(fā)出方波
  151.    N=TH0*256+TL0; //計(jì)算計(jì)數(shù)器的值
  152.    N=N*5/3;
  153.    TH0=0x00;      //恢復(fù)初值
  154.    TL0=0x00;
  155.   }
  156. }
復(fù)制代碼


C語(yǔ)言.docx

87.99 KB, 下載次數(shù): 4

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2019-4-10 11:04 | 只看該作者
問(wèn)一下:你是如何保證:開始與結(jié)束剛好是一個(gè)周期?
提示:振蕩第一個(gè)波的周期,與其它的周期可能存在不同。
回復(fù)

使用道具 舉報(bào)

板凳
ID:344887 發(fā)表于 2019-4-10 23:51 | 只看該作者
yzwzfyz 發(fā)表于 2019-4-10 11:04
問(wèn)一下:你是如何保證:開始與結(jié)束剛好是一個(gè)周期?
提示:振蕩第一個(gè)波的周期,與其它的周期可能存在不同 ...

利用電容充放電,然后555芯片輸出方波控制中斷0,同時(shí)計(jì)數(shù)器對(duì)方波進(jìn)行計(jì)數(shù),由此算出方波的頻率。
回復(fù)

使用道具 舉報(bào)

地板
ID:344887 發(fā)表于 2019-4-11 10:38 | 只看該作者
yzwzfyz 發(fā)表于 2019-4-10 11:04
問(wèn)一下:你是如何保證:開始與結(jié)束剛好是一個(gè)周期?
提示:振蕩第一個(gè)波的周期,與其它的周期可能存在不同 ...

基于AT89C51單片機(jī)和555芯片構(gòu)成的多諧振蕩電路設(shè)計(jì)一電容測(cè)量電路,這種測(cè)量方法主要是通過(guò)一塊555芯片來(lái)測(cè)量電容大小。讓555芯片工作在直接反饋無(wú)穩(wěn)態(tài)的狀態(tài)下,555芯片輸出一定頻率的方波,其頻率的大小跟被測(cè)量的電容之間的關(guān)系是:f=0.772/(R*Cx) ,固定R的大小,其公式就可以寫為:f=k/Cx,只要能夠測(cè)量出555芯片輸出的頻率,就可以計(jì)算出測(cè)量的電容。計(jì)算頻率的方法可以利用單片機(jī)的計(jì)數(shù)器T0和中斷INT0配合使用來(lái)進(jìn)行測(cè)量。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表