基于单片机出租车计费器的设计_第1页
基于单片机出租车计费器的设计_第2页
基于单片机出租车计费器的设计_第3页
基于单片机出租车计费器的设计_第4页
基于单片机出租车计费器的设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、石家庄邮电职业技术学院石家庄邮电职业技术学院 毕业设计毕业设计 基于单片机的出租车计费器的设计基于单片机的出租车计费器的设计 2012 届 电信工程 系 专业 移动通信技术 班级 电 0904-12 学号 姓名 指导教师 完成日期 2011 年 12 月 25 日 石家庄邮电职业技术学院石家庄邮电职业技术学院 毕业设计任务书毕业设计任务书 姓 名学号 专 业移动通信技术班 级电 0904-12 毕业设计题目基于单片机的出租车计费器的设计 指导教师姓名职称或职务 讲师 工程师 工作单位 一、设计内容 利用 C 语言编写单片机控制程序,实现出租车计费器的功能。制作相应的硬件电路模拟出租 车计费和显

2、示的过程。 二、基本要求 (1)利用传感器对车轮转的圈数进行计数,并将计数值传送给单片机,单片机将脉冲数成公换 算里数。 (2)进行单片机程序设计,实现计费功能,计费标准为:按行驶里程计费,起步价为 10.00 元, 并在车行 5km 后按标准单价计费,单价白天夜晚有所不同,夜晚当行驶超过一定距离时, 每公里加收 50%车费,车停止不计费。 (3)有显示功能,能够显示当前车费值、当前已经行驶公里数。 三、重点研究内容:车轮计数,信息显示 四、主要设计方法 (1)采取合适的方式对车轮转的圈数进行计数 (2)熟悉显示技术,可采用 LCD 或者数码管来显示车费值和公里数 (3)掌握使用 C 语言编写

3、单片机程序的规则和方法和调试技术。 主要参考文献、资料: 1罗亚非,凌阳 16 位单片机应用基础M,北京:北京航空航天大学出版社,2003 年 2凌阳科技,凌阳 16 位单片机开发实例,北京:北京航空航天大学出版社,2006 年 6 月 3汪敏, 凌阳 16 位单片机实验与实践,北京:北京航空航天大学出版社,2007 年 8 月 4余永权,汪明慧,黄英,单片机在控制系统中的应用,北京:电子工业出版社,2003年9月 计划进度 1、2011 年 10 月 8 日2011 年 10 月 31 日 资料搜集;进行系统设计 2、2011 年 11 月 1 日2011 年 12 月 10 日 硬件设计,

4、软件设计;系统联合调试 3、2011 年 12 月 11 日2011 年 12 月 20 日 撰写初稿 4、2011 年 12 月 21 日2011 年 12 月 25 日 修改,定稿打印。 指导教师签字: 年 月 日 注:本表由指导教师填写,一式两份,一份交系留存,一份发给学生。 石家庄邮电职业技术学院石家庄邮电职业技术学院 毕业设计评定书毕业设计评定书 姓 名班 级电 0904-12学 号 专 业移动通信技术 毕业设计题目基于单片机的出租车计费器的设计 指导教师评语: 指导教师建议成绩 (60) 指导教师签字: 年 月 日 答辩小组建议成绩 (40) 组长签字: 年 月 日 答辩委员会最后

5、审定成绩主任签字: 年 月 日 备注 摘摘 要要 随着生活水平的提高,人们已不再满足衣食住行的享受,出行的舒适已受到越 来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。 基于单片机系统设计的出租车计费器是以单片机作为核心的控制元件,采用灵敏的 霍尔开关型器件,具有功能强,性能可靠,电路简单,成本低的特点,加上经过优 化的程序,使其具有很高的智能化水平。 在本次设计中硬件设计主电路以 AT89S51 单片机为核心控制元件,附加灵敏的 A44E 霍尔传感器测距,实现对出租车计费,采用 AT24C02 实现在系统掉电的时候保 存单价等信息,输出采用 LCD1602 液晶显示屏

