基于霍尔传感器的转速测量系统设计毕业设计论文.doc

上传人:仙人指路1688 文档编号:3940946 上传时间:2023-03-28 格式:DOC 页数:42 大小:828.50KB
返回 下载 相关 举报
基于霍尔传感器的转速测量系统设计毕业设计论文.doc_第1页
第1页 / 共42页
基于霍尔传感器的转速测量系统设计毕业设计论文.doc_第2页
第2页 / 共42页
基于霍尔传感器的转速测量系统设计毕业设计论文.doc_第3页
第3页 / 共42页
基于霍尔传感器的转速测量系统设计毕业设计论文.doc_第4页
第4页 / 共42页
基于霍尔传感器的转速测量系统设计毕业设计论文.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《基于霍尔传感器的转速测量系统设计毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于霍尔传感器的转速测量系统设计毕业设计论文.doc(42页珍藏版)》请在三一办公上搜索。

1、题目:基于LABVIEW的霍尔测速系统设计Title: The speed system design based on LABVIEW and Hall院系名称:物理与通信电子学院 学生姓名: 学生学号: 专 业:电子信息工程 指导老师: 完成时间:2011年4月 摘 要转速是工业控制里面非常重要的一项参数。本文设计了一种基于Labview的霍尔测速系统。系统以AT89S52为控制核心,利用霍尔传感器作为转速检测元件,将得到的脉冲信号送给单片机进行处理,单片机对信号处理后显示出实时速度,同时将转速数据通过串口发送给Labview编写的上位机软件界面,上位机对转速进行显示与保存。关键词:Lab

2、view;串行通信;单片机;霍尔传感器。AbstractSpeed is very important in industrial control inside a parameter. This paper presents a system based on Labview Hall velocity. AT89S52 as the control system to the core, the use of Hall sensors as a speed detection device, will be sent to the pulse signal processing singl

3、e chip, single chip for signal processing and display the real-time speed, while the speed of data sent through the serial port PC written Labview Software interface, the host computer for display and preservation on speed.Key words: Labview; serial communication; microcontroller; Hall sensor.目 录摘 要

4、IAbstractII1 引言12 设计任务与要求13 总体方案设计14 方案论证24.1 电机的选择24.2 显示模块的选择25系统设计原理25.1 传感器模块25.1.1 霍尔传感器介绍25.1.2 传感器电路设计35.2 单片机模块45.2.1 单片机介绍45.2.2 单片机电路设计55.3 数据显示模块55.4 串口通信模块65.5 电机的调速模块76 霍尔测速的软件设计86.1 上位机软件设计86.1.1 上位机Labview整体程序框图86.1.2 VISA配置串口96.1.3 串口读数据原理96.1.4 串口数据传换106.1.5 串口数据接收处理程序图106.1.6 转速的显示

5、程序116.1.7 Excel文件生成程序116.1.8 串口数据保存116.1.9 上位机界面126.2 单片机程序设计136 霍尔测速的软件仿真147 设计系统的调试结果与数据分析157.1 上位机labview界面图与保存的转速数据157.2 转速分析168 结束语18参考文献19附录一:电路图20附录二:labview整体程序图21附录三:单片机程序程序221 引言工农工业生产和工程实践中经常需要对转速进行测量和监控,传统的测量方法都是在测量和显示在同一个地方,不方便远程控制和监测。随着计算机技术、大规模集成电路等技术的飞速发展,仪器系统与计算机软件技术紧密结合,使得传统仪器的概念得以

6、突破,出现了一种全新的仪器概念-虚拟仪器。虚拟仪器的核心是应用计算机上的虚拟仪器软件系统进行仿真。图形化软件开发环境Labview是目前实现虚拟化仪器软件设计最流行的工具之一,其广泛地被工业界、学术界和研究实验室认可并接受,被公认为标准的数据采集和仪器控制软件,现已成为测试测量和控制行业的标准软件平台1。使用Labview结合传统仪器系统对转速进行检测和控制,将大大提高工业控制的效率和操作的灵活性,而且Labview采用的是图形化的界面,将大大提高仪器的实用性,所以设计一个基于Labview的转速测量系统就非常有必要了。2 设计任务与要求基于LABVIEW的霍尔测速系统设计基本要求:(1)霍尔

