毕业设计---数字转速计的设计
毕业设计110课程设计——数字测速系统

转速测量是伺服控制系统重要组成部分。
迄今为止,测速可分为两大类:模拟电路测速和数字电路测速。
微电子技术的发展,数字测速技术的进步,数字测速性能的提高,使数字测速受到人们的重视。
随着微电子技术的发展、计算机技术的成熟,出现了以数字电子器件为核心的数字测速装置。
这样的速度测量装置测量范围宽、工作方式灵活多变、适应面广,具有普通数字测速装置不可比拟的优越性。
本文应用光电传感效应的原理,通过在转盘上钻洞形成转盘,两旁分别用一个光发射管和光接受器,实现光电信号的转换以及高低电平的变化,并且利用运放和施密特整形电路形成编码脉冲。
利用变压器的减压,和镇流器的镇流,稳压管的稳压,使220伏的家用交流电变成5伏的直流电,以适合芯片的电压。
用74LS90实现计数器对编码脉冲进行计数,再用74LS175实现寄存器,接着通过CD4511对寄存器的数据进行译码,最后通过数码管演示出来,从而实现转速测量。
此数字测速系统还实现了低数报警的功能,利用可重复单稳态的原理,当转机慢到一定值时,就会产生失落脉冲,并启动报警器,当转数达到一定数时报警器会自动关闭。
还利用RS触发器和单稳态的原理对寄存器进行清零和保存。
除此之外,利用D触发器的原理,用两个光电效应管,一个作为D触发器的脉冲,一个作为数据处于,用一个发光二极管对输出端进行判断其高低电平,从而判断转机的正反转。
关键词:码盘转速测量测量时间编码脉冲失落脉冲1 设计任务 (4)2 方案选择 (2)2.1 方案选择一 (3)2.1 方案选择二 (4)3 数字测速系统电路的设计 (6)3.1 电路的总方案图 (7)3.2 电路实现测速的原理 (8)3.3 单元电路解说 (9)3.3.1 电源电路 (10)3.3.2 放大电路以及施密特整形电路 (11)3.3.3 控制电路 (12)3.3.4 报警电路 (13)3.3.5 波形产生电路 (14)3.3.6 计数以及寄存电路 (15)3.3.7 译码以及显示电路 (16)3.3.8 扩展电路 (17)4 电路的仿真、焊接、调试 (18)4.1 电路的仿真 (19)4.2 电路的焊接 (20)4.2.1 元件的布局 (21)4.2.2 电路走线安排 (22)4.3 电路的调试 (23)5 实验数据以及误差分析 (24)5.1 实验数据采集 (25)5.2 误差分析 (26)5.2.1 产生误差原因 (27)5.2.2 减少误差的措施 (28)6 课程设计的收获、体会和建议 (29)致谢 (30)参考文献 (34)附录 (31)元件清单 (32)电路总图 (33)1设计任务设计并制作测量电机转速的数字测速系统。
课程设计--数字转速(数)计的设计

课程设计--数字转速(数)计的设计课程设计说明书设计题目:学院:机械工程学院专业:机械设计制造及其自动化班级:学号:姓名:指导教师:目录1. 课程设计要求 (1)2. 系统功能分析与方案确定 (1)3. 系统主要硬件电路模块设计 (4)3.1编码器模块 (4)3.2液晶显示模块 (9)3.3复位电路模块 (14)3.4晶振电路模块 (17)3.5 单片机硬件端口分配 (18)4. 程序软件设计与分析 (19)4.1系统软件分析及详细技术文件设计 (19)5. 后续有待完善和提高的工作 (25)参考文献 (26)附录 (26)1. 课程设计要求数字转速(数)计的设计一、设计任务转速计是我们经常会用到的仪器之一,通常与编码器配合用来测量旋转机械设备的转速。
用单片机的定时/计数器功能可以实现频率计的数字化、智能化,通过合理的硬件设计和软件编程使测量精度达到实用化要求。
二、基本要求1.测量速度范围1~1000转每分钟。
2.可对转数计数并实时显示;3.可对转速检测并实时显示;4.速度检测精度:1%。
5.被测信号是方波。
显示方式为转数计数:5位十进制数显示;速度计:5位有效数字显示,保留小数点后2位。
2. 系统功能分析与方案确定2.1 转速测量系统的原理2.1.1 转速测量方法转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。
按照不同的理论方法,先后产生过模拟测速法(如离心式转速表) 、同步测速法(如机械式或闪光式频闪测速仪) 以及计数测速法。
计数测速法又可分为机械式定时计数法和电子式定时计数法。
本文介绍的采用单片机和光电传感器组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法。
对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。
在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:①测频率法:在一定时间间隔t 内,计数被测信号的重复变化次数N ,则被测信号的频率fx 可表示为f x =Nt(1)②测周期法:在被测信号的一个周期内,计数时钟脉冲数m0 ,则被测信号频率fx = fc/ m0 ,其中, fc 为时钟脉冲信号频率。
数字转速测试仪的设计

