//**********==步進電機正反轉調速&1602顯示***************==
#include //52晶元管腳定義標頭檔案
#include //內部包含延時函式 _nop_();
#define uchar unsigned char
#define uint unsigned int
#define delaynop(); ;
uchar code ffw[8]=; //正轉相序表
uchar code rev[8]=; //反轉
sbit k1 = p3^2; //執行與停止
sbit k2 = p3^3; //設定圈數
sbit k3 = p3^4; //方向轉換
sbit k4 = p3^5; //速率調整
sbit beep = p3^6; //蜂鳴器
sbit lcd_rs = p2^0;
sbit lcd_rw = p2^1;
sbit lcd_en = p2^2;
bit on_off=0; //執行與停止標誌
bit direction=1; //方向標誌
bit rate_dr=1; //速率標誌
bit snum_dr=1; //圈數標誌
uchar code cdis1[ ] = ;
uchar code cdis2[ ] = ;
uchar code cdis3[ ] = ;
uchar code cdis4[ ] = ;
uchar code cdis5[ ] = ;
uchar m,v=0,q=0;
uint number=0,number1=0;
uchar snum=10,snum1=10; //預設定圈數
uchar rate=2; //預設定速率
uchar data_temp,data_temp1,data_temp2;
/* 延時t毫秒
/* 11.0592mhz時鐘,延時約1ms
void delay(uint t)
uchar k;
while(t--)
for(k=0; k<125; k++)
void delayb(uchar x) //x*0.14ms
uchar i;
while(x--)
for (i=0; i<13; i++)
void beep()
uchar j;
for (j=0;j<100;j++)
delayb(4);
beep=!beep; //beep取反
beep=1; //關閉蜂鳴器
delay(170);
/*檢查lcd忙狀態
/*lcd_busy為1時,忙,等待。為0時,閒,可寫指令與資料。
bit lcd_busy()
bit result;
lcd_rs = 0;
lcd_rw = 1;
lcd_en = 1;
delaynop();
result = (bit)(p0&0x80);
lcd_en = 0;
return(result);
/*寫指令資料到lcd
/*rs=l,rw=l,e=高脈衝,d0-d7=指令碼。
void lcd_wcmd(uchar cmd)
while(lcd_busy());
lcd_rs = 0;
lcd_rw = 0;
lcd_en = 0;
_nop_();
_nop_();
p0 = cmd;
delaynop();
lcd_en = 1;
delaynop();
lcd_en = 0;
/*寫顯示資料到lcd
/*rs=h,rw=l,e=高脈衝,d0-d7=資料。
void lcd_wdat(uchar dat)
while(lcd_busy());
lcd_rs = 1;
lcd_rw = 0;
lcd_en = 0;
p0 = dat;
delaynop();
lcd_en = 1;
delaynop();
lcd_en = 0;
基於51微控制器步進電機控制
1 用矩陣鍵盤設定電機目標轉速及旋轉方向,範圍 100 300 轉 分 2 測量 顯示電機實際轉速和方向 正轉顯示 p 反轉顯示 n 從實現功能上分析,軟體可以分解3個功能模組 1,步進電機控制模組 2,矩陣鍵盤輸入模組 3,顯示輸出模組 步進電機通過輸入脈衝訊號進行控制,即電機的總轉動角度由輸入脈...
51微控制器紅外控制步進電機
include 定義一些特殊暫存器 typedef unsigned char u8 typedef unsigned int u16 u8 code ffw 8 轉動陣列 u8 code rev 8 u16 code smgduan 17 u8 irvalue 6 u8 time u8 read ...
51微控制器控制四相步進電機
接觸微控制器快兩年了,不過只是非常業餘的興趣,實踐卻不多,到現在還算是個初學者吧。這幾天給自己的任務就是搞定步進電機的微控制器控制。以前曾看過有關步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。今天從 網買了乙個epson的umx 1型步進電機,此步進電機為雙極性四相,接線共有...