7、测速范围20-300转/秒(2)上位机界面显示速度值3 总体方案设计根据设计要求,本系统主要包括电机转速控制模块,传感器模块、单片机、显示模块、串口模块和上位机软件设计模块等部分组成。首先电机转动并调节速度,然后传感器负责将电机的转速转化为脉冲信号;处理器采用AT89S52单片机,负责将脉冲计数,并计算出电机的转速发送到上位机和数码管显示出来;显示器将单片机所传送的转速显示出来;上位机软件负责将串口传输来的转速显示到PC机上,并保存数据。系统框图如图1所示:单片机串口模块显示模块电机传感器上位机图1 系统框图4 方案论证4.1 电机的选择方案一:使用直流电机。直流电机用程序更好控制,电路也会相

8、对简单。调速性能好,调速范围广,易于平滑调节。起动、制动转矩大,易于快速起动、制动2。方案二:采用步进电机。直流电机在上电的时候很难控制其速度,容易出现电机不能快速停止的情况。用步进电机再加上程序控制基本上可克服上述困难。由于本设计主要是对电机转速的测量,为了方便控制转速,而且直流电机的价格也比较低廉,所以本设计使用直流电机。4.2 显示模块的选择方案一:采用液晶显示,液晶显示器(LCD)3为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗很低,适用于使用电池的电子设备。它的主要原理是以电流刺激液晶分子产生点线、面配合背部灯管构成画面。液晶显示内容

9、丰富,可显示大量文字,图形等,显示质量高。体积小、重量轻、功耗低,但所需要的接口线多,并且价格昂贵。 方案二:采用数码管(LED)显示,它能在低电压、小电流条件下驱动发光,能与CMOS,ITL电路兼容。它发光响应时间极短,高频特性好,单色性好。亮度高。体积小重量轻,抗冲击性能好。寿命长,并且成本低,对于显示数字最适合。由于本设计只需要对转速进行显示,只需要显示数字,相对液晶来说数码管的控制也比较简单,价格也低廉,所以选用数码管进行显示。5系统设计原理5.1 传感器模块5.1.1 霍尔传感器介绍霍尔传感器4是对磁敏感的传感元件,由磁钢、霍耳元件等组成。测量系统的转速传感器选用CS3144的霍尔传

10、感器,其响应频率为250KHz,额定电压为4.5-24(V)、检测距离为10(mm)。其在大电流磁场或磁钢磁场的作用下,能测量高频、工频、直流等各种波形电流。该传感器具有测量精度高、电压范围宽、功耗小、输出功率大等优点,广泛应用在高速计数、测频率、测转速等领域。输出电压4.524V,直流电源要有足够的滤波电容,测量极性为S极。安装时将一非磁性圆盘固定在电动机的转轴上,将磁钢粘贴在圆盘边缘,磁钢采用永久磁铁,其磁力较强,霍尔元件固定在距圆盘1-10mm处。当磁钢与霍尔元件相对位置发生变化时,通过霍尔元件感磁面的磁场强度就会发生变化。圆盘转动,磁钢靠近霍尔元件,穿过霍尔元件的磁场较强,霍尔元件输出

11、低电平;当磁场减弱时,输出高电平,从而使得在圆盘转动过程中,霍尔元件输出连续脉冲信号。这种传感器不怕灰尘、油污,在工业现场应用广泛。CS3144的功能框图和磁电转换特性如图2和如图3所示。磁电转换特性1,Vcc3, Vout2, GND功能方框图REG图2 功能方框图 图3 磁电转换特性图5.1.2 传感器电路设计电机转盘上安装两个强磁铁,电机转动时,当磁铁靠近霍尔传感器的时候,霍尔传感器5产生脉冲,脉冲接至单片机的外部中断0管脚。每来一次脉冲就进行一次计数。如图4所示为霍尔元件电路图。图4霍尔元件电路图5.2 单片机模块5.2.1 单片机介绍本系统的系统板主要由MCS51系列单片机AT89S

12、52组成。AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8K Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术制造,兼容MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有如下特点:40个引脚,8K Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个

13、16位可编程定时计数器,2个全双工串行通信口,看门狗电路,片内时钟振荡器。此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位6。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。AT89S52的引脚如图5所示。图5 AT89S52的引脚5.2.2 单片机电路设计AT89S52是片内有EPROM的单片机。因此,用这种芯片构成的最小系统简单、可靠。用AT89S52单片机构成最小应用系统时

14、,只要将单片机接上时钟电路和复位电路以及扩展的简单I/O口即可,如图6所示。由于受集成度、片内功能的限制,最小应用系统只能用作一些小型的控制单元。其应用特点为:有可供用户使用的较多的I/O口线。由于不需要扩展外部存储器,EA应接高电平,P0、P1、P2、P3均作为用户I/O口使用。内部存储器容量有限。应用系统开发具有特殊性。如AT89S52的应用软件须依靠半导体厂家用半导体掩膜技术置入,故AT89S52应用系统一般用作大批量生产的应用系统7。另外,P0、P2口的应用与开发环境差别较大。图6 单片机最小系统5.3 数据显示模块如图7为数码管的引脚接线图,实验板上以P0口作输出口,接一个四位一体的

15、八段共阴数码管。表1为驱动LED数码管的段代码表为低电平有效,1-代表对应的笔段不亮,0-代表对应的笔段亮。若需要在最右边(S0)显示“5”,只要将从表中查得的段代码64H写入P0口,然后通过I/O选中想点亮的数码管就行。设计中采用动态显示,所以其亮度只有一个LED数码管静态显示亮度的八分之一。这里设计的系统先用 4位一体LED数码管动态显示小型直流电机的转速。当转速高于4位所能显示的值(9999)时就会自动向上进位显示8。表1 驱动LED数码管的段代码数字dpecgbfa十六进制P0.7P0.6P0.5P0.4P0.3P0.2 P0.1P0.0共阴共阳010110111B7481000101

16、0014EB210101101AD523100111019D624000111101EE15100110119B64610111011BB4470001010115EA810111111BF409100111119F60图7 数码管的引脚接线图5.4 串口通信模块AT89S52单片机有一个全双工的串行通信口,以便于单片机和电脑之间进行串口通信。为了与计算机进行通讯,设计了RS232串行通信接口,将该接口与PC机的串口连接,可以实现单片机与PC机的串行通信,进行双向数据传输。进行串行通信要满足一定的条件,比如电脑的串口是RS232电平(-5至-15V为1,+5至+15V为0),而单片机的串口是T

17、TL电平(大于+2.4V为1,小于+0.7V为0),两者之间必有一个电平转换电路,图9用MAX232集成电路实现RS232电平与TTL电平的相互转换。此串行通信功能模块完成测量得到的转速值发送给上位机。图8为MAX232的引脚图。图8 MAX232的引脚图 图9 电平转换电路图5.5 电机的调速模块LM317 9国国家半导体公司的三端可调正稳压器集成电路。LM317 的输出电压范围是1.2V至37V,负载电流最大为1.5A10非常简单,仅需两个外接电阻来设置输出电压。此外它的线性调整率和负载调整率也比标准的固定稳压器好。LM317 内置有过载保护、安全区保护等多种保护电路。可调整输出电压低到1

18、.2V。保证1.5A 输出电流。典型线性调整率0.01%。典型负载调整率0.1%。80dB 纹波抑制比。输出短路保护、过流、过热保护。调整管安全工作区保护。标准三端晶体管封装。其封装形式如图10所示,LM317的内部结构图如图11所示,LM317可调电源调速电路如图12所示。通过调节电源电压来调节电机的转速。图10 LM317封装图 图11 LM317内部电路图图12 LM317可调电源调速电路6 霍尔测速的软件设计6.1 上位机软件设计6.1.1 上位机Labview整体程序框图上位机的程序主要包括三部分:Excel文件产生部分,串口接受部分,数据保存部分。程序的框图如图13所示。Excel

19、文件产生部分串口接收部分显示保存数据至Excel图13 程序框图6.1.2 VISA配置串口图14 串口配置程序图如图14所示为串口配置程序图1. VISA资源名称是指定要打开的资源。该控件也可指定会话句柄和类。2. 波特率是传输速率。默认值为9600。3. 数据比特是输入数据的位数。 数据比特的值介于5和8之间。默认值为8。4. 奇偶指定要传输或接收的每一帧所使用的奇偶校验。5. 错误输入表明VI或函数运行前发生的错误。默认值为无错误。6. 错误输出包含错误信息。如错误输入表明在VI或函数运行前已发生错误,错误输出将包含相同的错误信息。否则,表明VI或函数中出现的错误状态。右键单击错误输出的

