测频法和测周法转速测量的课程设计报告

合集下载

电涡流测转速课程设计

电涡流测转速课程设计

电涡流测转速课程设计一、课程目标知识目标:1. 学生能理解电涡流传感器的工作原理,掌握电涡流测转速的基本概念。

2. 学生能描述电涡流测转速的数学模型,了解影响测量精度的因素。

3. 学生了解电涡流传感器在工业生产中的应用,认识到其重要性。

技能目标:1. 学生能操作电涡流测转速实验装置,完成转速的测量。

2. 学生能运用数据处理软件对测量数据进行处理,分析测量结果。

3. 学生能通过实际操作,提高动手能力,培养实验操作技巧。

情感态度价值观目标:1. 学生在电涡流测转速的学习过程中,培养对物理实验的兴趣和热情。

2. 学生通过小组合作,培养团队协作精神和沟通能力。

3. 学生认识到科学技术在实际应用中的价值,增强对科技创新的认识。

课程性质:本课程为高二年级物理选修课,以实验为基础,注重理论与实践相结合。

学生特点:高二年级学生对物理有一定的基础,具备一定的实验操作能力和逻辑思维能力。

教学要求:结合学生特点,采用启发式教学,引导学生主动探究,提高学生的实践能力和创新意识。

将课程目标分解为具体的学习成果,便于教学设计和评估。

1. 理论知识:- 电涡流传感器工作原理及其特性。

- 电涡流测转速的数学模型及影响精度的因素。

- 电涡流传感器在工业生产中的应用案例分析。

2. 实践操作:- 电涡流测转速实验装置的认识与操作。

- 测量数据的采集、处理与分析。

- 实验报告的撰写。

3. 教学大纲:- 第一课时:导入新课,介绍电涡流传感器及其工作原理。

- 第二课时:讲解电涡流测转速的数学模型,分析影响精度的因素。

- 第三课时:实际操作电涡流测转速实验,进行数据采集。

- 第四课时:数据处理与分析,撰写实验报告。

教学内容安排与进度:- 理论知识与实践操作相结合,每课时分配时间为2学时。

- 第一、二课时:讲解理论知识,结合教材相关章节,为学生提供学习资料。

- 第三课时:实验操作,现场演示并指导学生操作。

- 第四课时:数据处理与分析,指导学生完成实验报告。

电子课程设计光电测转速

电子课程设计光电测转速

电子课程设计光电测转速一、教学目标本节课的教学目标是让学生了解光电测转速的原理,掌握光电测速仪的使用方法,培养学生动手实践能力和团队协作精神。

具体分解为以下三个目标:1.知识目标:使学生了解光电测速的基本原理,理解光电测速仪的构造及工作原理,能运用光电测速仪进行转速测量。

2.技能目标:培养学生运用光电测速仪进行实际操作的能力,提高学生解决实际问题的能力。

3.情感态度价值观目标:培养学生对光电技术的兴趣,激发学生探索科学奥秘的热情,培养学生的团队协作意识。

二、教学内容本节课的教学内容主要包括以下几个部分:1.光电测速原理:介绍光电测速的基本原理,使学生了解光电效应和光的传播速度。

2.光电测速仪的结构和工作原理:讲解光电测速仪的构造,使学生理解光电测速仪的工作原理。

3.光电测速仪的使用方法:介绍光电测速仪的使用步骤,培养学生动手实践能力。

4.转速测量实验:进行转速测量实验,使学生掌握光电测速仪的实际操作方法。

三、教学方法为了实现本节课的教学目标,将采用以下教学方法:1.讲授法:讲解光电测速原理和光电测速仪的工作原理,使学生掌握基本知识。

2.实验法:进行转速测量实验,培养学生动手实践能力和团队协作精神。

3.讨论法:引导学生针对实验过程中遇到的问题进行讨论,提高学生解决问题的能力。

4.案例分析法:分析实际应用场景中的光电测速问题,培养学生运用知识解决实际问题的能力。

四、教学资源为了保证本节课的教学效果,将准备以下教学资源:1.教材:选用与光电测速相关的教材,为学生提供理论基础。

