当前位置:首页 > (完整版)基于AT89C51单片机的步进电机控制系统毕业设计论文
void main(void) { init();
while(1) {
keyscan();
if(rest==1)
init();
if(state==1)
{ TR0=1; led4=1; led3=0;
} else {
TR0=0;
调用初始化函数
调用键盘扫描函数
判断是否复位
判断是否启动
启动定时器T0 亮启动指示灯 灭停止指示灯
定时器T0停止计数
}
}
led3=1; led4=0;
亮停止指示灯 灭启动指示灯
}
***********************定时器T0启动中断函数********************** void t0(void) interrupt 1 {
speedtemp=speedflag-25; TH0=speed[speedtemp] 256; TL0=speed[speedtemp]% 256; count1++; clk=~clk; count++; if(count==2)
{ }
count=0; stepdec(); stop();
调用步数减一函数 调用停止判断函数
调用调速函数
一个周期走一步
changespeed();
}
附录B 20BY步进电机转速与定时器定时常数关系表
周期 T(us) 转速rmin 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
定时器计算初值(65536-T2) 定时初值四舍五入 5536 7844 9980 11965 13812 15536 17149 18661 20081 21418 22679 23869 24995 26062 27074 28036 28951 29822 120000 115384.6154 111111.1111 107142.8571 103448.2759 100000 96774.19355 93750 90909.09091 88235.29412 85714.28571 83333.33333 81081.08108 78947.36842 76923.07692 75000 73170.73171 71428.57143 5536 7843.692308 9980.444444 11964.57143 13811.86207 15536 17148.90323 18661 20081.45455 21418.35294 22678.85714 23869.33333 24995.45946 26062.31579 27074.46154 28036 28950.63415 29821.71429
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 69767.44186 68181.81818 66666.66667 65217.3913 63829.78723 62500 61224.4898 60000 58823.52941 57692.30769 56603.77358 55555.55556 54545.45455 53571.42857 52631.57895 51724.13793 50847.45763 50000 49180.32787 48387.09677 47619.04762 46875 30652.27907 31445.09091 32202.66667 32927.30435 33621.10638 34286 34923.7551 35536 36124.23529 36689.84615 37234.11321 37758.22222 38263.27273 38750.28571 39220.21053 39673.93103 40112.27119 40536 40945.83607 41342.45161 41726.47619 42098.5 30652 31445 32203 32927 33621 34286 34924 35536 36124 36690 37234 37758 38263 38750 39220 39674 40112 40536 40946 41342 41726 42099
共分享92篇相关文档