PROTEUS课程设计_第1页
PROTEUS课程设计_第2页
PROTEUS课程设计_第3页
PROTEUS课程设计_第4页
PROTEUS课程设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、河南工业职业技术学院 摘要PROTEUS课 程 设 计题 目: 自行车测速系统设计 学 院: 河南工业职业技术学院 专 业: 电子工程系 姓 名: xxxxx 学 号: 0503120107 指导老师:曹建生 完成时间: 2014.6.19 摘 要 随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。因此爱好自行车运动的人十分需要一款能测速的装置,以知道自己的运动情况,并根据外界条件,如温度,风速等进行适当的调节,以达到最佳运动的效果。本论文主要阐述一种基

2、于霍尔元件的自行车速度里程表的设计。以 AT89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,并能将自行车的里程数及速度用LED实时显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送入显示。软件部分用C语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。 关键词:里程/速度,时间,温度,霍尔元件,单片机,LCD河南工业职业技术学院 目录目录1绪论11.1课题研究的目的和意义11.2 课题的发展概况11.3 研究的主要内容

3、22 系统硬件设计32.1 系统方案32.2单片机32.2.1单片机介绍及选择32.2.2 单片机外围电路图42.3时钟模块设计62.3.1时钟芯片的选择62.3.2时钟芯片DS1302介绍62.3.3 DS1302硬件连接图82.4温度模块设计92.4 .1温度传感器选择92.4.2 温度传感器介绍92.4.3 DS18B20硬件连接图122.5 速度模块设计132.5.1 测速传感器选择132.5.2 霍尔元件介绍142.5.3 霍尔传感器硬件连接图152.6 显示模块设计162.6.1 显示器选择162.6.2 LCD芯片介绍162.6.3 LCD硬件连接图173 软件设计183.1 主

4、程序设计183.2 计算速度里程程序设计193.3 温度显示程序设计203.4 时钟芯片程序设计204 结论22参考文献23附录一24附录二25河南工业职业技术学院 绪论1绪论1.1课题研究的目的和意义众所周知,自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的选择。早在1890年,荷兰就修建了世界上第一条自行车专用车道,被世界上公认为自行车王国。目前中国是世界上使用自行车人数最多的国家,也是使用范围最广的国家。拥有亿辆以上的自行车,约占世界自行车总量

5、的/4。在目前私人汽车尚未大范围普及的情况下,自行车仍然是我国大多数百姓首选的代步工具,正由于自行车在我国以及整个世界的广泛使用,使得这一制造行业发展迅捷,产品也不断更新换代。而在我们国家的城市里,主要使用这两大类自行车:第一类是传统式自行车,主要特征是弯曲着的手柄;第二类是山地(仿山地)式自行车,主要特征是一字式的手柄。另外,年长者多用第一类自行车,而年轻者则大多喜欢用第二类自行车了。自行车在中国普遍作为代步工具。而在国外,自行车却是一项十分受欢迎的健身运动。而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。此外,由于能源的枯竭以及现今社会的不断发展人们素质的慢慢提升,汽车等耗能

6、产品将会达到一个饱和,这就给自行车的进一步普及带来机会,同时也响应了国务院节能减排的号召!因此,此设计很有必要,使大家对使用自行车更有兴趣。本设计采用了MCS-52系列单片机设计一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车行走的距离及运行的速度。要知道当前速度,测速装置则必不可少。测速装置在控制系统中占据重要地位,能够精确的掌握电机的运转速度,才能更好更安全的进行调速控制。1.2 课题的发展概况随着微型计算机可靠性提高和价格下降,用单片机测量转速技术已经成熟,但是这种技术目前主要还是用于工业生产方面,测速装置用于生活中还是少之又少。欲提高测量精度,必须先测出准确的转

7、速,而原先在可控硅调速电路中采用的测速发电机方式已不能满足要求,必须采用数字测速的方法。转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法)。本次设计采用了M法(测频法)。转速检测方式采用霍尔脉冲法,测量转速的方法主要有测频法、测周期法以及频率周期法。本设计采用频率法,检测的是输入脉冲数,这种方式又称频率法。它测出一定时间内外界所输入的脉冲的个数。在控制系统中占有非常重要的地位。对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。所设计的基于霍尔元件的脉冲发生器要求具有成本低、结构简单、使用方便、性能好等特点。由于需要采用霍尔