2.光电测速仪:为学生提供实验设备,便于进行动手实践。

3.多媒体资料:制作课件和实验视频,为学生提供直观的学习材料。

4.实验指导书:提供详细的实验步骤和注意事项,引导学生进行实验操作。

5.网络资源:利用网络资源,为学生提供更多的学习资料和案例分析。

五、教学评估为了全面、客观地评估学生的学习成果,本节课采用以下评估方式:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和基本知识掌握情况。

电机转速测量课程设计

电机转速测量课程设计

电机转速测量课程设计一、课程目标知识目标:1. 学生能理解电机转速测量的基本原理,掌握相关概念,如转速、频率、周期等。

2. 学生能够掌握至少两种不同的电机转速测量方法,并了解其优缺点及适用场景。

3. 学生能运用所学知识,解释实际电机转速测量过程中可能出现的误差及其原因。

技能目标:1. 学生能够正确使用转速表、示波器等实验器材进行电机转速的测量,并准确读取数据。

2. 学生能够运用数据处理软件(如Excel、Origin等)对测量数据进行分析和处理,绘制图表,得出结论。

3. 学生能够通过小组合作,设计并实施简单的电机转速测量实验,提高实际操作能力。

情感态度价值观目标:1. 学生通过学习电机转速测量,培养对物理实验的兴趣,提高探索精神和实践能力。

2. 学生在小组合作中,学会沟通、协作,培养团队精神和责任感。

3. 学生能够认识到电机转速测量在工程实际中的应用,增强理论联系实际的能力,提高解决实际问题的信心。

本课程针对高年级学生,旨在通过电机转速测量这一具体实例,使学生将所学理论知识与实际操作相结合,提高学生的实践能力和创新能力。

课程要求学生在掌握基本原理的基础上,注重实验操作和数据处理能力的培养,同时关注学生情感态度价值观的塑造,使学生在知识、技能和情感等多方面得到全面发展。

二、教学内容本章节教学内容主要包括以下三个方面:1. 理论知识:- 电机转速测量原理:介绍转速与频率、周期的关系,阐述测速传感器的工作原理。

- 测速方法:详细讲解电磁式测速、光电式测速、霍尔效应测速等常见方法及其优缺点。

2. 实践操作:- 实验设备使用:指导学生正确使用转速表、示波器等实验器材,掌握实验操作步骤。

- 数据采集与处理:教授学生如何采集数据、处理数据,使用数据处理软件绘制图表,分析结果。

3. 教学案例与讨论:- 分析实际电机转速测量案例,让学生了解工程实际中的应用,提高解决实际问题的能力。

- 小组讨论:针对案例,分组讨论测量方案的优化,培养学生团队协作和沟通能力。

电机转速测量实验报告

电机转速测量实验报告

电机转速测量实验报告电机转速测量实验报告引言电机转速测量是电工学中重要的实验之一。

准确测量电机转速对于电机的性能评估、故障诊断以及控制系统设计都具有重要意义。

本实验旨在通过使用转速传感器和测速仪器来测量电机的转速,并对测量结果进行分析和评估。

实验目的1. 学习使用转速传感器和测速仪器进行电机转速测量。

2. 掌握电机转速测量的基本原理和方法。

3. 分析测量结果,评估电机的性能。

实验装置与方法实验所需的装置包括电机、转速传感器、测速仪器等。

首先,将转速传感器安装在电机轴上,并连接到测速仪器。

然后,通过控制电机的电源,使其运行,并记录测速仪器上显示的转速数值。

重复多次实验,以获得准确的平均转速。

实验结果与分析通过多次实验测量,我们得到了电机在不同负载下的转速数据。

通过对这些数据进行分析,我们可以得出以下结论:1. 负载对电机转速的影响实验结果显示,随着负载的增加,电机的转速逐渐降低。

这是因为负载的增加会增加电机所需的功率,从而降低电机的转速。

这一结论对于电机的性能评估和控制系统设计具有重要意义。

2. 转速传感器的准确性通过对多次实验测量结果的比较,我们发现转速传感器的测量结果相对稳定且准确。

然而,在测量过程中,我们还发现转速传感器对于电机的启动和停止过程中的瞬时变化较为敏感。

因此,在实际应用中,我们需要注意这一点,并进行相应的数据处理和滤波。

3. 电机性能评估通过测量电机的转速,我们可以评估电机的性能。

例如,我们可以通过比较实际转速与额定转速的差异来评估电机的负载能力和效率。

此外,我们还可以通过测量不同负载下的转速来评估电机的响应速度和稳定性。

结论与展望通过本次实验,我们学习了电机转速测量的基本原理和方法,并通过实际操作获得了相关数据。

通过对实验结果的分析,我们得出了一些有关负载对电机转速的影响以及转速传感器的准确性的结论。

这些结论对于电机的性能评估和控制系统设计具有重要意义。

然而,本实验还存在一些局限性,例如实验数据的采集和处理方法可以进一步改进,以提高测量结果的准确性和稳定性。

频率频率测量仪课程设计

频率频率测量仪课程设计

频率频率测量仪课程设计一、教学目标本课程旨在让学生了解频率测量仪的基本原理、结构及使用方法,通过实践操作,使学生掌握频率测量仪的使用技巧,培养学生的动手能力和实验技能。

在知识目标方面,要求学生掌握频率测量仪的工作原理、主要组成部分以及相关物理概念。

在技能目标方面,要求学生能够熟练操作频率测量仪进行测量,并能够对测量结果进行分析和处理。

在情感态度价值观目标方面,通过实验操作,培养学生对科学的兴趣和探究精神,增强学生的团队协作能力和实验安全意识。

二、教学内容本课程的教学内容主要包括频率测量仪的基本原理、结构和使用方法。

首先,介绍频率测量仪的工作原理,使学生了解频率测量仪是如何工作的。

其次,讲解频率测量仪的结构,包括各个部分的功能和相互关系。

然后,教授学生如何使用频率测量仪进行测量,包括操作步骤、注意事项等。

最后,通过实验操作,使学生能够将所学知识运用到实际中,提高学生的实验技能。

三、教学方法为了提高教学效果,本课程将采用多种教学方法。

首先,采用讲授法,向学生讲解频率测量仪的基本原理和结构。

其次,采用实验法,让学生亲自动手操作频率测量仪,增强学生的实践能力。

同时,采用讨论法,引导学生对实验结果进行分析和讨论,提高学生的思考能力。

最后,采用案例分析法,通过分析实际案例,使学生更好地理解和掌握频率测量仪的使用方法。

四、教学资源为了支持教学内容的实施,我们将准备以下教学资源。

首先,教材《频率测量仪使用手册》,作为学生学习的基本资料。

其次,参考书《频率测量技术》,为学生提供更深入的理论知识。

再次,多媒体资料,包括实验操作视频和动画,为学生提供直观的学习材料。

最后,实验设备,包括频率测量仪、示波器等,为学生提供实践操作的机会。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的30%。

作业主要评估学生的练习情况,包括作业的完成质量和速度,占总评的30%。

转速测量仪表课程设计

转速测量仪表课程设计

转速测量仪表课程设计一、课程目标知识目标:1. 学生能理解转速测量仪表的基本原理,掌握其工作方式和应用场景。

2. 学生能掌握转速测量仪表的关键部件及其功能,了解不同类型的转速仪表特点。

3. 学生能运用物理知识,解释转速测量仪表测量过程中的基本物理现象。

技能目标:1. 学生能够正确操作转速测量仪表,进行简单的转速测量实验。

2. 学生能够通过分析实验数据,解决实际测量中遇到的问题,具备一定的数据分析和处理能力。

3. 学生能够运用所学知识,设计简单的转速测量方案,具备初步的工程实践能力。

情感态度价值观目标:1. 培养学生对转速测量仪表的兴趣,激发学习物理、工程技术的热情。

2. 培养学生严谨的科学态度,注重实验操作的规范性和数据的准确性。

3. 培养学生的团队协作意识,鼓励学生在实验过程中相互交流、共同进步。

课程性质:本课程为实践性较强的物理课程,结合实际应用,培养学生的动手能力和实际问题解决能力。

学生特点:学生具备一定的物理基础知识,对实际应用有较高的兴趣,但可能缺乏实践操作经验。

教学要求:注重理论与实践相结合,通过实际操作,提高学生的物理素养和工程实践能力。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 理论知识:- 转速测量仪表的基本原理- 转速测量仪表的分类及特点- 转速测量仪表的关键部件及功能- 转速测量过程中的基本物理现象2. 实践操作:- 转速测量仪表的正确操作方法- 简单转速测量实验的设计与实施- 实验数据的收集、分析和处理- 转速测量方案的设计与应用3. 教学大纲:- 第一周:转速测量仪表的基本原理及分类- 第二周:转速测量仪表的关键部件及功能- 第三周:转速测量过程中的基本物理现象- 第四周:实际操作,转速测量仪表的正确操作与简单实验- 第五周:实验数据分析与处理,转速测量方案设计4. 教材章节:- 第三章:测速仪表- 3.1 测速仪表概述- 3.2 电磁式转速表- 3.3 光电式转速表- 3.4 霍尔效应转速表教学内容确保科学性和系统性,结合课程目标,注重理论与实践相结合,培养学生的实际操作能力和问题解决能力。

转速测量设计实验报告

转速测量设计实验报告

转速测量设计实验报告1. 实验目的本实验旨在设计并实现一种测量转速的方法,并验证其准确性和稳定性。

2. 实验原理2.1 传感器原理转速测量一般需要通过传感器来实现。

常见的转速传感器有光电传感器、霍尔传感器和接触式触发器等。

本实验采用光电传感器作为转速测量的感知器件。

光电传感器通过发射红外光束,并根据反射光的变化来测量目标物体的运动速度。

2.2 转速计算方法根据光电传感器感知到的目标物体的运动情况,我们可以计算出目标物体的转速。

转速的计算方法如下:速度= \frac {2\pi r}{T}其中,速度为目标物体的线速度,r为目标物体的半径,T为目标物体绕轴旋转一周所需的时间。

3. 实验设计本实验的设计思路是在目标物体上固定一块白色圆片,并将光电传感器放在圆片的旁边。

光电传感器产生的红外光束会照射到圆片上,并由圆片反射回光电传感器。

当目标物体旋转时,圆片运动会导致光电传感器感受到反射光的变化。

我们通过记录光电传感器输出的电信号的变化来计算目标物体的转速。

实验所需材料如下:- 光电传感器- 白色圆片- 电路连接线- 示波器(或数字多用表)实验步骤如下:1. 将光电传感器固定在实验平台上,使其能够与目标物体保持一定的距离。

2. 将白色圆片固定在目标物体上,并使其与光电传感器处于同一平面。

3. 连接光电传感器的输出端和示波器(或数字多用表)。

4. 打开示波器(或数字多用表)并设置合适的测量范围。

5. 启动目标物体的旋转,记录光电传感器输出的电信号的变化。

6. 根据记录到的数据,计算目标物体的转速。

4. 实验结果与分析在实验中,我们通过示波器记录了光电传感器输出的电信号的变化,并根据这些数据计算了目标物体的转速。

实验结果显示,我们所设计的转速测量方法具有较高的准确性和稳定性。

在实际使用中,我们可以根据实验结果进行进一步优化和改进。

例如,可以根据目标物体的特性选择合适的感知器件,调整光电传感器和目标物体之间的距离,以及对于输出信号的处理等等。

转速测量实验结论

转速测量实验结论

转速测量实验结论一、实验目的本实验旨在通过转速测量实验,掌握转速测量的基本原理和方法,并能够正确使用测量仪器进行转速测量。

二、实验原理1. 转速的定义转速是指单位时间内旋转的圈数,通常用每分钟旋转圈数(rpm)表示。

2. 转速测量方法(1)机械式测量方法:利用机械传动装置将被测物体的运动传递到指针或计数器上,从而获得转速信息。

(2)光电式测量方法:利用光电传感器将被测物体运动时产生的光信号转换为电信号,再通过电路处理得到转速信息。

