江南大学 物联网工程学院
课程名称:设计题目:班 级:姓 名:指导教师:
课程设计报告
单片机原理及应用 基于单片机的步进电机控制器设计 学 号:
评 分: 2015 年 7 月 1 日
目录
一、 设计目的-------------------------------------------错误!未定义书签。
二、 设计要求-------------------------------------------3 三、仪器设备--------------------------------------------3 四、硬件线路图及主要芯片说明----------------------------3 1、硬件线路图---------------------------------------3 2、步进电机驱动芯片ULN2003--------------------------4 3、数码管显示译码芯片74LS138-----------------------5 五、硬件线路图及主要芯片说明----------------------------6 1、矩阵键盘扫描原理---------------------------------6 2、数码管动态显示原理-------------------------------6 3、数据存放单元安排---------------------------------7 六、程序设计方框图--------------------------------------7 七、步进电机控制系统主要程序----------------------------9 1、四位数码管显示程序-------------------------------9 2、矩阵键盘程序-------------------------------------9 3、步进电机正转------------------------------------10 4、步进电机反转------------------------------------10 5、延时函数----------------------------------------11 6、主函数------------------------------------------11 八、课程设计体会---------------------------------------12
一、设计目的
通过具体小型测试系统设计,实践单片机系统设计及调试的全过程,以加深对单片机内部结构、功能和指令系统的理解,并进一步学习单片机开发系统的应用及一些外围芯片的接口和编程方法,初步掌握单片机系统的硬、软件设计技术及调试技巧。
二、设计要求
1、电机转速可以平稳控制
2、通过键盘和显示器可以设置电机的转速 3、显示电机的速度趋势
三、仪器设备
1、51单片机,步进电机 2、步进电机驱动芯片ULN2003D 3、四位数码管显示 4、矩阵键盘
四、硬件线路图及主要芯片说明
1、硬件线路图
图4-1 硬件原理图
2、步进电机驱动芯片ULN2003 (1)内部结构
ULN2003是一个非门电路,包含7个单元,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,起续流作用(在感性负载中,电路断开后会产生很大的反电动势,为防止损坏达林顿管,接反相的二极管来构成通路,使之转换为电流)。
图4-2 ULN2003管脚连接图
(2)驱动原理
利用芯片内部构成的达林顿管可以放大驱动电流。达林顿管由两个三极管串联,第一个管子的发射极接第2个管子的基极组成,所以达林顿管的放大倍数是两个三极管放大倍数的乘积,具有很大的放大倍数。集电极开路,能输出较大的电流(集电极电位高)。所以利用ULN2003与MCU引脚相连,可以驱动步进电机。
图4-3 达林顿管内部组成
3、数码管显示译码芯片74LS138 (1)工作原理
74LS138 为3 线-8 线译码器,由真值表可知,4、5、6脚是控制脚,6脚为高电平而4、5脚都为低电平时,74LS138才对1、2、3脚的输入进行译码,选择和从这三个管脚输入的三位二进制码相应的某一个输出脚输出低电平,否则所有的输出脚都输出高电平。
图4-4 74LS138 引脚及真值表
(2)数码管译码原理
数码管的位选端通过138译码器连接到单片机的P2.2,P2.3,P2.4口,即通过控制P2.2,P2.3,P2.4口来对数码管进行位选。
图4-5 74LS138 连接图
五、步进电机控制系统主要工作原理
1、矩阵键盘扫描原理
此次应用矩阵键盘的扫描方法为行列扫描,即通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,最终确定是哪一个按键按下了。
图5-1 矩阵键盘原理图
2、数码管动态显示原理
在实际的单片机系统中,往往需要多位显示。此次课程设计采用了四位共阴数码管,当数码管有多个位时,它们 的公共端是独立的,而负责显示数字的“段选线”全部是对应连在一起的,独立的公共端可控制多位中的哪一位数字点亮,即进行位选。本文采用了74LS138芯片对四位数码管进行位选。连在一起的段选线可以控制这位点亮的数码管具体显示什么数字。
动态显示是一种最常见的多位显示方法,应用非常广泛。动态显示是多个数码管,交替显示,利用人的视觉暂停作用使人看到多个数码管同时显示的效果。
图5-2 数码管动态显示原理图
3、数据存放单元安排
①将共阴数码管显示值的显示码存放在一数组
unsigned char code DIG_CODE[17]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码 ②定义一全局变量来改变步进电机转速
unsigned char speed;
③定义一全局变量存放读取到的键值
unsigned char KeyValue;
④记录按键的状态,0没有按键按下,1有按键按下
unsigned char KeyState;
⑤定义一数组用来存放要显示的8位数的值
unsigned char DisplayData[8];
六、程序设计方框图
图6-1系统总体设计方框图
图6-2系统主程序流程图
七、步进电机控制系统主要程序
1、四位数码管显示程序
2、矩阵键盘程序
3、步进电机正转 双四拍
4、步进电机反转 双四拍
5、延时函数
6、主函数
通过键值显示,判断正转反转以及速度值的设定。
11
八、课程设计体会
通过此次单片机课程设计,再次熟悉了基于51单片机的C语言程序编写。将矩阵键盘和数码管显示以及步进电机驱动有机的结合起来。如果学院配备了测速元件,则还可以用PID算法进行速度控制,可以做的更好。目前我只实现了可以0-127 的范围内调速并显示级数,同时可对电机进行正反转停止的功能。 最后感谢老师大三上的悉心教导,我将会在以后的学习中继续努力。
12
江南大学 物联网工程学院
课程名称:设计题目:班 级:姓 名:指导教师:
课程设计报告
单片机原理及应用 基于单片机的步进电机控制器设计 学 号:
评 分: 2015 年 7 月 1 日
目录
一、 设计目的-------------------------------------------错误!未定义书签。
二、 设计要求-------------------------------------------3 三、仪器设备--------------------------------------------3 四、硬件线路图及主要芯片说明----------------------------3 1、硬件线路图---------------------------------------3 2、步进电机驱动芯片ULN2003--------------------------4 3、数码管显示译码芯片74LS138-----------------------5 五、硬件线路图及主要芯片说明----------------------------6 1、矩阵键盘扫描原理---------------------------------6 2、数码管动态显示原理-------------------------------6 3、数据存放单元安排---------------------------------7 六、程序设计方框图--------------------------------------7 七、步进电机控制系统主要程序----------------------------9 1、四位数码管显示程序-------------------------------9 2、矩阵键盘程序-------------------------------------9 3、步进电机正转------------------------------------10 4、步进电机反转------------------------------------10 5、延时函数----------------------------------------11 6、主函数------------------------------------------11 八、课程设计体会---------------------------------------12
一、设计目的
通过具体小型测试系统设计,实践单片机系统设计及调试的全过程,以加深对单片机内部结构、功能和指令系统的理解,并进一步学习单片机开发系统的应用及一些外围芯片的接口和编程方法,初步掌握单片机系统的硬、软件设计技术及调试技巧。
二、设计要求
1、电机转速可以平稳控制
2、通过键盘和显示器可以设置电机的转速 3、显示电机的速度趋势
三、仪器设备
1、51单片机,步进电机 2、步进电机驱动芯片ULN2003D 3、四位数码管显示 4、矩阵键盘
四、硬件线路图及主要芯片说明
1、硬件线路图
图4-1 硬件原理图
2、步进电机驱动芯片ULN2003 (1)内部结构
ULN2003是一个非门电路,包含7个单元,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,起续流作用(在感性负载中,电路断开后会产生很大的反电动势,为防止损坏达林顿管,接反相的二极管来构成通路,使之转换为电流)。
图4-2 ULN2003管脚连接图
(2)驱动原理
利用芯片内部构成的达林顿管可以放大驱动电流。达林顿管由两个三极管串联,第一个管子的发射极接第2个管子的基极组成,所以达林顿管的放大倍数是两个三极管放大倍数的乘积,具有很大的放大倍数。集电极开路,能输出较大的电流(集电极电位高)。所以利用ULN2003与MCU引脚相连,可以驱动步进电机。
图4-3 达林顿管内部组成
3、数码管显示译码芯片74LS138 (1)工作原理
74LS138 为3 线-8 线译码器,由真值表可知,4、5、6脚是控制脚,6脚为高电平而4、5脚都为低电平时,74LS138才对1、2、3脚的输入进行译码,选择和从这三个管脚输入的三位二进制码相应的某一个输出脚输出低电平,否则所有的输出脚都输出高电平。
图4-4 74LS138 引脚及真值表
(2)数码管译码原理
数码管的位选端通过138译码器连接到单片机的P2.2,P2.3,P2.4口,即通过控制P2.2,P2.3,P2.4口来对数码管进行位选。
图4-5 74LS138 连接图
五、步进电机控制系统主要工作原理
1、矩阵键盘扫描原理
此次应用矩阵键盘的扫描方法为行列扫描,即通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,最终确定是哪一个按键按下了。
图5-1 矩阵键盘原理图
2、数码管动态显示原理
在实际的单片机系统中,往往需要多位显示。此次课程设计采用了四位共阴数码管,当数码管有多个位时,它们 的公共端是独立的,而负责显示数字的“段选线”全部是对应连在一起的,独立的公共端可控制多位中的哪一位数字点亮,即进行位选。本文采用了74LS138芯片对四位数码管进行位选。连在一起的段选线可以控制这位点亮的数码管具体显示什么数字。
动态显示是一种最常见的多位显示方法,应用非常广泛。动态显示是多个数码管,交替显示,利用人的视觉暂停作用使人看到多个数码管同时显示的效果。
图5-2 数码管动态显示原理图
3、数据存放单元安排
①将共阴数码管显示值的显示码存放在一数组
unsigned char code DIG_CODE[17]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码 ②定义一全局变量来改变步进电机转速
unsigned char speed;
③定义一全局变量存放读取到的键值
unsigned char KeyValue;
④记录按键的状态,0没有按键按下,1有按键按下
unsigned char KeyState;
⑤定义一数组用来存放要显示的8位数的值
unsigned char DisplayData[8];
六、程序设计方框图
图6-1系统总体设计方框图
图6-2系统主程序流程图
七、步进电机控制系统主要程序
1、四位数码管显示程序
2、矩阵键盘程序
3、步进电机正转 双四拍
4、步进电机反转 双四拍
5、延时函数
6、主函数
通过键值显示,判断正转反转以及速度值的设定。
11
八、课程设计体会
通过此次单片机课程设计,再次熟悉了基于51单片机的C语言程序编写。将矩阵键盘和数码管显示以及步进电机驱动有机的结合起来。如果学院配备了测速元件,则还可以用PID算法进行速度控制,可以做的更好。目前我只实现了可以0-127 的范围内调速并显示级数,同时可对电机进行正反转停止的功能。 最后感谢老师大三上的悉心教导,我将会在以后的学习中继续努力。
12