8、传感器的应用领域,如汽车、电机、手机和电脑都已经采用了该器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与上述几个市场相比,因此霍尔传感器在全球总的市场份额是较为稳定的,每年的增长率基本上保持在5%到10%之间。因为各种应用电机的部件、节气门位置的检测、各种阀体位置的检测、或者电磁感应的位置都会用到霍尔传感器。而且,在中国市场中,国外厂商为了降低成本,陆续将零部件拿到中国进行设计和生产,这也进一步提升了中国市场霍尔传感器的使用量。随着它在电子消费市场上的应用越来越广,如何控制功耗和成本将是厂商面临的挑战。而且,它还面临生产测试技术方面的挑战。国内外现在已经有生产销售类

9、似的自行车测速仪里程表,有些简单的产品功能比较单一,就是单单只有测速或里程的功能,然而一些复杂的产品除了测速和里程功能外,还集成了GPS全球定位、单次行车里程、平均速度、时钟、行车时间、车轮转数。未来的发展趋势可能还将加入MP3和短信收发、新闻播报、通讯功能等,使得自行车测速仪更加的人性化、现代化、生活化。相信未来的测速仪会受到更多人的青睐,也将成为人类社会生活中的必需品。1.3 研究的主要内容本文主要介绍了自行车测速仪的设计思想、电路原理、方案以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。首先扼要的对测速仪设计进行总体功能的介绍对自行车进行实时速度的测量,显示出速度值,显示行车

10、里程,实时时间,并且具有断电保护的功能,测量出当前环境的温度;继而具体介绍了自行车测速仪的硬件设计,包括传感器、时钟芯片、单片机、存储器、显示电路,传输电路的设计等;然后阐述了该自行车测速仪的软件设计,包括主程序设计,子程序的设计;最后对本次设计进行了系统的总结。22河南工业职业技术学院 系统硬件设计2 系统硬件设计2.1 系统方案 自行车的速度里程表的硬件电路设计是基础部分,它包括信号的捕获、放大、整形,单片机的计算处理,LCD的实时显示和单片机外围基本电路的设计,两大主要器件就是传感器和单片机。目前,单片机被广泛的应用于测控系统、工业自动化、智能仪表、集成智能传感器、机电一体化产品、家用电

11、器领域、办公自动化领域、汽车电子与航空航天器电子系统以及单片机的多机系统等领域。本次设计的系统的原理框图如图图2.1 系统框图该方案是以单片机为核心,通过测速传感器将所感应到的脉冲信号传送到单片机当中,通过单片机的处理计算并通过显示器将所计算的速度和里程显示出来。时间和温度的显示是通过时钟芯片和温度传感器并以单片机为核心通过显示器显示,而按键用于调整时间。2.2单片机2.2.1单片机介绍及选择单片机是一种集成在电路芯片,是在一块硅片上集成了中央处理器(CPU)、只读存储器(ROM)、随机存储器(RAM)以及定时器/计数器,各种输入/输出(I/O)接口。由于这样的一块芯片具有一台计算机的功能,因

12、而也被称为单片微型计算机。系统所使用的是51系列单片机,它可以把可开发资源全部提供给使用者。51系列单片机具有以下的特点如下:8位cpu;片内带振荡器,频率范围为1.2MHz12MHz,最高工作频率为24MHz;片内带128B的数据存储器;片内带4KB的程序存储器;程序存储器的寻址空间为64KB;片外数据存储器的寻址空间为64KB;128个用户位寻址空间;21个字节特殊功能寄存器;4个8位的I/O并行接口:P0、P1、P2、P3;两个16位定时、计数器;两个优先级别的五个中断源;一个全双工的可编程串行通信口,可多机通信;111条指令,包含乘法指令和除法指令;片内采用单总线结构;有较强的位处理能

