基于51单片机的光电编码器测速报告.docx
- 文档编号:9623279
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:14
- 大小:24.09KB
基于51单片机的光电编码器测速报告.docx
《基于51单片机的光电编码器测速报告.docx》由会员分享,可在线阅读,更多相关《基于51单片机的光电编码器测速报告.docx(14页珍藏版)》请在冰点文库上搜索。
基于51单片机的光电编码器测速报告
基于51单片机的光电编码器测速报告
课程名称:
标题:
课程设计报告
|基于51单片机速度测量的199微机原理光电编码器课程设计
在位置控制系统中,电机可以正转或反转,因此为了对与其相连的编码器输出的脉冲进行计数,需要相应的计数器向上或向下计数,即向上或向下计数有许多计数方法,包括纯软件计数和硬件计数。
本文分别分析了两种常用的计数方法,并比较了它们的优缺点。
最后,提出了一种新的计数方法,利用80C51单片机内部的计数器实现光电编码器输出脉冲的上下可逆计数,节省了硬件资源,获得了较高的计数频率。
该设计以STC89C52RC芯片、光电编码器和1602液晶为核心,辅以必要的电路,构成了基于51单片机的光电编码器转速表该系统有两个控制键,分别用于控制每秒和每分钟的转速,并用1602液晶显示速度。
速度计测速准确,具有实时检测功能,操作简单。
关键词
:
光电编码器,51单片机,C语言,1602液晶显示器
2
1,设计任务和要求...............................................................................................4
1.1设计任务.................................................................................................................41.2设计要求.................................................................................................................4
2、方案的总体设计是.................................................................................................5
2.1方案一..............................................................................................................52.2方案二。
.................................................................................................................52.3系统采用方案..................................................................................................5
3,硬件设计...................................................................................................7
3.1单片机最小系统....................................................................................................73.2液晶模块..................................................................................................73.3系统电源....................................................................................................................83.4光电编码器电路..........................................................................................................83.5整体电路..........................................................................................................9
4,软件设计.................................................................................................10
4.1keil软件推出..............................................................................................................104.2系统程序流程..................................................................................................................10
5,仿真与实现....................................................................................................12
5.1proteus软件推出..............................................................................................................125.2模拟过程.....................................................................................................................125.3物理生产和调试........................................................................................................135.4使用说明........................................................................................................14
6,总结.................................................................................................................15
6.1设计总结..............................................................................................................156.2经验总结................................................................................................................15
7,参考文献.................................................................................................16
3
1、设计任务和要求
1.1设计任务
1)。
了解更多小型设备
2)。
巩固51单片机和c语言知识,熟悉单片机和c语言的实际操作和应用3)。
掌握仿真软件的应用并绘制原理图4)。
加深焊接技能。
提高焊接能力
5)。
熟悉调试方法和技巧。
提高解决实际问题的能力。
熟悉设计报告
1.2设计要求
1)的编写过程。
两个键控制每分钟和每秒钟显示的功能2)。
74LS74辅助光电编码器进行转向测量3)。
光电编码器输出脉冲计数4),1602液晶速度
4
2。
总体设计方案
a光电编码器是基于51单片机设计的测速方案设计实现光电编码器测量的电路;利用单片机内部精密至精密的定时计数器实现一个周期时间计数脉冲数;74LS74作为辅助芯片,完善了光电编码器在转向测量中的功能。
P0和P2端口控制1602液晶显示器的旋转速度;用P1和P1实现液晶显示器每秒和每分钟转速的功能;复位按钮功能用于实现复位操作。
调节蓝白色滑动变阻器来调节液晶的亮度。
2.1方案
51单芯片时序/计数器是一个8位时序/计数器,在模式2下工作时可以自动重新加载工作时,高八位和低八位加载相同的初始值。
当低八位满时,高八位自动加载到第八位,这样可以省略用户软件中重新加载初始值常量的语句,并且可以产生相当精确的计时时间。
由于只有8位参与计数,计数周期最多为256微秒。
使用初始值加载0x38,每200微秒进入一个中断,5000个中断为100毫秒,即实现1秒脉冲计数光电编码器的a连接到单片机的外部,光电编码器的b连接到单片机的P1来自a相的脉冲在每次触发中断时计数一个脉冲,然后检测P1.的高电平和低电平如果它是高水平,它将被倒置,如果它是低水平,它将被向前旋转。
两个反相器用作放大两个三极管作为开关连接,形成DC电机驱动电路。
P1和P1分别控制每分钟和每秒钟液晶显示器的旋转速度P2端口控制1602液晶的数据端口,P0的三个引脚控制1602液晶的数据/命令选择端、读/写选择端和使能端的显示速度
2.2方案2
51微控制器的时序/计数器在模式0下工作时为16位时序/计数器工作时,高八位和低八位分别加载初始值。
当低八位满时,高八位加1由于16位参与计数,其计数周期最多为65536微秒0xfc加载8位高初始值,0x18加载8位低初始值。
每1000微秒进入一个中断,1000个中断是1秒,这形成了1秒周期的脉冲计数。
在该方案中,74LS74芯片外部连接到方案1。
光电编码器的a连接到单片机的引脚P3,单片机的计数器1用于脉冲计数,也连接到74LS74的时钟信号接口。
光电编码器的b接74LS74的D接口。
q端接在P3引脚,q端接在P3引脚两个外部中断用于判断正旋转和负旋转P1和P1分别控制每分钟和每秒钟液晶显示器的旋转速度P2端口控制1602液晶的数据端口,P0的三个引脚控制1602液晶的数据/命令选择端、读/写选择端和使能端的显示速度
2.3系统采用方案
1)总体设计
图1是该设计的总体框图,通过该图大致介绍了整个光电编码器测速系统的主要部分。
5
图1系统一般框架
2)一般工作原理
由于定时器工作模式2是8位,所以可以加载的值太小。
对于脉冲统计的每个周期,需要输入5000个定时器中断。
由于输入中断的次数太多,当较低的8位已满且程序仍在中断子程序中运行且无法触发中断时,很容易发生这种情况。
因此,不采用工作模式2工作模式0只需输入定时中断1000次,就可以进行一个周期的脉冲统计,因此选择功能模式0在方案1中,虽然电路简单,但纯软件计数速度慢,难以满足实时性要求,容易出错。
我们可以用单片机内部的计数器来上下计数。
芯片中有两个16位定时计数器,可用于计数脉冲。
两个外部中断用于检测正旋转和负旋转,从而避免了对每个脉冲进行高低电平检测的步骤。
控制键、液晶和复位的设计与方案1和方案2相同。
总而言之,最终计划被确定为计划2。
6
3,硬件设计
3.1单片机最小系统
单片机要正常工作,首先要产生片上时钟信号在单片机中,振荡器的输入端XTAL1和输出端XTAL2之间连接一个应时晶体振荡器,可以构成自激振荡器电容器串联在两端之间,并在两个电容器之间接地,以稳定频率并微调振荡频率。
电容通常约为30PF,振荡脉冲频率范围为0-24兆赫该电路选用12兆赫晶体振荡器时钟电路图如下:
图2
单片机的时钟电路图,像其它微处理器一样,应该使CPU和系统部件处于一定的初始状态,并从头开始工作。
这需要复位操作复位电路有两种模式:
上电自动复位和按键自动复位。
上电自动复位仅在电源开始接通时复位,然后需要断电重启才能再次复位,不方便。
按键自动复位不仅可以在电源打开时复位,也可以在任何时候通过按键复位。
因此,选择了按键复位模式复位电路如下:
图3复位电路图
3.2液晶模块
该可调DC电机的最大速度为1XXXX每分钟。
从以下事实可以看出,各种仿真器制造商纷纷宣布全力支持Keil。
Keil提供了一个完整的开发计划,包括C编译器、宏汇编、连接器、库管理和一个强大的模拟调试器等。
这些部分通过集成开发环境(uVision)进行组合运行Keil软件需要奔腾或更多的中央处理器,16MB或更多的内存,20M或更多的可用硬盘空间,WIN98,nt,WIN2000,WINXP和其他操作系统对于使用51系列单片机的爱好者来说,掌握该软件的使用是非常必要的。
如果你用C语言编程,Keil几乎是你唯一的选择(目前,你只能在中国购买这个软件,你购买的模拟机可能只支持这个软件)。
即使你不使用C语言,只使用汇编语言进行编程,它方便易用的集成环境和强大的软件模拟和调试工具也会让你事半功倍。
KeilC51生成的目标代码非常高效,大多数语句生成的汇编代码简洁易懂。
在开发大型软件时,它能更好地体现高级语言的优势。
与汇编语言相比,C语言在功能、结构、可读性和可维护性方面具有明显的优势,易于学习和使用。
用汇编语言,然后用C语言开发它,我有了更深的体会。
4.2系统程序流程
1)主程序流程
图8是光电编码器测速系统的主程序流程图根据该图,可以直观地理解,整个控制程序的总趋势是首先扫描每秒速度和每分钟速度的控制键,然后在确定显示速度的模式之后执行液晶显示程序来显示速度。
然后它返回到控制按键扫描的程序,从而连续重复这个循环。
图8主程序流程图
10
2)中断程序流程图
图9是光电编码器测速系统的中断程序流程图脉冲计数周期主要由单片机内部精确到毫秒的定时器构成,每次以相同的时间间隔中断,中断1000次形成一个周期。
当一个周期的时间到达时,将进行脉冲计算。
在一个周期时间到来之前进入主程序。
以便控制每个周期中方波的高电平和低电平的持续时间,即控制方波的占空比从图中还可以清楚地看出,中断程序主要涉及方波的调节。
首先,判断高水平是否没有达到规定时间,如果没有,则允许gdp+1,即保持高水平。
如果国内生产总值是100,这意味着主要计划调整了方波,以保持高水平的所有时间。
如果国内生产总值为0,它可以一直保持高水平。
如果高电平达到调节时间,让控制电机的两个引脚为低电平,并让ddp+1,即让低电平保持不变如果低电平没有达到规定时间,进入主程序保持低电平,等待下一次中断。
如果低水平达到规定时间,让ddp=gdp=0,即重新开始下一个方波。
图9定时器中断程序流程图
11
5,仿真与实现
5.1proteus软件简介
Proteus是世界著名的EDA工具(仿真软件)。
从原理图布局、代码调试到单片机与外围电路的联合仿真,从一键开关到PCB设计,真正实现了从概念到产品的完整设计。
目前,它是世界上唯一集成电路仿真软件、印刷电路板设计软件和虚拟模型仿真软件的设计平台。
其处理器型号支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430。
在XXXX,增加了Cortex和DSP系列处理器,并不断增加其他系列的处理器型号。
在编译方面,它也支持KEIL、IAR、MPLAB和其他编译器PROTEUS不仅可以可视化许多单片机实例的功能,还可以可视化许多单片机实例的运行过程前者能在一定程度上达到物理演示实验的效果,而后者难以达到。
然而,其元件和连接电路与传统的单片机实验硬件高度对应。
这在一定程度上取代了传统单片机实验教学的功能,如元件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
利用Proteus软件仿真设计单片机系统是虚拟仿真技术与计算机多媒体技术相结合的综合应用,有利于培养学生的电路设计能力和仿真软件的操作能力。
单片机课程设计与全国大学生电子设计实践证明,在进行实际生产之前,如果利用Proteus进行系统仿真开发成功,可以大大提高单片机系统的设计效率。
因此,变形杆菌具有较高的推广利用价值。
由于所设计的光电编码器无法在仿真软件中进行仿真,只能对液晶显示部分进行仿真,因此忽略了仿真原理图。
图10是使用keil软件编写程序时的调试过程图我用C语言写它第一次编写程序后,编译它。
对话框中显示了几个错误。
点击错误提示,主程序将只显示光标到错误的地方。
根据这个错误提示,进行修改,再次编译,程序仍然会显示错误。
重复前面的操作。
经过几次修改后,不会出现如图所示的错误提示。
这是程序的编写方式。
它需要不断修正才能准确。
该程序写得很好,并编译成十六进制文件。
只有十六进制文件可以刻录到微控制器
12
图10keil软件模拟图
5.3物理生产与调试
图11是物理图的背面,图12是物理图的正面
原理图和孔板图良好,编写程序后即可开始焊接。
焊接开始后,燃烧程序进入,但液晶无法显示。
因此,我对液晶显示部分进行了仿真,仿真可以实现正确的显示。
然后我检查是否有任何焊接错误,没有发现错误。
我想如果我能正确控制1602液晶针,它应该能显示。
所以我在外观上做了P2=0xaa,en=1,rw=0,rs=1,然后我用万用表检查液晶上的液晶是否和我设定的一样,电平引脚是否和我设定的一样。
我又让P2=0x55,en=0,rw=1,rs=0。
结果,我发现rs液体引脚是高的,我把它设置为低。
我用万用表检查,发现rs引出的电线与电源短路,但我看不到短路的地方。
我先将rs引出的导线焊接成两段,然后检查一段是否短路,然后焊接成两段,继续检查,最后发现短路的地方,原来是两个焊盘本身连接在一起。
我将用电烙铁焊接其中一个焊盘,并用电线连接起来。
通电后,液晶将立即正常显示。
图11物理图背面
图12物理图正面
13
5.4指令
如图12所示,该光电编码器测速系统的组成部分包括:
STC89C52单片机、光电编码器、74LS74芯片、40针集成电路插座、光电编码器三个四针触摸开关、四个电阻、一个电解电容、两个陶瓷电容、一个六角自锁开关、一个晶体振荡器和一个103蓝白色滑动变阻器
整个光电编码器测速系统安装在20×10大小孔板上。
1602液晶显示器用于显示测量的转速。
单片机下面的两个键是控制键。
从左到右,第一个是用于显示每秒转速的控制键,第二个是用于显示每分钟转速的控制键控制键的右侧是一个74LS74芯片,四个行引脚(用于连接光电编码器)和两个1K电阻构成光电编码器的测速电路部分。
单片机右侧的蓝白色滑动变阻器通过调节蓝白色滑动变阻器来调节液晶的亮度该键是复位键,系统将在每次按下时复位一次,返回初始状态。
重置按钮下方的蓝白色自锁开关是一个电源开关。
当行针连接到电源时,当按下蓝白色自锁开关时,系统将通电,当按下蓝白色自锁开关时,系统将断电。
蓝白自锁开关上方的红色发光二极管是电源指示灯。
当系统通电时,指示灯会亮起,当系统断电时,指示灯会变暗。
蓝白色自锁开关下的四排引脚从上到下依次连接5VVCC、RXD、TXD和GND
应在使用前通电。
由于在开关连接到电源后,系统尚未通电,因此在按下蓝色和白色自锁开关后,电源接通开机时,当单片机连接到电源时,1602液晶显示器的第一行显示“欢迎使用”,第二行显示real_speed:
0000您可以按下显示每秒速度的键或以每分钟显示的速度旋转主轴,与按下的控制键相对应的旋转速度将显示在液晶上。
如果是正向旋转,液晶的第二行将显示real_speed:
xxxx。
如果是反向旋转,液晶将显示real_speed:
-xxxx如果不按控制键,液晶屏的第二行将显示真实速度:
0000
14
6,概要
6.1设计概要
我的课题是基于51单片机的光电编码器测速当我选择这个话题时,我开始思考光电编码器在日常生活中是什么样子,如何测量速度,以及需要什么设备。
在决定设计哪种速度测量系统后,我开始列出这个速度测量系统所需的部件。
本光电编码器测速系统是基于给定的显示系统设计的,所以在设计电路原理图之前,首先要掌握给定显示系统原理图的连接方式和连接原理。
在我理解了所有这些之后,我将考虑如何在现有的基础上设计外围设备来实现期望的功能。
经过深思熟虑,决定只需在外围硬件上增加两个触摸开关、一些电阻和一个74LS74芯片,就可以实现光电编码器的测速功能因为我希望焊接尽可能紧密因此,为了方便以后的焊接,减少焊接误差,有必要在孔板软件中绘制孔板图。
设计电路时,有必要最大限度地减少飞线的使用。
完成绘图后,将它与给定的图表进行比较,以确保没有连接错误。
绘图完成后,对孔板图进行校正,使电路不被破坏,更直,并且在连接处没有连接头。
校正后,保存孔板图。
硬件已经设计好。
接下来,我将为我想设计的光电编码器测速系统设计软件,使其智能化。
经过几次调试,我的程序在keil软件中显示0错误用网络标签的形式来画DXP的示意图更方便。
只需将系统分成小模块,在组件接口上标记出与接口相连的单片机的相应管脚,然后将标记好的模块放置在不同的区域。
在画出该图的总体结构并与给定的图进行比较后,在确认没有任何连接错误后,我修改了DXP原理图,使电路不开路,更直。
画出DXP原理后,完成了整个电路的设计这大概就是我的设计过程和思维方式。
6.2经验总结我认为在项目设计中获得的经验是非常重要的一部分,它是经验的积累和总结。
通过这次供应链管理课程设计,我不仅加深了对供应链管理理论的理解并将其运用到实践中,还学会了如何培养我们的创新精神,从而不断战胜和超越自己。
创新可以是在原有基础上的改进,从而不断完善其功能,成为现实。
我们已经安排了这个单片机课程设计,给我们一个很好的实践来应用我们所学的知识。
对于本课程的设计,我们花了很多心思,不仅复习和巩固了本课程的理论内容,还丰富了与本专业相关的其他知识,如软件应用等。
我们在探索中学习,在探索中成长,在学习过程中带着问题学习。
我发现效率很高。
这就是我为这个课程设计所做的,应该让人们一目了然地理解你的想法,这也为数据的保存和交换提供了便利。
我认为在课程设计中遇到问题是很正常的,但是我们应该记录下每次遇到的问题,并清楚地分析它们,以免在课程设计中犯下下次遇到同样问题的错误。
事实上,这个设计也是我们所学知识的综合应用。
这使我深刻地认识到,学习单片机必须有一定的基础,电子技术中的数字电路和模拟电路,尤其是数字电路,必须有一定的理论基础。
程序设计语言中也应该有汇编语言或C语言。
要成为单片机的主人,我们必须先学好汇编语言,然后再转到C语言,所以我们在学习C语言的时候不能忘记以前的知识。
我们应该把所学的知识紧密结合起来,综合运用。
所谓的设计需要创新。
只有全面应用知识,我们才能真正设计好。
15
7,参考文献
[1]杨长兴,刘卫国。
C++编程:
中国铁道部出版社
[2]李朝清。
单片机原理与接口技术(第三版):
北京航空航天大学出版社3]康。
电子技术基础
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 光电 编码器 测速 报告