3. 测量仪器(1)机械式仪器:如机械式计数器、震荡表等。

(2)光电式仪器:如光电编码器、激光干涉仪等。

三、实验步骤及数据处理1. 实验步骤:(1)将被测物体安装在装置上,使其能够自由旋转。

(2)选择合适的测量仪器,并按要求连接好线路。

(3)根据不同的仪器和要求,进行相应的调节和校准。

(4)开始转速测量,并记录测量数据。

2. 数据处理:(1)根据仪器的不同,将获得不同形式的数据,如计数器显示、电压信号等。

(2)根据实验要求,将数据进行单位换算和计算,得到转速值。

(3)对于多次测量的数据,可以进行平均值计算,并进行误差分析。

四、实验结论通过转速测量实验,我们可以得出以下结论:1. 转速是指单位时间内旋转的圈数,通常用每分钟旋转圈数(rpm)表示。

2. 转速测量方法主要有机械式和光电式两种方法。

3. 测量仪器包括机械式仪器和光电式仪器两种类型。

4. 在进行转速测量时需要注意选择合适的仪器、正确连接线路、进行调节和校准等步骤,以保证准确性和可靠性。

5. 对于多次测量的数据,应该进行平均值计算,并进行误差分析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、任务要求1.性能要求:测量范围:5~5000rpm;2.功能要求:采用MCS51系列单片机完成测量,并将测量值显示于数码管上。

分别采用测频法和测周法进行设计,并比较不同速度段的测量精度。

二、方案论证系统组成:图1-1 系统组成框图如图1-1所示,本次设计的系统主要由以下几个部分组成,即:传感器、单片机以及显示部分组成。

各个部分的方案论证如下:2.1传感器的选择目前,可用于测速的传感器有很多,例如:光电传感器,开关型霍尔传感器,电涡流传感器以及光电编码器等。

方案一:采用光电传感器光电传感器是通过光电二极管和光敏三极管把光输入信号转化为磁输入信号的器件。

光电传感器的优点是响应速度快、测量精度高,能够直接输出高低电平,缺点是容易受外来光线、灰尘等的影响,即对周围环境的要求比较高。

方案二:采用开关型霍尔传感器开关型霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。

开关型霍尔的优点是能够直接输出高低电平,属于大信号传感器,对外部的信号调理电路要求不高,缺点是响应速度不如光电传感器。

方案三:采用电涡流传感器电涡流传感器是利用电涡流效应来工作的传感器,具有长期工作稳定性好,抗干扰能力强,但是输出信号比较弱,后续处理电路比较复杂,且一般价格比较高。

在灰尘和粉尘较少而要求频率响应范围比较宽的情况下,可以采用光电传感器。

而在灰尘和粉尘比较多的情况下,则选用开关型霍尔传感器。

由于本次设计主要针对自行车和汽车的测速,故选用开关型霍尔传感器。

2.2显示模块的选择方案一:采用LED数码管LED数码管只可以显示数字和简单的字母,其优点是价格便宜,程序编写比较简单,功耗低,缺点是亮度不高,在要显示数字多的场合下,体积较大,比较占空间。

方案二:采用LCD1602液晶显示LCD1602液晶显示模块具有体积小、功耗低,对比度可调且能够显示ASC II 码和简单的汉字等优点,其缺点是成本比数码管高,而且程序编写相对复杂。

方案三:采用LCD12864液晶显示LCD12864液晶显示屏优点是能够显示汉字,且功耗比较低,其确定是软件编程比较复杂。

2.3测速原理论证2.3.1测频法原理:测频法原理图如图1-2所示,即测量一段时间t 内,所计的脉冲数为N ,则所测得的频率为f=t/N ,其“±1误差”为ft N /1/1±=±。

由此可见,在t 一定时,所测频率f 越高,则“±1误差”越小。

因此测频法适用于测低频。

图1-2 测频法原理图测周法原理:测周法原理图如图1-3所示,即对信号的周期T 进行测量,然后根据f=1/T 就可以得到频率。

在本设计中就是通过对单片机内部时钟脉冲计数得到两个脉冲之间的时间间隔T 。