20、前面板显示控件。7. VISA资源名称输出是由VISA函数返回的VISA资源名称的副本6.1.3 串口读数据原理图15 VISA读取如图15所示为VISA读取图标11。1. 误输入表明VI或函数运行前发生的错误。2. VISA资源名称指定要打开的资源。该控件也可指定会话句柄和类。3. 字节总数是要读取的字节数量。4. VISA资源名称输出是由VISA函数返回的VISA资源名称的副本。5. 读取缓冲区包含从设备读取的数据。6. 错误输出包含错误信息。6.1.4 串口数据传换 图16 串口数据转换Labview从串口读取的数据转换为U8字节后,得到的是所传输字符的ASCII码,可以保存到Excel

21、文档中,如图16串口数据转换图。6.1.5 串口数据接收处理程序图图17串口数据接收处理程序图6.1.6 转速的显示程序将数据的第二字节放大100倍加上第三字节数据通过波形图进行显示程序图如图18所示。图18转速显示程序图6.1.7 Excel文件生成程序串口接收到得到的数据保存到Excel中,所以我以PC机系统时间作为Excel的文件名并创建和打开Excel,程序图如图19所示。图19 Excel文件生成程序图6.1.8 串口数据保存通过一个组合程序将串口接收到的数据存入Excel表格中,程序图如图20所示。图20 串口数据保存程序图6.1.9 上位机界面将上位机的界面调整后如图21所示。图

22、21上位机界面图6.2 单片机程序设计本设计软件主要为主程序、数据处理显示程序、定时器中断服务程序、串口通信程序四个部分。(1)主程序主要完成初始化功能,包括LED显示的初始化,中断的初始化,定时器的初始化,寄存器、标志位的初始化等。(2)数据处理显示模块程序。此模块中单片机对在4秒内的计数值进行处理,转换成r/min送显示缓存以便显示。具体算法如下:设单片机每秒计数到n个值,即n/2 (r/s)(圆盘贴两个磁钢)。(3)串口通信程序。串口通信程序主要完成转速数据的传输。(4)定时器1中断服务程序设计。定时器1完成计时功能,定时50ms,进行定时中断计数并每隔1s更新一次显示数据。程序流程图如

23、图22所示:开始初始化串口初始化Time0更新速度、显示速度定时器装初值50ms计数标志Second+入栈保护Second=20?串口发送数据,second置0出栈恢复返回YN图22 单片机程序流程图6 霍尔测速的软件仿真如图23所示为霍尔测速系统的仿真图。在外部中断0口输入一个频率为2k的方波信号,通过单片机计数。虚拟串口接受的数据为31 14 02 34 其中31和34为单片机发送数据帧的开始和结尾,中间两个字节为转速其中14为高位,02为低位。将14 02转换为实际的十进制的结果是2002。图23 霍尔测速的仿真图7 设计系统的调试结果与数据分析将所制作好的硬件进行调试,直流电机正常转动

24、,启动单片机,数码管显示出了转速。然后再用USB转串口线连接到电脑上的USB上进行调试,观看上位机的界面效果和Excel保存的的数据。7.1 上位机labview界面图与保存的转速数据通过调节电位器调节直流电机的的电压,从而调节转速。调节电位器时上位机界面中转盘的指针将迅速摆动。上位机的界面效果如图24所示。此时的转速为72转/秒,串口通信正常。在转盘指针摆动的同时所接收的转速数值和接收到转速的时间和日期也会迅速的保存在Excel表格当中。Excel表格中部分数据如表2所示。图24 上位机界面效果图表1 驱动LED数码管的段代码日期时间转速(r/s)2011-4-2710:53:4851201

25、1-4-2710:53:491802011-4-2710:53:501432011-4-2710:53:511482011-4-2710:53:521522011-4-2710:53:531512011-4-2710:53:541512011-4-2710:53:551512011-4-2710:53:561642011-4-2710:53:571702011-4-2710:53:581262011-4-2710:53:59967.2 转速分析如图25所示为测得的数据经过一次拟合得到的电压-转速曲线,曲线为直线,它是将所测的的数据通过MATLAB12件编程得到的曲线,经过分析曲线的斜率为24.

