单片机例程(8)

2019-06-11 00:38

单片机例程

* *步进电机运行 * *********************************************************/ void motor_turn() {

unsigned char x; rate=0x2a; x=0x40; do { motor_ffw(); //加速 rate--; }while(rate!=0x08); do

{ motor_ffw(); //匀速 x--; }while(x!=0x01); do { motor_ffw(); //减速 rate++; }while(rate!=0x2a); }

main() {

while(1) { motor_turn(); } }

/**************************************************************************************

* 二十 标题: 步进电机试验四 *

*

36

I Believe I Can Do !

单片机例程

*

* 通过本例程了解步进马达使用及驱动程序编写 * * 双四拍工作方式: *

* AB-BC-CD-DA (即一个脉冲,转 7.5 度) *

* *

* 请学员一定要消化掉本例程, *

*

**************************************************************************************/

#include \ //Motor

sbit F1 = P1^0; sbit F2 = P1^1; sbit F3 = P1^2; sbit F4 = P1^3;

/////////////////////////////////////// //步进电机驱动

unsigned char MotorStep=0; unsigned int MotorTimer = 0; unsigned int TIM,CT;

void InitMotor() {

F1 = 1; F2 = 1; F3 = 1; F4 = 1; }

void SetMotor() {

I Believe I Can Do !

37

单片机例程

// if(Speed == 0) return;

switch(MotorStep) {

case 0: if(TIM) {

F1 = 0; F2 = 0; F3 = 1; F4 = 1;

MotorStep = 1; TIM=0; } break;

case 1: if(TIM) {

F1 = 1; F2 = 0; F3 = 0; F4 = 1;

MotorStep = 2; TIM=0; } break;

case 2: if(TIM) {

F1 = 1; F2 = 1; F3 = 0; F4 = 0;

MotorStep = 3; TIM=0; } break;

I Believe I Can Do 38

!

单片机例程

case 3: if(TIM) {

F1 = 0; F2 = 1; F3 = 1; F4 = 0;

MotorStep = 0; TIM=0; } break; } }

void system_Ini() {

TMOD|= 0x11;

TH0=0xDC; //11.0592M TL0=0x00; IE = 0x8A; TR0 = 1; }

main()

{ system_Ini(); InitMotor(); while(1) { SetMotor(); } }

/************************************* [ t1 (0.5ms)中断] 中断中做 PWM 输出 ------------1000/(0.02ms*250)=200Hz

*************************************/

I Believe I Can Do 39

!

单片机例程

void Tzd(void) interrupt 1 {

TH0 = 0xfe; //11.0592 TL0 = 0x33; if( CT++==35) {TIM=1; CT=0; } }

/***********************************************************************************

* 二十一 标题: 步进电机试验五(正转一圈 反转一圈)

*

*

*

* 通过本例程了解步进马达使用及驱动程序编写 * *; 单双八拍工作方式: *

*; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度) *

* *

* 请学员一定要消化掉本例程 *

*

**************************************************************************************/

#include \

void delay(unsigned int t);

//Motor

sbit F1 = P1^0; sbit F2 = P1^1; sbit F3 = P1^2; sbit F4 = P1^3;

unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转 unsigned char code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转

I Believe I Can Do !

40


单片机例程(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈乡镇卫生院资产管理的现状与对策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: