资源描述
智能电动自行车速度与里程表设计
摘 要用上次我改动的
随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车里程/速度计能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于单片机自行车里程/速度计的设计。以 AT89s51单片机为核心,ST1101光电传感器测转数,实现对自行车里程/速度的测量统计,采用 24C02 实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用LED实时显示。文章详细介绍了自行车里程/速度计的硬件电路和软件设计。硬件部分利用光电传感器将自行车每转一秒的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示,并且增加了温度和时间显示功能。软件部分用C语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。
关键词:里程/速度;光电传感器;单片机;LED显示
Abstract
With the developing of people’s life, the bicycle is not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainmenting and exercising. The bicycle mileage/speed can fulfill the basic need of people’s life, so that they can learn the speed and the mileage of the bicycle. In these paper, the bicycle mileage/speed design based on the Hall element is Single Chip Microcomputer. By AT89s51 as kernel, using ST1101 Photoelectric sensor to measure revolution, the measure and statistic are achieved. The range informations are saved by 24C02 when the power is off, the bicycle speed can be displayed on LED. In this article, the hardware circuit and software design of bicycle mileage/speed instrument are introduced in detail. About the hardware, the pulse number is transmitted of one sencond of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. And an increase of temperature and time display .About the software, in c language, the program is designed in the mode of modules. The system has simple hardware, common sub-program, and meet the demand of design.
Keywords: Mileage / speed; Photoelectric sensor; Single Chip Microcomputer; LED
智能电动自行车速度与里程表设计
目录
1 绪论……………………………………………………………...………………….1
1.1 引言……………………………………….………………………………………1
1.2 车速里程表的发展现状.…………....…………….…………………..…………1
1.2.1 传统的机械式车速表………………………..……………..…………………1
1.2.2 简易电子式车速表…………………………………..…………..……………1
1.2.3 程控集成电路(IC)车速表…………………………..……………..…………2
1.2.4 车速表现状…………………………………………..………………..………3
1.3 设计的主要任务及内容………………………………………….………………3
2 总体设计方案………………………………………………………………………4
2.1 设计任务分析.…………….…………………………….……………….……...…………4
2.2 总体设计思想………………….…………………………….…….………….….4
3 系统硬件设计………………………………………………………………………6
3.1 主控器单片机的选用…………………………………………....………….……6
3.2 测速电路模块…………………….……………………...............………….……8
3.3 温度测量电路模块…………………….…………………….... ………….……10
3.3.1 AD590介绍………………………..….……………………....………….……10
3.3.2 ADC0809介绍……………………..….……………………....………….……11
3.4 e2prom at24c02外部数据存储器扩展模块………….………….……...….……12
3.5 LED数据显示电路模块……………………….……………………..…….……13
3.5.1 7段LED数码管内部结构原理……………………………......………….……14
3.5.2 74LS245简介……………………….…..….………………....………….……15
3.5.3 74HS138简介……………...………….……………………....………….……15
3.6 报警电路模块…………………………..……………………....………….……17
3.7 系统工作电源和开关电路模块…………….………….………………….……17
4 系统软件设计……………………….…………………………...…………..……18
4.1 系统软件设计分析………………….…….…………………....………….……18
4.2 系统软件设计……………………….……………….………....………….……19
4.2.1 主程序模块……………………….…………..…………....……..…….……19
4.2.2 中断服务程序模块……………………….…………..…......………….……20
4.2.3 总里程计算处理模块…………………….……………........………….……21
4.2.4 时间处理模块…………………….…………..…………......………….……21
4.2.5 温度处理模块…………………….……………......…..……………….……22
4.2.6 LED数码管显示处理模块…….………………....………...………..….……23
4.3 软件开发环境简介…….………………….……….......…………………..……24
5 系统可靠性设计.………………….………......……………………………..……25
5.1 硬件系统的可靠性设计……….………......…….……….………………..……25
5.1.1 元件的选择及精度要求……….………....……………...……………..……25
5.1.2 噪音抑制……….………......……………………...…………..………..……25
5.2 软件系统的可靠性设计……….………......…….….……………………..……25
5.3 抗电源干扰……….………......………….……………………….………..……25
参考文献……….………......…………………………………….……………..……26
致谢……….………......…………………………………………….…………..……27
附录A(硬件电路原理图) ……….……….…......………………….…………..……28
附录B(软件程序) ……….………......…………………….……….…………..……29
智能电动自行车速度与里程表设计
1 绪论
1.1 引言
为了保证行车安全和方便日常生活,电动自行车上都或多或少的使用各种仪表,仪表是安全行驶装置。随着技术的发展,电动车速度的提高,电动自行车的结构日趋复杂而开始安装了仪表。在20世纪初至20世纪30年代期间,车辆上开始安装上车速里程表。人们对电动车性能愈来愈高的要求在很大程度上促使电动车仪表内部结构、性能和功能的不断革新。进入20世纪80年代后,电子技术、新材料技术和信息技术的不断进步及新型传感器、电子显示器件的出现,使得电动车仪表电子化发展迅速。
1.2 车速里程表的发展及现状
1.2.1 传统的机械式车速表
传统的机械式车速表是由轴输出动力,经驱动蜗轮轴带动软轴头端同步转动,使与软轴另一端固定的永久磁铁跟着同步转动,从而产生旋转磁场,该磁场作用于转动盘,便使转动盘连同车速表指针发生同向的偏转。当电磁转矩与弹簧产生的阻力矩平衡时,指针偏转停留在某一角度上。指针偏转角与车速成正比,因而可用其表示车速。
机械式车速表的缺陷是明显的。由于表盘指针偏转程度正比于软轴的转动时产生的磁力,当转速较低的时候,磁力较小,随转速变化波动较大。因此,低速时乍速表指针摆动剧烈、测量及显示精度不高。对于发动机后置的车辆中,要将车速表指针的偏转动力由变速箱经软轴等传至驾驶室,软轴必然布置的较长,如何将这种长长的转动软轴从结构上布置妥当,肯定是一件十分困难的事情。加之传统机械式车速表的种种缺陷,该种仪表己渐渐被淘汰。
1.2.2 简易电子式车速表
这类仪表基本原理都是设法由电子器件代替轴取得车辆运行旋转信号,进而处理显示出转速或速度信息。常见的有脉冲式电子转速表和简易晶体管式转速表。前者旋转信号采自分电器,发动机工作时,分电器触点不断开闭,其开闭次
第 38 页 共 42 页
数与发动机转速成正比。触点开闭产生断续电流,通过积分电路整形,形成具有固定幅值和一定脉冲宽度的矩形波电流,矩形波的脉冲宽度即正比于发动机转速。用该矩形波驱动电流表。即显示出发动机转速信息。晶体管式转速表的输入信号也来自于点火系统,分电器的断点器触点,在其触点打开时提供电路触发脉冲信号。工作中通过晶体管的导通和截止来控制给电容充放电,由电容放电驱动表盘指针转动,进而实现显示转速信息。
1.2.3 程控集成电路(IC)车速表
随着电子技术的发展,集成电路技术越来越成熟,出现许多高性能、低价位的通用控制IC,如Intel的80系N和Zilog的Z86系列通用单片机,由于其价格低廉、控制方式灵活、控制精度高等种种优点,在现代汽车信息系统中应用越来越厂泛。
集成电路程序控制车速表通常是采用固定于发动机输出轴或变速箱第二轴驱动的蜗轮轴转盘上的一对永久磁铁产生旋转磁场,由该磁铁作用,在霍尔器件中产生脉冲信号,其频率与发动机转速或车速信号成正比,对于不同的机型,选定不同的比例常数。该脉冲信号经过放大,光隔离和整形以后,送至主控制CPU,由单片机定时计数,并输出控制信号,驱动表盘指针旋转或用数字显示。主控制C PU接受整形后的转速信号,通过定时计数器判别当前转速大小,然后通过查表方式从存储器中读出事先标定好的控制信号,输出到指示机构,由指小机构将该信号改变为模拟信号,驱动表盘指针。有些指示机构采用双线圈电磁方式驱动指针,磁力的大小由通过线圈的平均电流大小决定。平均电流大小可直接由CPU输出电平的占空比控制,而无须专门的数模转换处理电路。如果是采用数显方式,则CPU只需将一记速信号输出至显示处理电路。
程控集成电路式车速表的优点是明显的。首先,由于大规模集成电路技术的成熟,可供选择的单片机种类十分多,可以满足不同功能的仪表的需要。另外,这些单片机大都能提供功能齐全的开发、仿真系统,使得新产品的开发方便、稳定,大大缩短了开发过程。集成芯片体积小、稳定性高、抗干扰能力强、控制灵活,能适应车辆仪表对高可靠性、防震、防水、宽范围工作温度的要求。通过编程控制表头指针的偏转,可以达到很高的控制精度,并能消除指针低速抖动现象,清晰便于视认。该类型仪表在生产和调试过程中很容易实现系统化、自动化,大大提高了生产效率,适合大批量生产的需求。
1.2.4 车速表现状
国外车速里程表采用各大公司自行研制的专用芯片,不仅成本高,而且对车种的适应性差。由于机械式车速里程表简单实用,在国内仍旧被广泛用于大小型车辆上。不过,随着电子技术的发展,现在很多车辆仪表已经使用电子车速表,常见的一种是从变速器上的速度传感器获取信号,通过脉冲频率的变化使指针偏转或者显示数字。为扩大指示范围,现指针仪表大多趋向于采用具有四象限的十字线圈来驱动指针,其指示偏转角度大,线性好,而该种十字线圈的驱动在我国都是依赖于进口的电路板或进口的专用集成电路芯片来进行PWM驱动,其来源及供货期限都有很大的局限性,功能固定。
1.3 设计的主要任务及论文内容
本课题要求了解电动自行车里程计数的原理,利用光电传感器进行非接触检测,利用单片机的运算和控制功能,实现电动自行车的速度,里程的计算及里程的累计、清零和存储;能将速度与里程用LED显示出来;并能在车速高于一定值时自动发出声音报警;并能实现时间和温度的显示。
本论文的组成和各部分完成的工作如下:
l 绪论:介绍车速里程表现状和本设计任务
l 总体设计方案:确定设计的总体思想和方案确定
l 系统硬件设计:介绍硬件设计各部分功能和原理
l 系统软件设计:软件程序各模块的设计和说明
l 系统可靠性设计:介绍此设计中提高系统稳定性的方法
l 附录:硬件电路图和软件程序
2 总体设计方案
2.1 设计任务分析
本设计要求对电动自行车速度进行采集,能够实现里程的计算及里程的累计、清零和存储;并能实现时间和温度的显示。随着电子技术的发展单片机和传感器检测技术日新月异。如今的传感器灵敏度高,精度高,并且抗干扰性能强单片机具有体积小、价格低、功能强、可靠性高、使用方便灵活;通过它能够很容易地将计算机技术与测量控制技术相结合,组成新一代的智能化测量控制系统。利用传感器可以实现本方案中速度和温度数据的检测,并送入单片机进行处理转换成可以被LED显示的数字信号,适合本课题设计的要求,并且单片机能耗低,非常适合本设计特殊应用场合和应用条件的需求;本设计中的里程和时间的计算可以完全通过对单片机的软件程序来实现,简化了硬件电路,降低了成本。设计中数据显示模块应注意各个数据的长度取舍,由此来决定LED的数目,应尽量减少LED的数目以降低整个系统的功耗和避免驾驶者造成视觉疲劳。设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。
2.2 总体设计思想
智能电动自行车速度里程表的设计要求做到小型化,数字化,智能化。在此设计中充分利用电子技术、检测技术、控制技术、智能仪表的相关知识。该系统主要包括以下几个部分:测速模块,测温模块,LED显示模块,扩展储存器,选择开关,报警电路组成。总体设计框图如下:
AD590温度传感器
ADC0809
AT89S51
单片机
LED数码管显示模块(8个LED)
红外测速传感器
信号调
理电路
报警扬声器模块
扩展储存器
选择开关(K1\K2\K3)
图2.1 总体设计框图
本设计以AT89S51单片机为核心控制器,利用单片机面向控制、通用性、灵活性、可靠性、抗干扰能力强等特点对采集的数据进行处理并且作为其他各模块的控制单元;测速模块主要由光电测速传感器和信号调理电路组成,测速模块通过传感器采集速度信号经调理电路转换成脉冲信号送入单片机处理后计算出速度和里程;测温模块利用AD590温度传感器完成温度的测量,把转换的温度值的模拟量送入ADC0809的其中一个通道进行A/D转换,将转换的结果送给单片机进行温度值变换;LED数码管显示模块由AT89S51驱动显示速度、里程、温度、时间等数据;扩展数据储存器用于储存里程数据,实现里程数据的累计;当车速超过规定值后由单片机驱动报警扬声器报警;并且可以利用选择开关模块实现里程数据清零、数据的选择显示。
3 系统硬件设计
本设计的硬件部分主要由控制器模块,测速模块,测温模块,LED显示模块,扩展储存器,选择开关,报警电路组成。硬件基本原理是通过测温模块和测速模块分别采集温度和速度信号并转换成单片机能够接收的信号送入单片机处理计算出速度里程和温度数据,然后由单片机控制器输出速度里程和温度数据并驱动LED模块显示各个数据。
3.1 主控器单片机的选用
本系统在数据处理上速度要求不是很高,8位机即可。单片机采用AT89S51单片机。AT89S51美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4KB的可系统编程的FLASH只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集FLASH程序存储器既可在线编程(ISP)也可用传统的方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位的AT89S51单片机可灵活应用于各种控制领域。
主要性能参数:
l 与MCS-51产品指令系统完全兼容
l 4KB在线系统(ISP)FLASH闪速存储器
l 1000次擦写周期
l 4.0-5.5V的工作电压范围
l 三级程序加密锁
l 128*8字节内部RAM
l 32个可编程I/O口线
l 2个16位定时/计数器
l 6个中断源
l 全双工串行UART通道
l 低功耗空闲和掉电模式
l 中断可从空闲模式唤醒系统 图3.1 AT89S51引脚
引脚功能说明:
l VCC:电源电压
l GND:地
l P0口:P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,分时作为低8位地址线和数据线复用。
l P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL门电路。对端口写“1”通过内部上拉电阻把端口拉到高电平,此时作输入口。P1口还有第二功能:
表3-1 P1口第二功能
端口引脚
第二功能
P1.5
MOSI(用于ISP编程)
P1.6
MISO(用于ISP编程)
P1.7
SCK (用于ISP编程)
l P2口:P2口是一个带有内部上拉的8位双向I/O口,P2的输出缓冲极可驱动4个TTL逻辑门电路。对端口写“1”可作为输入口。在访问外部程序存储器和16位地址数据存储器时,P2口送出高8位地址数据。
l P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口是一个带有内部上拉的8位双向I/O口,P3的输出缓冲极可驱动4个TTL逻辑门电路。对端口写“1”可作为输入口。P3口除了作为一般的I/O线外更重要的是它的第二功能,如下表所示:
表3-2 P3口第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外中断0)
P3.3
/INT1(外中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
l RST:复位输入。当引脚输入两个机器周期以上的高电平使单片机复位。
l ALE/PROG:当访问外部存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。对FLASH存储器编写期间,该引脚还用于输入编程脉冲(PROG)。
l PSEN:程序储存允许输出,是外部程序存储器的读选通信号。
l EA/VPP:外部访问允许。EA为低电平时CPU访问外部程序存储器,EA为高电平访问内部程序存储器。FLASH编程时,该引脚加+12V的编程电压VPP。
l XTAL1:振荡器反相放大器及内部时钟发生器的输入端。
l XTAL2振荡器反相放大器的输出端。
3.2 测速电路模块
测速模块主要由脉冲发生源和信号预处理电路组成.在自行车的转轴上安装一个打有一定数量圆孔的铝盘,当车轮转动时光电传感器采集铝盘转动时产生的脉冲,经过调理电路处理后形成比较精确的矩形脉冲,送给单片机处理计算速度和里程。
本设计采用了st1101红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。
该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘,在这个铝盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。每当铝盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的ttl电平,即可算出轮子即时的转速(转速=1秒内检测到的脉冲数/10*轮子周长)。
铝盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可以在单位时间内尽可能多地得到脉冲数,从而避免了因为两个过孔之间的距离过大,而车子正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。
本设计在铝盘过孔的设计上采用11个过孔11个孔应对应11个脉冲
。这样在以后的软件设计中能够较为方便的计算出速度里程。脉冲发生源的硬件结构图如图3所示。
图3.2 脉冲发生源硬件结构图(左为正视图,右为侧视图)
如图3.2所示,系统的信号预处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于0.5v的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器dm74ls14来把放大器生成的单相脉冲转换成与coms电平相兼容的方波信号,同时将输出信号加到单片机的p3.4口上。
图3.3 速度测量电路
3.3 温度测量电路模块
本模块利用AD590温度传感器完成温度的测量,把转换的温度值的模拟量送入ADC0809的其中一个通道进行A/D转换,将转换的结果送入单片机进行处理。温度检测电路如图3.4所示
图3.4 温度检测电路
3.3.1 AD590介绍
集成温度传感器AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:
l 流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即: mA/K
l AD590的测温范围为-55℃~+150℃。
l AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
l 输出电阻为710MW。
下表为AD590温度与电流的关系:
表3-3 AD590温度与电流的关系
摄氏温度
AD590电流
经10KΩ电压
0℃
273.2 uA
2.732V
10℃
283.2 uA
2.832 V
20℃
293.2 uA
2.932 V
30℃
303.2 uA
3.032 V
40℃
313.2 uA
3.132 V
50℃
323.2 uA
3.232 V
60℃
333.2 uA
3.332 V
100℃
373.2 uA
3.732 V
由于AD590的温度变化范围在-55℃-+150℃之间,经过10KΩ之后采样到的电压变化在2.182V-4.232V之间,不超过5V电压所表示的范围,因此参考电压取电源电压VCC,(实测VCC=4.70V)。由此可计算出经过A/D转换之后的摄氏温度显示的数据为:
如果(D*2350/128)<2732,则显示的温度值为-(2732-(D*2350/128))
如果(D*2350/128)≥2732,则显示的温度值为+((D*2350/128)-2732)此段表述不清楚,详细介绍A/D转换后的数字量与显示的数据如何转换
3.3.2 ADC0809介绍
ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
主要特性
l 8路8位A/D转换器,即分辨率8位。
l 具有转换起停控制端。
l 转换时间为100μs
l 单个+5V电源供电
l 模拟输入电压范围0~+5V,不需零点和满刻度校准。
l 工作温度范围为-40~+85摄氏度
l 低功耗,约15mW。
内部结构:
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近
外部特性(引脚功能):
ADC0809芯片有28条引脚,采用双列直插式封装,如图5所示。各引脚功能如下:
l IN0~IN7:8路模拟量输入端
l 2-1~2-8:8位数字量输出端
l ADDA、ADDB、ADDC:3位地址输入线,用于选通8路输入中的一路
l ALE:地址锁存允许信号,输入,高电平有效
l START: A/D转换启动信号,输入,高电平有效
l EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
l OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时, 此端输入一个高电平,才能打开输出三态门,输出数字量。
l CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ
l REF(+)、REF(-):基准电压
l Vcc:电源,单一+5V
l GND:地
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
3.4 E2PROM AT24C02外部数据存储器扩展模块
AT24C02是CMOS 2048位串行E2PROM,在内部组织成256×8位。AT24C02的特点是具有允许在简单的二线总线上工作的串行接口和软件协议。
在本设计中用芯片AT24C02的SDA端与单片机的P3.7口相连,SCL端与单片机的P3.5口相连。因为在这个I2C总线上只有一个器件,所以把AT24C02的地址设为000,即把A0、A1、A2都接地。单片机计算出来的里程数据通过SDA、SCL向AT24C02输送数据。单片机首先向AT24C02发送写信号,当确认后从单片机内部的数据储存单元提取数据然后向AT24T02的内部地址传送数据。当显示里程时,单片机首先向AT24C02发送读信号,然后确认后,单片机从AT24C02内部的地址向单片机的读出单元字节读出数据,用于里程累加。
图3.5 at24c02外部数据存储器扩展电路
3.5 LED数据显示电路模块
本设计的LED数据显示电路见图3.6。此部分由八个LED数码管,一个74LS245和一个74HC138组成。各种数据由AT89S51单片机的P0口输出,经过74LS245驱动LED数码管显示,数码管选通端由由AT89S51单片机的P2.0、P2.1、P2.3经过74HC138译码后控制。第一组4个数码管用于分时显示速度、里程数据,第二组4个数码管用于分时显示温度、时间数据。
图3.6 LED数码管显示电路
3.5.1 7段LED数码管内部结构原理
数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。8个LED分别与A~DP各段相对应,通过控制各个LED的亮灭来显示数字。7段共阴极LED数码管外形见图8,内部结构原理见图9:
图3.7 7段共阴极LED数码管外形
图3.8 7段共阴极LED数码管内部结构原理
3.5.2 74LS245简介
简要说明: 245为三态输出的八组总线收发器,其主要电器特性的典型值如下(不同厂家 具体值有差别):
表3-4 74LS245主要电器特性
型号
tPLH
tphl
PD
74LS245
8ns
8ns
275mW
引出端符号:
l A A总线端
l B B总线端
l /G 三态允许端(低电平有效)
l DIR 方向控制端
功能表:
表3-5 74LS245功能表
3.5.3 74HS138简介
74HS138为3 线-8 线译码器,其主要电特性的典型值如下:
表3-6 74HS138主要电特性
型号
Tpd(ABC->Y)(3级)
PD
74LS138
22ns
32mW
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用 G1、/(G2A)和/(G2B)可级联扩展成24 线译码器;若外接一个反相器还可级联扩展成32 线译码器。若将选通端中的一个作为数据输入端时,74HS138还可作数据分配器。
管脚图:
图3.9 74HS138管脚图
引出端符号:
l A、B、C 译码地址输入端
l G1 选通端
l /(G2A)、/(G2B) 选通端(低电平有效)
l Y0~Y7 译码输出端(低电平有效)
功能表:
表3-7 74HS138功能表
l /G2*=G2A+G2B
l H=高电平
l L=低电平
l X=任意
3.6 报警电路模块
此模块在车速超过一定值后报警,以便于安全驾驶。此电路采用常用的扬声器驱动电路,当AT89S51为高电平时经过电容滤波和信号放大驱动扬声器发音。电路图如下:
图3.10 报警电路图
3.7 系统工作电源和开关电路模块
本系统的AT89S51单片机工作电源为+5V稳定直流电源,电路中采用IN4148进行保护避免电源电流反相,具体电路如下图:
图3.11 系统工作电源电路
本设计采用四个开关三个功能:K1用于调节时间,K2用于里程显示(开启时显示单次里程,按下时显示累加里程),K3用于清零里程。常态下开关都由5K电阻上拉到高电平,对应开关闭合时单片机P2.3、P2.4、P2.5端口相应会检测到低电平。
选开关电路如下图:
图3.12 开关电路
4 系统软件设计
4.1 系统软件设计分析
本设计要求实时地把所测得的速度和温度数据显示出来,并能够显示累加里程和当前时间。为了保证系统运行的可靠与高效并结合设计要求和系统硬件,本设计系统软件采用模块化,结构化设计。系统软件主要分为主程序模块、中断服务程序模块,总里程计算处理模块、时间处理模块,温度处理模块和LED显示处理模块。各个模块完成自己的功能,然后在主程序和中断服务程序中调用这些模块从而行程高效稳定的软件系统。
设计时应综合考虑各种数据的精度和系统反应时间。本设计用测量脉冲频率来计算速度,具有较高的测速精度。为了保证系统的实时性,系统的速度转换模块采用快速算法,LED显示模块都采用快速循环扫描算法。另外,还应尽量保证其他子程序在编程时的通用性。
良好的设计方案可以减少软件设计的工作量,提高软件的通用性,扩展性和可读性。本系统的软件设计方案和步骤如下:
1) 根据需求按照系统的功能要求,逐级划分模块。
2) 明确各模块之间的数据流传递关系,力求数据传递少,以增强各模块的独立性,便于软件编制和调试。
3) 确定KEIL C软件开发环境,选择C51设计语言,完成模块功能设计,并分别调试通过。
4) 按照开发式软件设计结构,将各模块有机的结合起来,即成一个较完善的系统。
4.2 系统软件设计
通过对设计的分析,把系统软件分为主程序模块、中断服务程序模块,总里程计算处理模块、时间处理模块,温度处理模块和LED数码管显示处理模块六个主要模块,下面对各模块的设计进行详细的解释:
4.2.1 主程序模块
开 始
初始化计数器T0、定时器T1,T1开中断
调用温度处理
函数temptest();
调用总里程处理
函数tmilecount();
调用LED数码管显
示函数leddisplay();
等待中断
图4.1 主程序流程图
主程序主要功能是调用对应子程序模块,使所有各个模块形成一个完整的软件系统。在主程序中首先初始化定时/计数器,定时器T1设置10ms溢出中断,启动计数器T0的同时使定时器T1工作并开中断;然后在循环调用各功能模块的过程中等待定时器T2溢出中断,统计出10ms内转速脉冲的个数,从而可以很容易地计算出速度和里程。这样就能实时地完成速度、里程、温度、数据的采集、处理和显示,并能够实时地处理时间数据和显示时间。
4.2.2 中断服务程序模块
中断入口地址
关计数器T0,
关定时器T1中断
计算当前速度
并存入速度缓冲区
计算单次里程
并存入单次里程缓冲区
调用时间
处理函数clock();
是否超速?
置P2.7=1报警
初始化计数
展开阅读全文