6、,显示行驶总里程和总金额。 本电路设计的计费器主要功能有:数据的复位、白天/晚上转换、数据输出、计 价、单价输出及调整、路程输出、实现在系统掉电的时候保存单价等功能。本电路 设计的计费器不但能实现基本的计价,而且还能根据白天、黑夜来调节单价,为司 机同志提供方便。 目目 录录 1 1概述概述 .1 1 1.11.1课题研究背景课题研究背景 .1 1 1.21.2课题研究意义课题研究意义 .1 1 1.31.3课题主要研究内容课题主要研究内容 .1 1 2 2总体设计方案的论证与比较总体设计方案的论证与比较 .2 2 2.12.1总体设计方案的论证与比较总体设计方案的论证与比较 .2 2 2.2

7、2.2里程计算设计方案论证与比较里程计算设计方案论证与比较 .3 3 2.32.3设计总框图设计总框图 .4 4 3 3硬件设计硬件设计 .4 4 3.13.1硬件设计概述硬件设计概述 .4 4 3.23.2AT89S51AT89S51 介绍介绍 .4 4 3.2.13.2.1AT89S51AT89S51 主要性能特点主要性能特点 .5 5 3.2.23.2.2AT89S51AT89S51 的引脚功能说明的引脚功能说明 .5 5 3.33.3里程计算设计里程计算设计 .6 6 3.3.13.3.1霍尔传感器简介霍尔传感器简介 .6 6 3.3.23.3.2里程计算、计价单元的设计里程计算、计价

8、单元的设计 .7 7 3.3.33.3.3里程计量功能里程计量功能 .8 8 3.43.4显示原理显示原理 .8 8 3.4.13.4.1字符液晶字符液晶 16021602 液晶显示器各种图形的显示原理液晶显示器各种图形的显示原理 .8 8 3.4.23.4.2字符型液晶字符型液晶 16021602 主要技术参数主要技术参数 .9 9 3.4.33.4.3接口信号说明接口信号说明 .9 9 3.4.43.4.4基本操作时序基本操作时序 .1010 3.4.53.4.51602LCD1602LCD 的的 RAMRAM 地址映射及标准字库表地址映射及标准字库表 .1010 3.53.5AT24C0

9、2AT24C02 掉电存储单元的设计掉电存储单元的设计 .1212 3.63.6按键单元的设计按键单元的设计 .1313 3.6.13.6.1独立式键盘的接口电路独立式键盘的接口电路 .1313 3.6.23.6.2按键单元的设计按键单元的设计 .1414 3.6.33.6.3按键的功能按键的功能 .1414 3.73.7复位电路设计复位电路设计 .1414 3.83.8振荡时钟电路振荡时钟电路 .1515 4 4系统软件设计系统软件设计 .1616 4.14.1系统总体程序设计系统总体程序设计 .1616 4.24.2系统各分部程序设计系统各分部程序设计 .1717 4.2.14.2.1调价

10、子程序设计调价子程序设计 .1717 4.2.24.2.2计费子程序设计计费子程序设计 .1717 4.2.34.2.3里程计数中断服务程序里程计数中断服务程序 .1717 4.2.44.2.4显示子程序设计显示子程序设计 .1717 5 5系统软件调试系统软件调试 .1919 5.15.1里程计价测试里程计价测试 .1919 5.25.2掉电存储测试掉电存储测试 .2020 6 6总结总结 .2020 参考文献参考文献 .2121 致致 谢谢 .2222 1 1概述概述 1.11.1课题研究背景课题研究背景 我们知道,只要乘坐的出租车启动,随着行驶里程的增加,就会看到司机旁边 的计费器里程数

11、字显示的读数从零逐渐增大,而当行驶到某一值时计费数字显示开 始从起步价增加。当乘客到站时,按下停止按键,计费数字显示总里程和总金额, 它可以很直观的反映用户使用情况。 现在各大中城市出租车行业都已普及自动计费器,所以计费器技术的发展已成 定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租 车行业也将加速发展,计费器的普及也是毫无疑问的,所以未来汽车计费器的市场 还是十分有潜力的。 1.21.2课题研究意义课题研究意义 出租车计费器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志, 是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计费器无论 是对广大出

