资源简介
步进电机控制细分驱动程序,用于单片机对步进电机的控制;程序包括了串口通信,参数设置等功能可以和上位机进行通信。
代码片段和文件信息
/********************************************************************************
* 标题: 细分驱动控制器的控制信号程序 *
* 功能:对细分模块进行控制 *
*********************************************************************************/
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit PWM=P1^0; //PWM波输出口
sbit DIR=P1^1; //正反转控制信号
sbit ENA=P1^2; //使能信号
/************************************************************************************************************************
* 系统频率设定 200Hz400Hz600Hz700Hz800Hz900Hz1000Hz1050Hz1100kHz1150kHz1200kHz1250kHz 1300kHz1350kHz *
************************************************************************************************************************/
uint code dsz[14]={ 0xfe0c0xff060xff590xff710xff830xff900xff9c0xffa00xffa5 0xffa90xffac0xffb00xffb30xffb5} ;
uint d_timer Z_B=2000; // d_timer 每次加载频率Z_B 每次加载的总步数;
uchar timer1keycountC_timers=0; // timer1 PWM波频率控制 key按键值设定 count每个频率段的步数C_timers加载次数
uchar temp=0scounter=0zhuangtai[7]; //串行通讯数据
char i=0;
/********************************************************************************
* 系统初始化 *
*********************************************************************************/
void system_Ini()
{
P1=0xfb;
P2=0xff;
d_timer=dsz[0] ;
TH0 = (uchar) (d_timer/256); // 设定定时器初始值
TL0 = (uchar) (d_timer%256);
TR0 = 0; //定时器开始计时
ET0 = 1; //开定时器T0中断
EA = 1; //开总中断
}
/********************************************************************************
* 串口初始化 *
*********************************************************************************/
void comm_init()
{
SCON=0x50; //串口控制字
PCON=0x00; //波特率不增倍
TMOD=0x21;//定时器0以工作方式1工作,定时器1以工作方式2工作
TH1=0xfd; //波特率为9600
TR1=; //启动定时器
ES=1;
ET1=0;
EA=1;
}
/********************************************************************************
* 延时函数0.1ms *
*********************************************************************************/
void delay(void)
{ uchar num=150;
while(num--)
{_nop_();
_nop_();
_nop_();}
}
/********************************************************************************
* 延时函数0.1ms *
*********************************************************************************/
void long_delay(void)
{ uchar num=200;
while(num--)
{_nop_();_nop_();_nop_();_nop_();_nop_();
}
}
/********************************************************************************
* 键值判断 *
*********************************************************************************/
uchar fkey(void )
{ uchar k=0;
if(~P2==0x01) {dela
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2006-02-19 10:42 细分驱动控制波已完成\
文件 86972 2010-10-17 10:51 细分驱动控制波已完成\Backup Of linxi.DBK
文件 86990 2010-10-16 22:04 细分驱动控制波已完成\Last Loaded linxi.DBK
文件 86973 2010-10-17 14:24 细分驱动控制波已完成\linxi.DSN
文件 819 2006-02-19 11:43 细分驱动控制波已完成\linxi.PWI
文件 8728 2006-02-19 10:43 细分驱动控制波已完成\PWM
文件 6519 2006-02-19 15:42 细分驱动控制波已完成\PWM.c
文件 2453 2006-02-19 10:43 细分驱动控制波已完成\PWM.hex
文件 38 2006-02-19 10:43 细分驱动控制波已完成\PWM.lnp
文件 11812 2006-02-19 10:43 细分驱动控制波已完成\PWM.LST
文件 10743 2006-02-19 10:43 细分驱动控制波已完成\PWM.M51
文件 10346 2006-02-19 10:43 细分驱动控制波已完成\PWM.OBJ
文件 200 2006-02-19 15:43 细分驱动控制波已完成\PWM.plg
文件 54867 2006-02-19 15:43 细分驱动控制波已完成\PWM.uvopt
文件 13224 2010-09-24 10:51 细分驱动控制波已完成\PWM.uvproj
文件 54867 2006-02-19 11:43 细分驱动控制波已完成\PWM_uvopt.bak
文件 0 2010-09-24 10:19 细分驱动控制波已完成\PWM_uvproj.bak
- 上一篇:变分法原理法则PDF
- 下一篇:频域盲源分离方法
相关资源
- 万能的BDC程序
- HX711完整单片机程序+图
- 《快乐成语》益智游戏完全源程序
- OpenGL开发的机械臂运动仿真程序
- ofdm系统仿真程序
- 基于MSP430F5438的TLV2543 TLC2543驱动程序
- TMP100兼容TMP175常规用法程序
- 密码管理小程序,可实现新旧密码更
- 完美的8*8点阵程序,滚动的心形
- IDL的选取对象Selection类的程序设计
- DSP 2812 程序从FLASH 拷贝到RAM
- 哈希值转换程序
- 声明一个类Point,然后利用它声明一个
- STM32 驱动步进电机 原理图
- RS485一对四双向通信Proteus仿真+Keil收发
- IPv6报文封装及地址生成程序
- 完整悬挂运动控制程序
- 近10个团队的飞思卡尔小车程序源代码
- 网络编程---ftp客户端程序实验报告
- 基于TinyOS的温度监测程序
- STM32F401CCU6跑马灯实验性源程序
- 恩智浦摄像头双车程序
- 现代OpenGL+Qt学习笔记之二:程序框架
- 热力计算程序
- 平面三角形有限元程序
- authorware7.02多媒体技术 作品作业 源程
- s7-300读取时间 程序
- 红外测距程序可以试下
- 有关多径延时的源程序
- 二维小波分解与重构程序
评论
共有 条评论