26、7所以电机的转速于电压的关系表达式如公式(1)所示:.(1)公式中Speed表示电机的转速,V表示电机两端的电压。曲线并没有过原点,按照转速公式输入电压为0时输出转速并不为0.经过分析我觉得主要是因为电机的内阻受温度影响,而且电机的转动并不是完全的无摩擦的,速度不同电机受到的摩擦力也不同。Matlab软件程序如下:t=1.25 2 2.2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.38;y=20 39 44 52 63 78 90 104 116 129 141 154 166 178 191 204 213 222 236 243

27、;co=polyfit(t,y,1);a1=co(1);a2=co(2);y=a1.*t+a2;plot(t,y)hold onti=0:0.5:12;title(电机转速-电压拟合曲线)图25 电机转速与电压的关系曲线8 结束语经过几个月的学习和工作,我终于完成了论文。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我大学期间独立完成的最大项目。通过这次制作毕业设计我感受到自己学习的过程和研究的过程是最可贵的。只有不断的学习才能使自己的研究能力提高。在这段时间里,我学到了很多知识。在我对Labview软件一点都不了解的状态下,我开始了独立的学习和

28、试验。在图书馆查看相关书籍和观看网上视频后让自己对Labview编程有基础的理论知识。开始的时候根据手中的资料编写简单的程序来熟悉Labview编程界面和编程思想。在对Labview编程有一定的理论基础和实践基础后才开始思考自己的设计作品应该怎么才能实现。我将上位机设计分为串口接收和数据保存为两个模块。于是我到网上搜索Labview关于串口编程的和数据保存至Excel的实例,但是所找到的实例很少并且基本上都有问题,这样我只能通过Labview书上的知识来自己编写程序并调试。我首先编写的是串口自收自发程序,在这个小程序完成后逐步添加和修改程序使得串口接收的部分功能完成。接着通过我不断的学习实现了

29、数据保存的功能。在将上位机完全调试好后我开始设计硬件部分,根据以前的设计经验和查看了一些书籍后我对硬件设计有了初步的设计方案。我将初步的设计方案进行仿真测试它的可行性,并请指导老师查看方案是否可行。经过刘刚老师的指导我不断改善设计方案并定了最终方案。在定下方案后就开始制作硬件,在制作完成后在便对硬件和上位机整体进行调试。在不断的调试后终于达到了设计要求。将实物制作好后我便开始撰写论文。在完成初稿后的事情便是不断的对它修改,在论文修改阶段时,与老师的交流也多了,自己写初稿时很多不确定的想法也能向老师咨询了。根据老师给的意见,我充分考虑并根据自身的情况尽量修改。一篇优秀的论文不是写出来的,而是修改

30、出来的,这需要的是耐心,还要用心。最后经过多次修改,论文质量也逐步得到提高,并最终完成。虽然我的设计作品还有很多不足之处。但是这次设计项目的经历也会使我终身受益,。这次的经历能让我知道要耐心,用心去做每一件事情这样才能使自己成功。设计作品和论文能够顺利的完成,需要感谢指导老师和许多同学对我的帮助,在这里请你们接受我诚挚的谢意!参考文献1刘君华.基于LabVIEW的虚拟仪器设计M.北京:电子工业出版社,20032陈伯时.电力拖动自动控制系统M.机械工业出版社,2003年3胡汉才.单片机原理及其接口技术 M.清华大学出版社,2004.274-2794 郁有文.传感器原理及工程应用M西安电子科技大学

31、出版2008.116-123 5赵树磊.基于霍尔传感器的电机测速装置J.江苏电器,2009:10,53-566陈明荧.8051 单片机课程设计实训教程M清华大学出版社7梅丽风,王艳秋,汪雨泽.单片机原理及接口技术M.清华大学出版社,2004年8林敏,于忠得.74LS164在单片机LED显示电路中的应用J.大连工业学院学报,2009(2):95-9610聂清模拟电路设计M高等教育出版社2007年11刘君华.虚拟仪器图形化编程语言LabVIEW教程M.西安电子科技大学出版社,200312 刘明.精通MATLAB 7.电子工业出版社M.200614Gaey Wendt E,Klaus K W.A n

32、ew type of hydraulic actuator usingElectrorheological fluidsJ.InternationalJ Moder Physics B,1999(14):2 176. 15Gary W.Johnson,Richard Jennings. Graphical Programming,2011.附录一:电路图附录二:labview整体程序图附录三:单片机程序程序#include unsigned int send4=0x31,0x32,0x33,0x34; /待发送的测量数据unsigned char code temp=0x3f,0x06,0x5

