近期一直在搞微控制器,其實對於步進電機的控制並不是很難,但是,通過8255擴充套件埠來實現的話,就比較麻煩,因為只有a儲存器可以使用,8255已經將微控制器的位址埠都用得差不多了。簡單的說,就是通過8255擴充套件埠實現步進電機的順時針轉動,逆時針轉動,以及減速加速。理論的東西就不多說了,直接貼**:
org 0000h
ljmp main
org 0100h
main:mov r0,#33h
mov dptr,#828bh ;初始化8255
mov a,#8bh
movx @dptr,a
bj1:lcall bjdel
mov dptr,#8288h
mov r1,a
mov a,r0
movx @dptr,a
mov a,r1
mov dptr,#828ah
movx a,@dptr
mov b,a
anl a,#7fh ;將acc.7(k7)開關初始化狀態設為低電平,即預設狀態電機是順時針轉動的
cjne a,#00h,bj2
ljmp bj1
bj2:lcall bjpd
mov a,b
jnb acc.7,bj3 ;判斷順時針、逆時針轉動
mov a,r0
rl a
mov r0,a
ljmp bj1
bj3:mov a,r0
rr a
mov r0,a
ljmp bj1
bjpd:jnb acc.6,bjpd1 ;判斷速度
mov r5,#10
ljmp bjpdend
bjpd1:jnb acc.6,bjpd2
mov r5,#15
ljmp bjpdend
bjpd2:jnb acc.6,bjpd3
mov r5,#20
ljmp bjpdend
bjpd3:jnb acc.6,bjpd4
mov r5,#25
ljmp bjpdend
bjpd4:jnb acc.6,bjpd5
mov r5,#30
ljmp bjpdend
bjpd5:jnb acc.6,bjpd6
mov r5,#35
ljmp bjpdend
bjpd6:jnb acc.6,bjpdend
mov r5,#40
ljmp bjpdend
bjpdend:
ret
bjdel:mov r6,#255 ;延時子程式
djnz r6,$
djnz r5,bjdel
retend
接線情況為:8255的pa口接步進電機四項介面,pc口接邏輯電平開關,pc0·7接k0·7,8255的cs口接y1(i/o)口,執行程式,k0~k6控制轉速,k0轉速最小,k6最大。k7則控制順逆時針。
步進電機的使用
最近做了幾個小東西,其中用到了步進電機。就來談談步進電機,寫給小白看的,只是 如何使用,其中的原理不做細緻的講解。我們從步進電機驅動器上的東西乙個個看 1.sw1 sw8開關 sw1 sw4 通過撥動開關,選擇16種細分模式 或者其他x種細分模式 什麼叫細分模式呢?電機轉動一圈是360度,電機的步距...
步進電機和減速電機的區別
摘要 在回答這個問題之前,先來了解下什麼是步進電機和減速電機?步進電機是將電脈衝訊號轉變為角位移或線位移的開環控制元步進電機件。在非超載的情況下,電機的轉速 停止的位置只取決於脈衝訊號的頻率和脈衝數,而不 在回答這個問題之前,先來了解下什麼是步進電機和減速電機?步進電機是將電脈衝訊號轉變為角位移或線...
伺服電機 舵機 步進電機的區別
怎麼去區分伺服電機 舵機 步進電機呢?電機種類有很多種,不同的電機的優點 缺點各不相同,因此用途也不同。這裡簡單的講下伺服電機 舵機 步進電機的區別,盡量的讓大家通熟易懂。其實伺服電機是這麼一種電機,它主要用於比較精準的位置 速度或力矩輸出。準確地說,伺服電機不是說乙個電機,而是乙個系統。所以僅僅一...