12、租车司机朋友还是乘客来说都是很必要的。随着城市旅游业的发展,出 租车行业已成为城市的窗口,象征着一个城市的文明程度。因此,汽车计费器的研 究也是十分有应用价值的。 毕业设计是将理论与实践相结合的教学环节,通过综合运用教材及其他资料, 使所学知识得到进一步加深和扩展。同时还培养设计能力和解决实际问题能力,进 行基本技能的训练。 1.31.3课题主要研究内容课题主要研究内容 利用 AT89S51 单片机,设计简单的出租车计费器。在出租车计费器的总体设计 中,其中硬件设备中主要的外围功能电路有:按键控制电路,掉电保护电路,时钟 电路,复位电路,LCD1602 液晶显示电路,霍尔传感器部分等。 软件设

13、计中主要有:显示子程序,计费子程序,调价子程序,里程计数中断服 务程序等。 通过对以上各功能的设计,制作出的出租车计费器应具有以下功能:上电时液 晶显示屏初始化显示为零,通过按下启动按键来开始计价,液晶显示屏开始显示起 步价和起步金额;在行走的过程中,液晶显示屏开始显示所走里程和所应付的金额, 并逐渐增加;按下停止按键,停止计价,液晶显示屏显示所走总里程和用户所需总 金额,按下清零按键,液晶显示屏显示零,以备下次计价。 (1)里程计算:利用霍尔传感器 A44E 测距,单片机对霍尔传感器输出的脉冲 进行计数,并将脉冲数转换成相应公里数,从而实现测距。 白天:费用的计算是按行驶里程收费。设起步价为

14、 10.00 元。 当里程5 公里时,每公里按 1.60 元计费; 车停止不计费; 夜晚: 当里程5 公里且10 公里时,每公里加收 50%的车费(即 2.70 元); 车停止不计费; (2)显示功能:利用 LCD1602 液晶显示屏显示,在计费开始时,显示单价和起 步价,随着里程的增加,显示总路程和总费用。 显示行驶里程:用五位数字显示,显示方式为“XX.XXX”,单位为公里。计程 范围 0-99 公里,精确到 0.001 公里。 显示单价:用四位数字显示,显示方式为“XX.XX”,单位为元。计价范围 0- 99 元,精确到 0.01 元。 显示总费用:用五位数字显示,显示方式为“XXX.X

15、X”,单位为元。计价范围 0-999.99 元,精确到 0.01 元。 2 2总体设计方案的论证与比较总体设计方案的论证与比较 2.12.1总体设计方案的论证与比较总体设计方案的论证与比较 方案一:采用数字电路控制。其原理方框图如图 2-1 所示。采用传感器件,输 出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电 路过于简单,性能不够稳定,而且不能调节单价,电路不够实用。其原理方框图如 图 2-1 所示。 图 2-1数字电路方案 方案二:采用单片机控制。利用单片机丰富的 IO 端口,及其控制的灵活性,实 现基本的里程计费功能和价格调节。其原理方框图如图 2-2 所示。

16、图 2-2总体设计思路框图 采用模拟电路和数字电路设计的计费器整体电路的规模较大,用到的器件多, 造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会 造成接触不良,功能不易实现。通过比较以上两种方案,单片机有较大的活动空间, 利用单片机丰富的 IO 端口,及其控制的灵活性,不但能实现基本的里程计费功能和 价格调节,而且能在很大的程度上扩展功能,还可以方便的对系统进行升级。为此 我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互 配合可以很容易的实现设计要求。 2.22.2里程计算设计方案论证与比较里程计算设计方案论证与比较 方案一:采用霍尔线性器件,

17、将转速转变为电压信号提供给单片机,从而达到 计算里程的目的。 里程传感器移位寄存器 单价显示金额显示 电源电路 及 保护电路 键盘 控制 AT24C02 掉电存储 里程计算单元 AT89S51 单片机 总金 额 显示 总里 程 显示 方案二:采用霍尔开关器件中的霍尔传感器 A44E,按出租车车轮转速的高低, 每转发出相应数目的脉冲信号。 通过比较以上两种设计方案,方案一虽然运行可靠,但体积大,精度低,且由 于测量值是模拟量,必须经过 A/D 转换后读入计算机,针对于出租车计价器而言较 为烦琐,不适用。因此我们采用方案二。 2.32.3设计总框图设计总框图 本次设计我们利用单片机 AT89S51