假设单片机内部时钟为f,所计得的脉冲数为N,则时间间隔T =N/Φf,即频率f Φ=Φf/N。

其“±1误差”为Φ1/N/1。

由此可知,在时±Tf±=钟脉冲Φf一定时,所测的时间间隔T越大,即所测频率越低,则“±1误差”越小,精度越高。

图1-3 测周法原理图综上所述,为了提高所设计的测速仪的精度,因此本次设计采用测频法和测周法相结合的方法,即低频时采用测周法,高频时采用测频法。

三、硬件设计总的原理框图:图1-4 总的硬件原理框图如图1-4所示,即为整个系统的原理框图,该智能测速仪是利用霍尔传感器来采集信号,当磁粒靠近霍尔传感器时,霍尔传感器向单片机输出一个脉冲,经过单片机的处理,将频率和转速送到LCD1602中显示。

3.1单片机最小系统图1-5 单片机最小系统原理图单片机的最小系统电路如上图1-5所示,主要由单片机、晶振电路、复位电路三部分组成。

其中晶振电路由一个12MHz的晶体振荡器和两个瓷片电容组成,为单片机提供时钟频率,本次设计采用12M 晶振是为了使定时能够更精准,计算更方便。

复位电路由上图中的S1,R3,R4和C1所组成,具有上电复位和按键复位两种复位方式。

由于要使用P0口作为数据传送端,所以需要在P0加上拉电阻。

本次设计选用的单片机是STC89C54RD+。

3.2霍尔传感器电路图1-6 霍尔传感器电路原理图霍尔传感器电路如上图1-6所示,本次设计选用的霍尔型号为44E开关型霍尔传感器,当小磁粒靠近时,霍尔输出低电平。

图中D2为电源指示灯,D1为小磁粒靠近霍尔的指示灯。

LM393为电压比较器,2脚输入电压为2.5V,此处加个电压比较器使输出信号更稳定,能够输出比较稳定的脉冲信号。

3.3液晶显示模块电路图1-7 液晶显示电路原理图液晶显示电路如右图所示,其中1脚VSS和2脚VDD为电源地和电源正极,3脚VO是用来调节液晶屏幕显示的对比度的,4脚RS 为数据/命令选择端,5脚R/W为读写端,6脚E为使能端,7~14脚的DB0~DB7为数据端,15脚BLA和16脚BLK为背光电源端。

四、软件设计4.1软件实现功能软件主要实现功能是完成测频法和测周法的算法实现,并且能够进行自动的根据频率范围进行两种方法之间的转换。

4.2主程序框图图1-8主程序框图主程序框图如图4.3定时器中断程序框图4.4外部中断程序框图三、模拟调试部分5.1模拟装置简介本次设计所使用的5,2模拟调试方法5.3结果四、小结6.1实验中所遇到的问题①、在编程时,采用测周法时始终无法得到正确的频率,所显示的频率值始终在4000到5000左右变化,而定时器的计数值(用来计算两个脉冲之间的时间的量)始终只有几百,即时间为几百微秒。

②、在实际测量时,发现测得的频率值与实际的频率值相差很大,且相对误差在10%左右,例如实际值为325r/min,而测得值为354r/min,即相对误差为(354-325)/325*100%=8.9%,误差比较大。

③、采用测周法时,当频率为0时,其实际显示值不为零,始终停留在之前的值,保持不变。

