#include
unsigned char code motor_table[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06}; //四相八拍步进脉冲信号表
unsigned char table_index; //定义一个变量,便于取出motor_table数组中的值 void delay_ms(unsigned int t) { unsigned int a,b; for(a=0;a void sound() //蜂鸣器发声函数 { unsigned char i; for(i=0;i<3;i++) //重复发声三次 { bell=0; delay_ms(200); bell=1; delay_ms(200); } } void main() { while(1) { unsigned int i; for(i=0;i<1536;i++) { for(table_index=0;table_index<8;table_index++) //逆时针转动 { P1= motor_table[table_index]; //重复将8个脉冲信号送给电机控制端口 delay_ms(3); } } sound(); for(i=0;i<1536;i++) } } { } for(table_index=7;table_index>0;table_index--)//顺时针转动 { P1= motor_table[table_index]; //重复将8个脉冲信号送给电机控制端口 delay_ms(3); } P1=0xff; //电机停止转动时,关闭电机,避免电机不转动时线圈通电过热。 while(1);