课程名称:题 目:
课程设计报告
微机原理课程设计 基于51单片机的光电编码器测速
摘要
光电编码器是高精度位置控制系统常用的一种位移检测传感器。在位置控制系统中,由于电机既可能正转,也可能反转,所以要对与其相连的编码器输出的脉冲进行计数,要求相应的计数器既能实现加计数,又能实现减计数,即进行可逆计数。其计数的方法有多种,包括纯粹的软件计数和硬件计数。文中分别对这两种常用的计数方法进行了分析,对其优缺点进行了对比,最后提出了一种新的计数方法,利用80C51单片机内部的计数器实现对光电编码器输出脉冲的加减可逆计数,既节省了硬件资源,又能得到较高的计数频率。本设计就是由单片机STC89C52RC芯片,光电编码器和1602液晶为核心,辅以必要的电路,构成了一个基于51单片机的光电编码器测速器。该系统有两个控制按键,分别用于控制每秒的转速和每分钟的转速,并将速度用1602液晶显示出来。该测速器测速精准,具有实时检测的功能,操作简单。
关键词:光电编码器,51单片机,C语言,1602液晶
2
目录
一、设计任务与要求 ................................................................................................... 4
1.1 设计任务 ............................................................................................................................ 4 1.2 设计要求 ............................................................................................................................ 4
二、方案总体设计 ....................................................................................................... 5
2.1 方案一 ................................................................................................................................ 5 2.2 方案二 ................................................................................................................................ 5 2.3 系统采用方案 .................................................................................................................... 5
三、硬件设计 ............................................................................................................... 7
3.1 单片机最小系统 ................................................................................................................ 7 3.2 液晶显示模块 .................................................................................................................... 7 3.3 系统电源 ............................................................................................................................ 8 3.4光电编码器电路 ................................................................................................................. 8 3.5 整体电路 ............................................................................................................................ 9
四、软件设计 ............................................................................................................. 10
4.1 keil软件介绍 .................................................................................................................... 10 4.2 系统程序流程 .................................................................................................................. 10
五、仿真与实现 ......................................................................................................... 12
5.1 proteus软件介绍 .............................................................................................................. 12 5.2 仿真过程 .......................................................................................................................... 12 5.3 实物制作与调试 .............................................................................................................. 13 5.4 使用说明 .......................................................................................................................... 14
六、总结 ..................................................................................................................... 15
6.1 设计总结 .......................................................................................................................... 15 6.2 经验总结 .......................................................................................................................... 15
七、参考文献 ............................................................................................................. 16
3
一、设计任务与要求
1.1 设计任务
1).对更多小器件的了解
2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用 3).掌握仿真软件的运用和原理图的绘制 4).加深焊接的技巧,提高焊接的能力
5).熟悉调试方法和技巧,提高解决实际问题的能力 6).熟悉设计报告的编写过程
1.2 设计要求
1).两个按键控制显示每分钟和每秒钟的功能 2).74LS74辅助光电编码器测转向 3).光电编码器输出脉冲计数 4).1602液晶显示转速
4
二、方案总体设计
设计一个基于51单片机的光电编码器测测速。设计一个电路来实现光电编码器测量;利用单片机内部精确到微妙的定时计数器来实现一个周期的时间来统计脉冲数;74LS74作为辅助芯片来完善光电编码器测转向的功能;P0和P2口控制1602液晶显示转速;利用P1^1和P1^2来实现液晶显示每秒钟和每分钟转速的功能;利用复位按键功能来实现复位操作。调节蓝白滑动变阻器来调节液晶亮度。
2.1 方案一
51单片机的定时/计数器工作在模式2时是一个可以自动重装载的8位定时/计数器。工作时高八位和低八位装入相同的初值,当低八位装满时,高八位的值自动装入到第八位中,从而可以省去用户软件中重装初值常数的语句,可产生相当精确的定时时间。由于只有八位参与计数,所以其计数周期最大为256微妙。采用初值装入0x38,每个200微妙进入一次中断,5000次中断为100毫秒,即实现周期为1秒的脉冲计数。光电编码器的A相接在单片机的外部中断,光电编码器的B相接在单片机的P1^0。A相发出的脉冲每触发一次中断就就计数一个脉冲,并且再对P1^0的高低电平进行检测,如果为高电平则为反转,如果是低电平则为正转。反向器中的两个作为放大作用。再接两个三极管作为开关作用,组成一个直流电机的驱动电路。P1^1和P1^2分别控制液晶显示每分钟的转速和每秒钟的转速。P2口控制1602液晶的数据口,P0的三个引脚控制1602液晶的数据/命令选择端、读/写选择端、使能端来显示速度。
2.2 方案二
51单片机的定时/计数器工作在模式0时是一个16位位定时/计数器。工作时高八位和低八位各装入初值,当低八位装满时,高八位加1。由于是16位参与计数,所以其计数周期最大为65536微妙。采用初值高八位装入0xfc,初值低八位装入0x18,每个1000微妙进入一次中断,1000次中断为1秒,即形成周期为1秒的脉冲计数。本方案在方案1的基础上外接一个74LS74的芯片。光电编码器的A相接在单片机的P3^4的引脚,利用单片机的计数器1进行脉冲计数,同时接在74LS74的时钟信号接口。光电编码器的B相接在74LS74的D接口。Q端接在P3^2引脚,Q非端接在P3^3引脚。利用两个外部中断来判断正反转。P1^1和P1^2分别控制液晶显示每分钟的转速和每秒钟的转速。P2口控制1602液晶的数据口,P0的三个引脚控制1602液晶的数据/命令选择端、读/写选择端、使能端来显示速度。
2.3 系统采用方案
1)总体设计
图1为设计总体框架图,通过该图大致的介绍了一下整个光电编码器测速系统的各个主要部分。
5