目录摘要 (I)Abstract................................................................................................................... I I 主要符号表.................................................................................................. I II 1 绪论. (1)1.1 数字转速测试仪背景资料 (1)1.2 本次毕业设计的目的和意义 (1)1.3 本次毕业设计的主要内容 (1)2主控芯片ATMEL系统及开发工具简介 (2)2.1 AT89C52系统概述 (2)2.1.1 AT89C52系统 (2)2.1.2 AT89C52的极限参数 (3)2.1.3 引脚和封装定义 (3)2.2 AT89C52单片机开发工具简介 (3)2.2.1 开发工具概述 (3)2.2.2 开发工具主要技术指标 (8)2.2.3 IDE 软件运行环境 (8)2.2.4开发工具与 PC 机硬件连接 (8)3 数字转速测试仪系统介绍 (7)3.1 数字转速测试仪系统组成、主要内容和拟采用的方案 (7)3.2硬件部分组成及框图 (7)3.2.1硬件组成部分 (7)3.2.2原理框图 (7)4 硬件部分 (10)4.1 光电编码器EPC-755A (10)4.1.1.光电编码器原理 (10)4.1.2 编码器的分类 (10)4.1.3 EPC-755A编码器的介绍 (11)4.1.4信号采集部分硬件电路图 (12)4.2 显示部分 (14)4.2.1 芯片特点 (14)4.2.2、MGLS-12032A的管脚介绍 (14)4.2.3、MGLS-12032A的读/写操作时序 (15)4.2.4 MGLS-12032A电特性 (16)4.3 电源部分 (16)4.3.1 电源设计注意事项和MAX1677的性能 (16)4.3.2 MAX1677常用外围参数设定 (17)4.4 PCB板的制作 (20)5 软件设计 (25)6 总结 (27)致谢 (28)参考文献 (28)数字转速测试仪的设计摘要本课题介绍一种基于AT89C52 单片机系统的新型数字测速仪的测量原理、硬件组成和软件设计。
【精品】毕业设计-基于51单片机的转速测量系统设计

Keywordsmonolithic integrated circuits;speedsmeasure;Hall element
第
1.1
随着超大规模集成电路技术提高,尤其是单片机应用技术以其功能强大,价格低廉的显著特点,使全数字化测量转速系统得以广泛应用。由于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受到企业用户的青睐。转速是工程中应用非常广泛的一个参数,其测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方法,这种测量方技术已不能适应现代科技发展的要求,在测量范围和测量精度上,已不能满足大多数系统的使用。随着大规模及超大规模集成电路技术的发展,数字系统测量得到普遍应用,特别是单片机对脉冲数字信号的强大处理能力,使得全数字量系统越来越普及,其转速测量系统也可以用全数字化处理。在测量范围和测量精度方面都有极大的提高。
电式转速表测量。用这种方法测量时,既要在发动机转动轴上粘贴光标纸,又要求测量人员把转速表与光标纸的距离控制在很近的范围,测量十分不方便。随着科学技术的迅速发展,转速测量仪表已步入现代化、电子化的行列。过去曾经使用过的接触式测量仪表,如离心式转速表、磁性转速表、微型发电机转速表及钟表是定时转速表,均已先后受到冷落;而利用已知频率的闪光与被测轴转速同步的方法来测速的闪光测速仪,虽属非接触式仪表,目前仍有应用,但也退居次要地位。代之而起的是非接触式的电子与数字化的测速仪表。这类转速仪表大多具有体积小、重量轻、读数准确、使用方便等优点,容易实现电脑荧屏显示和打印输出,能够连续的反映转速变化,既能测定发动机稳定情况下的平均转速,也能够用来在足够小的时间间隔这一特定条件下测定发动机的瞬时转速。
数字转速表课程设计