6.2分析、解决6.3设计结果评价附录1.#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit LCD_RS = P2^6; //液晶控制端sbit LCD_RW = P2^5;sbit LCD_EP = P2^7;uchar code tab1[] = {"freq 0000 Hz"}; //液晶第一行默认显示数据uchar code tab2[] = {"n 0000 r/min"}; //液晶第二行默认显示数据long speed_count=0; //计数值uint freq=0; //频率值uint speed=0; //转速值uint timer_count=0; //定时器计数值uint int_t0_count=0; //M法时外部中断计数值uchar intt0_count=0; //T法中用来平均的bit m_flag=1; //M法标志位bit t_flag=0; //T法标志位bit first_flag=0; //第一个测频值显示的标志void delay(uchar ms); //延时子程序void init_interuppt(); //定时器0初始化void lcd_init(); //液晶初始化void write_1602_wcmd(uchar com); //液晶写入指令函数void write_1602_wdat(uchar dat); //液晶写入数据函数void write_speed(uchar address,uint dat);//1602写速度值void main(){lcd_init(); //液晶初始化init_interuppt(); //中断初始化while(1){if(first_flag==1){if(freq>1000) //频率大于1000则采用测频法{m_flag=1;t_flag=0;}else{m_flag=0;t_flag=1;}}write_speed(0x45,freq); //显示频率值write_speed(5,speed); //显示转速值}}/******************************************************************//* 延时函数*/ /******************************************************************/void delay(uchar ms){uint i,j;for(i=ms;i>0;i--)for(j=150;j>0;j--);}/******************************************************************//* 定时器计数器初始化*//******************************************************************/void init_interuppt(){TMOD=0x01; //设置为工作方式1,16位计数方式TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1; //使能定时器0中断EX0=1; //使能外部中断IT0=1; //下降沿触发EA=1; //使能总中断TR0=1; //开定时器0中断}/******************************************************************//* 定时器中断函数*/ /******************************************************************/void timer0() interrupt 1{TH0=(65536-50000)/256; //每50毫秒进一次中断TL0=(65536-50000)%256;if(m_flag==1){timer_count++;if(timer_count==20) //每1秒钟更新一次速度{freq=int_t0_count;speed=freq*10; //频率转换为转速int_t0_count=0;timer_count=0;if(first_flag==0)first_flag=1;}}if(t_flag==1){timer_count++;if(timer_count==10){speed=0;freq=0;}}}/******************************************************************//* 外部中断函数*/ /******************************************************************/void int_t0() interrupt 0{if(m_flag==1){int_t0_count++;}if(t_flag==1){intt0_count++;speed_count += TH0*256 + TL0 + timer_count*65536;if(intt0_count==2){freq = (unsigned int)(2000000.0/(speed_count));speed = (unsigned int)(2000000.0/(speed_count)*10);speed_count=0;intt0_count=0;}TH0=(65536-50000)/256;TL0=(65536-50000)%256;timer_count = 0;}}/******************************************************************//* LCD初始化设定*/ /******************************************************************/void lcd_init(){uchar i;write_1602_wcmd(0x38); //16*2显示,5*7点阵,8位数据write_1602_wcmd(0x0c); //显示开,关光标write_1602_wcmd(0x06); //移动光标write_1602_wcmd(0x01); //清除LCD的显示内容write_1602_wcmd(0x82); //第一行字符写入的位置for(i=0;i<13;i++)write_1602_wdat(tab2[i]);write_1602_wcmd(0xc0);for(i=0;i<12;i++)write_1602_wdat(tab1[i]);}/******************************************************************//* 写指令到LCD */ /******************************************************************/void write_1602_wcmd(uchar com){LCD_RS = 0; //置为写入命令,低为写指令LCD_RW = 0;P0 = com; //送入数据delay(1);LCD_EP = 1; //拉高使能端delay(1);LCD_EP = 0; //完成高脉冲,传入数据到LCD}/******************************************************************//* 写数据到LCD */ /******************************************************************/void write_1602_wdat(uchar dat){LCD_RS = 1; //置为写入数据,高为写数据LCD_RW = 0;P0 = dat; //送入数据delay(1);LCD_EP = 1; //拉高使能端delay(1);LCD_EP = 0; //完成高脉冲,传入数据到LCD}/******************************************************************//* 写速度值到LCD */ /******************************************************************/void write_speed(uchar address,uint dat){uchar gw,sw,bw,qw;qw = dat/1000;bw = dat%1000/100;sw = dat%1000%100/10; //分出十位数据gw = dat%1000%100%10; //分出个位数据write_1602_wcmd(0x80+address); //在第二行对应位置显示write_1602_wdat(0x30+qw);write_1602_wdat(0x30+bw);write_1602_wdat(0x30+sw);write_1602_wdat(0x30+gw);}如有侵权请联系告知删除,感谢你们的配合!。

相关文档
最新文档