1、1 绪论41.1 选题概述41.2 单片机概述42 实施方案设计52.1 设计任务要求52.1.1 设计任务52.1.2 设计要求62.2 设计的主要功能62.3 方案的确定62.3.1 单片机的选择72.3.2 计时模块的选择72.3.3 显示模块的选择72.3.4 最终方案的确定83 硬件电路设计83.1 STC89C52单片机93.2 时钟模块153.2.1 DS1302性能简介153.2.2 DS1302接口电路设计13.3 按键控制模块03.4 LCD1602显示电路13.5 AT24C02存储模块33.6 电机驱动模块64 软件设计74.1 系统流程图74.2 编程软件Keil C
2、5184.3 画图软件Protel99SE84.4 Protel使用常见问题10参考文献15附1、系统原理图16附2、proteus仿真图171.1 选题概述1.2 单片机概述2 实施方案设计2.1 设计任务要求2.1.1 设计任务2.1.2 设计要求2.2 设计的主要功能 本设计采用STC89C52单片机作为主控模块的主控芯片,结合单片机的外围电路实现对整个系统的控制,DS1302时钟芯片准确计时具有重新上电不用调时的功能,显示部分采用LCD1602液晶显示,24c02芯片可以掉电存储设置的计费数据,即使掉电也不会丢失设置的费用,3v直流电机模拟发动机工作,使整个设计更加逼真,当无乘客时液晶
3、可以显示时间(年月日时分秒),时间可以按键设置,此时电机不工作;当有乘客时电机工作,可以通过按键开始计费系统工作,有清零键,收费可以修改(包括起价费、超过起价费每公里或分钟收费、白天和夜晚收费标准),可以切换白天和夜晚收费标准,可以按照分钟或公里收费切换。2.3 方案的确定传统的计价器采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,计数芯片对脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示。 从我们学习单片机以后,发现数字电路的设计已经不可靠,不能适应更加繁琐的设计,所以我采用单片机技术,通过单片机作为主控器,利用160
4、2字符液晶作为显示电路,采用内部晶振作为时钟脉冲,符合人性化,性价比较高。设计添加了AT24c02芯片,利用I2C可以对设置的价钱参数掉电保存。本设计是由软件设计和硬件设计两部分组成的。软件设计要用KEIL进行程序的编写、用PROTEUS软件进行仿真和用PROTEL 99 SE进行原理图的绘制。硬件设计要设计电路、硬件仿真和制作电路板。2.3.1 单片机的选择方案1:采用51系列单片机作为系统控制器单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积较小、技术成熟和成本低等优点,在各个领域应用广泛。而且抗干扰性能好。方案2:采用凌阳系列单片机作为
5、系统的控制器凌阳系列单片机可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。凌阳系列单片机提高了系统的处理速度,适合作为大规模实时系统的控制核心。因51单片机价格比凌阳系列低得多,且本设计不需要很高的处理速度,从经济和方便使用角度考虑,本设计选择了方案1。2.3.2 计时模块的选择方案1:采用DS1302为计时时钟芯片该芯片是串行电路,与单片机接口简单,但需另备电池和32.768kHz晶振,因焊接工艺和晶振质量等原因会导致精度降低。方案2:采用DS12C887为计时时钟芯片该芯片与单片机采用8位并口通信,传递信息速度快。自带有锂电池和晶振,外部
6、掉电后,其内部时间信息还能够保持10年之久,因电路被封装在一起,可以保证很高的精度和抗干扰能力。而且芯片功能丰富,可以通过内部寄存器设置闹钟,并产生闹钟中断。综合考虑,虽然DS1302电路需要的外围电路复杂,但是性价比比较高,而且常用且稳定,所以选择方案1。2.3.3 显示模块的选择方案1:采用LED数码管采用LED数码管这种方案。虽然显示的内容有限,但是也可以显示数字和几个英文字母,在这个设计中已经足够了,并且价格比液晶字符式要低的多,为了控制设计制作的成本,在此设计中选用LED数码管显示。方案2:采用液晶字符显示器显示用液晶字符式,可以用软件达到很好的控制,硬件不复杂,液晶字符显示器可以显
7、示很丰富的内容,但是液晶字符式价格昂贵,在本设计中不需要用到复杂的显示内容,因此放弃了此方案。从单片机资源的角度考虑,本设计选择了方案2,数码管虽然也可以实现,但是得用很多IO口,单片机的IO口紧张,想要显示的全面,功能齐全必须得加锁存和驱动电路,而用液晶显示就不需要复杂的外围电路。2.3.4 最终方案的确定经过反复论证,最终确定了如下方案:(1)采用STC89C52单片机作为主控制器。(2)采用DS1302作为计时时钟芯片。(3)采用LCD1602作为显示器。3 硬件电路设计本次出租车计价器设计可以分为六个模块,主控模块、计时模块、存储模块、显示模块、按键模块和电机驱动模块。设计框图如下:单
8、片机最小系统显示模块按键模块电机控制存储模块计时模块 单片机图1 系统的总体框图3.1 STC89C52单片机单片微型计算机是随着微型计算机的发展而产生和发展的。自从1975 年美国德克萨斯仪器公司的第一台单片微型计算机( 简称单片机)TMS-1000 问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:第一阶段(19761978):单片机的探索阶段。以Intel公司的MC
9、S-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机”一词即由此而来。第二阶段(19781982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。(1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。(2)CPU外围功能单元的集中管理模式。(3)体现工控特性的地址空间及位操作方式。(4)指令系统趋
10、于丰富和完善,并且增加了许多突出控制功能的指令。第三阶段(19821990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。第四阶段(1990):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器RO
11、M、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活跃的领域之一。在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。单片机主要特点:(1)有优异的性能价格比。(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高
12、了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。(4)低功耗、低电压,便于生产便携式产品。(5)外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。优异的性能价格比。1)
13、集成度高、体积小、有很高的可靠性。 单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。此外,程序多采取固化形式也可以提高可靠性。2)控制功能强。为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。 VCC:STC89C52电源正端输入,接+5V。GND:电源地端。XTAL1: 单芯片系统时钟的
14、反相放大器输入端。XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:STC89C52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:EA为英文External Access的缩写,表示存取外部程序代码之意,低电平动
15、作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。STC89C52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为STC89C52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为Program Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。STC89C52可以利用PSEN及RD引脚分