目录目录..................................................................................................................................................... - 0 -第1章前言..................................................................................................................................... - 1 -第2章大体原理............................................................................................................................ - 2 -第3章整体设计思路 .................................................................................................................. - 2 -设计方案............................................................................................................................................ - 2 -第4章硬件电路的设计方案..................................................................................................... - 3 -LED显示部份的电路设计 .......................................................................................................... - 3 -按键电路设计 .................................................................................................................................. - 4 -程序设计总图 .................................................................................................................................. - 5 -第5章软件设计方案 .................................................................................................................. - 5 -显示当前转速 .................................................................................................................................. - 5 -十进制转换为二进制程序框图.................................................................................................. - 6 -脉冲个数的求取.............................................................................................................................. - 7 -键盘电路............................................................................................................................................ - 8 -第6章系统调试............................................................................................................................ - 9 -软件模拟仿真 .................................................................................................................................. - 9 -硬件调试............................................................................................................................................ - 9 -第7章总结与体会..................................................................................................................... - 10 -第8章参考文献......................................................................................................... - 10 -附录 .............................................................................................................................. - 11 -第1章前言单片微型运算机简称单片机,是典型的嵌入式(Microcontroller Unit),经常使用英文字母的缩写MCU表示单片机,它最先是被用在工业操纵领域。
数字转速表

1 设计任务描述1.1设计题目:数字转速表1.2 设计要求1.2.1 设计目的(1) 掌握数字转速表的构成、原理与设计方法;(2)熟悉集成电路的使用方法。
1.2.2 基本要求(1) 数字转速的测试与显示电路,要求四位数码显示;(2)数字时间的显示部分——时、分的显示;(3) 时间与转速共用显示器,使用按键切换;1.2.3 发挥部分(1) 转速表的溢出报警和显示;(2) 可预置的转速超限报警。
2 设计思路我的设计题目的数字转速表,数字转速表的主要功能是实现对每分钟转速的测量和计时功能,当按键时能实现转速和时钟的切换显示。
(1)脉冲产生部分:方波信号发生器是记录时间的一个重要组成部分,其稳定度及频率精度决定了计时的准确度。
一般来说,方波信号发生器的频率越高,计时精度越高。
我在这里用到了555与RC组成的多谐振荡器,它产生频率f=1kHz的方波信号。
(2)分频电路部分:分频电路的功能是对方波信号发生器产生的方波信号进行分频处理,这里我用计数器将产生的频率分成两部分,一部分是将频率分成100s,另一部分是分成60的脉冲。
(3)时钟计时部分:根据要求我设计的时钟能显示时和分,是通过60s的脉冲和4个计数器的串联来完成的,将分钟部分接成60进制,小时部分接成24进制。
(4)转速测量部分:将100s的脉冲通过单稳触发器将其变成60s和传感器一起通过闸门实现转速的测量。
(5)数据选择及显示部分:将时钟和转速通过数据选择器实现开关切换的功能,然后通过译码器将数据显示在显示器上,此外此计数器还能实现自动所存功能(6)发挥部分:当转速超出额定输入值时和在转速溢出时进行报警,主要输入信号通过单稳和多频振荡器实现在一定时间报警的功能3 设计方框图4 各部分电路设计及参数计算4.1脉冲产生电路设计及其参数计算4.1.1 脉冲产生电路设计图4.11 555振荡器与分频器的连接电路本电路中的振荡器是由555定时器构成的多谐振荡器。
数字转速表设计