18、 芯片作为设计的核心,利用霍尔传感器测距, 实现对出租车计费统计,采用 AT24C02 实现在系统掉电的时候保存单价等信息,显 示采用 LCD1602 液晶显示屏,显示单价、总金额、总路程。总体设计框图如图 2-3 所示。 图 2-3总体设计框图 3 3硬件设计硬件设计 3.13.1硬件设计概述硬件设计概述 AT89S51 是一款非常适合单片机初学者学习的机型,它完全兼容传统的 8051,8031 的指令系统和引脚,而且是当今较为流行的,综合考虑,本次设计的核 心采用 AT89S51 型单片机;在里程测速方面,霍尔元件体积小,重量轻,寿命长, 安装方便,功耗小,因此我们采用霍尔传感器 A44E

19、;在显示方面,采用 LCD1602 液 晶显示屏显示;在其他方面,我们运用到了 AT24C02 掉电存储单元以及四个控制按 键。 键盘控制 AT24C02 掉电存储 里程传感器 串口显示驱动电路 锁存器 总金 额 显示 总路 程 显示 AT89S51 单片机 3.23.2AT89S51AT89S51 介绍介绍 AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储 器,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内

20、集成了通用 8 位中央处理 器和 ISP Flash 存储单元。 3.2.13.2.1AT89S51AT89S51 主要性能特点主要性能特点 (1)4k Bytes Flash 片内程序存储器; (2)128 bytes 的随机存取数据存储器( RAM); (3)32 个外部双向输入 /输出(I/O)口; (4)5 个中断优先级、2 层中断嵌套中断; (5)6 个中断源; (6)2 个 16 位可编程定时器/计数器; (7)2 个全双工串行通信口; (8)看门狗(WDT)电路; (9)片内振荡器和时钟电路; (10)与 MCS-51 兼容; (11)全静态工作: 0Hz-33MHz; (12)

21、三级程序存储器保密锁定; (13)可编程串行通道; (14)低功耗的闲置和掉电模式。 3.2.23.2.2AT89S51AT89S51 的引脚功能说明的引脚功能说明 AT89S51 有 40 个引脚,与 MCS-51 系列单片机引脚完全兼容。如图 3-1 所示。 其各自引脚功能如下: (1)Vcc:电源电压输入端。 (2)GND:地。 (3)P0 口:P0 口是一组 8 位漏极开路型双向 I/O 接口,也即地址/数据总线复 用口。每脚可吸收 8TTL 门电流。 (4)P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 的输出 缓冲级可驱动 4 个 TTL 逻辑门电路。 (

22、5)P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可 接收,输出 4 个 TTL 门电流。 (6)P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。 (7)I/O 口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端 口实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经 过某种运算或变换后再写回到端口锁存器。只有读端口才真正地把外部的数据 读入到内部总线。 89S51 的 P0、P1、P2、P3 口作为输入时都是准双向口。 (8)RST:复位输入端,高电平有效。当振荡器复位器件时,要保持R

23、ST 脚两个机器周期的高电平时间。 (9)ALE/PROG:地址锁存允许 /编程脉冲信号端。当访问外部存储器时,地 址锁存允许的输出电平用于锁存地址的低位字节。 (10)PSEN:外部程序存储器的选通信号,低电平有效。 (11)EA/VPP:外部程序存储器访问允许。 (12)XTAL1:片内振荡器反相放大器和时钟发生器的输入端。 (13)XTAL2:片内振荡器反相放大器的输出端。 PROG 图 3-1AT89S51 的引脚结构 3.33.3里程计算设计里程计算设计 本次设计里程计算采用霍尔传感器 A44E,时下已得到了广泛的应用。 3.3.13.3.1霍尔传感器简介霍尔传感器简介 霍尔传感器是

