4.4 AT89S52单片机的复位电路
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。
RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为12MHz的晶振,则复位信号持续时间应超过4?s才能完成复位操作。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。在本设计中采用了按键电平复位方式,其复位电路如下图:
图六 步进电机的按键复位电路
4.5系统总连接图
图七 单片机控制步进电机系统连接图
第 10 页 共 18 页
第五章 软件设计
5.1 汇编语言和C语言的特点及选择
本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。在单片机的应用系统程序设计时,常用的是汇编语言和C语言。机器语言啊,程序可读性和可移植性比较差。虽然C语言执行语言简洁,使用方便,灵活程序设计自由度大,有很好的可重用性,可移植性。但是汇编语言效率明显高于C语言,且由于课堂上在学习汇编语言,我们都已有一定的汇编基础,所以在本设计中采用汇编言编写软件程序,主程序的设计详见附录一。
5.2主程序流程
键扫程序的过程为:开始时,先判断是否有键闭合,无键闭合时,返回继续判断;有键闭合时,先去抖动,然后确定是否有键按下,若无键按下,则返回继续判断是否有键闭合,若有键按下,则判断键号,然后释放,若释放按键完毕,则返回,若没有释放按键,则返回继续释放。
主程序的过程为:程序开始时,先判断按键是否符合,有按键的话则跳转到相应的子程序执行正转、反转或停止。
图八 主程序流程图
第 11 页 共 18 页
5.3步进电转动原理
步进电机的激磁方式有1相激磁、2相激磁和1—2相激磁。其中:
1相激磁法:在每一瞬间只有一个线圈导通,其他线圈在休息。其特点是激磁方法简单、消耗电力小、精确度良好。但是转矩小、震动较大,每送一次激磁信号可走1.8度。
2相激磁法:在每一瞬间只有两个线圈导通,特点是转矩大、震动较小,每送一次激磁信号可走1.8度。
1—2相激磁法:1相与2相轮流交替导通,精确度高,且运转平滑。但每送一次激磁信号只走0.9度,又称半步驱动。
1相激磁、2相激磁和1—2相激磁方式如表4—1所示。
表4—1
1相激磁 2相激磁 1—2相激磁 步 1 2 3 4 5 6 7 8 A 0 1 1 1 0 1 1 1 B 1 0 1 1 1 0 1 1 A 1 1 0 1 1 1 0 1 B 1 1 1 0 1 1 1 0 步 1 2 3 4 5 6 7 8 A 0 1 1 0 0 1 1 0 B 0 0 1 1 0 0 1 1 A 1 0 0 1 1 0 0 1 B 1 1 0 0 1 1 0 0 步 1 2 3 4 5 6 7 8 A 0 0 1 1 1 1 1 0 B 1 0 0 0 1 1 1 1 A 1 1 1 0 0 0 1 1 B 1 1 1 1 1 0 0 0 改变线圈激磁的顺序可以改变步进电机的转动方向。每送一次激磁信号后要经过一小段的时间延时,让步进电机有足够的时间建立磁场及转动。
为了充分学习步进电机的激磁方式,我们在设计时,正传采用1相激磁方式,反转采用1—2相激磁方法。
第 12 页 共 18 页
第六章 系统调试与存在的问题
6.1 硬件调试
按照上面的设计方案,我们对电路进行了实际的连接测试。将程序下载到单片机没有问题,关键是一开始,步进电机与驱动器的连线接反了,给系统通电后只看到电机在震动,但是转轴没有转动。经过交换接线,本电路经调试符合题目要求,各项技术指标均达到设计的目的。具体操作控制方法如下:
1、当电机启动按钮时,步进电机根据制定默认状态开始转动; 2、当电机停止按钮时,步进电机停止转动;
3、当电机正转按钮时,步进电机以1相激磁方式正转; 4、当电机反转按钮时,步进电机1—2相激磁方式反转。
6.2 软件调试
在编写控制步进电机转动的程序时,由于变成经验不多,且对步进电机的工作原理不是特别的熟悉,所以我们先参考了一些课外书上的正转程序,实现了单片机的正转。
接着,为了锻炼自己的编程能力,我们在学会正转程序的基础上,自己编写控制电机反转的程序,经过Keil uVision调试及其错误提示,最终成功完成了反转的程序。
其次,我们还自己尝试通过改变电机每一步的延时来改变控制电机的转速,此部分没有做详细介绍,具体源程序见附录二。
最后在接入按键控制并实现正反转时,我们先自己尝试编写程序,但最终页没有修改成功。没有更好办法的情况下,就参考了书上的程序,同时我们也认真讨论并弄明白这些程序。
第 13 页 共 18 页
总结
通过单片机课程设计,我们不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我们还学会了如何去培养我们的团队合作意识,取他人之长,不自己之短。实践,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我们在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
这个设计过程中,我们遇到过许多次失败的考验,就比如,自己对实际电机工作原理的不了解给整个设计带来的困扰,好多次做着做着就不想做了。然而,就在想要放弃的那一刻,我们明白了,其实结果并不那么重要,我们更应该注重的是这一整个过程。于是,我们坚持了下来。当然最终,这个设计很成功,我们通过本次试验,不但加强了同组人之间的合作意识,并且也真正对单片机这门课有了更为深刻的认识。我们通过对所设计系统的具体实现,也提高了动手能力,关键在动手方面胆子大了一些,以前总是怕把元件、芯片烧坏导致不敢随便动手操作,这次可谓是完全自学,电路连线也试了好多遍才达到最终的成功。
总之,这次试验无论从知识上还是实践上都让我们收获不少。
参考文献
[1]王守中、聂元铭著.51单片机开发入门与典型实例.人民邮电出版社,2009.10 [2]杨恢先 黄辉先著.单片机原理与应用.人民邮电出版,2009.7 [3]胡汉才著.单片机原理及接口技术.清华大学出版社,2008.10
第 14 页 共 18 页