信息与通信学院课程设计课程名称数字电子技术基础课题名称 3. 数字转速表的设计专业电子信息工程2012年2月17 日摘要数字电路包括了脉冲电路和数字逻辑电路两部分。
脉冲电路主要研究脉冲的产生、变换和测量。
尽管脉冲波形形状多样,但它们都有共同点,就是整个波形都由若干个暂态和稳态过程组成。
为了获得暂态过程,脉冲电路必须包括两个组成部分:一个是开关电路,用来接通和断开电路,以破坏电路稳态建立暂态;一个是惰性电路,用以控制暂态过程时间。
我们使用的开关是晶体三极管、二极管、MOS管及由它们构成的集成电路。
常用的惰性电路有RC、RL、RLC和延迟线,其中以RC电路为主。
数字逻辑电路是一门研究数字信号的编码、运算、记忆、计数、存储、分配、测量和传输的科学技术。
简单地说是用数字信号去实现运算、控制和测量的科学。
数字电路与模拟电路相比有如下优点:1.电路结构简单,容易制造,便于集成和系列化生产。
成本低廉,使用方便。
2.由数字电路组成的数字系统,工作准确可靠,精度高。
3.不仅能完成数值运算,还可以进行逻辑运算和判断,在控制系统中这是不可缺少的.因此数字电路又可称作数字逻辑电路。
数字电路相对于模拟电路的这一系列优点,使它在通信、自动控制、测量仪器及计算机等各个科学领城内得到广泛的应用。
所以熟练数字电路的设计在未来的电路设计中占据重要的地位。
一、方案设计1.方案一如上图所示,该方案要用到单片机,电路简单,而且制作成本低,但是对于我们没有学过单片机的学生来说,该方案的难度很大。
所以不采取这个方案。
2.方案二如上图所示,该方案使用十进制计数器,一方面用来时间的统计,一方面用来统计转速。
同时利用按钮来实现转速和时间的切换显示。
避免了使用单片机带来的困难。
但是缺点是使用芯片多,且电路复杂。
但是对于刚刚学完数电和模电的我们来说这能选择这个方案。
二、设计思路分析1.转速信号:用信号发生器提供信号,来模拟转速。
转速的测量方法:测量一分钟内信号发生器的信号的上升沿的个数即为转速。
红外线数字转速表的设计

