基于单片机的出租车计费器设计

合集下载

基于单片机实现的出租车计价器设计

基于单片机实现的出租车计价器设计

一、设计目的了解和掌握掉电存储芯片AT24C02、霍尔传感器A44E、数码管、驱动芯片74LS245等外部接口芯片器件的应用。

二、主要设计内容实现出租车行驶里程和总金额的显示,预设起步价和起步公里数;实现清零、复位和掉电保护功能;实现对单价的调整。

三、重点研究问题(1)按下启动按键,显示起步里程与起步价。

(2)按模拟传感器信号的按键,显示行驶里程与总金额。

(3)按键控制清零、复位、掉电保护、调整预设单价。

(4)在软件中实现起步价,单价。

四、主要技术指标(1)数码管显示起步里程、单价,总里程、总金额。

(2)用按键控制清零、复位、掉电保护、调整预设单价。

五、设计成果要求(1)源程序通过编译、运行(2)软件烧录单片机硬件进行调试,运行(3)实现所述功能(4)电路板焊接、检测(5)最终提交软硬件、设计说明书、外文翻译、毕业设计说明书等设计开题报告本电路以AT89S51单片机为中心,附加A44E霍尔传感器测距(本电路中用模拟开关替代),实现对出租车计价,采用AT24C02 实现在系统掉电的时候保存单价,输出采用8段数码显示管,显示行驶总里程和总金额。

模拟出租车计价器设计:进行里程显示,预设起步价和起步公里数;行程按全程收费,有复位功能和启动功能,启动后,开始计价。

我们采用单片机进行设计,可以用较少的硬件和适当的软件相互配合来实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能,应用前景广阔。

关键字:出租车计价器AT89S51单片机A44E霍尔传感器断电保存8段数码显示管第 1章绪论1.1 课题背景我们知道,只要乘坐的出租车启动,随着行驶里程的增加,就会看到司机旁边的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如2KM)计费数字显示开始从起步价(如4元)增加。

当乘客到站时,按下停止按键,计费数字显示总里程和总金额,它可以很直观的反映用户使用情况。

1.2.2 主要设计内容及基本要求利用AT89S51单片机,设计简单的出租车计价器。

基于单片机的出租车计价器设计设计

基于单片机的出租车计价器设计设计

基于单片机的出租车计价器设计设计出租车计价器是一种基于单片机的设备,用于计算乘客乘坐出租车的费用。

在设计出租车计价器时,需要考虑到计价规则、硬件设计和软件编程等因素。

首先,我们需要确定计价规则。

一般来说,出租车的计价规则包括起步价、里程费和时间费。

起步价是乘客上车时需要支付的固定费用,里程费是根据乘客的行驶里程来计算的变动费用,时间费是在乘客等待或者拥堵时计算的费用。

接下来,我们需要进行硬件设计。

出租车计价器的硬件设计包括显示屏、键盘、车速传感器和单片机等组成部分。

显示屏用于显示计价器的计费结果和其他信息,键盘用于输入乘客的上下车信息和计价规则,车速传感器用于检测出租车的速度,单片机用于控制计价器的计费过程和显示信息。

然后,我们需要进行软件编程。

软件编程主要是为了控制单片机的工作流程和计费逻辑。

在软件编程中,我们需要设计计费算法,根据乘客的上下车信息、里程和时间等数据来计算费用。

同时,我们还需要设计按钮和操作界面,以便乘客和司机能够操作和使用计价器。

此外,出租车计价器还可以增加一些额外功能,如记录行驶轨迹和生成行驶报告等。

行驶轨迹可以用于监控出租车的行驶情况,而行驶报告可以提供给乘客或者出租车公司,以便进行事后结算和分析。

最后,我们还需要考虑出租车计价器的安全性和可靠性。

安全性是指计价器应具备防止数据篡改和信息泄露的能力,可靠性是指计价器应具备稳定工作和数据准确性的能力。

综上所述,基于单片机的出租车计价器设计需要考虑计价规则、硬件
设计和软件编程等因素。

通过合理的设计和规划,可以实现一个功能完善,安全可靠的出租车计价器。

基于单片机出租车计费器的设计

基于单片机出租车计费器的设计

