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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8259|回復: 1
打印 上一主題 下一主題
收起左側

案例講解:555定時器和基于51單片機的頻率計

[復制鏈接]
跳轉到指定樓層
樓主
今天,生活君給大家帶來555芯片的講解,并制作一個基于51單片機的頻率計設計。希望大家有所收獲!
生活君先給小伙伴提一個問題,大家認為史上最成功的芯片是什么?或者可以更簡單的說,哪個芯片出貨量最多?Intel的酷睿?高通的驍龍?還是...?NO!別猜了,而是它,堪稱電工的神器——555芯片



在我們的日常生活中,很多的電子產品都需要脈沖,比如報警器、電子開關、電子玩具、電子鐘表以及電子醫療設備等等。這樣就產生了眾多的脈沖發生器,其中555定時器就是最常見,使用最廣泛的一種。

555定時器,又叫555多諧振蕩器、555脈沖發生器、555時基電路,是電子工程領域中廣泛使用的中規模集成電路,是將模擬電路和數字電路巧妙結合在一起的電子器件,具有結構簡單,定時精度高,驅動能力強等優點,配以外部元器件,可以構成多種應用電路,廣泛應用于脈沖振蕩器,檢測電路,自動控制電路甚至通信領域。可以這樣說,555芯片能夠駕馭的爐火純青,那么就可以省下好多芯片的錢了。

555定時器的工作原理:

定時器如果是用雙極性工藝制作的成為555,而CMOS工藝制作的成為7555。555芯片的電源電壓范圍寬,可以在4.5V~16V內正常工作,輸出的驅動電流為200mA,它的內部接線圖如下圖:


555定時器包括以下部分:三個5K的電阻分壓器,兩個電壓比較器,一個基本的RS觸發器,一個緩沖器,一個放電晶閘管等。