红外线数字转速表的设计摘要红外线数字转速表是一种代替机械转速表、用来测量转动速率的计量仪表。
红外线数字转速表采用的红外探头有直射式和反射式两种。
从原理上讲,任何一种电子数字式速度表都可以视为一个频率计,可用一只频率计先测出某一信号的频率,然后用此频率计测量该信号的频率,调节电位器使被测信号频率与标准频率计所测频率数一致。
若找不到标准频率计可采用交流电源变压器。
红外数字转速表可由频率计,秒脉冲电路以及计数控制门等组成。
本文介绍了一种基于AT89C51 单片机平台,采用光电传感器实施电机转速测量的方法,硬件系统包括脉冲信号产生、脉冲信号处理和显示模块,并采用C 语言编程,结果表明该方法具有简单、精度高、稳定性好的优点。
介绍了该测速法的基本原理、实现步骤和软硬件设计。
关键词:转速测量,单片机,光电传感器,电机ABSTRACTInfrared digital tachometer is an alternative which replaces mechanical tachometer and is used to measure the rotation rate. Infrared digital tachometer uses direct or reflective infrared probe .To principle,any kind of electronic digitalspeedometer can be regarded as a frequency meter,and frequency meter can be used afirst measured the frequency of a signal,and then measuring the frequency of thesignal in this frequency adjustment potentiometer which allows the signal frequency and thestandard frequency meter to accord with the frequency number.Once unable to find a standardfrequency meter,AC power adapter can be used . Infrared digital tachometer construct contain the frequency meter circuit ,the second pulse and count control gate ,etc.This article describes microcontroller platform which is based on AT89C51,and uses aphotoelectric sensor to motor speed ,consists of the pulse signal,pulse signal processing and display module,and using the C programming language. The results show a lot of advantages,such as,simple method ,high precision,good stability . Introduces the basic principles of the speed law,procedures and hardware and software design.Keywords: speed measurement,microcontroller,photoelectric sensors,motor目录前言 (1)第1章概述 (3)1.1 数字电子技术发展现状 (3)1.2 转速检测计量技术的发展现状与存在的问题 (3)1.2.1 转速概述 (3)1.2.2 转速表的类型和检测技术 (3)1.2.3 国内转速计量技术存在的问题 (4)1.3 选择红外数字转速仪设计的意义 (5)1.4 设计红外数字转速仪所做的工作 (6)第2章转速测量系统的原理 (7)2.1 转速测量方法 (7)2.2 转速测量原理 (8)2.3 总体思路 (9)2.4 系统组成 (9)2.5 转速测量的方案 (10)2.6 红外光电传感器ST188介绍 (10)2.6.1 ST188介绍实物图 (10)2.6.2 极限参数 (11)2.6.3 光电特性 (12)2.6.4 常用电路 (12)2.6.5 原理说明 (13)第3章系统硬件设计 (14)3.1 单片机AT89C51介绍 (14)3.1.1 主要特性 (14)3.1.2 管脚说明 (15)3.1.3 振荡器特性 (18)3.1.4 芯片擦除 (18)3.1.5 最小系统的设计 (18)3.2 转速信号采集 (21)3.3 转速信号处理电路设计 (22)3.4 显示部分设计 (23)3.4.1 LED数码管介绍 (23)3.4.2 显示电路 (25)第4章系统软件设计 (26)4.1 主程序初始化 (26)4.1.1 定时器的初始化 (26)4.1.2 中断允许控制 (27)4.2 主程序流程图程序流程图 (27)第5章系统调试 (30)5.1 软件模拟仿真 (30)5.2 硬件调试 (30)第6章总结 (31)参考文献 (32)致谢 (34)附录Ⅰ系统总电路图 (35)附录Ⅱ实物图 (36)附录Ⅲ系统总程序清单 (37)前言单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计(论文)标题:数字转速计的设计学生姓名:系部:汽车电子系专业:应用电子技术班级:指导教师:目录第1章序言 (1)第2章工作原理和设计思路及方案 (2)2.1 基本原理 (2)2.2 设计思路 (2)2.3 设计方案 (2)第3章硬件电路设计 (4)3.1 按键设计电路图 (4)3.2 显示电路设计图 (4)3.3脉冲产生电路设计图 (5)第4章软件设计 (5)4.1主程序流程及说明 (6)4. 2中断服务子程序 (6)4.3键盘扫描程序 (7)第5章系统调试及软件仿真 (8)5.1 程序调试 (8)5.2 硬件电路调试 (9)第6章总结 (10)参考文献 (11)附录 (12)系统原理图: (12)程序清单: (13)第1章序言随着科学技术特别是微型计算机技术的高速发展,单片微机技术也获得了飞速发展。
目前,单片机已经在日常生活和控制领域等方面得到广泛的应用,它正为我国经济的快速发展发挥着举足轻重的作用。
作为自动化专业的一名工科学生应该牢牢掌握这一重要技术。
而课程设计这一环节是我们提高单片机应用能力的很好机会,也是我们学好这一课程的必经环节。
通过课程设计可以进一步巩固我们前面所学理论知识,使我们对单片机理论知识有一个深刻的认识和全面的掌握。
另外通过这一真正意义上的实践活动,我们可以从中发现自己不足之处并能够在自己的深思下和老师的指导下得到及时的解决。
再次,它能使我们的应用能力和科技创新能力得到较大的提高。
本课程设计是单片机系统在测速方面的简单应用。
目前单片机技术已经在电机转速等为控制对象的控制系统中得到了广泛的应用,而在这一控制过程中必须通过单片机来测量转速。
本课程设计利用89C51单片机及外围电路来设计一个数字转速表。
通过测量转速所对应的方波脉冲来测量转速,,同时其具体数值也可以在LED上显示出来。
单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电气中得到广泛应用。
虽然单片机的品种很多,但MCS-51系列单片机仍不失为单片机中的主流机型。
本课程以MCS-51系列与其特点是由浅入深,注重接口技术和应用。
机电一体化是当今制造技术和产品发展的主要倾向,也是我国机电工业发展的必由之路。
可以认为,它是用系统工程学的观点和方法,研究在机电系统和产品中如何将机械、计算机、信息处理和自动控制技术综合应用,以求机电系统和产品达到最佳的组合。
机电一体化产品所需要的是嵌入式微机,而单片机具有体积小、集成度高、功能强等特点,适于嵌入式应用。
智能仪器、家用电器、数控机床、工业控制等机电设备和产品中竟相使用单片机。
第2章工作原理和设计思路及方案2.1 基本原理本次课程设计用STC89C52作为主控器组成一个转速表。
电机转速采用光电脉冲传感器来测量,通过设置定时器/计数器T0为1S,设置定时器/计数器T1为计数器对光电传感器传过来的脉冲进行计数,电动机测速采用测周法,即每旋转一周产生一个脉冲,则设在1s内测量的脉冲个数为n,故测到转速n就是脉冲频率,再乘以60就是电动机的转速,单位为r/min。
在此期间定时1s,在1s内允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,通过计数一定时间内通过定时器的脉冲数通过软硬件结合工作即可测出电机的转速。
2.2 设计思路为了确定其设计方案,首先必须构思好初步的设计思路。
根据设计要求和实验仿真条件,初步的设计思路可以总结如下:(1) 当前转速与电动机的状态显示用4段LED数码管。
(2) 键盘采用独立式键盘,需要3个键。
(3) 采样时间用定时/计数器0来实现。
(4) 用定时/计数器1来统计采样时间内的脉冲数,进而计算转速。
2.3 设计方案根据设计要求和设计思路,可以确定该系统的设计方案,图1为该系统设计的硬件电路设计框图。
硬件主要由三部分组成,即单片机、键盘、LED显示器。
单片机采用STC89C52。
要求测量的脉冲直接用另一个单片机产生提供。
在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。
硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU时间,CPU有较高的工作效率。
采用硬件定时和软件定时并用的方式,即用T0溢出中断功能实现50ms定时,通过软件延时程序实现1s定时。
定时器的TMOD 用于设置定时器/计数器的工作方式0~3,并确定用于定时还是用于计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
硬件电路设计如图2.1所示。
图2.1 硬件电路设计第3章硬件电路设计3.1 按键设计电路图对于按键电路的设计可以有2种方式:一种方式是直接按键设计,也称独立按键,这种设计电路适用于按键较少的控制,具有按键电路简单,编程方便等优点;另一种方式是矩阵式键盘的设计,它适用于对控制按键较多的电路控制,占用较少的I/O接口,但是按键电路复杂,编程比较复杂。
本课题总共需要3按键,所以采用独立按键设计。
设计图如3.1.1:由上到下的按键分别是复位、停止、启动。
图3.1. 按键电路3.2 显示电路设计图本课题所采用得是由LED(数码管)作为显示电路,用以显示由单片机所接收的脉冲转换来的BCD码,以及开始测速时的各种状态。
硬件电路连接是单片机P0.0~P0.7接数码管的由A~G、DP 8个各管脚,P2.0~P2.3接数码管的控制端W4、W3、W2、W1采用共阳极连接的方法连接图如图3.2.1所示。
图3.2显示电路3.3脉冲产生电路设计图在实际做试验是由另一块单片机产生脉冲,在本次设计中我让另一块单片机输入1Hz频率的脉冲,并把脉冲接到现实的单片机的P3.5口进行计数。
图3.3 脉冲电路第4章软件设计4.1主程序流程及说明本次设计用T0做定时器定时时间为50ms 、T1作计数器,都设置为工作方式一。
在主程序钟通过先重装初值,然后再检测按键,根据按键的状态和定时器的状态调用相应的子程序。
程序流程如图4.1所示图4.1主程序流程图4. 2中断服务子程序当定时器的50MS的定时时间到时,假如计数值大于20次就改变定时器的状态位并清定时器的计数值。
图4.2中断程序流程图4.3键盘扫描程序数字转速表的键盘操作应具有3个功能,即:启动、停止、复位。
本次采用的是直接连接的独立式按键,在键盘扫描过程中必须解决以下问题:1、是否有键按下;2、是哪一个键按下;3是不是有抖动;4、按键是不是松开。
故在程序应该注意以上问题,不然会产生问题,不能正确的对按键进行识别。
图4.3为键盘流程图:图4.3按键流程图第5章系统调试及软件仿真5.1 程序调试试验所涉及的2个软件Keil uVsion2和proteus,以下是仿真步骤。
程序调试部分:uVsion2先新建一个工程,选择芯片为AT89C52然后点击是,然后弹出是否加入标准启动文件,点击否,再新建一个文件,保存为“文件名.C”。
然后点开工程窗口的Target右键单击出现弹出菜单,选择添加文件到工程,选到刚才新建的文件然后点击OK,输入程序,点击工程选择,选中Output中的Creat Hex File,然后编译,连接生成Hex文件,有错误修改后再编译链接。
当编译结果中没出现错误时证明该程序已不存在语法错误。
是否能完成课题所要求的功能则需要进行仿真。
仿真部分:运行proteus的ISIS后进入仿真界面将所需元件选择好,根据原理图画出仿真图,待仿真图换好后双击AT89C52导入Keil uVsion2所产生的后缀名为.HEX文件,按开始键进行仿真。
当输入脉冲为6HZ时输出为360rad/min。
5.2 硬件电路调试硬件调试的步骤如下:接通电源和数据线,通过软件将在Keil uVsion2中生成的HEX文件下载到单片机板子上,先对板子关电当显示请上电时按下单片机上的电源开关按钮上电下载程序到单片机中,通过按键和LED的显示进行调试。
当程序下载完之后,按下电源开关,LED上显示初始状态,按下启动键显示接收数据的状态,按下停止键后显示当前所记录的数据,按下复位键则显示初始状态,关闭所有数码管,为全黑状态。
第6章总结回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次的课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在欧阳老师的辛勤指导下,终于迎刃而解。
同时,在欧阳老师的身上我学得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示衷心的感谢。
参考文献[1] 周向红,刘国繁.51系列单片机应用与实践教程. 北京航空航天大学出版社, 2008[2] 王迎旭.单片机原理及应用.机械工业出版社,2010[3] 张毅刚.新编MCS-51单片机应用设计,哈尔滨工业大学出版社,2003[4] 何立民.编单片机应用系统设计.北航出版社,2000[5]刘国荣.单片微型计算机技术.机械工业出版社,1996[6] 张迎新.单片微型计算机原理、应用及接口技术.国防工业出版社,1993[7]房小翠.编单片机实用系统设计技术.国防工业出版社,1999[8]何立民.编单片机应用系统设计.北航出版社,2005[9]曹琳琳.编单片机原理及接口技术.国防科技大学出版社,2000附录系统原理图:程序清单:#include<reg52.h> //头文件#define uchar unsigned char //宏定义#define uint unsigned int //宏定义uchar code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共阳数码管代码 0-Fuint Count=0; //定时器中断的次数uint Key_State,T_State; //定义键的状态和定时器的状态int second=0; //定时器1在1S内计数的次数sbit Stop=P3^0; //停止sbit Reset=P3^1; //复位sbit key=P3^2; //启动void delay(uint ms) //延时子程序{uint i;while(ms--)for(i=0;i<120;i++);}void Display() //显示子程序{P2=0xFE; //显示个位P0=Tab[second%10];delay(5);P2=0xFD; //显示十位P0=Tab[second%100/10];delay(5);P2=0xFB; //显示百位P0=Tab[second%1000/100];delay(5);P2=0xF7; //显示千位P0=Tab[second/1000];delay(5);}void Scan_Key() //键盘扫描子程序{if(key==0) //启动功能键被按下{delay(10); //去抖if(key==0) //启动键被按下{if(Key_State==0|Key_State==3)//假如键状态为0或3{TR0=1; //开启定时器/计数器0TR1=1; //开启定时器/计数器1Key_State=1; //把键状态设为1}while(!key); //等待启动键释放}}if(Stop==0) //复位键被按下{delay(10); //延时去抖if(Stop==0) //停止键被按下{if(Key_State!=2) //键状态不为2{Key_State=2; //状态设为2TR0=0; //关闭定时器/计数器0TR1=0; //关闭定时器/计数器1 }while(!Stop); //等待复位键释放}}if(Reset==0) //停止键被按下{delay(10); //延时去抖if(Reset==0) //停止键确实被按下{if(Key_State!=3) //键状态为不3{Key_State=3; //键状态设为3TR0=0; //关闭定时器/计数器0TR1=0; //关闭定时器/计数器1 }while(!Reset); //等待停止键释放}}}void main() //主函数{TMOD=0x51; //定时器 1和0 都工作在方式1TH0=(65536-50000)/256; //定时器0装入初值TL0=(65536-50000)%256;TH1=0; //定时器1装入初值TL1=0;EA=1; //开放总中断ET0=1; //开放定时器/计数器0中断ET1=1; //开放定时器/计数器1中断TR0=0; //关闭定时器/计数器0TR1=0; //关闭定时器/计数器1P2=0xff; //关闭数码显示管while(1){Scan_Key(); //调用键盘扫描子程序if(T_State==1&&Key_State==1)//键状态为1且定时器状态为1 {T_State=0; //把定时器状态清0second=(TH1*256+TL1)*60;//计算转速TH1=0; //清计数器TL1=0;}if(Key_State==1|Key_State==2)//键状态为1或2Display(); //调用显示子程序if(Key_State==3) //键状态为3P2=0XFF; //关闭显示}}void T0timer() interrupt 1 //定时器0用于定时{TH0=(65536-50000)/256; //重装初值TL0=(65536-50000)%256;Count++; //计数值加1if(Count>=20) //计数值到了20次,即1S就清0,并把定时器状态设为1{Count=0;T_State=1;}}void T1timer() interrupt 3 //定时器1用于计数{TH1=0; //重装初值TL1=0;}。