基于单片机出租车计费器的设计
随着城市化进程的加速,出租车已经成为人们出行的重要交通工具之一。

而出租车计费器则是出租车行业中不可或缺的一部分。

传统的出租车计费器通常采用机械式结构,但是这种结构存在着计费不准确、易损坏等问题。

因此,基于单片机的出租车计费器应运而生。

基于单片机的出租车计费器采用数字化计费方式,具有计费准确、易维护等优点。

其主要由单片机、显示屏、按键、计价器等组成。

当乘客上车后,司机按下计价器上的“开始计费”按钮,计费器开始计费。

当乘客下车后,司机按下计价器上的“停止计费”按钮,计费器停止计费并显示乘客的车费。

在设计过程中,需要考虑到计费器的计费规则。

一般来说,出租车计费规则包括起步价、里程费和时间费。

起步价是指乘客上车后需要支付的固定费用,里程费是指乘客行驶的里程所需支付的费用,时间费是指乘客等待的时间所需支付的费用。

因此,在设计计费器时,需要根据这些规则进行编程,以确保计费的准确性。

基于单片机的出租车计费器还可以添加一些附加功能,如语音提示、打印发票等。

语音提示可以提醒乘客当前的车费和行驶里程,打印发票可以方便乘客核对车费和行驶里程。

基于单片机的出租车计费器具有计费准确、易维护、功能丰富等优点,可以有效提高出租车行业的服务质量和效率。

基于单片机多功能出租车计价器设计论文

基于单片机多功能出租车计价器设计论文

基于单片机多功能出租车计价器设计引言本次课程设计利用单片机技术来实现一台多功能出租车计价器,具有性能可靠、电路简单、成本低等特点。

1.1 出租车计价器概述计价器显示的营运金额是营运里程与价格的函数(等候时间一般折算成一定比例的里程来计算)。

出租车计价器通过传感器与行驶车辆连接。

出租汽车的实际里程通过传感器的脉冲信号在计价器里折算成一定的计价营运里程。

目前市场上出租车计价器功能主要有具有数据的复位功能、白天/晚上转换功能、数据输出功能、计时计价功能等等,但能够进行语音播报数据信息的出租车计价器还是比较少见的,针对这一点我们来设计一款多功能出租车计价器,在原有功能的基础上增加单价输出、单价调整、路程输出、显示当前的系统时间、语音播报数据信息等功能。

1.2本设计任务1.2.1设计任务设计一款基于AT89S51单片机的出租车计价器。

1.2.2 设计要求1.基本要求(1)不同情况具有不同的收费标准。

● 白天● 晚上● 途中等待(>10min 开始收费)(2)能进行手动修改单价。

(3)具有数据的复位功能。

(4)IO 口分配的简易要求。

● 距离检测使用霍尔开关A44E● 白天/晚上收费标准的转换开关● 数据的清零开关● 单价的调整(最好使用+和-按键)(5)数据输出(采用LCM103)。

● 单价输出 2 位● 路程输出 2 位● 总金额输出3 位(6)按键。

● 启动计时开关● 数据复位(清零)● 白天/晚上转换2.发挥部分(1)能够在掉电的情况下存储单价等数据。

(2)能够显示当前的系统时间。

(3)语音播报数据信息。

1.3 系统主要功能本课程设计所设计的出租车计价器的主要功能有:数据的复位、白天/晚上转换、数据输出、计时计价、单价输出及调整、路程输出、语音播报数据信息、实现在系统掉电的时候保存单价和系统时间等信息等功能。

输出采用8 段数码显示管。

本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。

单片机课程设计出租车计费系统,255计数,50000计数

单片机课程设计出租车计费系统,255计数,50000计数

(题目)255计数器、50000计数器、出租车计费系统起电气与信息工程学院单片机课程设计实验报告一、设计任务:1. 1 外部脉冲自动计数, 自动显示。

1.1.1设计一个255计数器:0-255计数, 计满后自动清0, 重新计数(在数码管中显示)。

1.1.2设计一个50000计数器: 0-50000计数, 计满后自动清0, 重新计数(在数码管中显示)。