24、利用霍尔效应实现磁电转换的一种传感器,它具有灵敏度高,线 性度好,稳定性高、体积小和耐高温等特点,在机车控制系统中占有非常重要的地 位。对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。 按照霍尔器件的功能可将它们分为: 霍尔线性器件和霍尔开关器件。霍尔线性 器件的精度高、线性度好、输出模拟量;霍尔开关器件无触点、无磨损、输出波形 清晰、无抖动、无回跳、位置重复精度高(可达 m 级) 、输出数字量。取用了各种 补偿和保护措施的霍尔器件的工作温度范围宽,可达55150。 3.3.23.3.2里程计算、计价单元的设计里程计算、计价单元的设计 里程计算是通过安装在车轮上的霍尔传感器 A44E

25、 检测到的信号,送到单片机, 经处理计算,送给显示单元的。其原理如图 3-2 所示。 图 3-2传感器测距原理示意图 由于 A44E 属于开关型的霍尔器件,其工作电压为 4.518V,其输出的信号符 合 TTL 电平标准,可以直接接到单片机的 IO 端口上,而且其最高检测频率可达到 1MHZ。A44 集成霍耳开关由稳压器、霍耳电势发生器(即硅霍耳片)、差分放大器、 施密特触发器和 OC 门输出五个基本部分组成。其集成霍耳开关外形及接线如图 3-3 所示。 图 3-3集成霍耳开关外形及接线 在输入端输入电压 VCC,经稳压器稳压后加在霍耳电势发生器的两端,根据霍 耳效应原理,当霍耳片处在磁场中时

26、,在垂直于磁场的方向通以电流,则与这二者 相垂直的方向上将会产生霍耳电势差输出,该电势差信号经放大器放大后送至施密 特触发器整形,使其成为方波输送到 OC 门输出。当施加的磁场达到工作点时,触发 器输出高电压(相对于地电位)使三极管导通,此时 OC 门输出端输出低电压,通常称 这种状态为“开”。当施加的磁场达到释放点时,触发器输出低电压,三极管截止, 使 OC 门输出高电压,这种状态为“关”。这样两次电压变换,使霍耳开关完成了一 次开关动作。 3.3.33.3.3里程计量功能里程计量功能 (1)单片机对传感器输出脉冲进行计数,并将脉冲数换算成公里数;我们选择 了 P3.2 口作为信号的输入端,

27、内部采用外部中断 0(这样可以减少程序设计的麻烦) 。 (2)车轮每转一圈(我们设车轮的周长是 1 米),霍尔开关就检测并输出信 号,引起单片机的中断,对脉冲计数,当计数达到 1000 次时,也就是 1 公里,单 片机就控制将金额自动的增加,其计算公式: 当前单价公里数=金额(3-1) 3.43.4显示原理显示原理 利用 LCD1602 液晶显示屏显示,此液晶显示屏使用方便,操作简单。 3.4.13.4.1字符液晶字符液晶 16021602 液晶显示器各种图形的显示原理液晶显示器各种图形的显示原理 (1)线段的显示:点阵图形式液晶由 MN 个显示单元组成,假设 LCD 显示屏 有 64 行,每

28、行有 128 列,每 8 列对应 1 字节的 8 位,即每行由 16 字节,共 168=128 个点组成,屏上 6416 个显示单元与显示 RAM 区 1024 字节相对应,每 一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 RAM 区的 000H00FH 的 6 字节的内容决定,当(000H)=FFH 时,则屏幕的左上角显示一 条短亮线,长度为 8 个点;当(3FFH)=FFH 时,则屏幕的右下角显示一条短亮线; 当(000H)=FFH, (001H)=00H, (002H)=00H,(00EH)=00H, (00FH)=00H 时,则在屏幕的顶部显示一条由 8 段亮线和

29、8 条暗线组成的虚线。这就是 LCD 显示 的基本原理。 (2)字符的显示:用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,既要找到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节, 还要使每字节的不同位为“1” , 其它的为“0” ,为“1”的点亮,为“0”的不亮。 这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较 简单了,可以让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的 列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。 (3)汉字的显示:汉字的显示一般采用图形的方式,事先从微机中提

