<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è) > 嵌入式系統 > 設計應用 > 基于87C196KC單片機的步進(jìn)電機高靈敏度控制系統

基于87C196KC單片機的步進(jìn)電機高靈敏度控制系統

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

1 引言

在現代中,數控機床的高靈敏度控制是一個(gè)重要的分支。而單片機體積小、重量輕,具有很強的靈活性,因此得到越來(lái)越廣泛的應用,尤其在數控機床方面。目前,我國的許多應用領(lǐng)域仍以MCS-51系列8位單片機為主,但是在一些較為復雜,對實(shí)時(shí)性、靈敏性要求較高的場(chǎng)合,它就顯得力不從心,不得不讓位于16位單片機。芯片為Intel公司的高性能16位單片機,是其CHMOS中的第二代產(chǎn)品。它不但集成了監視跟蹤定時(shí)器WDT、高速輸入輸出通道HSIO、外部設備事件服務(wù)器,還具有高精度的10位A/D、D/A和PWM波發(fā)生器功能。單片機擁有3路PWM發(fā)生器,它們分別由P2.5口、P1.3口和P1.4口輸出,其內部擁有存儲容量為16KB的EPROM和512B的RAM,是的理想機種。本文主要結合 單片機的PWM發(fā)生器,給出三相的硬件和軟件設計。

2 PWM波發(fā)生器工作原理

下面以PWM/P2.5引腳為例,給出PWM波發(fā)生器的硬件電路和工作原理。PWM波發(fā)生器結構框圖如圖1所示。

PWM波主要由脈寬調制控制寄存器PWM-PWM波發(fā)生器的時(shí)鐘可以由系統時(shí)鐘提供,也可以由外圍電路通過(guò)IOC2.2引腳提供。在選擇由系統時(shí)鐘提供的方式時(shí),還可選擇直接提供和經(jīng)二分頻提供的方式。單片機上電后,8位循環(huán)計數器即開(kāi)始工作。每接收一個(gè)脈沖計數值增1,當其內容由0FFH再增1時(shí),計數器溢出,引腳PWM端變?yōu)楦唠娖捷敵?。在PWM_CONTROL中置入要轉換的數字量,其值與8位循環(huán)數器的值相比較,當二者相等時(shí),R-S觸發(fā)器使得引腳PWM端變?yōu)榈碗娖捷敵?。由此可?jiàn),引腳PWM端輸出高電平的時(shí)間由8位循環(huán)計數器的值決定,引腳PWM端輸出低電平的時(shí)間由PWM--CONTROL決定。通過(guò)二者的結合便可輸出寬度可變的脈沖波。

3 系統總體設計

該87C196KC單片機構成的數控機床采用三相高靈敏度控制系統,能夠精確地調節步進(jìn)電機的行走速度,可以在三維空間中改變電機的行進(jìn)方向,還可以按操作者設定的行走步數行進(jìn)。通過(guò)鍵盤(pán)和數顯模塊的結合可以實(shí)時(shí)地進(jìn)行速度顯示和行程控制。

3.1 系統硬件設計

由87C196KC單片機構成的三相步進(jìn)電機控制系統原理圖。該控制系統通過(guò)單片機輸出3路PWM波,然后通過(guò)反相器、光電耦合器和驅動(dòng)器控制步進(jìn)電機的啟停和正反轉,而步進(jìn)電機的電流、電壓和轉速則通過(guò)反饋回路進(jìn)入單片機,并通過(guò)數顯電路加以顯示。電路中的光電耦合器是出于系統安全性的考慮,起隔離作用,以此把單片機輸出的弱電信號和電機驅動(dòng)電路的強電區分開(kāi)來(lái)。驅動(dòng)器采用具有較高輸出電流的達林頓驅動(dòng)步進(jìn)電機。鍵盤(pán)和數顯模塊中,采用4×5鍵盤(pán)設置數字鍵、方位鍵、數顯選擇鍵和確定鍵等,采用Intel 8279芯片對鍵盤(pán)和4位共陰極LED顯示器進(jìn)行管理和控制。

3.2 系統軟件設計

系統軟件設計包括主程序設計和中斷程序設計。通過(guò)外部鍵盤(pán)的輸入控制和經(jīng)由反饋回路的A/D轉換均采用中斷方式??紤]到程序模塊的可移植性和程序的執行效率,系統程序采用C語(yǔ)言和匯編語(yǔ)言混合編程的模式,主程序才用C96程序,中斷程序采用匯編語(yǔ)言編寫(xiě)。由于篇幅的限制,在此僅給出系統軟件主程序的流程圖。

在系統主程序中,考慮到系統的安全性,前后設置WDT清零操作。在設定PWM波輸出的前提下,置PWM波控制寄存器,用以和相應的軟件定時(shí)器值相比較,來(lái)決定PWM波的占空比。在進(jìn)行方位控制和速度調節時(shí),只需改變定時(shí)器的值,然后調節3路PWM波輸出順序和占空比即可。

4 抗干擾措施

在單片機應用系統中,系統的抗干擾性能直接影響系統工作的可靠性。一旦系統受到干擾,程序指針發(fā)生錯誤,將會(huì )造成程序執行的混亂或進(jìn)入死循環(huán),系統無(wú)法正常運行,嚴重時(shí)可能損壞系統硬件。

本系統在硬件和軟件方面分別采取了抗干擾措施。硬件上,系統進(jìn)行了良好的接地,采用了隔離技術(shù)和硬件濾波技術(shù),在此,用光電隔離器隔離強弱電信號,用濾波器排除反饋回路的干擾信號。在軟件方面,設置軟件陷阱,在非程序區設置攔截措施,當程序指針PC失控進(jìn)入非程序區時(shí),使程序進(jìn)入陷阱,用LJMP #2080H指令填滿(mǎn)非程序區,以使程序返回初始狀態(tài),同時(shí),運用"看門(mén)狗"技術(shù),啟用16位監視跟蹤定時(shí)器WDT。WDT是一個(gè)16位計數器,其計數脈沖由單片機的系統時(shí)鐘CLOCK(T)提供。每經(jīng)歷一個(gè)T,WDT的內容增1。WDT一旦被啟動(dòng),便開(kāi)始計數,只要不對其清零,其內容將持續增加,直到經(jīng)過(guò)64K個(gè)T周期產(chǎn)生溢出,系統復位,WDT停止工作。軟件陷阱和WDT的雙重運用將有效保證系統的可靠性。

5 結束語(yǔ)

該系統具有高精度、實(shí)時(shí)性和可控性等特點(diǎn),再加上硬件方式和軟件方式的多重抗干擾措施,大大地提高了系統的可靠性。


參考文獻:
[1]. 87C196KC datasheet http://www.dzsc.com/datasheet/87C196KC_105005.html.
[2]. MCS-51 datasheet http://www.dzsc.com/datasheet/MCS-51_477840.html.
[3]. EPROM datasheet http://www.dzsc.com/datasheet/EPROM_1128137.html.

陀螺儀相關(guān)文章:陀螺儀原理


負離子發(fā)生器相關(guān)文章:負離子發(fā)生器原理
隔離器相關(guān)文章:隔離器原理


評論


相關(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>