13、力;采用单一+5V电源供电,具有一个数据指针DPTR。STC89C54RD+单片机为40 脚双列直插封装的8 位通用微处理器。片内程序存储器内含16KB的Flash程序存储器。片内数据存储器内含1280字节的RAM。具有3个可编程定时器,具有32根可编程I/O口线。 中断系统是具有8个中断源、4个级优先权的中断结构。STC89C54RD+按其引脚功能分为四部分,即主电源引脚VCC和VSS、外接晶体引脚XTAL1和XTAL2、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)、控制或与其它电源复用引脚RST、ALE、PSEN和EA/VPP。图2.2 STC89C54RD+引脚图2.2.2

14、 单片机外围电路图如图2.3所示为单片机外围电路连接图。单片机的最小系统由时钟电路和复位电路组成。单片机时钟产生方法有内部时钟方式和外部时钟方式两种,大多数单片机应用系统采用的是内部时钟方式。内部时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.2 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。典型的石英晶振取值是11.0592MHz。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 40pF

15、 之间选择,典型的电容取值是30pF。在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。复位操作通常有两种形式:上电自动复位和开关复位。5l系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST 持续为高电平,单片机就处于循环复位状态。手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。上电复位电路要在RST复位输入

16、引脚上接一电容至Vcc端,下接一个电阻到地即可。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率。图中K1,K2是调整时间的控制键,而P0口需要外加上拉电阻,主要是因为P0口是个普通口,它内部上拉电阻很小,输出高电平时驱动电流只有几个mA,驱动不了电流型负载,所以一般会要求外接上拉电阻。图2.3 单片机外围电路图2.3时钟模块

17、设计2.3.1时钟芯片的选择时钟芯片种类非常多,主要有内置晶振及充电电池和外置晶振两种类型。现在流行的时钟芯片主要有DS1302、 DS1307、PCF8485、SB2068等。DS1302时钟芯片因为具有电路接口简单,价格低廉、使用方便等优点,所以目前使用最为广泛。DS1302时钟芯片是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V,采用普通32.768kHz晶振。DS1302时钟芯片构成的实时时钟电路是一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源

18、提供可编程的充电功能,并且可以关闭充电功能。2.3.2时钟芯片DS1302介绍DS1302的引脚排列如图2.4。图2.4 DS1302引脚图VCC1为主电源,VCC2为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC10.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32.768kHz晶振。I/O为串行数据输入输出端。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命

19、令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。SCLK为时钟输入端。DS1302控制字如表2.1所示。表2.1 DS1302控制字765432101RAMA4A3A2A1A0RDCKWR(1) 位0(最低有效位):如为逻辑0表示要进行写操作,为逻辑1表示进行读操作。(2) 位5至位1(A4A0):指示操作单元

20、的地址。(3) 位6:如果为逻辑0则表示存取日历时钟数据,为逻辑1则表示存取RAM数据。(4) 位7:控制字的最高有效位,必须是逻辑1,如果它为逻辑0,则不能把数据写入到DS1302中。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位也就是位0开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位(位0)到最高位(位7)。DS1302有关日历、时间的寄存器如表2.2所示。表2.2 DS1302日历、时间寄存器RWBIT7BIT6BIT5BIT4BIT3BIT2BIT1

21、BIT0RANGE81h80hCH10SecondsSeconds00-5983h82h10MinutesMinutes00-5985h84h12/24010HourHour1-12/0-23AM/ PM87h86h0010DateDate1-3189h88h00010MonMon1-128Bh8Ah00000Day1-78Dh8Ch10YearYear00-998Fh8EhWP000000091h90hTCSTCSTCSTCSDSDSRSRS这张表是DS1302内部的7个与时间、日期有关的寄存器图和一个写保护寄存器,我们要做的就是将初始设置的时间数据写入秒寄存器、小时寄存器以及控制寄存器,然

22、后再不断地读取秒寄存器、小时寄存器以及控制寄存器来获取实时时间。突发模式是指一次传送多个字节的时钟信号和RAM数据。突发模式寄存器如表2.3所示。表2.3 DS1302的工作模式寄存器工作模式寄存器读寄存器写寄存器时钟突发模式寄存器CLOCK BURSTBFhBEhRAM突发模式寄存器RAM BURSTFFhFEhDS1302 与单片机进行数据交换时,首先由单片机向电路发送命令字节,命令字节最高位Write Protect(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)