30、取要显示 的汉字的点阵码(一般用字模提取软件) ,每个汉字占 32B,分左右两半,各占 16B,左边为 1、3、5右边为 2、4、6根据在 LCD 上开始显示的行列号及每 行的列数可找出显示 RAM 对应的地址,设立光标,送上要显示的汉字的第一字节, 光标位置加 1,送第二个字节,换行按列对齐,送第三个字节直到 32B 显示完 就可以 LCD 上得到一个完整汉字。 3.4.23.4.2字符型液晶字符型液晶 16021602 主要技术参数主要技术参数 表 3-1字符型液晶 1602 主要技术参数 显示容量:16*2 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳

31、工作电压:5.0V 字符尺寸:2.95*4.35(W*H)mm 3.4.33.4.3接口信号说明接口信号说明 (1)VDD:电源正极,4.55.5V,通常使用 5V 电压 (2)VL:LCD 对比度调节端,电压调节范围为 05V。接正电源时对比度最弱, 接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个 10K 的电位器来调整对比度,或者直接串接一个电阻到地; (3)RS:MCU 写入数据或者指令选择端。MCU 要写入指令时,使 RS 为低电平; MCU 要写入数据时,使 RS 为高电平; (4)R/W:读写控制端。R/W 为高电平,读取数据;R/W 为低电平,写入数据; (

32、5)E:LCD 模块使能信号控制端。写数据时,需要下降沿触发模块。 (6)D0D7:8 位数据总线,三态双向。如果 MCU 的 I/O 口资源紧张的话,该 模块也可以只使用 4 位数据线 D4D7 接口传送数据。本充电器就是采用 4 位数据传 送方式; (7)BLA:LED 背光正极。需要背光时,BLA 串接一个限流电阻接 VDD,BLK 接 地,实测该模块的背光电流为 50mA 左右; (8) BLK:LED 背光地端。 图 3-4AT89S51 与 LCD1602 的连接 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 39 38 37

33、36 35 34 33 32 21 22 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 R/W RS 7 8 9 10 11 12 13 14 5 4 P2.2 23 BLK GND V BLA VCC L 10K +5V E 6 16 3 15 1 VSS 2 VDD +5V AT89S51LCD1602 +5V 1K8 EA+5V 3.4.43.4.4基本操作时序基本操作时序 a 读状态:输入:Rs=L, Rw=H, E=H 输出:D0D7=状态字 b 写指令:输入:Rs=L, Rw=L, D0D7=指令码 输出:无 E=高脉冲 c 读数据:输入:Rs=H, Rw=L,

34、E=H 输出:D0D7=数据 d 写数据:输入:Rs=H, Rw=L, D0D7=数据 输出:无 E=高脉冲 3.4.53.4.51602LCD1602LCD 的的 RAMRAM 地址映射及标准字库表地址映射及标准字库表 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的 忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地 址,也就是告诉模块在哪里显示字符,图 3-5 是 1602 的内部显示地址。 图 3-51602 的内部显示地址 (1)状态字说明如表所示: 表 3-2状态字说明(a) STA7 D7 STA6 D6 STA5 D5 STA4 D4

35、STA3 D3 STA2 D2 STA1 D1 STA0 D0 表 3-3状态字说明(b) STA0-6当前数据地址指针的数值 STA7读写操作使能1:禁止 0:允许 注:对控制器进行读写操作之前,都必须进行读写检测,确保 STA7 为 0 (2)显示模式设置如表 3-4 所示: 表 3-4显示模式设置 指令码功能 00111000设置 16*2 显示,5*7 点阵,8 位数据接口 (3)显示开关及光标设置如表 3-5 所示: 表 3-5显示开关及光标设置 指令码功能 00001DCB D=1 开显示; D=0 关显示 C=1 显示光标; C=0 不显示光标 B=1 光标闪烁; B=0 光标不

