临沂大学
void main() {
uchar i=0;
uchar delay_v=100; uchar flag=0; P1=0xFF; P2=0xFF; init_1602();
display_1602(\display_1602(\while(1) {
if(KEY2==1) DisplayOneChar(4,0,'Z'); else DisplayOneChar(4,0,'F'); if(KEY3==0) { i++; i=i%3; while(KEY3==0) {;} } switch(i) {
case 0:delay_v=100; DisplayOneChar(13,0,'1');break; case 1:delay_v=75; DisplayOneChar(13,0,'2');break;
29
临沂大学
case 2:delay_v=100; DisplayOneChar(13,0,'3');break; }
if(KEY1==0) {
display_1602(\if(flag==0) {
if(KEY2==1) {temp=0; P1=tab[temp]; flag=1;
delay(delay_v); }
if(KEY2==0) {temp=6; P1=tab[temp]; flag=1;
delay(delay_v); } }
if(KEY2==1) { temp++; if(temp==8) { temp=0;} P1=tab[temp]; delay(delay_v);
30
临沂大学
}
if(KEY2==0) { temp--; if(temp==0xFF) { temp=7;} P1=tab[temp]; delay(delay_v); } }
else display_1602(\} }
6 结论
经过为期一学期的学习和努力,本次设计顺利完成,具体结论如下:
1、采用单片机作为控制核心,利用其强大的功能,把按键电路和LCD显示电路,电机驱动电路有机的结合起来,组成一个操作方便,交互性强的简单系统。
2、通过系统的设计实现了预期的设计目标,完成了全部的设计任务,具体功能如下:完成了整个系统的硬件设计和软件编程,能通过按键电路控制步进电机的转速控制,能实现启动、正转、反转、速度控制;通过编程实现了通过单片机能输出四相八拍的脉冲控制序列。驱动电路能提供12V,0.3A的驱动信号;整个电机的转速,转动方向等都能通过LCD管显示出来;整个的成果形式是最终以步进电机控制电路板的形式展示出来了。
3、在本设计中作为电机正常工作比较重要的电机驱动模块,本设计中是采用驱动芯片ULN2001来实现的,其特点是成本低,可靠性高,出现问题容易维护,实现相对容易等特点。
4、在电机工作模式上本设计实现了电机的四相八拍种脉冲控制方式。 后续工作:
1、在本次设计中更多的是注重整体功能的实现,注重的是操作简单,所以本系统采用了开环控制的方式,电机也是选用的最常用的步进电机。通过在本设计中的学习和
31
临沂大学
查阅资料,想要得到更高性能的控制,可以选用混合式步进电机,采用闭环的细分驱动电路。
2、本设计KEY2用一个按键控制正反转,观察起来有点困难。建议以后有做类似设计任务的时候,预先考虑全面,争取一个键控制一个功能。
3、本设计的硬件制作部分完全是实行的手工焊接,没有制作PCB板,这样的后果就是焊接完电路板之后容易出现问题,检查麻烦,而且要是在后期全部制作调试都完成后再中途出现问题了检查起来是相当的麻烦。所以建议以后有做类似设计任务或者实际应用的时候,尽量采用PCB电路板的形式,这样最大的好处就是硬件的可靠性高,外观美观简洁,尤其是在大量设计的时候,采用PCB电路板成本也不高,值得采用。
32