单片机课程设计

发布 2022-10-05 00:10:28 阅读 3893

2024年 1月11日。

基于单片机的步进电机控制器。

(湖南城市学院通信与电子工程学院,益阳,413002)

1 设计目的。

1. 熟悉proteus**软件,掌握单片机原理图的绘图方法。

2. 学习汇编语言的编程与调试的方法。

3.学习步进电机及其放大电路和单片机接口的设计方法。

2功能要求及技术指标。

1.设计系统工作原理及流程。

2.设计硬件电路。

3.设计汇编程序并调试**,使电机按一定的控制方式转动。

3 总体设计方案。

3.1 方案与设计思路。

因为步进电机的控制是通过脉冲信号来控制的,将电脉冲信号转变为角位移或线位移的开环控制元件。所以怎样产生这个脉冲信号和产生怎样的信号是电机控制的关键。

系统工作原理框图如图3.1所示,系统包括步进电机及其驱动电路、拨盘控制电路、步进电机状态显示电路、复位主电路、mcs51单片机芯片等几部分组成。当系统开始工作时,由拨盘开关来控制单片机的p1.

0、p1.1、p1.2和p1.

3端口,单片机根据已有的程序对来自输入端口的高低电平信号进行分析和处理,以此来决定将要采取的控制行为。根据得出的控制决策,适时的改变p1和p2端口各输出引脚的电平,步进电机就会得到驱动而且led灯也会有相应的状态显示。

3.2 总框图。

图3.1 总体设计方框图。

4 硬件电路的设计。

4.1 硬件的设计与选取。

4.1.1步进电机的驱动。

步进电机的驱动采用uln2003,接到单片机的p1.0~p1.3,具体如图4.1。

图4.1 步进电机驱动及其接口图。

4.1.2 单片机的选取。

目前市面上的通用型单片机种类很多,且适合不同应用场合的新产品不断出现,但目前的应用状况,以8位中档mcs-51系列单片机的应用最为普遍。基于这次课程设计的要求不高,我们可以选用51系列或52系列单片机,其有可靠性高,易于扩展以及实用性好等特点,完全可以满足我们的控制要求。如图4.

2。图4.2 at89c52单片机。

5.1.3 液晶lcd1602显示模块。

p0接液晶的数据传送口,p2.0~p2.2接液晶的控制端口。

其接线图如下图4.3。

图4.3 液晶与单片机接口原理图。

4.1.4 按键电路设计。

键盘接口按不同标准有不同分类方法,按键盘排布,可以分为独立方式(一组相互独立的键盘)和矩阵(一行列组成矩阵)方式。此次设计只用到了四个按键,故可采用独立按键,p3.2~p3.

5分别接到k1~k4。其原理图如下图4.4。

图4.4 按键与单片机接口原理图。

4.2 硬件的总体电路连接。

图4.5 总体原理图。

5 软件设计。

5.1 主程序。

进入主程序,首先是对lcd进行初始化,然后依次进行键盘扫描,调用步进电机相关数据显示子函数,若检测到有键按下,则进去相应的处理。流程图如下图5.1。

图5.1 主程序流程图。

5.2 lcd及档位显示程序。

