-
大小: 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个文件信息
相关资源
- 智能家居系统项目 嵌入式
- 基于STM32RCT6的步进电机驱动程序
- Micrium.RTOS.1.0.0.pack
- ISE_14.7_license.lic
- stm32f103c8t6 4 oled.rar
- mpu6050+hmc5883L.rar
- 嵌入式图形界面MiniGUI的示例程序9例
- 步进电机课程设计(个人设计)
- FPGA在步进电机驱动上的应用实例及代
- 步进电机protues仿真
- ARM嵌入式项目实战
- 单片机控制的步进电机正反转和加速
- uCOS编译环境建立 BC45 TASM
- stm32 用SPI 方式读写 SDHC
- 6相12拍步进电机控制器
- 自动售货机的内部嵌入式系统
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
- EESkill NRF24L01 无线模块用户手册
- 基于串口设备的嵌入式Web服务器系统
- 基于LW IP的嵌入式串口服务器的设计与
- 一种嵌入式串口共享服务器的设计
- 21天学会嵌入式开发STM32.zip
- LabVIEW步进电机控制.vi
- 嵌入式智能平台为城市一卡通打造智
- 研祥“EVOC”嵌入式智能平台在
- ARM7TDMI-S在嵌入式系统中的Bootloader代码
- LPC2000系列微控制器应对嵌入式需求
- 嵌入式实时操作系统μC/OS-II与eCos的
- 基于STM32的嵌入式双目图像采集系统设
评论
共有 条评论