23、为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。 2.3.3 DS1302硬件连接图图2.5为DS1302电路连接图,是系统

24、的时钟模块,可实时的显示时间。实际的DS1302引脚图与仿真图中的引脚排列不同。但所仿真的功能基本一样,只是仿真图的排列方式更便于电路的连接。图中X1(引脚2)与X2(引脚3)所接入的是晶振,晶振的振荡频率为32.768KHz。图中的VCC1(引脚1)和VCC2(引脚8)都是电源引脚,在实际电路中,VCC1接入5V电源,VCC2接入电压为3V的纽扣电池。图2.5 DS1302电路连接图2.4温度模块设计2.4 .1温度传感器选择DS18B20温度传感器主要特点如下:仅需要一个端口引脚进行通信,可通过数据线供电,电压范围为3.05.5,零待机功耗,报警搜索命令识别并标志超过程序限定温度(温度报警

25、条件)的器件,负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2.4.2 温度传感器介绍DS18B20引脚如图2.6所示。图2.6 DS18B20的管脚图DS18B20引脚的定义是DQ为数字信号输入/输出端,GND为电源地,VCC为外接供电电源输入端(在寄生电源接线方式时接地)。DS18B20数据部件:(1) 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。 (2) DS18B20中的温度传感器可

26、完成对温度的测量,如表2.4所示,以0.0625/LSB形式表达,其中S为符号位。表2.4 DS18B20温度值格式表LS Bytebit7bit6bit5bit4bit3bit2bit1bit026Error! No bookmark name given.25Error! No bookmark name given.24Error! No bookmark name given.23Error! No bookmark name given.22Error! No bookmark name given.21Error! No bookmark name given.20Error! N

27、o bookmark name given.2-1Error! No bookmark name given.MS Bytebit15bit14bit13bit12bit11bit10bit9bit8SError! No bookmark name given.SSSSSSS这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中。二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。 例如数字输出为07D0H是+125,数字输出为

28、0191H是+25.0625,数字输出为FF6FH是-25.0625,数字输出为FC90H是-55。表2.5为DS18B20的温度对照表。表2.5 DS18B20温度对照表TEMPERATUREDIGITAL OUTPUT (Binary)DIGITAL OUTPUT (Hex)+85.50000 0000 1010 101000AAh+25.00000 0000 0011 00100032h+0.50000 0000 0000 00010001h00000 0000 0000 00000000h-0.51111 1111 1111 1111FFFFh-25.01111 1111 1100 1

29、110FFCEh-55.01111 1111 1001 0010FF92hDS18B20温度传感器的内部存储器包括一个高速暂存存储器(RAM)和一个非易失性的可电擦除的EEPROM。EEPROM用于存放高温度和低温度触发器TH、TL和结构寄存器。高速暂存存储器(RAM)除了配置寄存器外,还有其他8个字节组成,其分配如图2.7所示。其中第1,2字节(温度信息)、第3,4字节(TH和TL值)、第68字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节循环冗余校验码(CRC校验),可用来保证通信正确。图2.7 DS18B20内部储存器结构图DS18B20控制流程:根据DS18B20的通讯协议,

30、主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:首先是每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。RAM指令用于主机对DS18B20内部RAM的操作。 RAM指令表如表2.6。表2.6 RAM指令表指令约定代码功能温度转换44H启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9

31、字节ROM中。读暂存器0BEH读内部RAM 9字节内容。写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节数据。复制暂存器48H将RAM的第3、4字节的内容复制到EEPROM中。重读EEPROM0B8H将EEPROM中的内容复制到RAM中的第3、4字节。读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”。ROM指令表明了主机寻址一个或者多个DS18B20中的某个或某几个,或者读取某个DS18B20的64位地址。ROM指令表如表2.7。表2.7 ROM指令表指令代码操作说明温度转换44