此次设计使用1602液晶显示步进电机运行状态,其效果比用数码管显示要更加明了,也更容易读取相关状态和数据。液晶上显示有电机运行的状态(running或stop)、当前档位(dw)、运行方向("<或">>以及其运转速度(r/min)。其显示原理如下图5.

2。图5.2 液晶显示流程图。

5.3正反转流程图。

步进电机的正反转用k4控制,初始化电机为顺时针转,即“》”每当按下k4键,电机转向改变,具体流程图如下图5.3。

图5.3 正反转流程图。

5.4启动与停止流程图。

启动与停止是用k1键来控制的,初始化标志位on_off==0,档按下k1,即将on_off置1,每当按下k1,都将在启动与停止间切换,具体流程图如下图5.4。

图5.4 启动与停止流程图。

6 系统**。

6.1 调试过程及相关显示结果。

将程序**到单片机中,lcd初始化显示如下:

图6.1 lcd初始化。

之后进入步进电机初始化的画面显示,电机运行状态显示为stop,档位为5档,开机转速为2.66r/min,如下:

图6.2 步进电机初始化。

按下启动键k1后,转向显示出显示"》"即电机顺时针转,显示如下:

图6.3 步进电机顺时针转。

按k2键一次,档位加一,高位档为10档,此时对应电机转速为最慢,为1.33r/min,如下图:

图6.4 步进电机加速调节。

按下k3键一次,档位减一,低位档为1档,也是电机转速最快的档,为13.32r/min,显示效果如下图:

图6.5 步进电机减速调节。

6.2 故障分析及解决方法。

故障一:首先在设计总体方案时,思路上出现了一些问题,我首先是想在中断里完成许多应在中断之外完成的事,经过老师的指点,后来想清楚了。只在中断中给电机送相序码,并设定了一个参数对电机的转速进行调控。

故障二:由于编写程序的经验不多,在计算电机转速,并将其显示在液晶时,遇到了一些问题,速度转换公式是找出来了,但怎样将其小数点表示出来,困惑了好久,最后还是请教了同学,才搞定。

故障三:在**时首先液晶没有接上拉电阻,液晶上显示不出来,我以为是程序方面出了问题,后来尝试接了上拉电阻,就能够正常显示了。

7 设计总结。

为期两周的单片机课程设计在忙碌中已接近尾声,经过这么多天的努力,终于完成了这次课程设计基本设计要求,在充实中也学到了很多知识,是真正将所学知识运用于实践中的一次很好的体验,使人受益匪浅。

由于此次控制要求不是很高,选用51系列或52系列完全能够满足设计需求,最后选用的stc89c52。接下来就是硬件接口分配问题和如何去驱动电机。对于步进电机之前没有什么接触,所以我上网查了许多关于步进电机的资料,知道了其基本工作原理以及怎么去实现其控制运转和驱动。

接下来的主要问题就是如何编程去实现控制它了,这次程序的编写和调试对我来说是个不小的挑战,因为之前只编写过一些简短的小程序,对较大的程序总体性方面还不能很好的把握。经过反复的尝试和调试,用发现一个问题,解决一个问题的方法,还参考了一些别人的经验方法,完成了程序的编写。这对我以后编写程序是一次很好的经验积累。

**时也出了一些小问题,首先lcd完全没有显示,我就尝试接上拉电阻,结果就能正常工作了。然后是电机也不转,最后我把送进去的脉冲频率减小,才使得电机运转起来,这个**过程又使我更加熟练了proteus软件的用法。这次课程设计使我认识到,刚学好书上的知识还是不够的,更重要的是我们要能将所学的知识运用到实践中来,这才是我们学习知识的最基本的要求,所以在以后的学习生活中,我们应该更加注意将学习与实践相结合,在实践中去运用好所学知识,更进一步深化和理解所学知识,达到学以致用。

通过这次课程设计,我也了解到了自己的不足,以前自己学习单片机的时候,往往只去看懂别人写的程序,以为看懂了自己就知道写了,但事实并不是这样,虽然这次课程设计程序是完成了,但棘手的地方很多,编程并不像以前认为的简单。所以在以后的学习中,不能手高眼低,一定要脚踏实地,一步步地走,自己动手去做,这样才能将知识真正学到手。

参考文献。1]王迎旭。《单片机原理及及应用》.北京:机械工业出版社。

2]张迎新。《单片微型计算机原理、应用及接**术》.北京:国防工业出版社。

3]郭天祥。《新概念51单片机c语言教程》.北京:电子工业出版社。

4]蔡明文冯先成编著。《单片机课程设计》.北京:华中科技大学出版社。

5]王晓明。《电动机的单片机控制》.北京航空航天大学出版社

附录:#include <>51芯片管脚定义头文件。

#include <>内部包含延时函数 _nop_()

#define uchar unsigned char

#define uint unsigned int

#define delaynop();

uchar code ffw[8]=;正转相序编码表。

uchar code rev[8]=;反转相序编码表。

sbit k1 = p3^2运行与停止。

sbit k2 = p3^3加速。

sbit k3 = p3^4减速。

sbit k4 = p3^5方向转换。

sbit beep = p3^6蜂鸣器。

sbit lcd_rs = p2^0

sbit lcd_rw = p2^1;

sbit lcd_en = p2^2;

bit on_off=0运行与停止标志。

bit direction=1方向标志。

uchar code cdis0welcome to "}

uchar code cdis1[ ]

uchar code cdis2[ ]

uchar code cdis3[ ]

uchar code cdis4[ ]

uchar code cdis5[ ]

uchar code cdis6[ ]

uchar code cdis7[ ]

uchar m,v=0,q=0,j;

uchar rate=5预设定速度档。

uchar data_temp1,data_temp2,data_te***,data_temp4;

uint zs,data_temp;

void delay(uint t) /延时t毫秒函数。

uchar k;

while(t--)

void delayb(uchar x) /x*0.14ms

void beep蜂鸣器。

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...