1. 2 设计一个出租车计费系统: 起步价为5元(2km以内), 2km后, 0.8元/0.5km;要求每500m刷新计费一次, 在8位数码管中, 前3位显示数码管显示里程数,后3位数码管显示价钱(角, 元, 十元, 百元)注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后, 再下载到单片机实训板上执行。

二、单片机最小系统硬件资源介绍:1 单片机系统数码管和键盘接口电路2 7279A 资料三、设计思路:1、255计数:255可用8位二进制数表示, 故本设计可直接采用可以重装载的计数器T1模式二进行计数。

然后对TL1的内容进行相应的二进制---十进制转换:首先TL1的内容除以64H, 所的商就是十进制的百位, 然后用余数除以0AH, 所得的商就是十进制数的十位, 余数即相应的十进制的个位。

接着将相应的十进制数进行译码, 并在LED数码管上显示出来。

每来一个脉冲其显示的结果加一, 直加至255然后T1重新开始计数。

255计数器汇编程序ORG 0000HAJMP START ORG 0300HSTART:MOV DPTR,#0CFE9H MOV A,#0D1HMOVX @DPTR,ANOPNOPNOPNOPNOPNOPNOPNOPMOV TMOD,#50HMOV TH1,#00HMOV TL1,#00HSETB TR1LOOP1:MOV A,TL1MOV B,#64HDIV ABMOV R1,A //存百位MOV A,BMOV B,#0AHDIV ABMOV R2,A //存十位MOV R3,B //存个位MOV DPTR,#0CFE9HMOV A,#80HMOVX @DPTR,A //选择第一个显示管MOV DPTR,#TABMOV A,R1MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ACLR AMOV DPTR,#0CFE9HMOV A,#81HMOVX @DPTR,A //选择第二个显示管MOV DPTR,#TABMOV A,R2MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ACLR AMOV DPTR,#0CFE9HMOV A,#82HMOVX @DPTR,A //选择第三个显示管MOV DPTR,#TABMOV A,R3MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ALJMP LOOP1TAB:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHENDPROTUES仿真图50000计数器设计思路;由于DIV AB指令中A.B均为8位寄存器, 因此255二进制转十进制计数的方法不能用于0-50000的循环计数。

基于单片机的出租车计费器的毕业设计

基于单片机的出租车计费器的毕业设计

基于单片机的出租车计费器的毕业设计在现代社会中,出租车已经成为人们出行的重要交通工具之一、为了提高出租车计费的准确性和便捷性,本文将基于单片机来设计一个出租车计费器的毕业设计。

出租车计费器是指能够根据乘客的乘车时间和里程来计算出乘车费用的设备。

传统的出租车计费器通常采用机械式的结构,需要运营人员手动操作计费器的按钮来记录里程和时间,计算费用。

而基于单片机的出租车计费器可以实现更加准确和自动化的计费过程。

首先,本设计将采用单片机来记录乘车时间和里程。

通过设置两个红外传感器,一个用于检测车轮的转动次数从而计算里程,另一个用于检测乘客上车和下车的时间,用以计算乘车时间。

通过单片机的计算和储存功能,可以准确记录并保存乘车时间和里程。

其次,本设计将使用单片机来自动计算乘车费用。

根据不同地区或国家的计费标准,可以通过设置相应的计费算法来计算费用。

计费算法可以根据乘车时间和里程进行综合计算,还可以考虑到夜间加价和过路费等因素。

通过单片机的计算功能,可以更加快速和准确地计算出乘车费用。

同时,本设计还将使用单片机来显示乘车费用和其他相关信息。

通过连接LCD液晶显示屏,可以实时显示乘客的乘车费用,以及其他相关信息,如当前时间、里程数等。

这样可以方便乘客和司机随时查看乘车费用,避免争议和误解。

最后,本设计还将提供数据存储和查询功能。

通过连接存储器,可以将每次乘车的相关信息储存起来,包括乘车时间、里程、费用等。

这样可以方便运营人员进行统计和查询,了解每辆出租车的运营情况,并可以根据数据进行合理的调整和优化。

综上所述,基于单片机的出租车计费器可以大大提高计费的准确性和便捷性。

通过自动化的记录和计算功能,可以准确地计算出乘车费用,并通过LCD显示屏进行实时展示。

同时,还提供数据存储和查询功能,方便管理和优化运营。