32、H开始启动DS18B20温度转换读ROM33H读ROM内容匹配ROM55H对指定器件操作跳过CCH跳过器件识别读暂存器BEH读暂存器内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到ROM重写调用RAMB8H把RAM中的TH、TL字节写到暂存器TH、TL字节2.4.3 DS18B20硬件连接图图2.8是DS18B20的电路连接图,是测量外界环境温度的模块。通过串行通信将数据送至单片机处理并显示,其中DQ是串行数据输出口,必须加入一上拉电阻。VCC和GND分别接入的是电源和接地。电路连接简单,但由于数据输出口只有一个,所以编程比较复杂。图2.8 DS1

33、8B20电路连接图2.5 速度模块设计2.5.1 测速传感器选择测速传感器是对被测物的运行速度进行测量并转化成可输出信号的传感器。测速传感器包括测量线速度传感器和测量转速度传感器。而测量转速的方式很多,常见的有霍尔传感器、反射式光电传感器与透射式光电传感器、以旋转编码器等等。设计中采用了霍尔传感器进行测速。霍尔传感器具有对磁场敏感、结构简单、体积小、频率响应宽、输出电压变化大和使用寿命长等优点,在测量、自动化、计算机和信息技术等领域得到广泛的应用。霍尔传感器44E系列是Allegro MicroSystems公司生产的宽温、开关型霍尔效应传感器,其工作温度范围可达-40150。它由电压调整电路

34、、反相电源保护电路、霍尔元件、温度补偿电路、微信号放大器、施密特触发器和OC门输出极构成,通过使用上拉电阻可以将其输出接入CMOS逻辑电路。2.5.2 霍尔元件介绍霍尔元件是人们使用半导体材料根据霍尔效应制造的芯片。该芯片具有尺寸小、稳定性好、灵敏度高、结构牢固、体积小、重量轻、寿命长、安装方便等优点。A3144E系列单极高温霍尔效应集成传感器是由稳压电源,霍尔电压发生器,差分放大器,施密特触发器和输出放大器组成的磁敏传感电路,其输入为磁感应强度,输出是一个数字电压讯号。它是一种单磁极工作的磁敏电路,适用于矩形或者柱形磁体下工作。可应用于汽车工业和军事工程中。霍尔传感器的外形图和与磁场的作用关

35、系如图2.9所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。 a 霍尔元件和磁钢 b 管脚图图2.9 霍尔传感器的外形图霍尔传感器测量原理:测量电机转速的第一步就是要将电机的转速表示为单片机可以识别的脉冲信号,从而进行脉冲计数。本次设计选用霍尔传感器检测脉冲信号,其基本的测量原理如图2.10所示,当电机转动时,带动传感器运动,产生对应频率的脉冲信号,经过信号处理后输出到计数器或其他的脉冲计数装置,进行转速的测量。 图2.10霍尔传感器测量原理转速测量方法: 转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法)。系统采用了M法

36、(测频法)。由于转速是以单位时间内转数来衡量,在变换过程中多数是有规律的重复运动。根据霍尔效应原理,将一块永久磁钢固定在自行车的轮毂上,随着自行车轮子的转动,磁钢也随着轮子同步转动,在自行车车体上安装一个霍尔传感器,当车轮转动时,受磁钢的影响霍尔传感器会输出脉冲信号,其频率和转速成正比。脉冲信号的周期与电机的转速有以下关系:V=N*L 式中:V为自行车车速;N为车轮单位时间内的脉冲数;L车轮的周长。根据上式即可计算出自行车当前的速度。2.5.3 霍尔传感器硬件连接图图2.11为霍尔传感器的的硬件连接图,可测量外界磁信号。车轮每转一圈,则霍尔传感器能感应到固定在车轮上磁钢发出的信号。其中out引

37、脚为霍尔传感器的脉冲输出引脚,且必须接入上拉电阻。由于软件中没有霍尔传感器,所以使用脉冲信号代替。图2.11 霍尔传感器的电路图及仿真时使用的脉冲信号2.6 显示模块设计2.6.1 显示器选择由于设计中的需显示英文字符,且显示的数据比较多,所以应该采用液晶屏显示。现在液晶显示屏种类繁多,常用的液晶显示屏有12864、1602等。12864顾名思义像素是128*64,能显示8*4个汉字,因型号不同,有的带汉字库,有的不带,能显示图像效果,功能比1602强大。1602一般只用于显示字母、数字和符号能显示16*2个字符,具有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单

