<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PIC單片機的可編程電源的設計

基于PIC單片機的可編程電源的設計

作者: 時(shí)間:2012-07-31 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/171102.htm

3.2 控制電路

  16F874是美國微芯科技公司(Microchip Technology)的一款8位,內置4K×14位的Flash、128字節的RAM和64字節的EEPROM。另外,它具有豐富的外設資源,其內置1個(gè)UART模塊可供串口通信用,2個(gè)CCP模塊可以產(chǎn)生2路獨立、10位分辨率的PWM信號,8路10位的A/D轉換通道。另外,系列的每個(gè)I/O能提供25 mA的驅動(dòng)電流,對于LED的接口電路可以省掉外加晶體管的驅動(dòng)電路。

  單片機控制模塊結構框圖如圖5所示。

按此在新窗口瀏覽圖片
圖5 單片機控制模塊結構框圖

  單片機控制系統的主要接口電路:

① 按鍵接口電路。采用暫觸式開(kāi)關(guān)輸入,使用電阻電容去抖。
② 數碼管及LED顯示電路。數碼管顯示電壓、電流、時(shí)間等信息。LED指示當前顯示的參數種類(lèi)。單片機的I/O能夠直接驅動(dòng)數碼管和LED。按鍵輸入和顯示接口電路如圖6所示。

按此在新窗口瀏覽圖片
圖6 按鍵輸入和顯示接口電路

③ A/D采樣和PWM輸出電路。A/D負責采樣輸出電壓電流并送到數碼管顯示。當前電流電壓設定值通過(guò)由單片機內部的CCP模塊產(chǎn)生的兩路PWM信號來(lái)給模塊提供一個(gè)參考值。單片機內部的CCP模塊可以設置成PWM輸出模式,通過(guò)寫(xiě)周期寄存器和脈寬寄存器的值就可由硬件產(chǎn)生不同頻率和占空比的PWM波形。
④ 串口通信接口電路。串口通信接口電路采用MAX232芯片作為RS232收發(fā)器。

4 軟件

4.1 軟件流程

  軟件用C語(yǔ)言編寫(xiě),使用HighTech公司為PIC系列單片機提供的PICC編譯器。系統上電時(shí),單片機讀出非易失性存儲器(EEPROM)中上次設置參數,進(jìn)行電流電壓輸出。在軟件中,采用多個(gè)任務(wù)的概念,可以模擬一個(gè)簡(jiǎn)單的操作系統進(jìn)行任務(wù)的調度。由定時(shí)器產(chǎn)生一個(gè)5 ms的中斷,在中斷程序中激活各個(gè)任務(wù)的標志。如顯示任務(wù)主要負責A/D采樣、數碼管與LED的刷新,可每5 ms執行一次。鍵盤(pán)處理任務(wù)負責按鍵的掃描、軟件去抖、鍵盤(pán)命令的解釋和掃行,可每10 ms執行一次。PWM輸出任務(wù)負責按照設定的值進(jìn)行PWM的輸出,可以每50 ms執行一次。如果有PC機或其他通過(guò)串口編程,單片機將在UART中斷中接收編程數據,接收完改寫(xiě)EEPROM中設置并強行復位。如果接收到通過(guò)按鍵的編程,則在按鍵處理中修改EEPROM的設置并復位。程序主流程則掃描各個(gè)任務(wù)是否到時(shí)間執行。是,則執行該任務(wù);否則,跳過(guò)該任務(wù)。主程序流程如圖7所示。

按此在新窗口瀏覽圖片
圖7 主程序流程

4.2 串口編程軟件

  在PC機上了軟件來(lái)實(shí)現PC機與單片機的通信。通過(guò)該軟件可以方便地實(shí)現對電流電壓輸出、定時(shí)等參數的設定。只要將電源上的RS232口與PC機串口相連,就可實(shí)現通信。

  利用Visual Basic中的Mscomm控件進(jìn)行串口通信軟件的設計(這里僅作簡(jiǎn)要的介紹)。PC端數據接收通過(guò)Oncomm事件來(lái)實(shí)現,當接收緩沖區的數據達到rthreshold屬性設定值時(shí),就會(huì )觸發(fā)Oncomm事件,在中斷程序中讀出接收緩沖區中的數據,將收到的字符型數據轉換成字符串后便送到各個(gè)文本框顯示。數據發(fā)送時(shí),首先讀出文本框內字符串,再將其轉換成字符型數據,最后通過(guò)單擊“發(fā)送”按鈕,將數據送到發(fā)送緩沖區中,從而將數據從串口發(fā)送出去。

結語(yǔ)

  采用單片機控制,克服了開(kāi)關(guān)電源單一輸出的缺點(diǎn),能夠提供靈活的電壓輸出。通過(guò)功率聯(lián)合擴展的功能,可以滿(mǎn)足不同功率場(chǎng)合的要求。電源也可以被當成鉛酸電池充電器來(lái)使用,能自動(dòng)調整充電電流和電壓,應用場(chǎng)合非常廣泛。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 電源 設計 可編程 單片機 PIC 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>