华科单片机课设_直流电机转速测量与显示_第1页
华科单片机课设_直流电机转速测量与显示_第2页
华科单片机课设_直流电机转速测量与显示_第3页
华科单片机课设_直流电机转速测量与显示_第4页
华科单片机课设_直流电机转速测量与显示_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用课程设计报告设计题目:直流电机转速测量与显示目录摘要:- 2 -一、系统总体方案及硬件设计- 3 -二、软件设计- 4 -结束语- 6 -参考文献- 6 -附录一:- 8 -附录二:- 9 -摘要:本系统采用SST89E58单片机智能控制,结合外围电子电路,设计的测量直流电动机转速系统。在软件设计上采用了单片机的汇编语言设计,通过单片机内部定时/计数器同时动作,通过测量给定实验装置的正弦波信号简介测量电动机转速。测量结果在四位七段式数码管上输出显示,结果精确到整数位。软件设计简单明了,适用于测量频率从19999Hz的脉冲信号。关键词:单片机;信号;频率;比较器。一、系统总体方案

2、及硬件设计用示波器测量给定的电动机装置的信号发现此信号是一个300Hz左右的类似正弦波的波形,因此设计的实验装置只要能测量出此正弦波的频率即为电机转速。此方案先将正弦波信号转变为方波信号,然后采用1S测信号脉冲次数,用一个定时计数器做定时中断,定时1S,另一个定时计数器仅做计数器使用,初始化完毕后同时开启两个定时计数器,直到产生1S后立即关闭T0和T1(起保护程序和数据的作用)取出计数器寄存器的值就是1S内检测信号的下边沿次数即待测信号的频率。待数据处理显示完成后开始下一次测量。原理图如图1所示。图1根据该实验原理待测信号的频率不应大于计数器的最大值65535,足以满足设计要求。这个方法误差比

3、较均衡,且易于扩大量程,且可测量任意占空比的方波信号,但由于单片机的限制频率越高误差表现更明显。LM339比较器电路将正弦波变成正方波,输入到单片机的P3.5(T1)口,计数器T1计数。选用4个共阴极数码管,复用单片机P0口,选用两片74HC574分别锁存位选和段选信号用来显示结果。系统电路图见附录一(用正弦信号代替电机)。二、软件设计主程序流程图:显示子程序流程图:数据处理子程序:定时器T0中断子程序:软件代码见附录二。结束语本次设计将模拟电子电路和单片机的知识相结合,对自己所学知识试一次很好的实践机会。因为我自己对这两门课都比较熟,而且也有相关经验,器件选择没有任何困难,实验室给我们创造了

4、很好的硬件条件,电路板元件齐全。程序上我们尽量多的借鉴了现有的子程序,节省了大量时间,主要的精力都放在对程序时序的调节和硬件调试上面,最终顺利完成设计,测试的时候能随着频率的变化实时显示,误差在1Hz左右。在此次的设计的过程中更进一步地熟悉了芯片的结构及掌握了各种硬件电路的工作原理和其具体的使用方法。也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。还有一个很大的收获就是接触了Proteus这个非常方便的用来仿真单片机的软件,极大地方便了我们的设计,不用一直呆在实验室,不用担心硬件的问题。这次实验设计题目较为简单,虽然完成了要求,但是还是留下了一点遗憾。在程序编写过程中,关于数

5、据处理的部分用汇编语言编写繁复冗长,远远不如用C51简明,体会到了C51的优点。可惜自己从来没用过C51,希望以后能多加学习。最后感谢帮助我解决问题的老师和同学,真诚的说声谢谢!参考文献1康华光主编.电子技术基础(第四版).北京:高等教育出版社,19992汪建.单片机原理及应用技术.武汉:华中科技大学出版社,2012附录一:附录二:D_DAT0EQU50HD_DAT1EQUD_DAT0+1D_DAT2EQUD_DAT1+1D_DAT3EQUD_DAT2+1H_DAT0EQUD_DAT3+1H_DAT1EQUH_DAT0+1ORG0000HAJMPMAINORG 000BHAJMP INT_T0

6、ORG0080HMAIN: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,#01HL

7、CALL 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;取位代码MOVP0,A;位代码送P0口SETBP1.2NOPCLRP1.2;产生一个锁存脉冲,锁存位代码MOVA,R0;取需显示的数字MOVDPTR,#DISPD;装载笔画编码表首地址MOVCA,A+DPTR;取需显示数字笔画代码MOVP0,A;笔画代码送到P0口SETBP1

8、.1NOPCLRP1.1;产生一个锁存脉冲,锁存笔画代码DELAY:MOVR7,#40HDELY1:MOVR6,#0FHDELY2:DJNZ R6,$;$代表当前行DJNZR7,DELY1RETHTD:MOVD_DAT3,#00H;将结果千位清0MOVD_DAT2,#00HMOVD_DAT1,#00HMOVD_DAT0,#00HH1000:CLRC;进位位C清0MOVA,H_DAT0;源数据低位装载到累加器A中MOVR6,A;备份源数值低位到寄存器R6中SUBBA,#0E8H;源数值低位减去1000的低位0E8HMOVH_DAT0,A;余数存回到源数值低位存储单元MOVA,H_DAT1;源数值

9、高位装载到累加器A中MOVR7,A;备份源数值高位到寄存器R7中SUBBA,#03H;源数值高位带借位减1000的高位03HMOVH_DAT1,A;余数存回到源数值低位存储单元INCD_DAT3;千位增1JNCH1000;如果没有借位则利用余数循环再减 ;有借位表明为最后一次无效减;程序顺序执行,应还原最后一次修改值MOVH_DAT0,R6MOVH_DAT1,R7;用备份值作为新的源数值(余数)DECD_DAT3;千位数减1,去掉最后一次无效减的影响H100:MOVA,H_DAT0;源数值低位装载到累加器A中MOVR6,A;备份源数值低位到寄存器R6中CLRC;清0进位位CSUBBA,#100

10、;减去100MOVH_DAT0,A;存回余数低位MOVA,H_DAT1;取源数值高位SUBBA,#00H;减100的高位0,实际上是减去借位位MOVH_DAT1,A;存回余数高位JCH10;有借位则跳到下一步继续运算INCD_DAT2;没有借位,百位增1AJMPH100;没有借位继续减;注意本轮循环中最后一次减时百位未增1;所以不存在还原的问题;进入下一轮时,源数值(余数)都在R6中H10:CLRCMOVA,R6;源数值(低位)装载到累加器A中;到此源数值高位已经为0,不用再参加计算MOVD_DAT0,A;存回源数值低位;如果是最后一次减,则此值即为个位SUBBA,#10;减去10MOVR6,A;保存余数JCH1;有借位,运算结束INCD_DAT1;没有借位,十位增1LJMPH10;没有借位继续减H1:RETINT_T0:MOV TH0,#3CH ;置定时初值MOV TL0,#0B0HDJNZ R2,RETURN;R2不等于0则转移MOV R2,#14HCLR TR1 ;停止计数CLR TR0MOV H_DAT0,TL1 ;TL1值送累加器AMOV H_DAT1,TH1 ;TL1值送累加器ALC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论