《单片机控制的出租车计价器毕业设计论文(1).docx》由会员分享,可在线阅读,更多相关《单片机控制的出租车计价器毕业设计论文(1).docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机控制的出租车计价器摘要由于科技的飞速发展,带动汽车行业快速发展,城市扩张,带动人口的流动。这就使得出租车的存在有了必要性,出租车的载人价格的公平性、准确性也显得日益重要,而出租车上的计价器就是关键,使计价器变得更加精确和智能化就显得尤为重要。而这方面的研究对我们日常生活也有帮助。使用单片机实现出租车计价系统非常有应用价值。本设计主要运用了单片机实现了计价的初始化功能。综合考虑各种因素,本系统采用STC89C52单片机实现出租车的自动计费设计。STC89C52单片机稳定性极高,误差小,带有时钟及复位电路,其中后者采用的晶振频率为12MHz,有效保障了整个设计的精确性。本设计结合霍尔传感器的
2、感应功能实现对出租车行使距离的测量,并将数据显示在LCD1602液晶显示屏上,显示内容完整地涵盖了出租车行使的公里数、途中等待的时间长短以及最重要的费用数值。当出租车结束行驶时语音系统可以实现出租车行使距离及应收取多少价格的自动播报,并可判断出当下时间到底是白天还是夜晚。本设计基本完成了预期的构思,测试结果表明相关硬件电路及软件都达到了设计的要求。关键词:LCD1602液晶;单片机;霍尔传感器;语音播报Taximeter Controlled by Single Chip MicrocomputerAbstract Automotive industry is developing rapid
3、ly with the development of science and technology,the city is expanding leads the population flowing.This makes the existence of taxis necessary, the fairness and accuracy of the manned price of taxis is increasingly important, and the meter on the taxi is the key, so that the meter becomes more acc
4、urate and intelligent It is particularly important. And this research also helps us in our daily life. It is very valuable to realize the system using single chip computer, and it is also a good way to deepen the application of single chip computer.This taxi automatic billing system choose STC89C52
5、microcontroller. The reset circuit is the initialization operation of the single chip microcomputer. In addition to the normal initialization, in order to get out of the predicament, the reset circuit can start again. The clock circuit uses 12MHz crystal vibration as the systems Shizhongyuan, with h
6、igh accuracy. The distance measurement is measured by Hall sensor induction. The starting price can be adjusted by pressing the button, mileage charges, and waiting for charges. Simulate taxi start billing, wait, and end billing by keystroke. Show the mileage and waiting time on the 1602 LCD. At the
7、 end of the billing, the total price for the day or night will be automatically settled according to the current time, and the mileage and total price can be automatically broadcast by voice. This design has basically completed the anticipated idea, the hardware circuit and software meet the design
8、requirements.Key words: LCD1602 liquid crystal; single chip microcomputer; Holzer sensor; voice broadcas目 录第一章 绪 论1 1.1 研究背景 第二章 系统硬件方案选择 12.1 硬件方案的选择12.1.1 主控芯片的选择12.1.2 显示器件的选择22.1.3 测距模块的选择22.1.4 语音芯片的选择32.1.5 时钟器件的选择32.1.6 数据存储芯片的选择42.2 系统总体方案5第三章 系统硬件电路设计63.1 STC89C52单片机系统设计63.1.1 STC89C52的概述63
9、.1.2 STC89C52单片机的最小系统63.2 LCD1602液晶显示电路设计83.2.1 LCD1602的概述83.2.2 LCD1602的工作原理93.3 霍尔测距电路的设计113.3.1 霍尔传感器的概述113.3.2 霍尔传感器测量原理113.3.3 A3144在本设计的作用123.4 DS1302时钟电路的介绍133.4.1 DS1302的概述133.4.2 DS1302的工作原理133.5 AT24C02的设计153.5.1 AT24C02的概述153.5.2 AT24C02的工作原理163.6 独立按键电路的设计173.7 原理图绘制软件的介绍183.8 系统硬件测试18第四
10、章 系统软件部分设计194.1 软件开发环境的介绍194.2 系统重要函数的介绍194.2.1 主函数的设计194.2.2 LCD1602显示函数的设计204.2.3 DS1302读时函数的设计214.2.4 SC8065语音播报的设计234.3 系统软件测试25第五章 结论26参考文献 致 谢附录 第一章.绪论1.1 研究背景现如今,城市的公共交通在不断发展,形成了四通八达的交通网络,人与人之间的距离被有效地缩短。虽然人们的生活水平日益提高,不少家庭都拥有了自己的汽车,但是出租车仍在我们的城市交通中扮演着相当重要的角色。为保证出租车正常的行驶运营,出租车计价设备的准确性和稳定性不容忽视。随着
11、科学技术越来越发达,出租车的计价设备在技术层面上也有了长足的发展,出租车的计价设备也随着租车业的不断扩张而日益完善。每一辆在道路上行驶的出租车都具备计价器,计价器异常可能会深刻影响到出租车的正常营运,所以探究出租车计价设备的原理十分有必要。本文首先介绍了单片机控制的出租车计价器的发展及意义,接着介绍了该课题的设计构思,各个模块电路的选择及电路原理,在必要的地方加上了图片说明,更加清晰得阐述了各模块的工作原理,最后对该课题进行总结并附带原理图以及程序。该设计提高了我们的动手能力,在此基础上我们可以进行多种实验。随着经济的发展,出租车行业发展迅猛,而作为出租车至关重要计价器,其功能的完善与准确度都
12、是很重要的,所以我们有必要对该课题进行研究。 第二章.系统硬件方案选择本章节主要介绍系统所用到的器件的选择与对比,进行综合的对比考虑选择出最适合本设计的一组方案。2.1 硬件方案的选择在硬件电路的搭建之前必须明确设计的方案,通过各个模块之间进行比较选择出最适合本设计的硬件,以发挥器件的最大功效。2.1.1 主控芯片的选择方案一:本方案选用的主控芯片为STC89C52单片机。STC89C52单片机凭借其耗能低、易于存储等特点得以收到广大单片机爱好者们的喜爱,因其支持标准MCS-51指令系统的运行所以被广泛应用于各个行业中。STC89C52单片机作为宏晶生产的8位CMOS微处理器,在片内置有8kb
13、可反复擦写的只读存储器与Flash存储器。相较于传统51单片机,STC89C52单片机在功能上增加了EEPROM存储功能,在需要使用到掉电存储数据的时候就可以直接使用单片机内部的存储,不在需要在外接存储芯片进行存储。STC89C52单片机具有的开发简单、可在线编程下载、成本低是非常不错的选择。方案二:本方案选用的主控芯片为MSP430单片机,相较于STC89C52单片机来说开发过程相对复杂,开发成本较高。但作为混合信号处理器来讲功能十分强大,MSP430单片机具有精简指令集RISC,可将功能不尽相同的多种数字电路、模拟电路及微处理器集中到一起。MSP430单片机大多应用于各种便携式仪器仪表,所
14、以MSP430单片机不适合本设计这类简单的系统中。方案三:本方案选用的主控芯片为PIC16F877A单片机。相较于STC89C52单片机与MSP430单片机来讲问世时间较晚,采用PICmicro系统进行开发,开发难度较高,所需成本较大,故不适用于本次设计。综合上述的描述,考虑到资源的合理利用和成本以及开发的难易程度最终决定采用方案一。2.1.2 显示器件的选择方案一:选取LED数码管进行显示。LED数码管大多用来显示一些简单的字母或数字,价格较为低廉。但若想实现LED数码管进行动态扫描显示,就要与单片机通过I/O口进行连接,且需占用较多CPU的I/O口,但是单片机I/O口的输出并不满足所需的电
15、流强度,还得添加专门的驱动电路来扩大电流的强度。除此之外,采用LED数码管还需焊接专门的电路,很容易因为操作不当出现错误,影响数据的显示。方案二:选取LCD1602液晶显示屏进行显示。LCD1602液晶是一种字符型液晶,可同时显示出32个字符,涵盖数字、字母、符号等。传输方式包括并行和串行两种,且每个点阵的字符与字符之间存在一定的间隔,这种间隔在字符行与字符行之间也有存在,可以清晰地显示出数字,便于观察和记录。方案三:选取LCD12864液晶显示屏进行显示。LCD12864液晶显示屏可显示8000多个中文汉字;内部、8*16的字符点阵与64*256GDRAM点阵可有效显示多种图形。LCD128
16、64与CPU可采用串行、并行进行连接,可以用来显示光标、选择睡眠模式等。虽然LCD12864液晶显示屏耗能很低,但是成本较LCD1602液晶显示屏相比较高,且显示空间很大并不适用于本次出租车计价系统的显示。综合上述的描述,最终根据本设计中的功能要求考虑采用LCD1602液晶显示器比较合理。2.1.3 测距模块的选择方案一:选取光电测距传感器进行距离的测量。光电测距的原理十分简单,传感器上方圆盘的转轴之间是相互连接的,圆盘上存在许多小孔,光束可通过这些小孔然后被光敏元件所感知,依照光找到光敏元件上的次数与小孔数目相等的原理可以测算开孔盘跟随旋转体转动一周的速度。由于光敏元件的灵敏度比较高,所以很
17、容易因外界光源的影响而影响最终数值的测量,存在较大误差。方案二:选取霍尔传感器进行量。在开关元件的内部含有电势发生器、施密特触发器、稳压电路等。我们需要将一个布满小磁钢的圆盘放置于旋转体的转轴上,分辨能力与小磁钢的数目呈正比的关系。当旋转体进行转动时,固定在小磁钢附近的霍尔开关便会随着小磁钢的运动而进行脉冲的输出。通过测定单位时间内霍尔开关输出脉冲的数量便可判断出旋转体的速度,进而完成距离的测量。通过上述两种方案的对比,方案一的测定结果受外界环境的影响较大,所以不适用于测量处于运动状态下的物体。而方案二选取的霍尔传感器受外界环境的影响较小,且具备体积小、耗能低、不易磨损的特点,性价比和可靠性都
18、很高。故选用方案二中的霍尔传感器进行测量。2.1.4 语音芯片的选择方案一:选取ISD4004语音芯片。ISD4004系列的语音芯片融合CMOS 与自动静躁技术,有效保障了输出语音的质量。ISD4004语音芯片的续航能力很强,断电时刻保存时长可达到一个世纪之久。但是芯片的编程较为复杂,微控制器控制了ISD4004语音芯片的每一项操作,录音方式也较为繁琐。方案二:选取SC8065语音芯片。该语音芯片专为分段语音进行设计。通过不同的地址存放不同的语音信息,单片机的控制也只需要像该语音芯片发送脉冲即可播放对应的语言信息。该芯片最多可以存储64段语言。并且成本低、编程方面简单、语音方面可以采用电脑合成
19、音直接将音频下载到芯片中。综合考虑,最终选择了SC8065语言芯片作为系统的语音提示芯片。2.1.5 时钟器件的选择方案一:单片机内部具有定时计数器装置,直接采用此装置可以免去搭建新的电路,可在一定程度上节约设计的成本。但是单片机内部的定时计数器的精度不够高,不适用于长时间的运行,误差会随着时间的积累越来越大。且当发生单片机断电的情况时,定时计数器的不能够持续运行,数据都会清零等待下一次通电再继续计时。所以单片机内部的定时计数器装置并不适用于本设计的测量工作。方案二:选用单独的DS1302时钟芯片进行计时。DS1302时钟芯片作为DS1202的升级产品,功能十分强大,不仅可实现DS1202的所
20、有功能,还增加了双电源引脚,后备电源的存在可以避免因断电造成数据丢失。DS1302时钟芯片计时的单位囊括了年月日和时分秒,标准时钟采用32.768KHZ的晶振进行计时,具备突发状态下传送多个字节的信号的功能。DS1302时钟芯片与单片机的连接采用三线接口的方式,内置可存放临时数据的RAM存储器。值得一提的是,DS1302时钟芯片的耗能很低,工作电压在2.5V和5.5V之间,是一种性能极高、稳定性良好的时钟电路,非常适合完成本设计的计时工作。综合考虑,最终采取方案二中的DS130时钟芯片进行计时。2.1.6 数据存储芯片的选择方案一:使用单片机内部EEPROM存储数据。此芯片内部采用ISP/IA
21、P技术对FLASH的数据进行读写,从而实现了EEPROM数据的存储功能。STC89C5X芯片内部的EEPROM一个扇区的大小为512字节,整个EEPROM存储空间的大小为2K,但在存储数据的过程中需要先擦除扇区内的所有数据,操作较为繁琐。方案二:选用专门的数据存储芯片AT24C02。AT24C02存储芯片内置16字节的页写缓冲器,采用CMOS技术,有效降低了功耗水平。AT24C02存储芯片本质上是一个2K串行的E2PROM,通过IIC总线接口完成数据的读写,并有专门的写保护功能,不被断电所影响,综合考虑,最终选取方案二中的AT24C02存储芯片进行数据的存储。2.2 系统总体方案通过上述对各个
22、模块介绍,我们最终选择了STC89C52作为本设计的主控芯片,通过LCD1602进行实时显示信息,利用几个独立按键进行设置计价器的起步价、每公里价钱、等待价钱、时间,并通过AT24C02存储芯片存储这些数据以确保在系统断电后数据也能很好地保存,而不需要每次上电都进行设置一遍。测距采用霍尔传感器进行感应。在计价结束后能够自动根据时间计算出当前白天或晚上的价钱,并通过语音自动播报出里程和总价。本设计的具体的系统方案如下图2.1所示。图2.1 系统方案28第三章.系统硬件电路设计本章节主要介绍本设计中各个部分电路的设计原理。通过各个模块的功能描述了解其工作原理以及在设计的中作用。3.1 STC89C
23、52单片机系统设计3.1.1 STC89C52的概述STC89C52单片机功能性强、稳定性较高,是一种8位CMOS微控制器,内置经典的MCS-51内核及8K字节可编程Flash存储器,STC89C52在传统的51单片机功能的基础上延伸出去,可为更多使用者更便利地开展嵌入式应用的开发。值得一提的是,STC89C52的功耗相当低,工作源电压在2.7V和6V之间,具有节电模式可供选择。当工作电压为3V时,电流仅相当于6V工作电压情况时的四分之一。STC89C52具备掉电保护功能,振荡器工作停止,但RAM内的数据被有效保存了下来,直至硬件复位或进行到下一个中断工作为止,非常适合小型控制系统的应用。ST
24、C89C52片内置有128*8位内部随机存取存储器,并采用三级程序技术进行加密。具备3个定时计数器、MAX810复位电路、32位双向I/O口线等。STC89C52具备ESD保护,可轻松抵御 2KV/4KV的脉冲干扰,宽大的工作电压范围使其能够有效避免因电源抖动带来的影响。3.1.2 STC89C52单片机的最小系统单片机最小系统说的通熟易懂的话就是以最少的元器件组成能让单片机工作起来的系统,接下来开始介绍51单片机最小系统必备的器件及其作用。在本设计中由于51单片机的工作电压在4.55.5V之间都可以正常工作所以我们采用了USB电源线连接手机充电器插头或者5V的移动电源给系统进行供电。下图3.
25、1中采用了内始终模式的震荡电路,XTAL1和XTAL2 引脚上方置有石英晶体和电容,具备定时元件的功能,可产生自激震荡。因为XTAL1、XTAL2 均为独立的输入/出反向放大器,一直被应用于振荡器之中,驱动方式有两种,一种是片内震荡的方式,采用的是石英晶振;另一种是直接由器件外部的时钟进行驱动。晶振的震荡范围很大,可在1.212MHz的范围内实现震荡,最高可达到24MHz,但功耗也会随着频率的增加而增大。电容与晶振之间采取并联的连接方式,可实现对振荡频率的细微调整。本设计采用的石英晶振为12MHz,石英晶振选取30pF的陶瓷电容。图3.1 晶振电路下图3.2中的复位电路包含了上电自动复位和开关
26、复位两种形式。前者的工作原理是,在上电的瞬间,电压被完全施加于电阻之上,因为电容的负极此时与RESET连接,所以RESET的输入为最高,实现了芯片的复位。由于+5V的电源一直在为电容充电,所以施加在电阻上的电压逐渐减小直至为0;后者的工作原理是复位按键就存在于电容的两端,并与电容并联,没有按住复位按键时电路处于上电复位的状态。当芯片正常工作后,我们可以按下复位键,使RST管脚处在高电平。下图3.2中的电容和复位电阻的值均为经典值,在现实情况中可采用同一数量级进行替代,来提高单片机复位电路的稳定性。图3.2 复位电路STC89C52单片机最小系统电路图如图3.3所示。图3.3 STC89C52单
27、片机最小系统3.2 LCD1602液晶显示电路设计3.2.1 LCD1602的概述LCD1602字符型液晶显示屏被广泛应用于计算器、万用表等各种工业产品中,可用来显示数字、字母、符号、甚至是一些特殊的图形。LCD1602液晶显示屏由数个5*7或5*11个点阵字符位组成,可显示的字符数量为16*2=32个,每个点阵字符位均可显示一个字符。但是在字符位之间存在一定的间隔,这种间隔在字符行与字符行之间也有存在,虽然这种间隔在一定程度上可以起到间隔字符与字符行的用处,但在显示图形的过程中可能会造成图形的失真。LCD1602液晶模块采用HD44780控制器,可通过4位或8位并行传输来实现与单片机的MCU
28、通讯。HD44780控制器的构成包括指令寄存器、数据寄存器、字符发生器、地址计数器等,具有功能强大的指令集,且操作方式较为简单,可以用来移动字符。在价格方面,LCD1602液晶显示屏也比其他液晶显示器便宜许多,在编程方面的操作简单移动,性能上也具备稳定可靠的特性。由于液晶不是固体,具有一定的流动性,作为一种图形点阵显示器,LCD1602液晶显示屏上的字符跟随液晶屏内部液晶材料的变化而变化,液晶分子的运动并不需要外界去施加强大的压力,仅仅需要很小的力量。LCD1602液晶显示屏的实物如图3.4所示。图3.4 LCD1602液晶实物图3.2.2 LCD1602的工作原理LCD1602一共具有11条
29、指令,单片机发送这些指令到LCD1602上就可以完成一些特定的功能,比如清屏,开关显示等等。LCD1602自己带有字库在显示的时候可以直接调用字库进行显示,当然如果字库中没有的字符也可以根据需要自己自定义字符写入CGROM中,自定义字符的分辨率为5*8而却自定义字符数量有限需要合理的安排使用,最多可以自定义8个字符,将自定义字符字模写入LCD的CGROM中后就可以随意的调用,调用的方式和正常显示字符是一样的。控制LCD1602液晶显示器只要会对LCD1602进行读状态操作、写指令操作、读数据操作、写数据操作即可具体的操作对应的引脚电平如表3-1所示。表3-1 LCD1602操作指令对应的引脚电
30、平读状态写指令读数据写数据输入RS=L,R/W=H,E=HRS=L,R/W=L,D0-D7=指令码,E=高脉冲RS=H,R/W=H,E=HRS=H,R/W=L,D0-D7=数据,E=高脉冲输出D0-D7=状态无D0-D7=数据无上表中E为使能端;RS为寄存器选择,当RS=H时表示选择数据寄存器,RS=L时选择指令寄存器;R/W为信号线,R/W=H时执行读操作,R/W=L时执行写操作。LCD1602具体的读操作时序如图3.5,写操作时序如图3.6所示。图3.5 LCD1602读操作时序图图3.6 LCD1602写操作时序图使用时,为方便数据之间的传输工作,需要将D0-D7引脚于51单片机的P0相
31、互连接,并在V0的接口处设置一个可调电位器进行点位的调整,可调电位器与固定阻值的电阻相比较而言调整电压更为方便,可以适应多种场合。V0的电压随着电位器的位置发生变化而变化,同时显示的清新度也随着电压的变化而变化。LCD1602电路图如下图3.7所示。 图3.7 LCD1602电路图3.3 霍尔测距电路的设计3.3.1 霍尔传感器的概述本设计采用霍尔传感器。与其它传感器件相比,霍尔器件占地面积小、质量轻,但结构十分牢靠、安装方便、且不易磨损使用寿命想当长,是一种具有极强稳定性和可靠性的传感器件。霍尔传感器可以有效抵挡水蒸气、灰尘、烟雾等,保障测定结果本身不会因为外界环境的改变受到影响。霍尔器件按
32、照功能可以分为霍尔开关器件和霍尔线性器件。其中霍尔开关器件不存在触点和磨损的状况,输出的波形不含抖动和回跳,显示十分清楚。霍尔开关器件可以检测人工的磁场,将力的大小、速度的快慢、转数的多少等物理量转换为电量进行测算。而霍尔线性器件的线性程度高,测量准确性良好,直接检测被检测对象的磁场或磁场特性,输出的是模拟量。霍尔器件的工作温度范围很广,最低达到零下55摄氏度,最高可到达150摄氏度。3.3.2 霍尔传感器测量原理霍尔传感器本质通过磁敏传感。首先将导体或半导体放置于磁场中,通入电流I。霍尔效应便是当电流垂直于磁场时,在磁场和电流都垂直的发现会有一个电势差出现,这便是霍尔效应。依上述原理制成的霍
33、尔元件,具有响应快速、结构简单、稳定性高、抗干扰能力强等一系列优点,因其使用寿命长所以被广泛应用于各种数据的测量工作中。霍尔效应原理图如下图3.8所示。图3.8 霍尔效应原理图3.3.3 A3144在本设计的作用在本设计中在轮子上安装磁钢随轮子进行转动,通过采用A3144霍尔传感器进行感应磁钢采集轮子转动的信息由于霍尔传感器输出的信号为正弦信号所以需要通过LM393电压比较器进行对信号整形,整形得到方波信号接入单片机的外部中断0供单片机进行检测,如果知道轮子周长的话,那么感应一次就代表行走了一个轮子周长的距离,整个测距过程的信号转变如图3.9所示。图3.9 信号转变过程当磁钢靠近霍尔传感器的时
34、候,传感器的输出不断升高,当电压超过LM393反相输入端电压时霍尔传感器便输出高电平,反之则输出低电平。在此过程中完成了霍尔传感器输出的正弦信号转变成单片机能够识别的方波信号的转换过程。霍尔测距的电路原理图如下图3.10所示。图3.10 霍尔测速原理图3.4 DS1302时钟电路的介绍3.4.1 DS1302的概述DS1302时钟芯片经美国一家公司开发成功后投入市场受到了人们的广泛欢迎。DS1302时钟芯片的计时单位不仅涵盖了年月日、时分秒等基础时间单位,还能对闰年展开计时。DS1302时钟芯片具备较好的稳定性,且功能强大,作为DS1202的升级产品,在实现DS1202功能的基础上,采取主电源
35、/后备电源的双电源模式,其中后者还可以实现涓流充电。DS1302时钟芯片工作电压在2.5V和5.5V之间,与单片机的连接采用三线接口的方式,内置可存放临时数据的RAM存储器。DS1302时钟芯片实物图如下图3.11所示。图3.11 DS1302时钟芯片实物图3.4.2 DS1302的工作原理DS1302时钟芯片采用双电源模式,Vcc1是后备电源,Vcc2是主电源,Vcc1的存在使得DS1302时钟得以的主电源关闭的情况下也能持续运行。在平常的工作过程中,以主电源和后备电源中的较大者提供电源。其中震荡源X1、X2外部接有32.768kHz的晶振,若要开启数据的传输就需要在复位/片选端RST中输入
36、高电平。RST可将地址和命令序列传输进入移位寄存器中,这是通过连接控制逻辑来实现的;RST还可进行数据传输的中断。当DS1302时钟芯片通电运行后,当主电源小于2V时,RST处于低电平,I/O引脚呈现高阻态,数据传送终止;当SCLK处于低电平,RST才能为高电平,数据才能开始进行传输。DS1302读/写操作时序如图3.12所示。图3.12 DS1302读/写操作时序图DS1302含寄存器12个,其中7个与日历、时钟相关,以BCD码形式存储。其日历、时间寄存器及其控制字见表3-2。表3-2 DS1302的日历、时间寄存器写寄存器读寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bi
37、t080H81HCH10 秒秒82H83H10 分分84H85H12/24010时时AM/PM86H87H0010日日88H89H00010月月8AH8BH00000星期8CH8DH10年年8EH8FHWP0000000除此之外,DS1302还具有控制、充电及年份寄存器,还有时钟突发寄存器等。其中后者可以实现对除了充电寄存器的所有寄存器信息的一次性顺序读写。DS1302内与RAM有关的寄存器有两种,一种具备31个RAM单元,且每个单个RAM单元含有的字节数为8个,以奇数进行读,偶数进行写;另一种RAM寄存器可读写RAM的所有字节,这个过程是一次性的,发生于突发状态下,以FFH进行读,FEH进行
38、写。采用DS1302时钟芯片进行数据读写时最好添加上拉电阻以保障数据的正常传输。因为DS1302时钟芯片的引脚信息的传递是双向的,如果不添加上拉电阻,则与之相连的51单片机的引脚端口的电平很有可能出现翻转失败的情况,因为51单片机的引脚属于弱上拉,与RST与SCLK完全不同。为保障数据通讯的正常传输,在本次出租车计价系统的设计中,我们在三个端口都添加了上拉电阻,三个电阻皆为10K。具体的电路图如图3.13所示。 图3.13 DS1302电路图3.5 AT24C02的设计3.5.1 AT24C02的概述AT24C02芯片内部含8位字节数256个,是一个2K串行的 E2PROM,采用CMOS技术有
39、效降低了能耗。AT24C02芯片内部置有8字节的页写缓冲器,操作时需连接IIC总线接口才可,并具备写保护的功能。AT24C02芯片实物图如图3.14所示。图3.14 AT24C02芯片实物图3.5.2 AT24C02的工作原理AT24C02的存储容量为2Kb,内容分成32页,每页8B,寻址方式如下:(1) 芯片寻址:AT24C02芯片的A2、A1、A0引脚接入高、低电平后,会得到一个三位编码,A2、A1、A0引脚作为可编程地址选择位。AT24C02芯片的地址控制格式为1010 A2 A1 A0 R/W,其中1010为AT24C02芯片本身的地址,R/W为芯片的读写控制位,其中1表示读,0表示写
40、。(2)片内子地址寻址:芯片寻址可对内部256B中的任一个进行读/写操作,寻址范围为00FF。AT24C02读/写操作时序图如图3.15所示。图3.15 AT24C02读/写时序图在本设计中只是用到一个AT24C02芯片所以直接将A0、A1、A2三个引脚都连接到GND,而WP写保护引脚通用接到GND上,这样方便读/写操作。而SDA和SCL分别接到单片机的两个引脚上,具体的电路图如图3.16所示。 图3.16 AT24C02电路图3.6 独立按键电路的设计本设计中通过若干独立按键进行人机交互。按键通过一点连接单片机的I/O口一端连接电源地。这样设计是因为单片机的I/O在悬空没有作为输出的情况下是
41、默认高电平的,在按键没有按下则相当于该I/O处于悬空状态。当按下后I/O口的电平就会被拉低,这样单片机只需要进行循环的检测I/O口是否有出现低电平就可以判断是否有按键按下,当然这种按键是金属解除的方式所以会有抖动纹波的情况,所以在程序中需要适当的加上短暂的延时消抖。具体电路如图3.17所示。图7.17 独立按键电路五个按键的功能分别为:第一个按键:开始/结束计价。第二个按键:处在计价状态时按一次进入等待,再按一次退出,循环往复。第三个按键:计价结束后,按下可进入设置起步价、白天/晚上每公里价钱、白天/晚上等待价钱等。第四个按键:在设置情况下,按下对应设置项加0.1。第五个按键:在设置情况下,按
42、下对应设置项减0.1。3.7 原理图绘制软件的介绍本出租车计价器原理图的绘制选用了Altium Designer。这款由Altium公司开发出的软件一经问世便受到了众多单片机爱好者的喜爱。Altium Designer软件涵盖了从顶层设计再到输出数据的全过程,与之前的常用的Protel99版本相比,2004年推出的Altium Designer电路设计软件版本在功能上更加强大,结合了VHDL和FPGA设计系统,增强了设计电路的同步性,且更加美观,更富有人性化。Altium Designer2004内含多个模块,包括原理图的设计仿真、印制电路板的设计、内含自动布线器,还可进行嵌入式软件的开发。A
43、ltium Designer2004以印制电路板的设计为核心,采用PCB图和原理图与项目管理相结合,形成双向同步技术,多通道设计的方式最大限度地为电路设计提供便利。3.8 系统硬件测试系统硬件测试主要是检测硬件电路的连接情况,主要看电路是否出现漏焊、短路、断路、虚焊,电路是否出现设计错误、一些元件的放置是否出现问题等。如果元件的放置出现问题,或者出现电路中漏掉某些元器件的情况,需要比照PCB图中的线路进行逐一排查,出现实物与PCB图对不起来的情况需及时对实物图进行休整。对于短路、断路、虚焊这些情况采用数字万用表。将数字万用表打到二极管档位,然后通过红表笔和黑表笔碰一起,万用表会发出鸣叫警示。根
44、据这个原理就可以用来检测短路、断路、虚焊。在需要检测的元件或导线的两端用两根表笔检测,如果导通蜂鸣器会鸣叫,如果断开蜂鸣器不叫。这样根据我们所需要检测的情况,在结合检测的现象就可以测出线路是否有问题。第四章.系统软件部分设计4.1 软件开发环境的介绍本出租车计价器系统的软件开发选用的是Keil C51软件,是由美国一家公司开发的专门用于51单片机的开发软件,编程语言采用了简单易懂的C语言,较汇编语言相比更容易上手。Keil软件内含C语言编译器、仿真调试器,具备宏汇编和库管理的强大功能,由uVision整合于一体,为使用者们提供了一个相当完整的开发思路。Keil软件支持的操作系统包括NT、WIN
45、2000、WINXP等,Keil软件给C语言爱好者们带来了福音。即使单片机爱好者们更倾向于选择汇编语言进行编程,Keil软件也为汇编语言的爱好者们提供了便于操作的集成环境。2.2 系统重要函数的介绍4.2.1 主函数的设计主函数采用void main( )函数,void main( )函数的存在保证了程序的完整性。在void main( )函数函数的开头需要对单片机及外围器件进行初始化操作,并且需要设置一些变量。当初始化的工作完成后,我们需要在函数中加入死循环的部分,这样才能保证程序可以一直处于不断运行的状态,才能达到本次出租车计价器设计实验检测的目标。在主函数的设计中不宜采用较大的篇幅,可以
46、将函数尽可能地封装起来,再由主函数进行调用。这样不仅可以使阅读变得更加方便,还有利于代码的修改。具体流程图如下4.1所示。图4.1 主函数流程图4.2.2 LCD1602显示函数的设计LCD1602的显示只需要严格的按照厂家的时序要求进行编程就可以完成显示。LCD602的液晶显示首先需要将需要显示地方的地址通过命令写入,然后将数据按顺序的进行写入即可。在写入地址后显示第一个内容后地址会自动加一。函数名lcd1602_write_character(uchar x,uchar y,uchar *p),参数为x,y,*s,其中的x,y表示在液晶显示屏上的位置坐标,*s是需要显示的字符数组。软件根据
47、输入需要显示的位置坐标计算出地址。显示函数流程图如4.2所示。图4.2 显示子函数流程图4.2.3 DS1302读时函数的设计DS1302一共具有31个RAM寄存器,在本设计主要用到年、月、日、时、分、秒、星期寄存器。当给DS1302的秒寄存处给定一个数值后就DS1302就可以开始从这个值进行秒累加,并可自动进位。对DS1302读取数据需要先发送寄存器地址,然后在读取八位数据低位在前高位在后,而在发送数据的时候也是先发送低位在发高位。其中在写数据的时候是下降沿有效,读数据时为上升沿有效。对于DS1302时钟芯片的操作基本上按照数据手册上面提供的时序图和相关命令字来进行操作就可以了。具体DS1302读时函数流程图如4.3所示。图4.3 DS1302读时函数流程图4.2.4 SC806