-
大小: 2.3MB文件類型: .rar金幣: 2下載: 0 次發布日期: 2023-11-20
- 語言: 其他
- 標簽: 嵌入式??STC89C52RC??步進電機??驅動??
資源簡介
51單片機實現步進電機(39BYG316/28BYJ48)的啟停,圈數設定,正反轉,速率調整,LCD1602顯示等調節硬件實現(原理圖,PCB)+軟件實現(keil4代碼)

代碼片段和文件信息
#include?“lcd.h“
/*******************************************************************************
*?函?數?名?????????:?Lcd1602_Delay1ms
*?函數功能 ???:?延時函數,延時1ms
*?輸????入?????????:?c
*?輸????出?????????:?無
*?說????名?????????:?該函數是在12MHZ晶振下,12分頻單片機的延時。
*******************************************************************************/
void?Lcd1602_Delay1ms(uint?c)???//誤差?0us
{
????uchar?ab;
for?(;?c>0;?c--)
{
?for?(b=199;b>0;b--)
?{
?? for(a=1;a>0;a--);
?}??????
}
????
}
/*******************************************************************************
*?函?數?名?????????:?LcdWriteCom
*?函數功能 ???:?向LCD寫入一個字節的命令
*?輸????入?????????:?com
*?輸????出?????????:?無
*******************************************************************************/
#ifndef? LCD1602_4PINS ?//當沒有定義這個LCD1602_4PINS時
void?LcdWriteCom(uchar?com) ??//寫入命令
{
LCD1602_E?=?0;?????//使能
LCD1602_RS?=?0; ???//選擇發送命令
LCD1602_RW?=?0; ???//選擇寫入
LCD1602_DATAPINS?=?com;?????//放入命令
Lcd1602_Delay1ms(1); //等待數據穩定
LCD1602_E?=?1; ??????????//寫入時序
Lcd1602_Delay1ms(5); ??//保持時間
LCD1602_E?=?0;
}
#else?
void?LcdWriteCom(uchar?com) ??//寫入命令
{
LCD1602_E?=?0; ?//使能清零
LCD1602_RS?=?0; ?//選擇寫入命令
LCD1602_RW?=?0; ?//選擇寫入
LCD1602_DATAPINS?=?com; //由于4位的接線是接到P0口的高四位,所以傳送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E?=?1; ?//寫入時序
Lcd1602_Delay1ms(5);
LCD1602_E?=?0;
LCD1602_DATAPINS?=?com?<4;?//發送低四位
Lcd1602_Delay1ms(1);
LCD1602_E?=?1; ?//寫入時序
Lcd1602_Delay1ms(5);
LCD1602_E?=?0;
}
#endif
/*******************************************************************************
*?函?數?名?????????:?LcdWriteData
*?函數功能 ???:?向LCD寫入一個字節的數據
*?輸????入?????????:?dat
*?輸????出?????????:?無
*******************************************************************************/ ???
#ifndef? LCD1602_4PINS ???
void?LcdWriteData(uchar?dat) //寫入數據
{
LCD1602_E?=?0; //使能清零
LCD1602_RS?=?1; //選擇輸入數據
LCD1602_RW?=?0; //選擇寫入
LCD1602_DATAPINS?=?dat;?//寫入數據
Lcd1602_Delay1ms(1);
LCD1602_E?=?1;???//寫入時序
Lcd1602_Delay1ms(5);???//保持時間
LCD1602_E?=?0;
}
#else
void?LcdWriteData(uchar?dat) //寫入數據
{
LCD1602_E?=?0; ??//使能清零
LCD1602_RS?=?1; ??//選擇寫入數據
LCD1602_RW?=?0; ??//選擇寫入
LCD1602_DATAPINS?=?dat; //由于4位的接線是接到P0口的高四位,所以傳送高四位不用改
Lcd1602_Delay1ms(1);
LCD1602_E?=?1; ??//寫入時序
Lcd1602_Delay1ms(5);
LCD1602_E?=?0;
LCD1602_DATAPINS?=?dat?<4;?//寫入低四位
Lcd1602_Delay1ms(1);
LCD1602_E?=?1; ??//寫入時序
Lcd1602_Delay1ms(5);
LCD1602_E?=?0;
}
#endif
/*******************************************************************************
*?函?數?名???????:?LcdInit()
*?函數功能 ?:?初始化LCD屏
*?輸????入???????:?無
*?輸????出???????:?無
*******************************************************************************/ ???
#ifndef LCD1602_4PINS
void?LcdInit() ??//LCD初始化子程序
{
? LcdWriteCom(0x38);??//開顯示
LcdWriteCom(0x0c);??//開顯示不顯示光標
LcdWriteCom(0x06);??//寫一個指針加1
LcdWriteCom(0x01);??//清屏
LcdWriteCom(0x80);??//設置數據指針起點
}
#else
void?Lcd
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????52695??2019-03-05?12:51??具體方案\DC_M.pdf
?????文件??????????0??2019-03-03?21:32??具體方案\Readme.txt
?????文件??????38961??2019-03-04?20:49??具體方案\Step_motor_M\DC_M.PrjPcb
?????文件?????217088??2019-03-04?20:49??具體方案\Step_motor_M\DC_M.SchDoc
?????文件???????4851??2019-03-05?12:51??具體方案\Step_motor_M\Free?Documents.OutJob
?????文件????2664448??2019-03-04?20:49??具體方案\Step_motor_M\Step_motor.PcbDoc
?????文件??????84380??2019-03-03?18:51??具體方案\Step_motor_M\__Previews\DC_M.$$$Preview
?????文件??????83668??2019-03-05?12:49??具體方案\Step_motor_M\__Previews\DC_M.SchDocPreview
?????文件???????3603??2016-09-06?08:44??具體方案\Step_motor_test\lcd.c
?????文件????????966??2019-01-11?21:38??具體方案\Step_motor_test\lcd.h
?????文件???????6552??2019-01-12?17:13??具體方案\Step_motor_test\lcd.LST
?????文件???????3480??2019-01-12?17:13??具體方案\Step_motor_test\lcd.OBJ
?????文件???????8191??2019-03-05?12:52??具體方案\Step_motor_test\main.c
?????文件??????15984??2019-03-03?16:07??具體方案\Step_motor_test\main.LST
?????文件??????16876??2019-03-03?16:07??具體方案\Step_motor_test\main.OBJ
?????文件??????10950??2019-01-11?21:12??具體方案\Step_motor_test\st7565.LST
?????文件???????8840??2019-01-11?21:12??具體方案\Step_motor_test\st7565.OBJ
?????文件???????6376??2016-09-06?08:44??具體方案\Step_motor_test\STARTUP.A51
?????文件??????14053??2019-01-11?21:12??具體方案\Step_motor_test\STARTUP.LST
?????文件????????749??2019-01-11?21:12??具體方案\Step_motor_test\STARTUP.OBJ
?????文件??????14056??2019-03-03?16:07??具體方案\Step_motor_test\template
?????文件???????3082??2019-03-03?16:07??具體方案\Step_motor_test\template.hex
?????文件?????????44??2019-03-03?16:07??具體方案\Step_motor_test\template.lnp
?????文件??????19938??2019-03-03?16:07??具體方案\Step_motor_test\template.M51
?????文件????????209??2019-03-05?20:53??具體方案\Step_motor_test\template.plg
????.......?????71448??2019-03-05?20:53??具體方案\Step_motor_test\template.uvgui.Administrator
????.......?????71511??2019-03-05?12:53??具體方案\Step_motor_test\template.uvgui_Administrator.bak
????.......??????5391??2019-03-05?20:53??具體方案\Step_motor_test\template.uvopt
?????文件??????13415??2019-03-03?14:24??具體方案\Step_motor_test\template.uvproj
?????文件???????5591??2016-09-06?08:44??具體方案\Step_motor_test\template_uvopt.bak
............此處省略32個文件信息
評論
共有 條評論