33、b,0x4f,/数码管代码 0x66,0x6d,0x7d ,0x07, 0x7f,0x6f;int a,second,number,speed;int ge,shi,bai,qian;void uart_init()SM0=0;SM1=1; /设置为模式1 TI=0; /复位串口中断标志位TH1=0xFD; /设置波特率TL1=0XFD; TMOD=0x21; /设置定时器为工作模式2EA=1; /开总中断ET1=0; /关定时器T1中断TR1=1; /启动定时器/*/void time0_init()TMOD=0x21;/设置定时器0工作模式TH0=(65536-46080)/256;TL0

34、=(65536-46080)%256;ET0=1;/开T0中断IT0=1;/ 设置负边沿触发EX0=1; / 开外部中断TR0=1;/启动定时器T0number=0;/延时程序void delay(int x) int i,j;for(j=0;jx;j+)for(i=0;i10;i+);/*/Uart发送程序查询方式发送数据void uart_send()for(a=0;a4;a+)TI=0;SBUF=senda;while(!TI);TI=0; delay(10) ; /*/ /显示程序void display() qian=speed/1000; bai=speed%1000/100; s

35、hi=speed%100/10; ge=speed%10; P2=0xef; P1=tempqian; delay(10); P2=0xdf; P1=tempbai; delay(10); P2=0xbf; P1=tempshi; delay(10); P2=0x7f; P1=tempge; delay(10); /*/void main() uart_init();time0_init();speed=0;while(1) send1=speed/100;/更新转速 send2=speed%100;display();void inter0() interrupt 0number+; /中断

36、计数void timer0() interrupt 1TH0=(65536-46080)/256;TL0=(65536-46080)%256;second+; if(second=20)TR0=0;uart_send();second=0;speed=number/2;number=0;TR0=1;*这两个函数都是霍尔测速的但是后面这个函数是将定时器T2作为波特率发生器,定时器T1作为计数器,定时器T0作为定时器使用*#include unsigned int send4=0x31,0x32,0x33,0x34; /待发送的测量数据unsigned char code temp=0x3f,0x

37、06,0x5b,0x4f,/数码管代码 0x66,0x6d,0x7d ,0x07, 0x7f,0x6f;int a,second,number,speed;int ge,shi,bai,qian;void uart_init() T2CON = 0x30; / TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/CL2 设置串口的接收和发送波特率有定时器T2提供 RCAP2H = 0xFF; / 9600 设置自动重装寄存器的初值 RCAP2L = 0xDC; TH2 = RCAP2H; TL2 = RCAP2L; SCON = 0x50; /1 start bit,8

38、data bits, 1 stop bit, none parity bit. EA=1; /开总中断ET2=0; /关定时器T2中断TR2=1; /启动定时器/*/void time0_init()TMOD=0x51;/设置定时器0工作模式,定时器1为计数模式TH0=(65536-46080)/256;TL0=(65536-46080)%256;TH1=0;/给定时器T1装初值TL1=0;ET0=1;/开T0中断TR0=1;/启动定时器T0TR1=1;/启动计数器T1/延时程序void delay(int x) int i,j;for(j=0;jx;j+)for(i=0;i10;i+);/*

39、/*/Uart发送程序查询方式发送数据void uart_send()for(a=0;a4;a+)TI=0;SBUF=senda;while(!TI);TI=0; delay(10) ; /*/ /显示程序void display() qian=speed/1000; bai=speed%1000/100; shi=speed%100/10; ge=speed%10; P2=0xef; P1=tempqian; delay(10); P2=0xdf; P1=tempbai; delay(10); P2=0xbf; P1=tempshi; delay(10); P2=0x7f; P1=tempg

40、e; delay(10); /*/void main() uart_init();time0_init();speed=0;while(1) send1=speed/100;/更新转速 send2=speed%100;display();void timer0() interrupt 1TH0=(65536-46080)/256;TL0=(65536-46080)%256;second+; if(second=20)TR1=0;/关计数器T1TR0=0;/关定时器T0uart_send(); second=0;speed=TH1*256+TL1;TH1=0;/清计数器T1TL1=0;TR0=1;/启动定时器TR1=1;/启动计数器

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号