这样设计的出租车计费器将有助于提高出租车行业的服务质量和运营效率。

基于单片机的出租车计价器的设计

基于单片机的出租车计价器的设计

基于单片机的出租车计价器的设计一、设计目标:设计一个基于单片机的出租车计价器,能够准确计算乘客的乘车距离和费用,并能显示当前的计价信息。

二、设计原理:1. 距离测量:使用速度传感器和车轮直径来测量出租车行驶的距离。

2. 费用计算:根据距离和预设的计价规则,使用单片机进行费用计算。

3. 显示:使用LCD显示屏显示当前的计价信息和距离。

三、硬件设计:1. 单片机:选择合适的单片机,如ATmega8,作为主控制器。

2. 速度传感器:选择合适的速度传感器,如霍尔传感器,用于测量车轮转速。

3. LCD显示屏:选择合适的LCD显示屏,如16x2字符LCD,用于显示计价信息和距离。

4. 按键开关:设计合适的按键开关,用于启动计价器和调整设置。

四、软件设计:1. 初始化设置:在计价器启动时,进行LCD显示屏和速度传感器的初始化设置。

2. 距离测量:通过速度传感器读取车轮转速,根据车轮直径计算出租车行驶的距离。

3. 费用计算:根据距离和预设的计价规则,使用单片机进行费用计算,并将计算结果显示在LCD上。

4. 设置调整:设计按键开关用于调整计价规则和费率设置。

5. 实时显示:将计价信息和距离实时显示在LCD上,方便乘客查看。

五、测试和验证:进行功能测试和实地验证,确保计价器的准确性和稳定性。

包括距离测量的准确性、费用计算的准确性以及LCD显示的正确性。

六、优化和改进:根据测试结果和用户反馈,对计价器进行优化和改进,提高其性能和用户体验。

总结:基于单片机的出租车计价器是一个实用的设计,能够帮助出租车司机和乘客准确计算乘车距离和费用。

通过合理的硬件设计和软件编程,可以实现距离测量、费用计算和实时显示等功能。

在实际使用中,需要进行充分的测试和验证,以确保计价器的准确性和稳定性。

通过不断优化和改进,可以提高计价器的性能和用户体验,满足用户的需求。

基于单片机的出租车计费器

基于单片机的出租车计费器