36、显示 000001NS N=1 当读或写一个字符后地址指针加一,且 光标加一;N=0 当读或写一个字后地址指针 减一,且光标减一;S=1 当写一个字符后, 整屏显示左移(N=1)或右移(N=0),以得到 光标不移动而屏幕移动的效果;S=0 当写一 个字符,整屏显示不移动 (4)数据控制 控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部 80 字节 RAM。数据指针设置如表 3-6,3-7 所示 表 3-6数据指针设置(a) 指令码功能 01H 显示清屏:1.数据指针清零 2.所有显示清零 02H显示回车:1.数据指针清零 表 3-7数据指针设置(b) 指令码功能 80H+地址码(

37、027H, 4067H)设置数据地址指针 3.53.5AT24C02AT24C02 掉电存储单元的设计掉电存储单元的设计 (1)AT24C02 简介 AT24C02 芯片引脚配置如图 3-6 所示。 (2)引脚功能介绍: 图 3-6引脚图 A0(引脚 1):器件地址的 A0 位,是器件地址的最低位,器件地址排列是 A6,A5, A4 ,A3,A2 ,A1 ,A0 ,R/W。 A1(引脚 2):器件地址的 A1 位。 A2(引脚 3):器件地址的 A2 位。 GND(引脚 4):地线。 SDA(引脚 5):数据总线引脚。 SCL(引脚 6):时钟总线引脚。 WP(引脚 7):测试引脚, 写保护引

38、脚,WP 接 VSS 时,禁止写入高位地址, WP 接 VDD 时,允许写入任何地址。 Vcc(引脚 8):电源线引脚。 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02 是 ATMEL 公司的 2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯, 电压最低可以到 2.5V,额定电流为 1mA,静态电流 10Ua(5.5V),芯片内的资料可以 在断电的情况下保存 40 年以上,使用方便。图中 R8、R10 是上拉电阻,其作用是 减少 AT24C02 的静态功耗,由于 AT24C02 的数据线和地址线是复用的,采用串口的 方式传送数据,所以只用两根线 SC

39、L(移位脉冲)和 SDA(数据/地址)与单片机传 送数据。其电路如图 3-7 所示。每当设定一次单价,系统就自动调用存储程序,将 单价信息保存在芯片内。当系统重新上电的时候,自动调用读存储器程序,将存储 器内的单价等信息,读到缓存单元中,供主程序使用。 图 3-7掉电存储电路原理图 3.63.6按键单元的设计按键单元的设计 在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命 令及指令等输入到系统中,来实现简单的人机通信。 3.6.13.6.1独立式键盘的接口电路独立式键盘的接口电路 独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向 系统输入信息。这时,可将

40、每个按键直接接在一根 I/O 接口线上。如图 3-8 所示。 图 3-8独立式键盘电路 每个独立按键单独占有一根 I/O 接口线,每根 I/O 接口线的工作状态不会影响 到其他 I/O 接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须 占用一根 I/O 线,I/O 接口线浪费较大。故只在按键数量不多时采用这种按键电路。 在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O 接口 线有确定的高电平。当 I/O 接口内部有上拉电阻时,外电路可以不配置上拉电阻。 3.6.23.6.2按键单元的设计按键单元的设计 电路共采用了四个按键,S1、S2、S3、S4,其功能分别

41、是:S1 启动/停止按键, S2 白天/晚上切换按键,S3 功能设定按键,S4 清零按键。其电路连接如图 3-9 所示。 图 3-9按键连接图 3.6.33.6.3按键的功能按键的功能 (1)S1 按键的功能:按键控制电路中,单片机的 P1.0 管脚接启动/停止按键, 通过软件编程,当按下按键计数器开始工作,开始计价。当弹起按键时,计数器停 止工作,停止计价,启动/停止按键带自锁功能。此时,液晶显示屏上显示(总路 程、总费用) ;按下启动按键,开关处于导通状态,这时给 P1.0 送低电平信号,这 时 TR0=1,计数器开始工作,调用计价子程序开始计价。 (2)S2 按键的功能:切换白天和晚上的

