基于51系列单片机的出租车计价器控制系统设计内容摘要:

内部的上拉电阻把拉到高电并可作输入端口。 作输入端口使用时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL)。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 所示。 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验期间的控制信号。 表 P3 口特殊功能 P3 口引脚 特殊功能 RXD(串行输入口) TXD(串行输出口) (外部中断 0) (外部中断 1) T0(定时器 0 外部输入) T1(定时器 1 外部输入) (外部数据存储器写选通) (外部数据存储器读选通) 硬件系统设计 说明 : 按下计价按键时,显示起步价和起步里程范围,这些在程序中设置;当等于或超过两公里 后,按计算总价的公式为:总价 =起步价 +单价 *(总里程 起步里程)+1 进行计价。 本设计中,起步价为 4 元,起步里程为 2 公里,当然这些数据可以在程序中改写,以满足不同时期价格调整的需要。 硬件电路组成 系统硬件设计 8 硬件组成主要包括:驱动电路、显示电路、复位电路、掉电保护电路、时钟电路、按键电路。 其整体电路图 所示 : 图 计价器整体电路图 驱动电路 74LS245 是我们常用的芯片,用来驱动 led 或者其他的设备。 总线驱动器74LS244和 74LS245经常用作三态数据缓冲器, 74LS244为单 向三态数据缓冲器,而 74LS245 为双向三态数据缓冲器。 本设计用 74LS245 作为驱动芯片,双向总线发送器 /接收器 (3S),管脚图如图 所示。 图 驱动芯片管脚图 系统硬件设计 9 74LS245 主要电器特性的典型值如下 : 引出端符号 : A A 总线端 B B 总线端 G 三态允许端 (低电平有效 ) DIR 方向控制端 功能表 如表 所示 : 表 功能 表 Enable Direction G Control DIR Operation L L L H H X B data to A bus A data to B bus Isolation 利用 74LS245 来驱动数码管显示,单片机的 到 分别接 A0 到 A5管脚,进行数据的传送,其中 AB/BA 接高电平,控制数据从 A 到 B 进行传送,B0 到 B5 分别接数码管的位选端,驱动数码管依次显示。 到 的数据通过 A 传送到 B 中的数据送到数码管,以达到显示数据信息的目的。 显示电路 多数的应用系统都要配输入和输出 , 外设 LED 显示器和 LCD 显示器 , 虽然LCD 显示效果比较好 , 已经成为了一种发展趋势 , 但为了节约成本 , 我们选 用了 LED 显示器(图 )。 图 集成数码管 在显示方面,我们选用了动态显示。 静态显示虽然亮度较高,接口编程容易,但是每位的段码线分别与一个 8 位的锁存器输出相连。 占用的 I/O 口线比较多,系统硬件设计 10 在显示位数较多的情况下,一般都采用动态显示方式。 利用动态显示的方法,由于 LED 显示器的余辉和人眼的视觉暂留现象,只要每位显示的时间间隔足够短,就仍能感觉到所有的数码管都在显示。 为了简化硬件,通常将所有位的段码线相应段并联在一起,由一个 8 位 I/O 口控制,在同一时刻,只让一位选通,如此循环,就可以使各位显示出将要显示的 字符。 LED 数码有共阳和共阴两种,把这些 LED 发光二极管的正极接到一块(一般是拼成一个 8 字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接 VCC 和 GND。 再把多个这样的 8 字装在一起就成了多位的数码管了。 在本设计仿真中使用的是 6 个一组的共阴 8 段数码管(图 )。 图 LED 数码管 找公共共阴和公共共阳的方法:首先我们找个电源稳压器( 3 到 5 伏)和 1个 1K(几百欧的也行)的电阻, VCC 串接 1 个电阻后和 GND 接在任意 2 个脚上,组合有很多,但总有一个 LED 会发光的, 找到一个就够了,然后用 GND不动, VCC(串电阻)逐个碰剩下的脚,如果有多个 LED(一般是 8 个),那它就是共阴的了。 共阴极数码管,阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,对应的段就显示。 复位电路 单片机的复位是由外部的复位电路实现的 , 复位电路通常采用上电自动复位和按钮复位两种方式。 上电自动复位是通过外部复位电路的电容充电来实现的。 除了上电复位外还需要按键手动复位(图 )。 按键手动复位有电平方式和脉冲方式两种。 其中电平复位是通过 RST 端经电阻与电源 VCC 接通而实现的。 单片 机的复位速度比外围 I/O 接口电路快 , 为能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。 系统硬件设计 11 图 复位电路 掉电保护电路 掉电保护电路中采用了存储芯片 FM24C02。 FM24C02 是一个 CMOS 标准的 EEPROM 存储器,是 FM24CXX 系列( FM24C01/02/04/08/16)成员之一,这些 EEPROM 存储器的特点是功耗小、成本低、电源范围宽,静态电源电流约 30uA~ 110uA,具有标准的 I2C 总线接口,是应用广泛的小容量存储器之一。 图 FM24C02 引脚图 图 是 FM24C02 的引脚图,这个芯片是一个 8 脚芯片,内部存储器有 256字节。 引脚功能介绍如下: A0(引脚 1):器件地址的 A0 位,是器件地址的最低位,器件地址排列是A6 A5 A4 A3A2 A1 A0 R/W。 A1(引脚 2):器件地址的 A1 位。 A2(引脚 3):器件地址的 A2 位。 GND(引脚 4):地线。 SDA(引脚 5):数据总线引脚。 SCL(引脚 6):时钟总线引脚。 TEST(引脚 7):测试引脚。 Vcc(引脚 8):电源线引脚。 系统硬件设计 12 本设计采用掉电存储电路图如 图 : 图 掉电存储电路 时钟电路 MCS51 单片机的各功能部件都是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作,单片机本身如同一个复杂的同步时序电路,为了保证其各个部分同步工作,电路要在唯一的时钟信号控制下,严格地按照时序进行工作。 其实只需在时钟引脚连接上外围的定时控制元件,就可以构成一个稳定的自激振荡器。 为更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装得与单片机芯片靠近。 本设计中使用的振荡电路,由 12MHZ 晶体振荡器和两个 约 30PF 的电容组成,在 XTAL1 和 XTAL2 两端跨接晶体,电容的大小不会影响振荡频率的高低。 在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。 如图 所示。 图 时钟电路 按键电路 按键控制电路中,单片机的 管脚接启动 /停止按键,通过软件编程,当按下按键计数器开始工作,开始计价;当弹起按键时,计数器停止工作,停止计价,启动 /停止按键带自锁功能。 按下启动按键,开关处于导通状态,这时给 送低电平信号,这时 TR0=1, 计数器开始工作,调用计价子程序开始计价。 清零按键接单片机的 管脚,按下清零按键, 为低电平,调用清零子程序,系统硬件设计 13 用于将显示数据清零,在程序中给各位赋 0 代码( 0x3f),以达到清零的目的,方便下次计价。 另外为功能键,控制价格调整,这个按键是在没有按下启动 /停止按键时有作用,计价过程中无效 ,按键电路如图 所示。 图 按键电路 系统软件设计 14 4 系统软件设计 软件总体设计 51 单片机的程序设计语言主要有两种:一是汇编程序设计;二是 C 语言 编程设计, 两种程序设计语言都有各自的优点。 用汇编语言编写和高级语言 (C 语言 )比较起来节省空间,这样对于存储空间仅 4Kb 的芯片来说是极之有利的, 51单片机能更高速的运行。 C 语言编写的程序,虽然不象汇编那样速度快、但程序简单易行、并且需要较小的存储空间。 C 语言作为一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。 此外, C 语言程序还具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。 因此,使用 C 语言进行程序设计已成为软件开发的主流。 本设计就是采用 C 语言编写的, 由于采用模块化操作,使得程序在修改,执行的时候显得方便易行。 系统程序设计 本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序 调用各个子程序的方法,使程序通俗易懂,我们设计了整体程序流程图: 在 main 函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化,要对硬件设备进行初始化,并使硬件处于就绪状态。 通过判断是否计费,调价,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。 这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作 ,最后数码管根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的。 整个程序的流程图如 图 所示 : 系统软件设计 15 图 系统程序流程图 Y Y 判断是否进入调价模式 进入调价模式 判断是否开始计费 调用计费子程序 判断是否停止键按下 结果显示 清显示单价复位 Y N N N 初始化 开始显示 系统调试 16 5 系统调试 系统调试包括软件调试和硬件调试。 硬件调试的任务是排除所焊接电路故障。 软件调试是利用开发工具进行在线仿真调试。 调试的一般过程如图 所示:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。