555定時器的功能主要由兩個比較器決定。兩個比較器的輸出電壓控制RS觸發器和放電管的狀態,在電源與地之間加上電壓,當5腳懸空時,則電壓比較器C1 的同相輸入端電壓為2VCC/3,C2的反相輸入端電壓為VCC/3,若觸發輸入端TR的電壓小于2VCC/3,則比較器C2輸出為0,可使RS觸發器置1,則輸出端為1。如果閥值輸入端TH的電壓大于2VCC/3,同時TR端的電壓大于VCC/3,則C1的輸出為0,可將RS觸發器置0,使輸出為0.

  • 555引腳功能如下:
    1腳:芯片地腳,一般情況下接地
    2腳:低觸發端
    3腳:輸出端Vout
    4腳:直接清零端,此腳接地,無論TR和TH處于何電平,電路輸出為0,,所以此端應接電源
    5腳:串入一個0.01uF的電容接地
    6腳:TH高觸發端
    7腳:放電的引腳,該引腳與放電管的集電極項鏈,用作電容的放電
    8腳:芯片電源腳,一般用5V
  • 調節電位器可以獲得不同頻率的脈沖,其中輸出脈沖的周期F=0.7*(R1+2Pot)*C2。
  • 好了,555芯片原理以及方波產生電路講解完畢了,接下來生活君用51單片機來測定輸出的頻率,并顯示在1602上。
    本例中,使用定時器/計數器0作為定時器產生1秒的標志,定時器1作為計數器,對P3^5輸入的555脈沖進行計數,1秒所記的脈沖個數就是頻率,并將個數顯示在1602上。
    根據上述公式:F=0.7/((R1+2Pot)*C2),C2為0.01的電容,當電位器Pot旋轉到0Ω時,F=0.7*2000*0.00000001,則頻率f=1/F=71428Hz,即1602顯示71428左右。
    下面附上程序;
    1. #include<reg52.h>
    2. #include<intrins.h>
    3. #define RS_CLR RS=0
    4. #define RS_SET RS=1
    5. #define RW_CLR RW=0
    6. #define RW_SET RW=1
    7. #define EN_CLR EN=0
    8. #define EN_SET EN=1
    9. sbit RS = P2^5;
    10. sbit RW = P2^6;
    11. sbit EN = P2^7;
    12. unsigned char code LcdLine1[] =
    13. {
    14. "555 Timing Test"
    15. };
    16. unsigned char code LcdLine2[] =
    17. {
    18. "FREQ is: Hz"
    19. };
    20. bit Flag = 0;
    21. unsigned char Counter = 0,Hdata = 0,Ldata = 0,Pulse = 0;
    22. unsigned char data display[] =
    23. {
    24. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    25. };
    26. void DelayUs2x(unsigned char t)
    27. {
    28. while(--t);
    29. }
    30. void DelayMs(unsigned char t)
    31. {
    32. while(t--)
    33. {
    34. DelayUs2x(245);
    35. DelayUs2x(245);
    36. }
    37. }
    38. bit LCD_Check_Busy(void)
    39. {
    40. P0 = 0xFF;
    41. RS_CLR;
    42. RW_SET;
    43. EN_CLR;
    44. _nop_();
    45. EN_SET;
    46. return (bit)(P0 & 0x80);
    47. }
    48. void LCD_Write_Com(unsigned char com)
    49. {
    50. while(LCD_Check_Busy());
    51. RS_CLR;
    52. RW_CLR;
    53. EN_SET;
    54. P0 = com;
    55. _nop_();
    56. EN_CLR;
    57. }
    58. void LCD_Write_Data(unsigned char Data)
    59. {
    60. while(LCD_Check_Busy());
    61. RS_SET;
    62. RW_CLR;
    63. EN_SET;
    64. P0 = Data;
    65. _nop_();
    66. EN_CLR;
    67. }
    68. void LCD_Clear(void)
    69. {
    70. LCD_Write_Com(0x01);
    71. DelayMs(5);
    72. }
    73. void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
    74. {
    75. if (y == 0)
    76. LCD_Write_Com(0x80 + x);
    77. else
    78. LCD_Write_Com(0xC0 + x);
    79. while (*s)
    80. {
    81. LCD_Write_Data( *s);
    82. s ++;
    83. }
    84. }
    85. void LCD_Init(void)
    86. {
    87. LCD_Write_Com(0x38);
    88. DelayMs(5);
    89. LCD_Write_Com(0x38);
    90. DelayMs(5);
    91. LCD_Write_Com(0x38);
    92. DelayMs(5);
    93. LCD_Write_Com(0x38);
    94. LCD_Write_Com(0x08);
    95. LCD_Write_Com(0x01);
    96. LCD_Write_Com(0x06);
    97. DelayMs(5);
    98. LCD_Write_Com(0x0C);
    99. }
    100. void LcdDisplay(unsigned long num)
    101. {
    102. char i;
    103. for (i = 5; i >= 0; i--)
    104. {
    105. display[i] = (num % 10) + 0x30;
    106. num = num / 10;
    107. }
    108. for (i = 0; i < 5; i++)
    109. {
    110. if (display[i] == 0x30)
    111. display[i] = ' ';
    112. else
    113. break;
    114. }
    115. LCD_Write_String(7,1, display);
    116. }
    117. void init()
    118. {
    119. TMOD = 0x51;
    120. TH0 = 0x4c;
    121. TL0 = 0x00;
    122. TH1 = 0x00;
    123. TL1 = 0x00;
    124. ET0 = 1;
    125. ET1 = 1;
    126. EA = 1;
    127. PT1 = 1;
    128. TR0 = 1;
    129. TR1 = 1;
    130. }
    131. void main()
    132. {
    133. unsigned long frequency;
    134. P3 = 0xFF;
    135. init();
    136. LCD_Init();
    137. LCD_Clear();
    138. LCD_Write_String(0,0, LcdLine1);
    139. LCD_Write_String(0,1, LcdLine2);
    140. while (1)
    141. {
    142. if (Flag)
    143. {
    144. Hdata = TH1;
    145. Ldata = TL1;
    146. frequency = ((Pulse*65535)+(Hdata*256)+Ldata);
    147. Flag = 0;
    148. Pulse = 0;
    149. TH1 = 0x00;
    150. TL1 = 0x00;
    151. TH0 = 0x4c;
    152. TL0 = 0x00;
    153. TR1 = 1;
    154. TR0 = 1;
    155. }
    156. LcdDisplay(frequency);
    157. }
    158. }
    159. void Time0() interrupt 1
    160. {
    161. TL0 = 0x00;
    162. TH0 = 0x4c;
    163. Counter++;
    164. if (Counter == 20)
    165. {
    166. TR0 = 0;
    167. TR1 = 0;
    168. Counter = 0;
    169. Flag = 1;
    170. }
    171. }
    172. void Time1() interrupt 3
    173. {
    174. Pulse++;
    175. }
    復制代碼


    這是生活君自己所寫的程序,然后燒錄在自己的開發板上,得到了下面的結果:

  • 使用12Mhz的晶振,51單片機外部技術最大速率為500Khz,如果想要更大量程的頻率計,小伙伴們可以采用分頻模塊擴大量程,另外還可以在信號輸入端接入放大整形模塊,便于測量,結果更準確,顯示方式可以改成數碼管顯示,小伙伴們可以自行添加功能。


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

使用道具 舉報

沙發
ID:98792 發表于 2017-7-27 14:44 | 只看該作者
這是我在頭條上面發表的文章
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久毛片 | 春色av| 久久久久无码国产精品一区 | 欧美精品一区二区三区在线 | 精品成人av | www精品| 欧美久久一区二区三区 | 亚洲久久久 | www.婷婷亚洲基地 | 蜜桃av一区二区三区 | 精品久久精品 | 成人一区在线观看 | 亚洲美女网站 | 国产精品久久久久9999鸭 | 欧美一区二区 | 亚洲精品欧美一区二区三区 | 免费一区二区三区在线视频 | 91文字幕巨乱亚洲香蕉 | 欧美在线视频一区二区 | av影音在线| 国内精品久久影院 | 国产www在线 | 最新中文在线视频 | 亚洲电影一区 | 国产91丝袜在线播放 | 国产精品国产馆在线真实露脸 | 国产小视频在线 | 九一在线观看 | 在线视频中文字幕 | 中文字幕 在线观看 | 亚洲日本欧美日韩高观看 | 欧美日韩在线免费观看 | www.久久99| 81精品国产乱码久久久久久 | 亚洲精品天堂 | www.久久 | 日本激情视频中文字幕 | 不卡一区二区在线观看 | 午夜不卡福利视频 | 欧美成人精品在线 | 在线一区二区三区 |