基於8255擴充套件的步進電機的控制

2021-07-08 19:45:04 字數 1486 閱讀 2941

近期一直在搞微控制器,其實對於步進電機的控制並不是很難,但是,通過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度,電機的步距...

步進電機和減速電機的區別

摘要 在回答這個問題之前,先來了解下什麼是步進電機和減速電機?步進電機是將電脈衝訊號轉變為角位移或線位移的開環控制元步進電機件。在非超載的情況下,電機的轉速 停止的位置只取決於脈衝訊號的頻率和脈衝數,而不 在回答這個問題之前,先來了解下什麼是步進電機和減速電機?步進電機是將電脈衝訊號轉變為角位移或線...

伺服電機 舵機 步進電機的區別

怎麼去區分伺服電機 舵機 步進電機呢?電機種類有很多種,不同的電機的優點 缺點各不相同,因此用途也不同。這裡簡單的講下伺服電機 舵機 步進電機的區別,盡量的讓大家通熟易懂。其實伺服電機是這麼一種電機,它主要用於比較精準的位置 速度或力矩輸出。準確地說,伺服電機不是說乙個電機,而是乙個系統。所以僅僅一...