PROTEUS课 程 设 计.docx
《PROTEUS课 程 设 计.docx》由会员分享,可在线阅读,更多相关《PROTEUS课 程 设 计.docx(39页珍藏版)》请在冰豆网上搜索。
![PROTEUS课 程 设 计.docx](https://file1.bdocx.com/fileroot1/2023-1/31/f8b257e7-045e-4f24-bef0-b8a472eb2292/f8b257e7-045e-4f24-bef0-b8a472eb22921.gif)
PROTEUS课程设计
PROTEUS课程设计
题目:
自行车测速系统设计
学院:
河南工业职业技术学院
专业:
电子工程系
姓名:
xxxxx
学号:
0503120107
指导老师:
曹建生
完成时间:
2014.6.19
摘要
随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。
自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。
因此爱好自行车运动的人十分需要一款能测速的装置,以知道自己的运动情况,并根据外界条件,如温度,风速等进行适当的调节,以达到最佳运动的效果。
本论文主要阐述一种基于霍尔元件的自行车速度里程表的设计。
以AT89C52单片机为核心,A44E霍尔传感器测转数,实现对自行车里程/速度的测量统计,并能将自行车的里程数及速度用LED实时显示。
文章详细介绍了自行车的速度里程表的硬件电路和软件设计。
硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送入显示。
软件部分用C语言进行编程,采用模块化设计思想。
该系统硬件电路简单,子程序具有通用性,完全符合设计要求。
关键词:
里程/速度,时间,温度,霍尔元件,单片机,LCD
目录
1绪论1
1.1课题研究的目的和意义1
1.2课题的发展概况1
1.3研究的主要内容2
2系统硬件设计3
2.1系统方案3
2.2单片机3
2.2.1单片机介绍及选择3
2.2.2单片机外围电路图4
2.3时钟模块设计6
2.3.1时钟芯片的选择6
2.3.2时钟芯片DS1302介绍6
2.3.3DS1302硬件连接图8
2.4温度模块设计9
2.4.1温度传感器选择9
2.4.2温度传感器介绍9
2.4.3DS18B20硬件连接图12
2.5速度模块设计13
2.5.1测速传感器选择13
2.5.2霍尔元件介绍14
2.5.3霍尔传感器硬件连接图15
2.6显示模块设计16
2.6.1显示器选择16
2.6.2LCD芯片介绍16
2.6.3LCD硬件连接图17
3软件设计18
3.1主程序设计18
3.2计算速度里程程序设计19
3.3温度显示程序设计20
3.4时钟芯片程序设计20
4结论22
参考文献23
附录一24
附录二25
1绪论
1.1课题研究的目的和意义
众所周知,自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的选择。
早在1890年,荷兰就修建了世界上第一条自行车专用车道,被世界上公认为自行车王国。
目前中国是世界上使用自行车人数最多的国家,也是使用范围最广的国家。
拥有1亿辆以上的自行车,约占世界自行车总量的1/4。
在目前私人汽车尚未大范围普及的情况下,自行车仍然是我国大多数百姓首选的代步工具,正由于自行车在我国以及整个世界的广泛使用,使得这一制造行业发展迅捷,产品也不断更新换代。
而在我们国家的城市里,主要使用这两大类自行车:
第一类是传统式自行车,主要特征是弯曲着的手柄;第二类是山地(仿山地)式自行车,主要特征是一字式的手柄。
另外,年长者多用第一类自行车,而年轻者则大多喜欢用第二类自行车了。
自行车在中国普遍作为代步工具。
而在国外,自行车却是一项十分受欢迎的健身运动。
而对于自行车运动员来说,最为关心的莫过于一段时间内的训练效果。
此外,由于能源的枯竭以及现今社会的不断发展人们素质的慢慢提升,汽车等耗能产品将会达到一个饱和,这就给自行车的进一步普及带来机会,同时也响应了国务院节能减排的号召!
因此,此设计很有必要,使大家对使用自行车更有兴趣。
本设计采用了MCS-52系列单片机设计一种体积小、操作简单的便携式自行车的速度里程表,它能自动地显示当前自行车行走的距离及运行的速度。
要知道当前速度,测速装置则必不可少。
测速装置在控制系统中占据重要地位,能够精确的掌握电机的运转速度,才能更好更安全的进行调速控制。
1.2课题的发展概况
随着微型计算机可靠性提高和价格下降,用单片机测量转速技术已经成熟,但是这种技术目前主要还是用于工业生产方面,测速装置用于生活中还是少之又少。
欲提高测量精度,必须先测出准确的转速,而原先在可控硅调速电路中采用的测速发电机方式已不能满足要求,必须采用数字测速的方法。
转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法)。
本次设计采用了M法(测频法)。
转速检测方式采用霍尔脉冲法,测量转速的方法主要有测频法、测周期法以及频率周期法。
本设计采用频率法,检测的是输入脉冲数,这种方式又称频率法。
它测出一定时间内外界所输入的脉冲的个数。
在控制系统中占有非常重要的地位。
对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。
所设计的基于霍尔元件的脉冲发生器要求具有成本低、结构简单、使用方便、性能好等特点。
由于需要采用霍尔传感器的应用领域,如汽车、电机、手机和电脑都已经采用了该器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与上述几个市场相比,因此霍尔传感器在全球总的市场份额是较为稳定的,每年的增长率基本上保持在5%到10%之间。
因为各种应用电机的部件、节气门位置的检测、各种阀体位置的检测、或者电磁感应的位置都会用到霍尔传感器。
而且,在中国市场中,国外厂商为了降低成本,陆续将零部件拿到中国进行设计和生产,这也进一步提升了中国市场霍尔传感器的使用量。
随着它在电子消费市场上的应用越来越广,如何控制功耗和成本将是厂商面临的挑战。
而且,它还面临生产测试技术方面的挑战。
国内外现在已经有生产销售类似的自行车测速仪里程表,有些简单的产品功能比较单一,就是单单只有测速或里程的功能,然而一些复杂的产品除了测速和里程功能外,还集成了GPS全球定位、单次行车里程、平均速度、时钟、行车时间、车轮转数。
未来的发展趋势可能还将加入MP3和短信收发、新闻播报、通讯功能等,使得自行车测速仪更加的人性化、现代化、生活化。
相信未来的测速仪会受到更多人的青睐,也将成为人类社会生活中的必需品。
1.3研究的主要内容
本文主要介绍了自行车测速仪的设计思想、电路原理、方案以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。
首先扼要的对测速仪设计进行总体功能的介绍对自行车进行实时速度的测量,显示出速度值,显示行车里程,实时时间,并且具有断电保护的功能,测量出当前环境的温度;继而具体介绍了自行车测速仪的硬件设计,包括传感器、时钟芯片、单片机、存储器、显示电路,传输电路的设计等;然后阐述了该自行车测速仪的软件设计,包括主程序设计,子程序的设计;最后对本次设计进行了系统的总结。
2系统硬件设计
2.1系统方案
自行车的速度里程表的硬件电路设计是基础部分,它包括信号的捕获、放大、整形,单片机的计算处理,LCD的实时显示和单片机外围基本电路的设计,两大主要器件就是传感器和单片机。
目前,单片机被广泛的应用于测控系统、工业自动化、智能仪表、集成智能传感器、机电一体化产品、家用电器领域、办公自动化领域、汽车电子与航空航天器电子系统以及单片机的多机系统等领域。
本次设计的系统的原理框图如图
图2.1系统框图
该方案是以单片机为核心,通过测速传感器将所感应到的脉冲信号传送到单片机当中,通过单片机的处理计算并通过显示器将所计算的速度和里程显示出来。
时间和温度的显示是通过时钟芯片和温度传感器并以单片机为核心通过显示器显示,而按键用于调整时间。
2.2单片机
2.2.1单片机介绍及选择
单片机是一种集成在电路芯片,是在一块硅片上集成了中央处理器(CPU)、只读存储器(ROM)、随机存储器(RAM)以及定时器/计数器,各种输入/输出(I/O)接口。
由于这样的一块芯片具有一台计算机的功能,因而也被称为单片微型计算机。
系统所使用的是51系列单片机,它可以把可开发资源全部提供给使用者。
51系列单片机具有以下的特点如下:
8位cpu;片内带振荡器,频率范围为1.2MHz~12MHz,最高工作频率为24MHz;片内带128B的数据存储器;片内带4KB的程序存储器;程序存储器的寻址空间为64KB;片外数据存储器的寻址空间为64KB;128个用户位寻址空间;21个字节特殊功能寄存器;4个8位的I/O并行接口:
P0、P1、P2、P3;两个16位定时、计数器;两个优先级别的五个中断源;一个全双工的可编程串行通信口,可多机通信;111条指令,包含乘法指令和除法指令;片内采用单总线结构;有较强的位处理能力;采用单一+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.2STC89C54RD+引脚图
2.2.2单片机外围电路图
如图2.3所示为单片机外围电路连接图。
单片机的最小系统由时钟电路和复位电路组成。
单片机时钟产生方法有内部时钟方式和外部时钟方式两种,大多数单片机应用系统采用的是内部时钟方式。
内部时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
一般来说晶振可以在1.2~12MHz之间任选,甚至可以达到24MHz或者更高,但是频率越高功耗也就越大。
典型的石英晶振取值是11.0592MHz。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
当采用石英晶振时,电容可以在20~40pF之间选择,典型的电容取值是30pF。
在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
复位操作通常有两种形式:
上电自动复位和开关复位。
5l系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
手动按钮复位需要人为在复位输入端RST上加入高电平。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
上电复位电路要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。
上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。
为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。
上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率。
图中K1,K2是调整时间的控制键,而P0口需要外加上拉电阻,主要是因为P0口是个普通口,它内部上拉电阻很小,输出高电平时驱动电流只有几个mA,驱动不了电流型负载,所以一般会要求外接上拉电阻。
图2.3单片机外围电路图
2.3时钟模块设计
2.3.1时钟芯片的选择
时钟芯片种类非常多,主要有内置晶振及充电电池和外置晶振两种类型。
现在流行的时钟芯片主要有DS1302、DS1307、PCF8485、SB2068等。
DS1302时钟芯片因为具有电路接口简单,价格低廉、使用方便等优点,所以目前使用最为广泛。
DS1302时钟芯片是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V,采用普通32.768kHz晶振。
DS1302时钟芯片构成的实时时钟电路是一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
2.3.2时钟芯片DS1302介绍
DS1302的引脚排列如图2.4。
图2.4DS1302引脚图
VCC1为主电源,VCC2为后备电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由VCC1或VCC2两者中的较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。
当VCC2小于VCC1时,DS1302由VCC1供电。
X1和X2是振荡源,外接32.768kHz晶振。
I/O为串行数据输入输出端。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在VCC>2.0V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
SCLK为时钟输入端。
DS1302控制字如表2.1所示。
表2.1DS1302控制字
7
6
5
4
3
2
1
0
1
RAM
A4
A3
A2
A1
A0
RD
CK
WR
(1)位0(最低有效位):
如为逻辑0表示要进行写操作,为逻辑1表示进行读操作。
(2)位5至位1(A4~A0):
指示操作单元的地址。
(3)位6:
如果为逻辑0则表示存取日历时钟数据,为逻辑1则表示存取RAM数据。
(4)位7:
控制字的最高有效位,必须是逻辑1,如果它为逻辑0,则不能把数据写入到DS1302中。
控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位也就是位0开始。
同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位(位0)到最高位(位7)。
DS1302有关日历、时间的寄存器如表2.2所示。
表2.2DS1302日历、时间寄存器
R
W
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2
BIT1
BIT0
RANGE
81h
80h
CH
10Seconds
Seconds
00-59
83h
82h
10Minutes
Minutes
00-59
85h
84h
12/24
0
10
Hour
Hour
1-12
/0-23
AM/PM
87h
86h
0
0
10Date
Date
1-31
89h
88h
0
0
0
10Mon
Mon
1-12
8Bh
8Ah
0
0
0
0
0
Day
1-7
8Dh
8Ch
10Year
Year
00-99
8Fh
8Eh
WP
0
0
0
0
0
0
0
—
91h
90h
TCS
TCS
TCS
TCS
DS
DS
RS
RS
—
这张表是DS1302内部的7个与时间、日期有关的寄存器图和一个写保护寄存器,我们要做的就是将初始设置的时间数据写入秒寄存器、小时寄存器以及控制寄存器,然后再不断地读取秒寄存器、小时寄存器以及控制寄存器来获取实时时间。
突发模式是指一次传送多个字节的时钟信号和RAM数据。
突发模式寄存器如表2.3所示。
表2.3DS1302的工作模式寄存器
工作模式寄存器
读寄存器
写寄存器
时钟突发模式寄存器
CLOCKBURST
BFh
BEh
RAM突发模式寄存器
RAMBURST
FFh
FEh
DS1302与单片机进行数据交换时,首先由单片机向电路发送命令字节,命令字节最高位WriteProtect(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。
在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。
若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。
2.3.3DS1302硬件连接图
图2.5为DS1302电路连接图,是系统的时钟模块,可实时的显示时间。
实际的DS1302引脚图与仿真图中的引脚排列不同。
但所仿真的功能基本一样,只是仿真图的排列方式更便于电路的连接。
图中X1(引脚2)与X2(引脚3)所接入的是晶振,晶振的振荡频率为32.768KHz。
图中的VCC1(引脚1)和VCC2(引脚8)都是电源引脚,在实际电路中,VCC1接入5V电源,VCC2接入电压为3V的纽扣电池。
图2.5DS1302电路连接图
2.4温度模块设计
2.4.1温度传感器选择
DS18B20温度传感器主要特点如下:
仅需要一个端口引脚进行通信,可通过数据线供电,电压范围为3.0~5.5V,零待机功耗,报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件,负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
2.4.2温度传感器介绍
DS18B20引脚如图2.6所示。
图2.6DS18B20的管脚图
DS18B20引脚的定义是DQ为数字信号输入/输出端,GND为电源地,VCC为外接供电电源输入端(在寄生电源接线方式时接地)。
DS18B20数据部件:
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。
(2)DS18B20中的温度传感器可完成对温度的测量,如表2.4所示,以0.0625℃/LSB形式表达,其中S为符号位。
表2.4DS18B20温度值格式表
LSByte
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
26
25
24
23
22
21
20
2-1
MSByte
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
S
S
S
S
S
S
S
S
这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中。
二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。
例如数字输出为07D0H是+125℃,数字输出为0191H是+25.0625℃,数字输出为FF6FH是-25.0625℃,数字输出为FC90H是-55℃。
表2.5为DS18B20的温度对照表。
表2.5DS18B20温度对照表
TEMPERATURE
DIGITALOUTPUT(Binary)
DIGITALOUTPUT(Hex)
+85.5℃
0000000010101010
00AAh
+25.0℃
0000000000110010
0032h
+0.5℃
0000000000000001
0001h
0℃
0000000000000000
0000h
-0.5℃
1111111111111111
FFFFh
-25.0℃
1111111111001110
FFCEh
-55.0℃
1111111110010010
FF92h
DS18B20温度传感器的内部存储器包括一个高速暂存存储器(RAM)和一个非易失性的可电擦除的EEPROM。
EEPROM用于存放高温度和低温度触发器TH、TL和结构寄存器。
高速暂存存储器(RAM)除了配置寄存器外,还有其他8个字节组成,其分配如图2.7所示。
其中第1,2字节(温度信息)、第3,4字节(TH和TL值)、第6~8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节循环冗余校验码(CRC校验),可用来保证通信正确。
图2.7DS18B20内部储存器结构图
DS18B20控制流程:
根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:
首先是每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
RAM指令用于主机对DS18B20内部RAM的操作。
RAM指令表如表2.6。
表2.6RAM指令表
指令
约定代码
功能
温度转换
44H
启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。
结果存入内部9字节ROM中。
读暂存器
0BEH
读内部RAM9字节内容。
写暂存器
4EH
发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节数据。
复制暂存器
48H
将RAM的第3、4字节的内容复制到EEPROM中。
重读EEPROM
0B8H
将EEPROM中的内容复制到RAM中的第3、4字节。
读供电方式
0B4H
读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”。
ROM指令表明了主机寻址一个或者多个DS18B20中的某个或某几个,或者读取某个DS18B20的64位地址。
ROM指令表如表2.7。
表2.7ROM指令表
指令
代码
操作说明
温度转换
44H
开始启动DS18B20温度转换
读ROM
33H
读ROM内容
匹配ROM
55H
对指定器件操作
跳过
CCH
跳过器件识别
读暂存器
BEH
读暂存器内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到ROM
重写调用RAM