华科单片机课设_直流电机转速测量与显示.docx

华科单片机课设_直流电机转速测量与显示.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华科单片机课设_直流电机转速测量与显示

单片机原理及应用课程设计报告设计题目:直流电机转速测量与显示摘要:本系统采用SST89E58单片机智能控制,结合外围电子电路,设计的测量直流电动机转速系统。在软件设计上采用了单片机的汇编语言设计,通过单片机内部定时/计数器同时动作,通过测量给定实验装置的正弦波信号简介测量电动机转速。测量结果在四位七段式数码管上输出显示,结果精确到整数位。软件设计简单明了,适用于测量频率从1~9999Hz的脉冲信号。关键词:单片机;信号;频率;比较器。一、系统总体方案及硬件设计用示波器测量给定的电动机装置的信号发现此信号是一个300Hz左右的类似正弦波的波形,因此设计的实验装置只要能测量出此正弦波的频率即为电机转速。此方案先将正弦波信号转变为方波信号,然后采用1S测信号脉冲次数,用一个定时计数器做定时中断,定时1S,另一个定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1S后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器的值就是1S内检测信号的下边沿次数即待测信号的频率。待数据处理显示完成后开始下一次测量。原理图如图1所示。图1根据该实验原理待测信号的频率不应大于计数器的最大值65535,足以满足设计要求。这个方法误差比较均衡,且易于扩大量程,且可测量任意占空比的方波信号,但由于单片机的限制频率越高误差表现更明显。LM339比较器电路将正弦波变成正方波,输入到单片机的P3.5(T1)口,计数器T1计数。选用4个共阴极数码管,复用单片机P0口,选用两片74HC574分别锁存位选和段选信号用来显示结果。系统电路图见附录一(用正弦信号代替电机)。二、软件设计主程序流程图:显示子程序流程图:数据处理子程序:定时器T0中断子程序:软件代码见附录二。结束语本次设计将模拟电子电路和单片机的知识相结合,对自己所学知识试一次很好的实践机会。因为我自己对这两门课都比较熟,而且也有相关经验,器件选择没有任何困难,实验室给我们创造了很好的硬件条件,电路板元件齐全。程序上我们尽量多的借鉴了现有的子程序,节省了大量时间,主要的精力都放在对程序时序的调节和硬件调试上面,最终顺利完成设计,测试的时候能随着频率的变化实时显示,误差在1Hz左右。在此次的设计的过程中更进一步地熟悉了芯片的结构及掌握了各种硬件电路的工作原理和其具体的使用方法。也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。还有一个很大的收获就是接触了Proteus这个非常方便的用来仿真单片机的软件,极大地方便了我们的设计,不用一直呆在实验室,不用担心硬件的问题。这次实验设计题目较为简单,虽然完成了要求,但是还是留下了一点遗憾。在程序编写过程中,关于数据处理的部分用汇编语言编写繁复冗长,远远不如用C51简明,体会到了C51的优点。可惜自己从来没用过C51,希望以后能多加学习。最后感谢帮助我解决问题的老师和同学,真诚的说声谢谢!参考文献[1]康华光主编.电子技术基础(第四版).北京:高等教育出版社,1999[2]汪建.单片机原理及应用技术.武汉:华中科技大学出版社,2012附录一:附录二:D_DAT0EQU50HD_DAT1EQUD_DAT0+1D_DAT2EQUD_DAT1+1D_DAT3EQUD_DAT2+1H_DAT0EQUD_DAT3+1H_DAT1EQUH_DAT0+1ORG0000HAJMPMAINORG 000BHAJMP INT_T0ORG0080HMAIN:MOVSP,#30H;初始化堆栈指针MOVP0,#0CLRP1.1;初始化有关I/O口CLRP1.2MOVR0,#00H;初始化显示指针寄存器;R0指向第一位显示数字MOVR1,#01H;初始化需点亮数码管位置代码MOV R2,#14H ;定时20个0.05秒MOV TMOD,#51HMOV TH0,#3CH;置定时器初值MOV TL0,#0B0HMOV TH1,#00H;置计数器初值MOV TL1,#00HSETB TR0 ;启动定时SETB TR1 ;启动计数SETB ET0SETB EADISPLAY:MOV R0,D_DAT3;逐位显示MOV R1,#01HLCALL DISPMOV R0,D_DAT2MOV R1,#02HLCALL DISPMOV R0,D_DAT1MOV R1,#04HLCALL DISPMOV R0,D_DAT0MOV R1,#08HLCALL DISPAJMP DISPLAY;循环执行显示;******************************************************;通过574显示6位数字子程序;*****************************************************DISP:MOVA,R1

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档