课程设计报告书目录设计报告书目录一、设计目的 (1)二、设计思路 (1)三、设计过程 (1)3.1硬件设计 (1)3.2 系统程序设计 (6)四、软件调试 (7)4.1 编程工具—C51语言 (7)4.2程序调试工具—KEIL (7)4.3 单片机仿真软件在线调试—PROTEUS (7)五、实验设备和软件 (8)六、课程设计体会与建议 (8)6.1、设计体会 (8)6.2、设计建议 (9)七、参考文献 (9)一、设计目的将理论与实践相结合的教学环节,通过综合运用教材及其他资料,使所学知识得到进一步加深和扩展.同时还培养设计能力和解决实际问题能力,进行基本技能的训练, 进一步熟练proteus ,keilC 等软件的操作.本设计的目的是在学习51系列单片机的基础上,设计出符合要求的电路,从而实现设计产品的计价功能.二、设计思路1、硬件电路设计.2、连接仿真电路图.3、代码编写.4、程序调试验证.三、设计过程3.1硬件设计按下计价按键时,显示起步价和起步里程范围,这些在程序中设置;当等于或超过两公里后,按计算总价的公式为:总价=起步价+单价*(总里程-起步里程)+1进行计价.本设计中,起步价为4元,起步里程为2公里,当然这些数据可以在程序中改写,以满足不同时期价格调整的需要.下图是通过在Keil C 中编译通过,并生成Hex 文件,在PROTEUS 中仿真通过的整体硬件原理图:硬件设计原理图时钟电路 AT89C51单片机 显示电路按键电路复位电路3.1.1 驱动电路74LS245是我们常用的芯片,用来驱动led或者其他的设备.总线驱动器74LS244和74LS245经常用作三态数据缓冲器,74LS244为单向三态数据缓冲器,而74LS245为双向三态数据缓冲器.本设计用74LS245作为驱动芯片,双向总线发送器/接收器(3S).图1驱动芯片管脚图74LS245主要电器特性的典型值如下:引出端符号:A A总线端B B总线端/G 三态允许端(低电平有效)DIR 方向控制端功能表:利用74LS245来驱动数码管显示,单片机的P2.0到P2.5分别接A0到A5管脚,进行数据的传送,其中AB/BA接高电平,控制数据从A到B进行传送,B0到B5分别接数码管的位选端,驱动数码管依次显示.P2.0到P2.5的数据通过A 传送到B中的数据送到数码管,以达到显示数据信息的目的.3.1.2 显示电路多数的应用系统,都要配输入和输出外设,LED显示器和LCD显示器,虽然LCD显示效果比较好,已经成为了一种发展趋势,但为了节约成本,我们选用了LED显示器.在显示方面,我们选用了动态显示.静态显示虽然亮度较高,接口编程容易,但是每位的段码线分别与一个8位的锁存器输出相连.占用的I/O口线比较多,在显示位数较多的情况下,一般都采用动态显示方式.利用动态显示的方法,由于LED显示器的余辉和人眼的视觉暂留现象,只要每位显示的时间间隔足够短,就仍能感觉到所有的数码管都在显示.为了简化硬件,通常将所有位的段码线相应段并联在一起,由一个8位I/O口控制,在同一时刻,只让一位选通,如此循环,就可以使各位显示出将要显示的字符.图2 LED数码管LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND.再把多个这样的8字装在一起就成了多位的数码管了.在本设计仿真中使用的是6个一组的共阴8段数码管.找公共共阴和公共共阳的方法:首先我们找个电源|稳压器(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了.共阴极数码管,阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,对应的段就显示.3.1.3 复位电路单片机的复位是由外部的复位电路实现的, 复位电路通常采用上电自动复位和按钮复位两种方式.上电自动复位是通过外部复位电路的电容充电来实现的.除了上电复位外还需要按键手动复位.按键手动复位有电平方式和脉冲方式两种.其中电平复位是通过RST端经电阻与电源VCC接通而实现的.单片机的复位速度比外围I/O接口电路快为能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间.图3复位电路3.1.4 掉电保护电路掉电保护电路中采用了存储芯片AT24C02.AT24C02是一个CMOS标准的EEPROM存储器,是AT24CXX系列(AT24C01/02/04/08/16)成员之一,这些EEPROM存储器的特点是功耗小、成本低、电源范围宽,静态电源电流约30uA~110uA,具有标准的I2C总线接口,是应用广泛的小容量存储器之一.图4 A T24C02引脚图上图是AT24C02的引脚图,这个芯片是一个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):电源线引脚.本设计采用掉电存储电路图如下:图5掉电存储电路3.1.5 时钟电路MCS-51单片机的各功能部件都是以时钟控制信号为基准,内部电路在时钟信号的控制下,严格地按时序执行指令进行工作,单片机本身如同一个复杂的同步时序电路,为了保证其各个部分同步工作,电路要在唯一的时钟信号控制下,严格地按照时序进行工作.其实只需在时钟引脚连接上外围的定时控制元件,就可以构成一个稳定的自激振荡器.为更好地保证振荡器稳定可靠地工作,谐振器和电容应尽可能安装得与单片机芯片靠近.本设计中使用的振荡电路,由12MHZ晶体振荡器和两个约30PF的电容组成,在XTAL1和XTAL2两端跨接晶体,电容的大小不会影响振荡频率的高低.在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号.图6时钟电路3.1.6 按键电路按键控制电路中,单片机的P1.0管脚接启动/停止按键,通过软件编程,当按下按键计数器开始工作,开始计价;当弹起按键时,计数器停止工作,停止计价,启动/停止按键带自锁功能.按下启动按键,开关处于导通状态,这时给P1.0送低电平信号,这时TR0=1,计数器开始工作,调用计价子程序开始计价.清零按键接单片机的P1.3管脚,按下清零按键,P1.3为低电平,调用清零子程序,用于将显示数据清零,在程序中给各位赋0代码(0x3f),以达到清零的目的,方便下次计价.另外为功能键,控制价格调整,这个按键是在没有按下启动/停止按键时有作用,计价过程中无效.图7按键电路3.2 系统程序设计本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂,我们设计了整体程序流程图.在main函数编写开始,要进行初始化,包括对系统初始化和对存储器初始化,要对硬件设备进行初始化,并使硬件处于就绪状态.通过判断是否计费,调价,清零等状态,来分别调用不同的子程序,使程序在设计之前,就有了很强的逻辑关系.这些对应于硬件就是通过按下各个控制开关,来分别进行不同的动作,最后数码管根据输入的信息,来显示不同的数据信息,这就达到了软件控制硬件,同时输入信息控制输出信息的目的.四、软件调试4.1 编程工具—C51语言8051单片机的应用程序设计,使用C51语言进行程序设计虽然相对于汇编语言代码效率有所下降,但可以方便地实现程序设计模块化,代码结构清晰、可读性强,易于维护、更新和移植,适合较大规模的单片机程序设计.近年来,随着C51语言的编译器性能的不断提高,在绝大多数应用环境下,C51程序的执行效率已经非常接近汇编语言,因此,使用C51进行单片机程序设计已经成为单片机程序设计的主流选择之一.4.2程序调试工具—KEIL本设计的软件都是在Keil μ Vision 7.5上进行编写,编译,调试以及运行操作.4.3 单片机仿真软件在线调试—PROTEUS1.打开Proteus软件.2.选择file菜单下的open design选项,找到所需的元器件,元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出并绘制设计所要的各种元器件,按照电路图连接后并保存.3.将用keil编译产生的hex文件下载到单片机中:双击51单片机,在对话框中把保存过的hex文件打开,再单击确定.4.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果.‘下图为软件的仿真窗口:五、实验设备和软件1、Protues2、Keil uVision4六、课程设计体会与建议6.1、设计体会在本次设计中,我们采用AT89S51芯片为核心器件,设计出了简单的出租车计价器,能够实现显示总金额和总里程,按键控制清零,调价.这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的.通过自身的努力以及相关图书资料的帮助,逐渐熟悉了KEIL、PROTEUS和C语言等软件的使用以及硬件焊接与检测过程中的一些小技巧.6.2、设计建议在动手设计之前,希望老师能给我们多讲解一些更深层次的专业知识,并且提供相关的学习资料,为我们展示一些相关视频,这样会有助于我们进一步进入状态,更加完善地完成设计.七、参考文献[1]谭浩强.C程序设计(第二版).清华大学出版社,2003[2]胡泉、谢芳.C语言程序设计.华中科技大学出版社,2009[3] 戴佳.51单片机C语言应用程序设计实例精讲.电子工业出版社,2007[4]张毅刚.单片机原理及应用.高等教育出版社,2004[5]马忠梅.单片机的C语言应用程序设计(第三版).北京航空航天大学出版社,2004[6]胡汉才.单片机原理及其接口技术.北京:清华大学出版社,1995附录:出租车计费器设计代码:#include <AT89x51.h>//#include <stdio.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intint xscode[6]={0x3f,0x06,0x5b,0x4f,0x66,0x6d};//显示存储区int zxscode[6]={0x1f,0x2f,0x37,0x3b,0x3d,0x3e};//共阴显示片选码int codetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码int i,j,flag;uchar sec;int kk=0;//路程标志位int jkk=0;//费用int jflag=0;//费用标志位int kflag=0;//路程标志位int zdflag=0;//中断标志位int kilo=0;//路程int dj=1;//路程单价int djflag=0;//路程单价biaozhiweisbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;sbit key5=P3^4;sbit SDA=P3^0; //IIC引脚sbit SCL=P3^1;void delay(){;;}void delay1 (xms)//延时程序子程序{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}void start() //IIC开始位{ SDA = 1;SCL = 1;delay();SDA = 0;delay();}void stop() // IIC停止位{SDA = 0;delay();SCL = 1;delay();SDA = 1;}void respons() //IIC应答位{uchar i;SCL=1;delay();while((SDA==1)&&(i<250))i++;SCL=0;delay();}void init(){SDA=1;delay();SCL=1;delay();}uchar read_byte() // 从EEPROM读到MCU {uchar i,j;for(i=0;i<8;i++){SCL=1;j<<=1;j|=SDA;SCL=0;}return(j);}void write_byte(uchar date) // 从MCU写到EEPROM {uchar i,temp;temp=date;for(i=0;i<8;i++){temp=temp<<1;SCL=0;delay();SDA=CY;delay();SCL=1;delay();}SCL=0;delay();SDA=1;delay();}void write_data(uchar addr, uchar date) // 在指定地址addr处写入数据date{start();write_byte(0xa0);respons();write_byte(addr);respons();write_byte(date);respons();stop();}uchar read_data(uchar addr) // 在指定地址addr读取数据{uchar date;start();write_byte(0xa0);respons();write_byte(addr);respons();start();write_byte(0xa1);respons();date=read_byte();stop();return date;}void xianshi()//显示程序子程序{for(flag=0;flag<6;flag++){P0= xscode[flag];//送显示码P2= zxscode[flag];// 送片选码d elay1(2);P0=0;}}void jijia()//计费子程序{if(kk<=2)//计价方案{jkk=4;//起步价4元k k=2;}else if(kk>2&&kk<=35){jkk=4+dj*(kk-2)+1;}else if(kk>35&&kk<900){jkk=4+2*dj*(kk-2)+1;}kflag=kk/100;//路程百位jflag=jkk/100;//路费百位xscode[2]=codetab[kflag];xscode[5]=codetab[jflag];kflag=kk/10;//路程十位jflag=jkk/10;//路费十位xscode[1]=codetab[kflag];xscode[4]=codetab[jflag];kflag=kk%10;//路程个位jflag=jkk%10;//路费个位if(kflag==0){kflag=2;}//不足两公里时,显示两公里xscode[0]=codetab[kflag];xscode[3]=codetab[jflag];}void qingling(){for(i=0;i<=5;i++)//显示码清零{xscode[i]=0x3f;}}void main()//主程序{ init();sec=read_data(2);if(sec>100)sec=0;TL0=(65536-2)%256 ;//计数值设置,记满两次产生中断TH0=(65536-2)/256 ;TMOD=0x06;EA=1;ET0=1;TR0=0;//关定时器kilo=0;qingling();aa:if(key1==0)//当键按下去,开始计费{TR0=1;//开计数器0kk=kilo;jijia();}if(key1==1)//当键松开,停止计费{TR0=0;//停计数器1if(key2==0)//功能调整键{ delay1(10);//延时判断键是否松开if(key2==1){xscode[2]=codetab[djflag++];}//当p1.2口的按键按下时功能标志位加一}if(key3==0&&djflag==2)//当功能键标志位等1时,改变每公里的价钱{delay1(10);if(key3==1){dj++;}xscode[1]= codetab[dj/10] ;//把价钱十位送显示区,单价不能超100xscode[0]=codetab[dj%10];}if(key4==0)//有键按下,清显示,单价会初始值,单价标志位清零{qingling();dj=1;djflag=0;}}xianshi();//调显示子程序goto aa;}void Timer0_Int() interrupt 1 using 2 // 计数器0中断服务{zdflag=zdflag+1;//中断标志位加一if(zdflag==2)//当中断产生二次后,路程加一公里并清中断标志位{zdflag=0;kilo=kilo+1;}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业论文(设计)材料题目:
学生姓名:
学生学号:
系别:
专业:
届别:
指导教师:
填写说明
1、本材料包括淮南师范学院本科毕业论文(设计)任务书、开题报告以及毕业论文(设计)评审表三部分内容。

2、本材料填写顺序依次为:
(1)指导教师下达毕业论文(设计)任务书;
(2)学生根据毕业论文(设计)任务书的要求,在文献查阅的基础上撰写开题报告,送交指导教师审阅并签字认可;
(3)毕业论文(设计)工作后期,学生填写毕业论文(设计)主要内容,连同毕业论文(设计)全文一并送交指导教师审阅,指导教师根据学生实际完成的论文(设计)质量进行评价;
(4)指导教师将此表连同学生毕业论文(设计)全文一并送交评阅教师评阅。

3、指导教师、评阅教师对学生毕业论文(设计)的成绩评定均采用百分制。

4、毕业论文(设计)答辩记录不包括在此表中。

三、毕业论文(设计)评审表。

相关文档
最新文档