出租车计价器
目录
摘 要............................................................... 1 关键词.............................................................. 1 第一章 绪论........................................................ 3 1.1 前言......................................................... 3 1.2 设计的意义................................................... 3 1.3 系统设计的要求............................................... 3 第二章 系统整体设计................................................ 5 2.1 方案论证与比较............................................... 5 2.2 系统总体设计要求............................................. 6 第三章 相关芯片介绍............................................... 8 3.1 控制核心芯片AT89C51 ........................................ 8
3.1.1 主要特性............................................... 8 3.1.2 AT89C51的管脚结构图及管脚说明 ......................... 8 3.1.3 AT89C51的振荡器特性 .................................. 12 3.2 掉电存储芯片AT24C02 ....................................... 12
3.2.1 概述.................................................. 12 3.2.2 AT24C02介绍 .......................................... 13 3.3 并行接口芯片8155 .......................................... 14
3.3.1 概述................................................. 14 3.3.2 芯片8155基本结构及工作方式.......................... 14 3.4 时钟芯片8563 .............................................. 16
3.4.1 8563的主要特性及管脚结构图 ........................... 16 3.4.2 8563的基本原理 ....................................... 17
第四章 系统硬件设计............................................... 19 4.1 最小系统.................................................... 19
4.1.1晶振系统 .............................................. 19 4.1.2复位电路 .............................................. 19
I
出租车计价器
4.2时钟电路模块 ................................................ 21 4.3掉电存储模块 ................................................ 21 4.4里程检测模块 ................................................ 23 4.5 LED显示模块 ................................................ 23
4.5.1 LED显示器介绍 ........................................ 23 4.5.2 LED显示器原理 ........................................ 24 4.6 键盘模块.................................................... 25
4.6.1 矩阵式键盘接口设计.................................... 25 4.6.2 键盘具体说明.......................................... 27 4.7 打印模块.................................................... 27 总结............................................................... 28 参考文献........................................................... 29 致谢............................................................... 30
II
出租车计价器
摘 要
本文介绍了出租车计价器系统在实际生产生活中的重要性,介绍一种以单片机AT89C51 为核心的多功能出租车计价器的设计,阐述硬件设计过程中关键技术的处理。结果表明该计价器具有集计程、计时、计费、存储等多种计量功能,并且具有打印和显示等多种功能。
本课题主要研究出租车计价器的硬件设计。论文详细阐述了该计价器的总体设计:时钟电路模块、掉电存储模块、里程检测模块、LED显示模块、键盘模块、打印模块等。
ABSTRACT
In this paper, the importance of taximeter in our life is introduced. The designs of a new type of taximeter based on single chip microcomputer AT89C51 are presented. How to solve key problems in the process of designing hardware system is also discussed. The results have proved that the system is satisfied with the practical requirement s of distance, time and fare counting, storing, and the print, display function.
In the thesis, hardware design of the taximeter is mainly focused on. The thesis elaborates the overall design of taximeter. The clock electric circuit mold piece, electricity saving mold piece, mileage examination mold piece and LED demonstration mold piece, keyboard mold piece, print mold piece etc.
1
出租车计价器
关键词
AT89C51;掉电存储;LED显示;时钟电路模块;LED显示模块
2
出租车计价器
第一章 绪论
1.1 前言
近年来,我国出租汽车行业迅猛发展,出租汽车已经成为我国城市公共交通 的重要组成部分和现代化城市必备的基础设施,成为人们工作、生活中不可缺少 的交通工具。出租汽车服务行业和出租汽车计价器紧密相关,因为出租汽车必须 安装出租汽车计价器才能投入营运。出租汽车计价器是一种能根据乘客乘坐汽车 行驶距离和等候时间的多少进行计价,并直接显示车费值的计量器具。计价器是 出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的工具,因而 计价器计价准确与否,直接关系到经营者和消费者的经济利益。依据国家有关法 律、法规,出租汽车计价器是列入国家首批强制检定的工作计量器具之一,也是近年来国家质量技术监督部门强化管理的六类重点计量器具之一。
出租车行业在我国是八十年代初兴起的一项新兴行业,随着我国国民经济的高速发展,出租汽车已成为城市公共交通的重要组成部分。多年来国内普遍使用的计价器只具备单一的计量功能。目前全世界的计价器中有90%为台湾所生产。现今我国生产计价器的企业有上百家,主要是集中在北京,上海,沈阳和广州等地。
1.2 设计的意义
出租车是城市交通的重要组成部分,在行业健康和发展也获得越来越多的关注。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。
1.3 系统设计的要求
本设计采用AT89C51单片机为主控器,以A44E霍尔传感器测距,实现对出租车的多功能的计价设计,并采用掉电存储单元AT24C02来实现在系统掉电的时候保存单价和系统时间等信息,输出采用6段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜,中途等待来调节单价,但同时在不计价的时候还能作为时钟为司机同志提供方便。具体要求: 实现当前车速的检测
3
出租车计价器
实现运行里程的检测
实现出租车费用的计算,时数据的显示等功能。
4
出租车计价器
第二章 系统整体设计
2.1 方案论证与比较
方案一: 采用数字电路控制,其原理如图所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费保准,电路不够实用。电路框图如图2-1所示:
金额显示 单价显示 电源电路及保护电路 里程传感器 图2-1 数字电路方案 移位寄存器电路 方案二: 出租车驱动轮转数与转轴转数的传动比是一定的,磁感应传感器会产生一个大约20 ms的低脉冲,可以通过计算磁感应传感器产生的低脉冲数来计算出租车跑的里程数及相应的车费。
编码器的单片机通过一个I/O口来检测磁感应传感器信号,当确定为传感器产生的信号时,就通过另一个I/O口向解码器的单片机发送一组编码,而解码器的单片机则首先判断当前准备接收的数据是编码器发送的编码还是解码写入器发送的解码。当判断是解码写入器发送的解码时,解码器的单片机接收此解码,并利用12C总线协议将解码保存到EEPROM中去;当判断是编码器发送的编码时,解码器的单片机先接收此编码,然后读出自己EEPROM中的解码,将其与接收到的编码相比较,如果相同则解码器单片机通过一个I/0口向计价装置发出计价脉冲,否则不发出计价脉冲。解决了以往计价器计价不准确、使用寿命短等缺点,但此方法通常使干扰信号也能产生计数脉冲,分立元件过于复杂,电路稳定性不好。方案框图如图2-2所示:
5
出租车计价器 计价脉冲 磁感应传感器 编码器 解码器 计价 解码写入器 图2-2 编码器方案
方案三: 采用单片机控制。以单片机为核心,设计上采用89C51单片机为主控器,以A44E霍尔传感器测距,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用7段数码显示管。利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调整、时钟显示功能。原理结构如图2-3所示:
数据存储及时钟模块 AT89C51单片机 里程采集模块 显示模块 键盘模块 图2-3 单片机控制方案
打印模块 本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜,中途等待来调节单价,但同时在不计价的时候还能作为时钟为司机同志提供方便。单片机计算总价的公式为:总价=起步价+单价*(总里程-起步里程)。AT89C51作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能为设计电路提供了很好的选择。
通过比较以上三种方案,单片机方案有较大的活动空间,不但能实现所有要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用第三种方案,用AT89C51单片机实现出租车计价的功能。
2.2 系统总体设计要求
所设计的出租车计价系统,要求可以设置起步价,(如5 公里内10 元) ,5 公里后开始按每公里增加费用,每公里的单价为1. 6 元。在出租车运营过程中,当遇到堵车等情况而导致出租车处于等待状态,则每等到五分钟(时速低于每小时
6
出租车计价器
5 公里) 费用加1 元。当总计费金额达到30 元后,每公里将加收50 %的空驶费,遇有特殊情况停车时,可设为不计费,以保证乘客权益。该电路系统能够模拟实际出租汽车的启动、停止、暂停、空车等状态,可以显示计费金额、行驶公里数、计费开始时间等参数,而且各关键参数可以进行调整,以适应在实际应用中起步价、每公里价格和计费方式等参数的变化。
本课题研究的主要内容是设计出租车计价器的硬件电路。设计的整体电路框图如图2-3所示,整个系统由单片机AT89C51 控制电路、A44E 霍尔传感器电路、AT24C02 存储电路、8563时钟电路、票据打印电路、按键键盘电路、LED驱动显示电路及电源电路组成。
7
出租车计价器
第三章 相关芯片介绍
3.1 控制核心芯片AT89C51
3.1.1 主要特性
● 与MCS-51系列单片机产品兼容
● 4K字节在系统可编程Flash存储器(片内具有4K字节闪速存储器) ● 1000次擦写周期 ● 128Bytes的内部RAM单元
● 4个8位I/O口,即32位可编程I/O口线 ● 2个16位定时器/计数器 ● 6个中断源
● 可编程全双工串行口 ● 低功耗空闲和掉电模式 ● 掉电后中断可唤醒 ● 看门狗定时器 ● 双数据指针
● 灵活的ISP在线编程功能(字或字节模式)
● 宽范围的工作电压,VCC的允许变化范围为了2.7~6.0V ● 可设置为待机状态和掉电状态
● 振荡器及时钟电路,全静态工作方式,时钟频率可为0Hz~24MHz。具有全静态的工作方式,表明它不一定要求连续的工作时钟定时,在等待内部事件期间,时钟频率可降至0。
AT89C51芯片在出厂时,闪存处于可擦除状态,各地址单元内容为FFH,可随时进行编程。编程是按字节进行的。编程电压VPP有高压12V的,也有低压5V的。
AT89C51的内部结构框图如图3-1所示:
3.1.2 AT89C51的管脚结构图及管脚说明
如图3-2所示。
8
出租车计价器
P0.0~P0.7 P2.0~P2.7 P0驱动 P2驱动 RAM地址寄存器 RAM P0锁存器 P2锁存器FPEROM B寄存器 ACC 程序地址寄存器 堆栈指针 TMP2 TMP1 缓冲 ALU PC增加1 中断、串行口和定时器 PC PSW PSEN 定时控制 指令寄存器 P1锁存器 P3锁存器 DPTR OSC P1驱动 P1驱动 + + P1.0~P1.7 P3.0~P3.7 图3-1 AT89C51的内部结构框图
9
出租车计价器
图3-2 AT89C51管脚结构图
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,
10
出租车计价器
当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表3-1所示: 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(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
表3-1 AT89C51部分引脚功能表 端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 复用功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) /WR(外部数据存储器写选通) /RD (外部数据存储器读选通) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的
11
出租车计价器
地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。 3.1.3 AT89C51的振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为
片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2 掉电存储芯片AT24C02
3.2.1 概述
单片机实现的仪器仪表,家用电器,工业监控等系统中,对某些状态参数,不仅要求能够在线修改,而且断电能保持,以备上电后恢复系统的状态。断电数据保护方法可选用具有断电保护功能的RAM和电可擦存储器EEPROM。具有断电保护功能的RAM容量大,速度快,但占用线多,成本高,EEPROM适合数据交换量少,对传送速度要求不高的场合。
EPROM有并行和串行之分,并行EEPROM速度比串行快,容量大。串行芯片成本低,线路简单,工作可靠,占用单片机口线资源少。
12
出租车计价器
3.2.2 AT24C02介绍
AT24C02系列串行EEPROM引脚、容量及结构
目前我国应用最多的封装形式是8脚封装,如图3-3所示:
图3-3 AT24C02型号和引脚
AT24C02的EEPROM的引脚说明如下:
●SCL—串行时钟端,用于对输入和输出数据的同步。写入串行EEPROM的数据用SCL上升沿同步,输出数据用下降沿同步
●SDA—串行数据输入/输出端,漏极开路结构。
使用时该引脚必须接一个5.1KΩ左右的上拉电阻。SDA线上数据传送顺序是高位在先,低位在后。
●WP—写保护,用于硬件数据保护功能。
当该引脚接地时,可以对整个存储器进行正常读/写操作;当其接电源Vcc时,芯片就具有写保护功能,被保护的区域因型号而异。被保护部分的读操作不受影响,实际上这时被保护的区域就可以作为串行只读存储器。英注意,对AT24C08芯片,虽然第7脚也定义为WP,但实际不起作用。
A0,A1,A2—片选或以页面选择地址输入,用于EEPROM器件地址编码。 将这3个引脚配置成不同的编码值,可选中不同的芯片。在同一串行总线上最多可扩充8片同一容量或不同容量的芯片。但注意,有些型号的地址是无效的。例如,AT24C16所对应的3个引脚均无效,因此使用AT24C16时只能寻址1片,同样,使用AT24C04时刻寻址4片;使用AT24C08可寻址2片。
●TEST—测试,用于对存储器的检测。 ●Vcc—电源电压+5V。 ●GND—接地端。 ●NC—未连接。
ATC24C02是目前最常用的型号,支持器件地址编码,统一串行总线最多时
13
出租车计价器
可同时连接1~8片,支持硬件设置数据保护。
3.3 并行接口芯片8155
3.3.1 概述
8155是一个有40引脚的塑封芯片,功能较强,广泛地应用在计算机电路中。它有两个8位口A、B和一个6位口C,总可以扩展出22条接线。它含一个可预置的计数器,计数范围从2到16383,可用于延时、计数或分频,它内部有256字节的RAM,可以补充CPU内部的不足。为了能够设置芯片的工作方式和了解芯片的状态,内部还有命令寄存器和状态寄存器。
8155共有40个脚。其中,与CPU相连的引脚有CE、IO/M、AD0~AD7、ALE、RD、WR和RESET。CE是片选信号,当CE=0时,芯片才能与CPU交换信息。CE接到地址译码器上,由整个系统分配给高位地址,以保证任何时刻只有一个芯片可与CPU交换信息,不发生地址冲突。IO/M是接口或内部 RAM寄存器的选择线。当IO/M=1时,CPU是对I/O接口操作;当IO/M=0时,CPU是对RAM操作。它一般接到CPU的地址线A8上。AD0~AD7为地址数据总线。ALE是地址锁存信号输入线。写控制线。RESET是复位线.当RESET=1RD、WR分别是读、时,8155被复位。与外部设备连接的引脚有TMRIN、TMROUT、PA0~PA7、PB0~PB7和PC0~PC5。TMRIN是计数输入线,接到待测的脉冲源。TMROUT是计数输出线。PA0~PA7是A口的8位输入/输出线。PB0~PB7是B口的8位输入/输出线。PC0~PC5是C口的6位输入/输出线。 3.3.2 芯片8155基本结构及工作方式
8155芯片为40引脚双列直插封装,单一的+5V电源,其引脚排列如图3-4所示:
14
出租车计价器
图3-4 8155引脚排列图
在与单片机接口的方向,8155提供如下信号: AD7~AD0——地址数据复用线。
ALE——地址锁存信号。除进行AD7~AD0的地址锁存控制外,还用于把
片选信号CE和IO/M等信号进行锁存。 RD——读选通信号。 WR——写选通信号。 CE——片选信号。
IO/M——I/O与RAM选择信号。8155内部的I/O口与RAM是分开编址
的,因此要使用控制信号进行区分。IO/M=0,对RAM进行读写;IO/M=1,对I/O口进行读写。该信号是一个特殊信号,对它的使用要格外注意。 RESET——复位信号。8155以600ns的正脉冲进行复位,复位后A、B、
C口均置为输入方式。 I/O口及其工作方式
8155的3个I/O口,分别以PA、PB和PC称呼,其中PA和PB都是8位通用输入/输出口,主要用于数据的I/O传送,它们都是数据口,因此只有输入/输出两种工作方式。而PC口则为6位口,它既可以作为数据口用于数据的I/O传送,也可以作为控制口,用于传送控制信号和状态信号,对PA和PB的I/O操作进行控制。因此PC口共具有4种工作方式,即:输入方式(ALT1),输出
15
出租车计价器
方式(ALT2),PA口控制端口方式(ALT3)以及PA和PB口控制端口方式(ALT4)。 当以无条件方式进行数据输入/输出传送时,由于不需要任何联络信号,因此这时PA、PB及PC都可以进行数据的输入/输出操作。
当PA或PB以中断方式进行数据传送时,所需要的联络信号由PC提供,其中PC2~PC0是为PA提供,PC5~PC3是为PB提供。各联络信号的定义如表3-2所示。
联络信号共有3个,其中:
INTR——中断请求信号(输出),高电平有效。送给MCS—51单片机的
外中断请求。
BF——缓冲器满状态信号(输出),高电平有效。
STB——选通信号(输入),低电平有效。数据输入操作时,STB是外设送来的
选通信号;数据输出时,STB是外设送来的应答信号。
3.4 时钟芯片8563
3.4.1 8563的主要特性及管脚结构图
特性:
1.宽电压范围1.0至5.5V 复位电压标准值Vlow=0.9V 2.超低功耗典型值为0.25 A VDD=3.0V,Tamb=25 3.可编程时钟输出频率为32.768KHz 1024Hz 32Hz 1Hz 4.四种报警功能和定时器功能
5.内含复位电路振荡器电容和掉电检测电路 6.开漏中断输出
7.400kHz I2C 总线(VDD=1.8 5.5V) 其从地址读0A3H;写0A2H
PCF8563 的管脚排列及描述如图3-5所示:
16
出租车计价器
图3-5 8563引脚图
功能如表3-2所示:
表3-2 8563管脚功能表
3.4.2 8563的基本原理
8563有16个8位寄存器:一个可自动增量的地址寄存器,一个内置32.768KHz 的振荡器(带有一个内部集成的电容),一个分频器(用于给实时时钟RTC提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHzI2C总线接口。
所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用。前两个寄存器(内存地址00H,01H) 用于控制寄存器和状态寄存器,内存地址02H--08H 用于时钟计数器(秒~年计数器),地址09H--0CH用于报警寄存器(定义报警条件)地址0DH控制CLKOUT管脚的输出频率,地址0EH和0FH分别用于定时器控制寄存器和定时器寄存器:秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD ,星期和星期报警寄存器不以BCD 格式编码。
当一个RTC寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下,可以禁止对时钟/日历芯片的错读。
8563时钟芯片在本设计中具有以下功能: 1. 定时器功能
8位的倒计数器地址(0FH )由定时器控制寄存器地址0EH控制,定时器控制寄存器用于设定定时器的频率(4096,64,1 或1/60Hz )以及设定定时器有效或无效定时器从软件设置的8 位二进制数倒计数每次倒计数结束定时器设置标
17
出租车计价器
志位TF,定时器标志位TF只可以用软件清除,TF用于产生一个中断(/INT )每个倒计数周期产生一个脉冲作为中断信号TI/TP 控制中断产生的条件。当读定时器时返回当前倒计数的数值。 2.CLKOUT 输出
管脚CLKOUT可以输出可编程的方波。CLKOUT 频率寄存器地址0DH,决定方波的频率,CLKOUT可以输出32.768KHz( 缺省值),1024,32,1Hz 的方波。CLKOUT为开漏输出管脚,上电时输出有效,无效时输出为高阻抗。 3.复位功能
8563包含一个片内复位电路,当振荡器停止工作时,复位电路开始工作,在复位状态下,I2C总线初始化,寄存器TF、VL、TD1、TD0、TESTC、AE 被置逻辑1,其它的寄存器和地址指针被清0。 4.掉电检测器和时钟监控
8563内嵌掉电检测器,当VDD低于Vlow时,位VL(Voltage Low,秒寄存器的位7)被置1,用于指明可能产生不准确的时钟/日历信息,VL标志位只可以用软件清除,当VDD慢速降低(例如以电池供电)达到Vlow时,标志位VL被设置,这时可能会产生中断。 5.8563内部寄存器
8563有16个寄存器,其中00H--01H为控制方式寄存器、09H--0CH为报警功能寄存器、0DH为时钟输出寄存器、0EH和0FH为定时器功能寄存器、02H--08H为秒--年时间寄存器。
6.电源复位(POR)替换模式
POR 的持续时间直接与振荡器的起动时间有关。一种内嵌的长时间起动的电路可使POR失效,这样可使设备测试加速。这种模式的设定要求I2C总线管脚SDA和SCL的信号波形如下图所示,图中所有的时间值为所需的最小值。
当进入替换模式时,芯片立即停止复位,操作通过I2C总线进入EXT__CLK 测试模式。设置位TESTC逻辑可消除替换模式,再次进入替换模式只有在设置TESTC为逻辑1后进行。在普通模式时设置TESTC为逻辑0没有意义,除非想阻止进入POR 替换模式。
18
出租车计价器
第四章 系统硬件设计
4.1 最小系统
单片机最小系统,是指能维持单片机运行的最简单配置的系统。这种系统成本低廉、结构简单,常用来构成简单的控制系统。 4.1.1 晶振系统
晶振电路产生的振荡脉冲经过触发器进行二分频之后,才能为单片机的时钟脉冲信号。一般电容C3和C4取30uF左右。晶体振荡频率范围是1.2MHz—12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行也就快,但反过来运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高(线间寄生电容要小)。在本次设计中,我们选取晶振频率为6MHz,C3和C4的值均为33uF。
图4-1 8563晶振电路
4.1.2复位电路
单片机在启动运行时都需要进行复位操作,以便使CPU和系统中的其它部件
19
出租车计价器
都处于某一确定的初始状态,并从这个状态开始工作。AT89C51单片机有一个引脚RST,它是施密特触发器的输入端,其输出端接复位电路的输入。
复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即二个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4μs才能完成复位操作。复位之后,使ALE、PSEN、P0、P1、P2口的输出均为高电平(即为输入状态),复位后,内部寄存器的状态如表3、1所示。RST变为低电平后,便又退出复位状态。CPU从初始化工作,由状态表可知,复位后:程序寄存器为0000H开始执行程序,内部RAM不受复位影响。
复位有电复位和按键手动复位两种。按键手动复有电平方式和脉冲方式两种。本次设计中,为方便人的操作,采用按键手动复位的按键电平复位。
图4-2 复位电路连接图
20
出租车计价器 B 4.2 时钟电路模块 U8P1.1P1.2R7R610K10K5678VCCSDASCLCOUTVCC8563C215PFD1C11N4148AVCCBTD20.1uFGNDINTOSCOOSC4321Y272.768KHZBATTERY1N4148 图4-3 时钟电路连接图 本设计采用PCF8563作为芯片。它在系统中的作用是设定,例如:可以设定时、分、秒。计价器在出租车空车行驶时需要显示实时时钟,因为它的时钟是作为白天/ 晚上单价自动转换的一个基准,而且计价器的时钟显示能为司机和乘客提供方便,所以选择一个好的时钟芯片对计价器很重要。时钟可提供秒、分、时,通过设置8563的控制/状态寄存器选择,时钟方式经过初始校准后即可工作使用。
PCF8563是PHILIPS公司推出的一款工业级内含I2C总线接口功能的具有极低功耗的多功能时钟/日历芯片I2C总线通讯方式不但使外围电路及其简洁而且也增加了芯片的可靠性同时每次读写数据后内嵌的字地址寄存器会自动产生增量当然作为时钟芯片。
PCF8563是一款性价比极高的时钟芯片它已被广泛用于电表水表气表电话传真机便携式仪器以及电池供电的仪器仪表等产品领域
12 4.3掉电存储模块
利用I2C总线原理接线,采用掉电保护单元AT24C02。数据存储部分的作用是在电源断开时,存储当前设定的单价信息。
电路连接情况如图4-4所示:
21
出租车计价器
图4-4 掉电存储电路连接图
AT24C02的引脚功能和意义如下: 1.VCC:+5V电源。 2.GND:地线。
3.SCL:串行时钟输入端。在时钟上升沿把数据写入EEPROM;在时钟为下降沿时把数据从EEPROM中读出来。
4.SDA:串行数据I/O端,用于输入和输出串行数据。由于在EEPROM内部,SCL和SDA是漏极开路结构的,所以,使用时需要外接上拉电阻。
5.A0,A1,A2:是芯片引脚。
WP:写保护端。通过此引脚可提供硬件数据保护。当把WP接地时,允许芯片执行一般读写操作;当把WP接到VCC时,则对芯片实施写保护。WP接地是因为WP为写保护引脚,由于AT24C02不具有写保护功能,所经该引脚接地。
时钟信号线SCL与数据线SDA需外接5.1kΩ的上拉电阻,其作用是减少A T24C02 的静态功耗,AT24C02 采用I2C 总线与AT89C51相连,AT89C51的P1.2作为它的串行时钟线,P1.1 作为它的串行数据线。。当通过按键设定一次数据完毕后(如:昼夜单价、等候时间、起租里程、起租金额等) ,系统就自动调用 存储程序,将数据信息保存在芯片内;当系统重新上电时,自动调用读存储器程序,将存储器内的数据信息,读到缓存单元中,供主程序使用,保存在AT24C02中的数据是不能随意进行改动的,此外出租车营运过程中的一些营运数据,如:单次出租的营运额和营运里程、一段时间内的营运总额和总路程等,也存储在AT24C02中,
22
出租车计价器
以便出租车公司及司机查询,使出租车司机更方便的管理营运数据,出租车行业得到更有效的管理。
4.4里程检测模块
霍尔传感器是一种磁传感器。用它们可以检测磁场及其变化,可在各种与磁场有关的场合使用。霍尔器件以霍尔效应为其工作基础。霍尔器件有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHZ),耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀。
本设计采用霍尔传感器A44E,用它来检测车轮信号,送到单片机中,经处理计算后,送给显示单元,原理图如图4-5所示:
霍尔传感器 小磁铁 单片机
车轮 图4-5 传感器测距示意图 根据在霍尔电势发生器的两端加上电压VCC后,根据物理学中的霍耳效应原理,当霍耳片处在磁场中时,霍尔传感器A44E的输出端输出低电平。当车轮转动一圈时小磁铁提供一个磁场,则霍尔传感器A44E输出一次低电平完成一次数据采集。我们选择了P3.2 口作为信号的输入端,内部采用外部中断0,车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数。通过计算将脉冲增加体现在金额和里程上。电路图如下所示:
4.5 LED显示模块
4.5.1 LED显示器介绍
在单片机应用系统中,为了控制系统的工作状态,以及向系统中输入数据和信息,系统应设有按键或键盘。为了观察和监视键盘输入的信息,为了了解系统的工作情况以及得到系统完成任务的结果,系统应设有显示装置。单片机最常用的显示装置是LED显示器。
23
出租车计价器
4.5.2 LED显示器原理
LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED。这种显示块有共阴极和共阳极两种,如上图所示,共阴极LED显示块的发光二极管阴极共地,如图中所示,当某个发光二极管的阳极为高电平时,发光二极管点亮。共阳极LED显示块的发光二极管阳极并接,当某个二极管的阴极为低电平时,该二极管点亮。
通常的七段LED显示块中有八个发光二极管,故也称为八段显示器。其中七个二极管构成七笔字型“8”,一个发光二极管构成小数点。
控制不同组合的二极管导通,就能显示各种字符。设8位控制器按低到高的次序依次控制LED显示块的a~f和小数点dp,我们称控制器输出的控制LED显示块显示字符的 8位字节数据为段选码。共阳极与共阴极的段选码互为反码。
在单片机应用系统中使用LED还可构成任意位的LED显示器。
如 8位LED显示器有8根位选线和8χ8根段选线。每根位选线控制该位的LED的8根段选线控制该位LED显示什么字符。段选线控制显示字符的字型,而位选线控制显示位的亮、暗。显然,多位LED控制线占用太多。
在多位LED显示时,为了简化电路,降低成本,将所有位LED的段选线并接在一起,在某一刻时,将要显示的字符段码同时送到每一个显示器的各段,但是只让这一位LED显示。下一时刻又送下一位LED要显示字符的段码,并只让下一位LED显示„„.如此轮流,使每位显示该为的字符,这样不断的循环送出响应的段选码﹑位选码,就可以获得视觉稳定的显示状态。
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间,更重要的是能节省成本。 硬件译码就是显示的段码完全由硬件完成,CPU只要送出
24
出租车计价器
标准的BCD码即可,硬件接线有一定标准。软件译码是用软件来完成硬件的功能,硬件简单,接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。
4.6 键盘模块
4.6.1 矩阵式键盘接口设计
矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。如一个3*3的行、列结构可以构成一个有9个按键的键盘。在按键数量较多的场合,矩阵键盘与独立式键盘相比,要节省很多I/O口。 1.矩阵式键盘的工作原理
按键设置在行、列线交点上,行、列分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线如果此时电平为低,则行线电平为低;列线电平如果为高,则行线电平亦为高。这一点是识别矩阵式键盘是否被按下的关键。由于矩阵键盘中行、列线为多键共用,名按键均影响该键所在行和列的电平。因此各按键彼此相互发生影响,所以必须将行、列信号配合起来并做适当的处理,才能确定闭合键的位置。
矩阵式键盘的识别 1>扫描法
利用扫描法识别具体按键的方法是:逐列置为零电平,检查行线电平的变化,如果某行电平由高电平变为零电平,则可确定此行线此列交叉点处的按键被按下。
2>线反转法
扫描法要逐列扫描查询,当被按下的键处于最后一列时,则要经过多次扫描才能最后获得此按键所处的行列值。而线反转法则显得很简练。线所转法的操作步骤也分两步:第1步,将行线编程为输入线,列线编程为输出线,并使输出线输出全为零电平,则行线电平由高到低所在行为按键所在行;第2步,则将行线编程为输出线,列线为输入线,并使输出线输出为全零电平,则列线中电平由高到低所在的列为按键所在列。综合两步的结果,则可确定按键所在的行和列,从而识别出所按的键。
矩阵式键盘的编码
25
出租车计价器
对于独立式按键键盘,由于按键的数目少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号唯一确定,所以分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位为行号,低4位为列号将是非常直观的。如12H表示第一行、第2列的按键、A4H表示第10行、第4列的按键等。但是这种编码对于不同行的键,离散性大。例如一个4*4键盘,14H键和21H键之间间隔13,因此不利于散转指令。以常常采用依次排列键号的方式对按键进行编码。以4*4键盘为例,可以编号为01H,02H,...,0FH,10H共16个。无论以何种方式编码,均应以处理问题方便为原则,而最基本的是键所处的物理位置即行号和列号,它是各种编码之间相互转换的基础,编码相互转换可通过查表的方法实现。
矩阵式键盘的工作方式
在单片机应用系统中,键盘扫描只是CPU工作内容之一。CPU在忙于各项工作任务时,如何兼顾键盘的输入、取决于键盘的工作方式。键盘的工作方式的选取应根据实际应用系统中CPU工作的忙、闲情况而定。其基本原则是既要保证能及时响应按键操作,又要不过多占用CPU的工作时间。键盘的工作方式通常有3种:编程扫描、定时扫描和中断扫描。
1>编程扫描方式
CPU键盘的扫描采取程序控制方式,一旦进入键扫描状态,则反复地扫描键盘,等待操作者从键盘上输入命令或数据。而在执行键入命令或处理键入进程当中,CPU不再响应键入要求,直到CPU返回重新扫描键盘为止。
2>定时扫描工作方式
定时扫描工作方式是利用单片机内部定时器产生定时中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键并执行相应的功能程序。
3>中断工作方式
键盘工作于编程状态时,CPU要不间断地对键盘进行扫描工作,以监视键盘的输入情况,直到有键被按下为止。其间CPU不能干任何其他工作,如果CPU工作量大,这种方法将不能适应。定时扫描进了一大步,除了定时监视一下键盘输入情况处,其余时间可进行其他任务的处理,因此CPU效率提高了。为了进一步提高CPU工作效率,可采用中断扫描工作方式,即只有在键盘有键按下时,才
26
出租车计价器
执行键盘扫描并执行该按键功能程序,如果无键按下,CPU将不理睬键盘。可以说,前两种扫描方式,CPU对键盘的监视是主动进行的,而后一种扫描方式,CPU对键盘的监视是被动进行的。 4.6.2 键盘具体说明
采用了以8155作4*4键盘的接口。键盘分为行线和列线,本键盘共有4条行线4条列线。在行线和列线的交点处有一个键,由于行线和列线分别与键的不同端相连,平时键处于断开状态,所以行线和列线互不相通。接口时,行线一端接输入口,另一端悬空;而列线一端经电阻接+5V电源,另一端接输入口。由于列线通过电阻与+5V相连,所以列线的状态始终为高电平。
4.7 打印模块
在单片机控制应用系统当中,常用用纸介质来记录系统运行数据的需要,以备存档或查阅。因此,打印机是不可缺少的外部设备。
27
出租车计价器
总结
在这段时间里,经过自己努力,基本上完成了设计要求的内容,在系统可行性分析、原理图设计、PCB绘制等方面都作了许多实际工作,取得了一些成绩,同时也遇到了一些问题,存在一些不足。经过这段时间的学习和工作,我觉得自己不论是在理论知识方面还是在动手能力方面都有了不小的进步,自己从中受益匪浅。这次设计很好的把以前学到的理论知识应用于实践,使我认识到理论知识与实践之间有一定的差距,只有通过不断的努力学习和实践才能很好的把理论知识应用到实践当中,也只有通过不断的实践才能对理论知识的理解。
通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。经过单元设计和系统设计巩固了以前所学的专业知识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。这在以前的学习过程中是不曾学到的。
这次设计是我认真认识到完整、严谨、科学分析问题、解决问题的思想是多么的重要,只有拥有了科学的态度才能设计出有用的产品。另外通过本次设计,使我认识到自己理论知识的应用能力有很大的欠缺,需要在以后的学习中进一步提高。
28
出租车计价器
参考文献
[1]阎石.数字电子技术基础[M].北京:北京:高等教育出版社,2007年7月 [2]华成英,童诗白.模拟电子技术基础[M].北京:高等教育出版社,2006年1月
[3]余成波等. 传感器与自动检测技术[M].北京:高等教育出版 社,2006年11月
[4]高鹏,安涛,寇怀成.Protel 99SE入门与提高[J].北京:人民邮电出版社,2004 [5]黑杰克.Protel Schematic 99SE电路设计[J].北京:科学出版社,2001年3月
[6]黄宏安.Allegro PCB Layout.高速电路版设计[M].台科大图书股份有限公司.2003年3月
[7]Mark I.Montrose著,刘元案等译.电磁兼容和印刷电路板理论,设计和布线.北京:人民邮电出版社,2002年10月
[8] 于海生等.微型计算机控制技术[M].北京:清华大学出版社,1998年1月 [9]
Kuo
B.C.
Automatic
Control
Systems.8th
ed.
New
Jersy:Prentice-Hall,Inc.2002
[10]徐争颖.Protell 99 SE EDA技术及应用[M].北京:机械工业出版社,2005 [11] 谢剑英,贾青.微型计算机控制技术[M].第3版.北京:国防工业出版社,2001
[12] 李广弟.单片机基础[M].第3版.北京航空航天大学出版社,2007年1月 [13]李华.MCS-51系列单片机实用接口技术[J].北京航空航天大学出版社,1996 [14]王广雄著.自动控制系统设计[M].北京:宇航出版社,1986
[15] 韩志军,沈晋源,王振波.单片机应用系统设计[M].北京:机械工业出版社.1998
[16] Dabis.W.S. PCB and Design: A Structured Approach. Addison-Wesley Pub. Co 2003
29
出租车计价器
致谢
在这里,我要感谢我的导师孙福成老师在设计期间给与我的关心、指导和教诲。孙老师追求真理的作风,治学严谨的态度及平易近人的品德使我受益匪浅,终身难忘,并且也是对我永远的鞭策和激励。
在做毕业设计期间,我论文设计的工作自始至终都是在孙老师全面、具体、细心的指导下进行的。由于我的基础比较差,孙老师更是耐心细致的进行了辅导。从小到一个芯片的功能介绍,大至程序模块的设计,无一不细致入微。
再次感谢孙老师在课题研究中给予的指导和帮助。同时感谢我的学友对我的关心和帮助。
最后感谢在百忙之中对我的论文进行评审并提出宝贵意见的老师们。
30
因篇幅问题不能全部显示,请点此查看更多更全内容