前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料)
微信公众号:创享日记
发送:单片机步进电机
获取完整报告+AD原理图源文件+Proteus仿真源文件+单片机源程序+相关资料
一、设计说明
1.设计目的
通过具体小型测试系统设计,实践单片机系统设计及调试的全过程,以加深对单片机内部结构、功能和指令系统的理解,并进一步学习单片机开发系统的应用及一些外围芯片的接口和编程方法,初步掌握单片机系统的硬、软件设计技术及调试技巧。
2.设计要求
本次我选择完成的是课题1——基于单片机步进电机控制器设计。
其设计要求如下:
1)电机转速可以平稳控制;
2)通过实验箱上按钮或者拨键开关设置电机的转速,转向;
3)显示电机的速度趋势;
4)完成基本功能:启动/停止,加速,减速,正转,反转;
5)利用实验箱上的控件提升控制效果和控制功能(选作)。
3.仪器设备
本次实验线上进行,没有到实验室进行硬件实物验证,仅使用Proteus软件进行仿真。
二、硬件线路图及主要芯片说明
本系统选用的单片机为STC89C51。步进电机型号为28BYJ48,该电机共有四相绕组,工作电压为+5V,可以和单片机共用一个电源。步进电机的四相绕组用P1口的P1.0~P1.3控制,由于P1口驱动能力不够,因而用一片ULN2803增加驱动能力。使用P0口接发光二极管,用来显示当前状态,P3口控制电机正反转。根据系统要求画出基于STC89C51单片机的控制步进电机的控制框图2.1所示。
系统主要包括单片机、复位电路、晶振电路、按键电路、数码管显示电路、步进电机及驱动电路等部分。
1.单片机最小系统电路
单片机最小系统是单片机扩展开发的应用中最基础和最主要的部分,一般由以下的电路构成,是整个设计的核心其保证了基于单片机的其他功能的扩展与实现。如图2.2所示。
复位电路: 复位电路是单片机应用中的最基本和最重要的电路,用于处理单片机工作失灵等紧急问题。当单片机复位端口为高电平时,单片机中的代码将不会被执行。一开始上电时,电容还未充满电,复位端口为高电平,避免了直接上电就运行程序导致的程序错误等问题。当电容充满电后,复位端口变为低电平,程序开始运行。
晶振电路:晶振电路也是的单片机设计中必备的电路,为系统提供工作时序。晶振电路提供11.0592MHZ时钟频率,以此构成整个稳定的振荡电路,为单片机的正常工作提供保障。
2.数码管显示电路
数码管显示电路由1位7段LED数码管显示当前转速档位(共9个档位),具体如图2.3所示。
3.按键电路
按键电路需要实现按键控制步进电机正转、反转、加速、减速、停止,总共有5个按键,具体如图2.4所示。
4.电机及驱动电路
电机及驱动电路由ULN2003驱动芯片、DC-5V步进电机、转数指示灯等构成,具体如图2.5所示。
5.系统整体电路
三、系统工作原理
1.最小控制系统
如图3.1,本次设计使用STC89C51单片机,该型单片机是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 4K 在系统可编程Flash存储器。。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,完全可以满足本设计需要。对STC89C51单片机来说,最小控制系统一般应该包括:复位电路、时钟电路。
复位电路:复位电路采用手动复位,所谓手动复位,是指通过接通按钮开关,使单片机进入复位状态。
时钟电路:用22pF的电容和12MHz晶体振荡器组成为整个电路提供时钟频率。单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。在引脚XTAL1和XTAL2外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路其电容值一般在5~30 pF,晶振频率的典型值为12MHz,采用6MHz的情况也比较多。
2.驱动电路
ULN2803是高电压大电流达林顿晶体管阵列,该阵列中的8路达林顿晶体管是低逻辑电平数字电路(TTL、COMS、PMOS或NMOS)与高电压大电流设备(如继电器、机锤、灯泡)接口的理想器件。ULN2803驱动器的内部结构及外部引脚如图3.2所示。1-8脚为输入,9脚接GND,10脚接负载电源+,11-18脚接输出。下图左边为输入端(假设为1脚),右上角为输出端(对应18脚),pin10为10脚接负载电源+。当1脚接+5V时三极管为饱和状态,此时18脚输出,从左到右数第二个三极管导通,接负载电源GND,此时负载得电动作。
达林顿管又称复合管。为共基组合放大器,以组成一只等效的新的三极管。这等效于三极管的放大倍数是二者之积。在电子学电路设计中,达林顿接法常用于功率放大器和稳压电源中。
达林顿管是一重复合三极管,他将两个三极管串联,第一个管子的发射极接第2个管子的基极,所以达林顿管的放大倍数是两个三极管放大倍数的乘积。所以它的特点是放大倍数非常高,达林顿管的作用一般是在高灵敏的放大电路中放大非常微小的信号,如大功率开关电路。
3.步进电机
由于本设计中的步进电机步进角为18°,步进电机组件中Step Angle属性默认值为18,在四相八拍方式下,每拍步进角度为9°,每输出一遍8字节的励磁序列数组FFW时,电机总计步进72°,可见,驱动电机运转一圈(360°)共需要5趟励磁序列数组FFW,要使电机转动n圈则需要输出5n趟励磁序列数组FFW。步进电机反转控制原理与此时相同。
基于上述分析,可分别设计STEP_MOTOR_FFW与STEP_MOTOR_REV函数,其分别用于控制步进电机的正反转n圈,其内循环为8次,外循环为5n次。
选用ULN2803作为驱动芯片,通过单片机P1.0P1.3输出脉冲到芯片的1B4B口,经放大后从1C~4C口分别输出到电机的A、B、C、D相,如图3.3所示。
四、程序设计
根据设计要求,需要通过软件编程实现的以下具体功能:
1)驱动各个模块工作,实现数码管的清晰显示,实现电机驱动;
2)实现按键控制步进电机正转、反转、加速、减速、停止;
3)2个发光二极管显示正反转,1位7段LED数码管显示当前转速档位;
4)4个红色LED,指示电机的转速。
(以下略,详见原报告)