42、价格。当液晶显示屏初始化后,第一 次按下 S2 键,显示白天价格;再一次按下,显示晚上的价格。 (3)S3 按键的功能:在初始化液晶显示屏下(即车不计费时)按下 S3 键则进 行单价调整(默认为调整白天单价),当接着按下 S3 键时,则进行晚上单价调整。 (4)S4 按键的功能:清零按键接单片机的 P1.3 管脚,按下清零按键,P1.3 为低电平,用于将显示数据清零,在程序中给各位赋 0 代码,以达到清零的目的, 方便下次计价。 3.73.7复位电路设计复位电路设计 复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具 有上电复位功能外,若要复位,只要按图中的 RESET 键,

43、电源 VCC 经电阻 R1、R2 分 压,在 RESET 端产生一个复位高电平。 上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。 上电瞬间 RESET 引脚获得高电平,随着电容的充电,RERST 引脚的高电平将逐渐下 降。RERST 引脚的高电平只要能保持足够的时间(2 个机器周期) ,单片机就可以进 行复位操作。按键复位电路图如图 3-10 所示。 图 3-10复位电路 3.83.8振荡时钟电路振荡时钟电路 51 系列单片机的内部已经都配置了一个用于构成内部振荡器的高增益反相放大 器,只要将这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器接在一起,就 可以构成自激振

44、荡器,为单片机提供频率稳定的振荡信号。如图 3-11 所示: 图 3-11时钟电路 本设计中振荡电路使用的是 12MHz 的无源晶振,外接两个电容进行匹配,使其 能够起振。在允许范围内,这两个电容的取值越低越好,其值偏大虽有利于振荡器 的稳定,但是会增加起振时间。本设计中选用 30pf 的电容。单片机的工作频率是有 范围的,一般情况下都是选用 12MHz 的晶振,频率过高的话会造成单片机无法稳定 运行。 4 4系统软件设计系统软件设计 4.14.1系统总体程序设计系统总体程序设计 本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计 中采用主程序调用各个子程序的方法,使程序通俗

45、易懂,我们设计了整体程序流程 图。 在 main 函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化, 要对硬件设备进行初始化,并使硬件处于就绪状态。通过判断是否计费,调价,清 零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系。 这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后显示屏 根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信 息控制输出信息的目的。整个程序的流程图如下: 图 4-1整个程序流程图 从上图中我们得出整个程序流程图:首先液晶显示屏打开进入初始化状态,其 次判断是否进入调节单价模式,如果是,此时进入调

46、价模式;如果否,进入下一步 判断是否开始计费; 判断是否开始计费,如果开始计费,调用计费子程序,通过按键开始计费和停 止计费,在进行下一步判断是否按下停止键;如果不开始计费,则返回调价模式程 序; 判断是否按下停止键,如果按下停止键,则在显示屏上显示结果,在进行下一 步,清显示单价复位;如果没有按下停止键,则返回调用计费子程序; 最后当通过按清零键复位,返回初始化,此时依次开始循环。 初始化 开显示 进入调价模式程序 调用计费子程序 结果显示 清显示单价复位 判断是否进入调价模式 判断是否开始计费 判断是否停止键按下 Y Y Y N N N 4.24.2系统各分部程序设计系统各分部程序设计 4

47、.2.14.2.1调价子程序设计调价子程序设计 打开液晶显示屏开关按钮初始化(即车停止不计费时) ,按键 3(功能键)第一 次按下,此时调节白天的价格,再按键 1 按下确定;按键 3(功能键)第二次按下, 此时调节晚上的价格,再按键 1 确定。 4.2.24.2.2计费子程序设计计费子程序设计 打开液晶显示屏开关按钮,液晶显示屏初始化显示为零。按键 2 第一次按下, 此时液晶显示屏显示的是白天的起步价 10.00 元和单价 1.60 元/公里(如是晚上再 一次按下按键 2 即为晚上价格) ,当客人上车后按键 1(启动/停止键)按下,开始 计费,车停止不计费。当客人到达目的地时,按键 1 按下停止,此时液晶显示屏显 示当前总路程 XX.XXX 公里,总费用 XXX.XX 元。当下位客人上车后,按键 4(清零 键)按下,清零,液晶显示屏进入初始化状态。 4.2.34.2.3里程计数中断服务程序里程计数中断服务程序 每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里 程脉冲计满 1000 次时,就有程序将当前总额送入里程计数中断服务程序中。在该 程序中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论