<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AT89S52的三相橋式可控觸發(fā)電路的設計

          基于AT89S52的三相橋式可控觸發(fā)電路的設計

          作者: 時間:2013-10-12 來源:網(wǎng)絡 收藏


          圖3 同步信號的檢測電路

          3. 2 觸發(fā)脈沖的形成與放大

          脈沖的形成與放大電路如圖4 所示。來自單片機P1. 0 P1. 5 的六路較弱的脈沖信號輸入到反相器74HC04,經(jīng)過光電隔離器4N25 隔離輸出,最后經(jīng)過脈沖變壓器TB1 放大輸出到相應晶閘管的門極g 和陰極k.

          圖4 觸發(fā)脈沖的形成與放大

          如圖5 所示,六路觸發(fā)脈沖形成過程如下。當單片機檢測到A 同步電壓Ua 從負到正的過零點信號( 實際上檢測到的應該是2.5V)時,它會接收到來自于INT1 的中斷請求信號,這時,單片機會中斷響應,服務子程序。這個子程序的功能是決定如何產生第一個觸發(fā)脈沖的上升沿。當單片機檢測到同步信號過零點時,單片機的16 位計數(shù)器/定時器1 同時開始計時,它工作在工作方式1; 由于Atmel89s52 單片機的晶振是12MHz,它的一個機器周期是1μm.定時的長度是由單片機的要產生的觸發(fā)延時角α 決定的。由于一個正弦波的周期是20ms,定時的長度由下式?jīng)Q定: tα = α × 20 /360°ms.定時器的初始化值可以根據(jù)tα來設定。為了簡單起見,本文定義了一個長度為180 的數(shù)組,它對應于觸發(fā)延時角α 從0 到180 度的變化。這個數(shù)組保存在單片機的ROM 存儲區(qū)。這樣,定時器對應于每個觸發(fā)角的初始化設定值就可以直接賦值給定時器1 了。定時器初始化之后,就啟動定時器工作。當定時時間就一到,定時器的溢出標志位置1,單片機開始執(zhí)行定時器1 的中斷服務子程序。

          這子函數(shù)將P1. 0 設置為高電平,用于觸發(fā)VT1;這里定義脈沖的寬度為27°,即1. 5ms,則定時器1 的TH1 = FAH,TL1 = 24H; 于是開始啟動定時器第二次計數(shù); 當定時時間一到,定時器開始執(zhí)行中斷服務子程序。在這個函數(shù)中,P1. 0 設置為低電平,表示觸發(fā)脈沖結束。由于第二個脈沖比一個脈沖滯后60°,也即是3. 33ms; 那么,第一個脈沖的下降沿到第二個脈沖的上升沿的時間間隔應為1. 83ms.因此,定時器應設置為TH1 = F8H,TL1= DAH; 這樣就啟動定時器第三次定時。當定時時間一到,定時器開始執(zhí)行中斷服務子程序。在這個子函數(shù)中,P1.1 引腳被置為高電平來觸發(fā)VT2.對于其他晶閘管的觸發(fā)原理相同,這里不再詳述。

          圖5 六路觸發(fā)脈沖的波形

          雙窄脈沖的輸出如圖5 所示。P1. 0 引腳輸出一個主脈沖給VT1 的同時,P1. 5 引腳輸出一個次脈沖( 補發(fā)脈沖) 給VT6; 延時60°后,P1. 1 引腳輸出一個主脈沖給VT2,同時,P1. 0 引腳輸出一個次脈沖給VT1; 至于其它晶閘管的觸發(fā),其過程亦是如此。


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();