38、,价格低廉。由于设计中不需汉字显示且显示字符足够。因此,系统采用1602液晶显示。2.6.2 LCD芯片介绍1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602液晶显示器的显示容量是16×2个字符,芯片工作电压:4.55.5V,最佳的工作电压5.0V,工作电流:2.0mA(5.0V),字符尺寸:2.95×4.35(W&#

39、215;H)mm。LCD接口如表38所示。表38 LCD引脚及引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。E(或EN)端为使能端,高电平时读取信息,负跳变时执行指令。2.6.3 LCD硬件连接图图2.12中引脚3(VEE)为液晶显示偏压,主要是用来调节

40、显示屏的亮度,在仿真电路中不需接入电位器,但是在实际的硬件电路连接图中必须要接入电位器来调节显示亮度,否则LCD无法正常显示。在仿真图中LCD1602元件是只有14个引脚,而实际的LCD1602是16个引脚。仿真图中的LCD元件所缺少的是BLA(第15引脚)与BLK(第16引脚)。而在实际电路中这两个引脚也是必须要分别接到电源正极和电源负极上。否则LCD显示屏亮度不足以正常显示数据的。图2.12 lcd电路连接图21河南工业职业技术学院 软件设计3 软件设计3.1 主程序设计软件设计根据实际的工艺要求进行编写,要求是将DS18B20温度传感器、霍尔传感器、DS1302参数值送到单片机中,再由它

41、将温度值、时间、速度等参数送至LCD显示器中进行显示。主程序工作过程如图3.1所示。图3.1 主程序流程图3.2 计算速度里程程序设计当单片机获取霍尔到传感器所感应的脉冲个数时,不能立马算出自行车的速度和里程,要经过数学计算后才能得出,系统中所默认车轮的直径为2.2m,使用者是可以根据自己的自行车直径更改程序里的数据。本设计根据单片机每秒钟接收的脉冲个数来计算自行车的速度。再将每秒的速度相加,就可得出自行车的里程。最后在1602液晶显示器上面显示。在Proteus上仿真得到的结果与计算结果完全相同。程序设计流程图如图3.2所示。图3.2计算速度里程流程图3.3 温度显示程序设计温度传感器采用D

42、S18B20进行温度测试,并通过1602液晶显示器进行显示。由于DS18B20数据输出线只有一条,所以必须采用一位读取,读取到的温度值分别存入高八位和低八位寄存器中。输出显示时必须将十六进制数值转换成十进制并输出到1602液晶显示器的显示屏中。程序流程图如图3.3所示。图3.3温度显示流程图3.4 时钟芯片程序设计时钟芯片采用的是DS1302,该时钟芯片内置年、月、日、星期、时、分、秒寄存器。可将时间数据分别存储到各个寄存器中,有外置晶振作为芯片的时钟周期,外部晶振的频率为32.768KHz使其工作频率与时间对应。在读取时间时,可从各个时间寄存器当中读取数据,然后进行显示。调时功能是通过脉冲检

43、测,每当按键按下一次,该数据口电平为零,数据加一。由于按键按下去或者松手是有颤抖现象的,需进行去抖和松手检测,统称去抖。一般进行去抖和松手检测有两种方法:一、硬件去抖;二、软件去抖。由于硬件去抖电路复杂繁琐,所以设计中采用了软件去抖法,该法是通过软件延时的方法,软件去抖法是将颤抖时间用延时给掩盖,以近似的将颤抖现象去除。调时按键设计了2个,分别为“小时”和“分钟”,按键可以一直“加一”直至为0。在调试当中较麻烦,未实现人性化的设计。时间显示和调试控制程序流程图如图3.4所示。图3.4 时间显示和调试控制程序流程图26河南工业职业技术学院 结论4 结论系统的设计与制作工作已经全部完成,基本达到和

