程序第二次改变
# include<reg51.h> //头文件
sbit pulse=P1^0;//脉冲输出口
sbit pulse2=P1^1;
sbit pwm_manual_button=P2^0;//手动输出一步
sbit pwm_auto_button=P2^1; //自动连续输出
sbit pwm_increase_button=P2^2;
sbit pwm_decrease_button=P2^3;
int pwm_hz=1000;//预设脉冲频率为1000 //默认步进电机频率为1000,即1ms
int pwm1=(65536-1000)/256; // 不可以直接把pwm_hz放进去,这是全局变量定义,除非是系统自设的变量,如P1等,否则就不能放进去计算,只能用数字计算
int pwm2=(65536-1000)%256; //
int pwm3=(65536-500)/256;
int pwm4=(65536-500)%256;
char out1_4[4]={0x03,0x06,0x0c,0x09};//双四拍输出
char out1_8[8]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03}; //等待输入八拍数据 ,为何模拟的时候会后退半步? 把0x01,0x03这两个拍从最开始两位放到最后两位,然后输出,否则一开始是0x01会导致后退一步,0x03会原地不动一步
char out_loop=0;
int step_number; //总步数 int step_number_over_max=10000;//总步数上限 ,设为10000,用作主程序判断与 int step_number_over不是一个变量
bit shep_one_yes; //是否走了一步
void t0sss() interrupt 1 //定时器中断0为确定输出频率
{