AT89C51单片机控制的计价器

AT89C51单片机控制的计价器[20200128193754]
摘要
随着现代生活节奏的加快和水平提高,越来越多的人都不仅仅满足衣食住的享受,出行的方便和舒适也越加关注,出租车行业的快速发展使之成为城市交通的重要组成部分。随之而来就存在着买卖的纠纷,出租车计价器是乘客与司机双方的里程价格交易准则,它关系着乘客和司机之间的利益,具有良好性能的计价器是很有必要的。因此,对出租车计价器研究也是十分有价值的,随着电子技术的飞速发展,出租车计价器技术也在不断进步和提高,国内出租车计价器已经经历了四个阶段的发展从传统的全部由机械元器件组成的机械式到半电子式即用电子线路代替部分机械元器件的出租车计价器再从集成电路式到目前的单片机系统设计的出租车计价器。
 *查看完整论文请+Q: 351916072 
关键字:出租车计价器,单片机,控制
引言 1
一 、方案设计 2
(一)功能说明 2
(二)方案论证 2
(三)显示设计论证 2
(四)总方案 3
二、AT89C51单片机及其引脚功能 3
三、LCD1602液晶简介 5
四、AT24C02引脚图及其引脚功能 5
五、 计价器硬件设计 6
(一)系统的硬件构成及功能 6
(二)单元电路 7
1.震荡电路 7
2.复位电路 7
3.按键电路 8
4.显示电路 8
5.掉电存储电路 9
六、 计价器软件设计 9
(一)系统主程序设计 9
(二)中断子程序 10
(三)计算程序 12
(四)显示子程序 13
七、 系统调试 14
(一)proteus仿真图 14
(二)keil程序调试 15
(三)实物硬件调试 16
结束语 17
致谢 17
参考文献 18
附录 19
(一)主程序 19
(二)原理图 26
(三)PCB图 27
(四)元器件清单 28
引言
随着现代人们生活水平的提高,为了出行的方便和舒适,出租车使用的频率越来越高,可以发现出租车已经广泛的出现在我们的周围。但是如何计算里程价格使得乘客和司机之间产生了纠纷,所以更加精良的计价器为乘客与司机提供了快捷的服务。
采用数字和模拟电路设计的计价器整体规模大,而且用到的元器件多,不易调试而采用单片机设计的计价器可以用较少的硬件和适当的软件相互配合实现基础设计要求,并且其灵活性强,可以通过软件编程来完成更多的扩展功能。
本设计是一个基于单片机AT89C51的出租车计价器,包括复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外可通过复位电路重新开始。时钟电路采用11.0592MHz的晶振,作为系统的时钟源,具有较高的准确性。
在上电时液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。通过按键模拟出租车的运行,暂停,停止。在1602液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。在这里主要是以AT89C51单片机为核心控制器,P1口接1602液晶显示模块,P2口接按键的,通过按键输入。
一 、方案设计
(一)功能说明
本设计的出租车计价器上电后液晶显示器显示最初的起步价,里程计费单价,里程和时间,通过按键可以调节起步价,里程计费单价,白天和夜间的价格切换。同时具有运行,等待,复位等功能。
(二)方案论证
方案一:采用数字电路控制。其原理方框图如图1所示。采用传感器件,输出脉冲信号,经过放大整形作为寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,故障率高,难调试,而且电路不够实用。
图1原理方框图
方案二:采用单片机控制。利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能,中途等待白天和黑夜价格切换等不同功能。
通过比较以上两种方案,单片机方案有较大的设计空间,不但能实现所要求的基础功能而且能在很大的程度上实现扩展功能,所以采用方案二。
(三)显示设计论证
方案一:采用液晶显示器(LCD)显示。液晶显示器功能强大,可显示数字、汉字等,还可以自定义显示内容,方便读取信息及一些扩展功能的实现,占用系统I/O口较少,有效地节约系统资源,使整个系统更加人性化。
方案二 :采用数码管显示。数码管具有编程简单,稳定性好以及极其特殊的低能耗,但是只能显示有限的符号、数字和字母,而且显示内容有限。要完成本课题设计的基本要求,并且增加附加功能的显示,则比较难实现。
根据上述以及多方面实际考虑选用方案一。
(四)总方案
综上所述,采用单片机控制的出租车计价器,用液晶显示器作为输出显示,这样既方便实现功能,达到显示的稳定,又可以节省系统资源,所以采用这种方式来设计出租车计价器。
二、AT89C51单片机及其引脚功能
AT89C51是一个有40个引脚的芯片,引脚配置如图2所示。
图2 AT89C51引脚
AT89C51单片机的40个引脚功能为:VCC为供电电压,一般接+5V;GND接地;RST为复位输入;XTAL1为反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2来自反向振荡器的输出。
  P0口: P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在进行编程时,P0 口作为原码输入口,当进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口, P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
  P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
  P3口也可作为AT89C51的一些特殊功能口,如下所示:
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口同时为闪烁编程和编程校验接收一些控制信号。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在进行编程时,此引脚用于输入编程脉冲。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:外部访问允许。在编程期间,此引脚也用于施加+5V编程电源(VPP)。
本设计采用AT89C51的P1口作为输出连接到液晶显示器,并使用P2口部分构成按键电路, XTAL1,XTAL2,RST等构成单片机最小系统。
三、LCD1602液晶简介
LCD1602接口表1所示,其工作电压范围:4.5—5.5V。
表1 LCD1602接口
编号 符号 引脚说明 编号 符号 引脚说明
1 Vss 电源地 9 D2 DataI/O
2 VDD 电源正极 10 D3 DataI/O
3 VL 液晶显示偏压信号 11 D4 DataI/O
4 Rs 数据/命令选择端(H/L) 12 D5 DataI/O
5 R/W 读/写选择端(H/L) 13 D6 DataI/O
6 E 使能信号 14 D7 DataI/O

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/4472.html

好棒文