44、满足了预期的目的和要求。系统的调试与仿真结果基本符合设计要求。动态显示、显示内容的实时更新等方面达到预期的目标,但是由于时间仓促、条件有限,设计结果还存在一些缺陷,还存在诸如:显示内容的单一、数据波动、抗干扰能力差、霍尔传感器的精度差、人性化设计不全面等等。通过此次设计,学到了许多以前不了解的知识,积累了不少宝贵的经验。这个设计主要经历了以下几个过程:广泛查阅资料、文献综述、总体思路的确定、方案的确定、软件的调试、系统的调试,我认为整个过程是一个联系非常紧密的过程,前一过程的结果为后一过程奠定了基础。在整个过程中,本人不仅对单片机控制系统的每一个细节有了比较深入的掌握,而且对关于系统扩展的相关

45、知识有了感性的认识,不仅掌握了大量的专业知识,更学会了系统模块化设计的基本思想。I河南工业职业技术学院 参考文献参考文献1 杨恢先单片机原理及应用M.人民邮电出版社 20062 何立民单片机高级教程-应用与设计M.北京航空航天大学出版社2007.1 3 童诗白模拟电子技术基础第四版M.高等教育出版社2001.1 4 李学礼基于Proteus的8051单片机实例教程M.电子工业出版社2008 5 徐爱钧单片机原理实用教程基于Proteus虚拟仿真M.电子工业出版社2009 6 陈享成、耿长青基于单片机的LCD显示终端设计J.电力自动化设备2007 7 楼然苗51系列单片机设计实例M. 北京航空航

46、天大学出版社 2006 8 曲家骇、王季秩伺服控制系统中的传感器M. 机械工业出版社. 1998.I河南工业职业技术学院 附录一附录一I河南工业职业技术学院 附录二附录二#include <reg51.h>/单片机寄存器头文件#include <intrins.h> /_nop_函数定义头文件#define uchar unsigned char /定义uchar代替unsigned char#define uint unsigned int /定义uint代替unsigned intsbit dq=P20; /温度传感器信号线,sbit ds_rst=P22; sbi

47、t ds_clk=P23;sbit ds_io=P24; sbit lcdrs=P25; /lcd读写选择位sbit lcdrw=P26; /lcd寄存器选择位sbit lcden=P27; /lcd使能信号位sbit ACC0=ACC0; sbit ACC7=ACC7; sbit scan = P32; /低电平输入 sbit key1=P12; sbit key2=P13; uchar com,inf,num=0; int temper=0; uchar code table="0123456789" /定义字符数组显示数字uchar ncounter; /转数 lon

48、g int scounter; uchar T0counter; /T0 50ms计数 uchar SECsign; /秒信号 uchar speed; /速度 uchar cflag; /计数允许 uchar s=0; /以米为单位的路程 uchar sk=0; /以千米为单位的路程 uchar second=0x00,second1,second2; uchar minute=0x59,minute1,minute2; uchar hour=0x20,hour1,hour2; /lcd1602的初始化程序 void delay1602(uint z)/延迟 uchar x,y; for(x

49、=z;x>0;x-) for(y=0;y>0;y-);bit lcd_bz() / result=1,lcd忙碌;result=0,lcd不忙 bit result; lcdrs= 0; /当lcdrs为低电平,lcdrw为高电平时,可以读状态lcdrw= 1; lcden= 1;/当lcden=1时,允许读写_nop_();_nop_();_nop_();_nop_();result = (bit)(P0&0x80); lcden= 0; return result; void write_com(uchar com) /写命令 lcd_bz(); lcdrs=0; /r

50、s和rw同时为低电平时,可以写入指令lcdrw=0; lcden=0; P0=com; delay1602(12); lcden=1; delay1602(12); lcden=0; void write_data1(uchar data1) /写数据 lcd_bz(); lcdrs=1; /当lcdrs为高电平,lcdrw为低电平时,可以写入数据lcdrw=0; lcden=0; P0=data1; delay1602(60); lcden=1; delay1602(60); lcden=0; void init_lcd() /lcd初始化 lcden=0; write_com(0x38); write_com(0x0c); /光标控制 write_com(0x06); write_com(0x01); /清屏 /ds18b20的控制程序 void delay18b20(uint time)/ds18b20的延时程序 uint x,y; for(x=0;x<time;x+) for(y=0;y<1;y+);uchar reset() /复位子程序 uchar fl

温馨提示

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

最新文档

评论

0/150

提交评论