当前位置:文档之家› 单片机设计出租车里程计价器

单片机设计出租车里程计价器

单片机设计出租车里程计价器
单片机设计出租车里程计价器

电子技术课程设计报告

学生姓名: ###

学号: 0000

学院名称:信息工程学院

专业班级: &&&&&

日期: ****

2018年 9 月 13 日

一、课程设计目的

为了给生活带来便利,我设计了一款出租车里程计价器,采用单片机做芯片,可以用较少的硬件和较多的软件编程来实现计价器的要求。同时,单片机的设计方案灵活性强,能够实时地修改单价,计价也有白天与晚上之分,从而能使出租车计价器更加贴近生活,还可以更好地学习和掌握单片机技术。

二、课程设计内容

要求

(1)无乘客时候可以显示时间,这样方便实用。

(2)能显示里程,单位为公里,最后一位为小数位。

(3)可以按照里程或时间自行选择收费。

(4)能显示金额数,单位为元,最后一位为小数位。

(5)起步公里数为3公里,价格可以自行根据当地规定设置,若实际距离大于起步公里,按超出公里累加计算价格。

(6)可以切换白天或黑夜23:00—7:00,而且价格分开来设定。

(7)时间可以掉电计时,设置的价格也可以存储。

功能概述:

此出租车计价器在通电后屏幕显示时间,通过按键可以进行页面切换,屏幕显示起步价,总价,单位里程价格以及运行里程或者等待时间。起步价和单位里程价格和单位时间价格可以通过按键修改,根据时钟显示的时间更改白天与夜晚两种计价模式。在车辆行驶过程中,发动机高速运转,屏幕显示行驶里程,计价按照行驶里程计算;发动机转速变慢或者车辆等待,屏幕显示等待时间,计价按照等待时间计算。

电路模块功能设计:

硬件部分主要包括单片机stc89c52,DS1302时钟芯片的定时,LCD1602

液晶显示屏,AT24C02芯片,按键,电机以及霍尔传感器等构成六大模块。其中,STC89C52作为主控芯片,联系各个电路实现对整个系统的控制;定时模块进行准确及时并且掉电后不用重新调时;显示通过LCD1602显示屏进行显示;存储模块利用AT24C02芯片存储计价数据,掉电后仍保持之前修改的计价数据,不用重新修改;按键则采用独立按键,进行手动地价格与时间调节;电机利用电位器对电机进行调速,同时霍尔传感器将检测到的脉冲信号送到单片机,计算出里程。

硬件模块详解:

1.主控模块:

主控包括stc89c52单片机,复位电路和时钟电路。

选择单片机是因为其处理速度快,功能强大,芯片唯一,减少硬件数量,在焊接与调试环节减少失误,提高成品成功率。其次采用stc89c52单片机是由于它的功耗小,体积小,成本低。

在时钟电路上,选择内部时钟方式,电路电容C3和C2选择30pf ,晶体振荡频率选择12MHz 。在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振)和微调电容,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振。

在复位电路上,当在STC89C52单片机的RST 引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。复位电路通常采用上电自动复位和按钮复位两种方式。此设计采用的是上电自动复位。电路中上电自动复位是通过外部复位电路的电容充放电来实现的。RST 脚上的高电平持续时间取决于电容充电时间。只要Vcc 的上升时间不超过1ms,就可以实现自动上电复位。电容C1选择10uf ,电阻Rk 选择10k Ω。

stc89c52单片机本身片内有8KB 闪烁存储器,256B 的RAM 单元,4个I/O 接口,外接时钟电路和复位电路构成了一个单片机最小应用系统。

2.定时模块

定时模块主要构成是DS1302时钟芯片,用来显示时间。DS1302一种实时时钟

芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整。DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器。DS1302

与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O 引脚写入或读出相应的数据字节。具体引脚作用:X1,X2--32.768kHz晶振引脚,GND--地线,RST--复位端,I/O--数据输入/输出端口,SCLK--串行时钟端

口,VCC1--慢速充电引脚,VCC2--电源引脚。SCLK,I/O,RST三个引脚同时还分别接10kΩ的上拉电阻,驱动至高电平,增加驱动能力。

DS1302 可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。结构上,DS1302的引脚排列,其中Vcc2为主电源,VCC1为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据传送的方法。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。

3.显示模块

显示模块主要为LCD1602液晶显示屏幕。在选择上,没有选择数码管,是因为LCD1602显示用液晶字符式,可以用软件达到很好的控制,硬件不复杂,液晶字符显示器可以显示很丰富的内容,从单片机资源的角度考虑,数码管虽然也可以实现,但是得用很多IO口,单片机的IO口紧张,想要显示的全面,功能齐全必须得加锁存和驱动电路,而用液晶显示就不需要复杂的外围电路,减少了硬件,减轻了焊接压力。

本设计采用标准的16脚背光字符型液晶显示屏LCD1602,能够同时显示

16x02即32个字符,以下为其引脚功能,

其中,D0-D7的8位双向数据线对应连接单片机P0.0-P0.7的8个双向I/O口,同时,接一个9脚的排阻即为8个上拉电阻接Vcc,因为P0口内部无上拉电阻,为了满足作为I/O口使用,才接上一个9脚排阻;同时上拉电阻又可以给LCD提供一定的电压电流满足显示亮度。

4.存储模块

存储模块主要由AT24C02芯片构成。AT24C02提供电可擦除的串行1024位存储或可编程只读存储器

管脚描述

SCL 串行时钟:AT24C02 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚.

SDA 串行数据/地址:AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收.SDA 是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或

A0 A1 A2 器件地址输入端:这些输入脚用于多个器件级联时设置器件地址当这些脚悬空时默认值为 0

WP 写保护:如果 WP 管脚连接到 Vcc 所有的内容都被写保护只能读当WP 管脚连接到 Vss 或悬空允许器件进行正常的读/写操作

设备操作:

C L O C K 和

D A T A 变化:SDA管脚通常外都要拉高。SDA管脚上的数据只能在SCL低期间改变。数据在SCL高期间改变定义为一个开始或停止信号。

开始状态:在任何操作之前必须有一个开始信号----在SCL为高时SDA上产生一个下降沿。

停止状态: SCL为高时SDA产生一个上升沿是停止信号,停止信号后将停止所有通信。

I2C 总线协议

I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。

I2C 总线协议定义如下

1. 只有在总线空闲时才允许启动数据传送

2.在数据传送过程中,当时钟线为高电平时, 数据线必须保持稳定状态,不允许有跳变.时钟线为高电平时数据线的任何电平变化将被看作总线的起始或停止信号.

起始信号:时钟线保持高电平期间,数据线电平从高到低的跳变作为I2C 总线的起始信号

停止信号:时钟线保持高电平期间,数据线电平从低到高的跳变作为I2C 总线的停止信号

5.按键模块

按键选择独立按键。单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占

用的I/O少。根据本设计的需要这里选用了独立式键盘接法。

独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O 口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。

在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般

10~200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。硬件去抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10~200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O 口的值,这一次的值如果为1 表示低电平的时间不到10~200 毫秒,视为干扰信号。当读出的值是0时则表示有按键按下,调用相应的处理程序。

6.电机与霍尔元件模块:

电机采用并接电容的方式,因为电容是通交断直的元件,在直流电机两侧并电容可以抑制电源的波动,泻放瞬间变化的能量,从而起到保护电机的作用,同时有刷电机运行时电刷间会产生火花,火花包含复杂的电磁干扰,会明显影响其他电器设备特别是无线电装置。并联电容就是为减小这电磁干扰。通过一个自锁开关接到电源作为电机的开关。接着用电位器可以对电机进行调速。

霍尔元件用的是A3144,三引脚,是开关型霍尔传感器,也是一个换能器,将变化的磁场转化为输出电压的变化,其本身的输出波形就是方波信号(无磁场或北极磁场为高,南极磁场低)。所以,在其输出的高电平的电压值在你单片机IO口的承受范围内时,可以直接接单片机.本系统选择了将A3144的脉冲输出口接到P3.2口外部中断0作为信号的输入端(这样可以减少程序设计的麻烦),车轮每转一圈(设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数,当计数达到1000次时,即1公里,单片机就控制将金额自动增加.

软件设计:

流程图

//出租车计价器

//宏定义

#define uchar unsigned char

#define uint unsigned int

//头函数声明

#include

#include "Lcd.h"

#include "Data.h"

#include "DS1302.h"

#include "AT24C02.h"

//键盘定义

sbit K1=P3^4; //模式切换

sbit K2=P3^5; //减按键

sbit K3=P3^6; //加按键

sbit K4=P3^7; //万年历模式时:设置时间信息。计价器模式时:设置单价

//模式0时钟 1时钟调整

uchar Mode=0;

//时钟屏幕调整

uchar Wei=0;

uchar SS=0;

//价格调整

uchar JGWei=0;

//计价器参数

uint Day=0;

uint Night=0;

uint DanJia=0;

uint DJ_min=0;

uint ZJ=0;

unsigned long GL=0;

uint Time=0;

uint count=0;

uchar m=0;

//白天/晚上

uchar DN=0;

//公里/时间

uchar GT=0; //初始化函数

void InitTimer0();

//写初值

void SETS();

//读初值

void READS();

//主函数

void main()

{

//初始化

Ds1302_Init();

Init_LCD();

initeeprom();

//SETS();

//读取初始参数

READS();

//定时器初始化

InitTimer0();

//循环

while(1)

{

//时钟模式

if(Mode==0)

{

//读时间

if(Wei==0)

{

Ds1302_Read_Time();

//显示时间

display_NYR(time_buf1,Wei,0);

}

}

else if(Mode==1)

{

if(time_buf1[4]>=23||time_buf1[ 4]<7)

DN=1;

else

DN=0;

//显示计价器信息

display_S(Day,Night,DanJia,ZJ,GL /10,Time,GT,DN);

}

if(K4==0)

{

delay(100);

//调时

if(Mode==0)

{

Wei++;

if(Wei==1)

{

SS=1;

}

//闪烁

display_NYR(time_buf1,Wei,SS);

if(Wei==7)

{

Wei=0;

//保存时间

Ds1302_Write_Time();

Init_LCD();

}

}

else if(Mode==1)

{

JGWei++;

if(JGWei==1)

{

Mode=2;

//显示计价器价格

Init_LCD_JGTZ();

display_D(Day,Night,DanJia,JGWei ,DJ_min);

}

}

else if(Mode==2)

{

JGWei++;

display_D(Day,Night,DanJia,JGWei ,DJ_min);

if(JGWei==5)

{

Mode=1;

JGWei=0;

//参数初始化

//保存

SETS();

//读初值

READS();

ZJ=0;

GL=0;

Time=0;

//开启定时器

TR0=1;

//显示计价器

Init_LCD_JJQ();

}

}

while(K4==0);

}

//+

if(K3==0)

{

delay(100);

//调时

if(Mode==0)

{

//年

if(Wei==1)

{

time_buf1[1]++;

if(time_buf1[1]>=100)

time_buf1[1]=0;

}

//月

else if(Wei==2)

{

time_buf1[2]++;

if(time_buf1[2]>=13)

time_buf1[2]=1;

}

//日

else if(Wei==3)

{

time_buf1[3]++;

if(time_buf1[3]>=YDay(time_buf1[ 1],time_buf1[2])+1)

time_buf1[3]=1;

}

//时

else if(Wei==4)

{

time_buf1[4]++;

if(time_buf1[4]>=24)

time_buf1[4]=0;

}

//分

else if(Wei==5)

{

time_buf1[5]++;

if(time_buf1[5]>=60)

time_buf1[5]=0;

}

//秒

else if(Wei==6)

{

time_buf1[6]++;

if(time_buf1[6]>=60)

time_buf1[6]=0;

}

//显示

if(Wei!=0)

display_NYR(time_buf1,Wei,SS);

}

//调价

else if(Mode==2)

{

//单价

if(JGWei==1)

{

DanJia++;

if(DanJia>999)

{

DanJia=1;

}

}

//等待时间单价

else if(JGWei==2)

{

DJ_min++;

if(DJ_min>999)

{

DJ_min=1;

}

}

//夜间

else if(JGWei==3)

{

Night++;

if(Night>999)

{

Night=1;

}

}

//白天

else if(JGWei==4)

{

Day++;

if(Day>999)

{

Day=1;

}

}

display_D(Day,Night,DanJia,JGWei ,DJ_min);

}

while(K3==0);

}

//-

if(K2==0)

{

delay(100);

//调时

if(Mode==0)

{

//年

if(Wei==1)

{

time_buf1[1]--;

if(time_buf1[1]<0)

time_buf1[1]=99;

}

//月

else if(Wei==2)

{

time_buf1[2]--;

if(time_buf1[2]<=0)

time_buf1[2]=12;

}

//日

else if(Wei==3)

{

time_buf1[3]--;

if(time_buf1[3]<=0)

time_buf1[3]=YDay(time_buf1[1],t ime_buf1[2]);

}

//时

else if(Wei==4)

{

time_buf1[4]--;

if(time_buf1[4]<0) time_buf1[4]=23;

}

//分

else if(Wei==5)

{

time_buf1[5]--; if(time_buf1[5]<0)

time_buf1[5]=59;

}

//秒

else if(Wei==6)

{

time_buf1[6]--; if(time_buf1[6]<0)

time_buf1[6]=59;

}

//显示

if(Wei!=0)

display_NYR(time_buf1,Wei,SS);

}

//调价

else if(Mode==2)

{

//单价

if(JGWei==1)

{

DanJia--;

if(DanJia==0)

{

DanJia=999;

}

}

//等待时间单价

else if(JGWei==2)

{

DJ_min--;

if(DJ_min==0)

{

DJ_min=999;

}

}

//夜间

else if(JGWei==3)

{

Night--;

if(Night==0)

{

Night=999;

}

}

//白天

else if(JGWei==4)

{

Day--;

if(Day==0)

{

Day=999;

}

}

display_D(Day,Night,DanJia,JGWei ,DJ_min);

}

while(K2==0);

}

//切换

if(K1==0)

{

delay(100);

//计价器模式

if(Mode==1)

{

Mode=0;

ZJ=0;

GL=0;

Time=0;

//开启定时器

TR0=0;

EX0=0;

//显示计价器

Init_LCD();

}

else if(Mode==0)

{

Mode=1;

//参数初始化

//读初值

READS();

ZJ=0;

GL=0;

Time=0;

//开启定时器

m=0;

TR0=1;

EX0=1;

//显示计价器

Init_LCD_JJQ();

}

while(K1==0);

}

}

}

//初始化函数

void InitTimer0(void)

{

TMOD = 0x01;

TH0 = 0x3C;

TL0 = 0xB0; //10ms

EA = 1;

ET0 = 1;

TR0 = 1;

IT0=1; //INT0负跳变触发

EX0=0;//开外部INTO中断

}

//定时器0中断10ms

void Timer0Interrupt(void) interrupt 1

{

TH0 = 0x3C;

TL0 = 0xB0; //赋初值

m++;

if(m>=20)

{

m=0;

if(count>=60)

{

GT=0;

GL=GL+count/10;

count=0;

}

else

{

count=0;

GT=1;

Time++; //时间++

}

}

//计算钱数

//公里数小于3

if(GL<=300)

{

if(DN==0)

{

if(Time>60)

ZJ=Day+Time/60*DJ_min;

else

ZJ=Day;

}

else

{

if(Time>60)

ZJ=Night+Time/60*DJ_min;

else

ZJ=Night;

}

}

else

{

if(DN==0)

{

if(Time>60)

ZJ=Day+(GL/10-20)/10*DanJia+Time /60*DJ_min;

else

ZJ=Day+(GL/10-20)/10*DanJia;

}

else

{

if(Time>60)

ZJ=Night+(GL/10-20)/10*DanJia+Ti me/60*DJ_min;

else

ZJ=Night+(GL/10-20)/10*DanJia;

}

}

}

void EXINT0() interrupt 0

{

count++;

}

//读初值

void READS()

{

uchar SH=0,SL=0;

uint temp=0;

delay(10);

SL=read_add(0x01);

delay(10);

SH=read_add(0x02);

temp=SH;

temp=temp<<8;

temp=temp+SL;

Day=temp;

delay(10);

SL=read_add(0x03);

delay(10);

SH=read_add(0x04);

temp=SH;

temp=temp<<8;

temp=temp+SL;

Night=temp;

delay(10);

SL=read_add(0x05);

delay(10);

SH=read_add(0x06);

temp=SH;

temp=temp<<8;

temp=temp+SL;

DanJia=temp;

delay(10);

SL=read_add(0x07);

delay(10);

SH=read_add(0x08);

temp=SH;

temp=temp<<8;

temp=temp+SL;

DJ_min=temp;

}

//写初值

void SETS()

{

uchar SH=0,SL=0;

uint temp=0;

temp=Day;

SL=temp&0x00ff;

SH=temp>>8;

delay(10);

write_add(0x01,SL);

delay(10);

write_add(0x02,SH);

temp=Night;

SL=temp&0x00ff;

SH=temp>>8;

delay(10);

write_add(0x03,SL);

delay(10);

write_add(0x04,SH);

temp=DanJia;

SL=temp&0x00ff;

SH=temp>>8;

delay(10);

write_add(0x05,SL);

delay(10);

write_add(0x06,SH);

temp=DJ_min;

SL=temp&0x00ff;

SH=temp>>8;

delay(10);

write_add(0x07,SL);

delay(10);

write_add(0x08,SH); }

三、课程设计总结

通过这次课程设计,我学习了使用Altium designer,proteus,keil uVision4 等软件。我练习并掌握了用Altium designer进行原理图的制作,在对元件的认识和使用上下了一番功夫,包括从网上下载元件库,挑选合适的元件进行比较,元件的排布布局,元件之间的连接和元件功能及使用的注意事项等等操作。同时,原理图制作的过程中,对于设计的对错与否没有概念,反复进行修改,对于设计要求的功能一度怀疑,特别在核心—单片机的引脚连接问题。单片机是我上大学以来第一次接触的工具,因为这次设计的题目—出租车里程计价表,其要求的功能繁杂,所以采用以单片机为核心的设计方案。这种设计方案编程设计方面比较成熟

且选用的硬件芯片较少,给后面的焊接调试工作赢得良好条件。在之前的焊接收音机的功课中,我体会到焊接调试工作的复杂性和问题的不可预知性,所以在方案的选择上,没有选择以数字电路为基础的、硬件较多、焊接工作较繁杂的方案,选择了以单片机为核心的方案。但出于对单片机的不了解,我在单片机的引脚及功能上花费了大量的时间来学习,略显笨拙,耽误太多时间。在原理图绘制完成之后,我下载了keil uVision4和STC ISP软件进行单片机stc89c52的程序编写。由于没有编写经验,只能从网上下载主要程序进行仿制,在特定功能的设定方面,仍有大量困难,遂在网上进行求教编程能手,询问身边有经验同学进行编写程序。由于在大一下学年学习过c语言程序的编写,我还保留一点编程技巧,在后期运行代码的阶段进行的还算顺利,没有出现太大编写问题。就这样,时间过去了一周,我才忙完了初步的原理图和代码的工作,并在网上购买零件。之后,我使用proteus软件进行仿真工作,由于仿真软件元件库里里元件不全,我并未实现预期想法,实现所求功能,并且,在仿真过程中发现代码问题颇多,屡屡修改程序,屡屡失望,最终在同学的帮住下,才解决了一系列问题。最后进行焊接与调试工作,经过半天时间,我焊接完所有元件,在这一过程中我没有出现很多问题。随后,我开始调试工作,接上电后,DS1302 时钟芯片持续发热,10秒之后冒烟。经过检查呢,发现芯片未知放反掉了,我又重新融化焊锡,换上新的芯片,花费了大量时间,不少焊点还要重新加固。最终调试成功,

附件

原理图

仿真图

pcb图

出租车计费系统的设计好

1.所选题目:出租车计费器 2.设计要求:设计一个出租车计费器,能按路程计费,具体要求如下: (1)实现计费功能,计费标准为:按行驶里程计费,起步价为7.00元,并在汽车行驶2km 后按1.2元/km 计费,当里程数达到15km 后,没千米加收50%的空驶费,车辆停止和暂停时不计费。 (2)现场模拟汽车的启动、停止、暂停和换挡等状态。 (3)设计数码管显示电路,将车费和路程显示出来,各有1位小数。 3.设计原理:设计该出租车有启动键、停止键、暂停键和档位键。启动键为脉冲触发信号,当其为一个脉冲时,表示汽车已启动,并根据车速的选择和基本车速发出相应频率的脉冲(计费脉冲)以此来实现车费和路程的计数,同时车费显示起步价;当停止键为高电平时,表示汽车熄火,同时停止发出脉冲,此时车费和路程计数清零;当暂停键为高电平时,表示汽车暂停并停止发出脉冲,此时车费和路程计数暂停;档位键用于改变车速,不同的档位对应着不同的车速,同时路程计数的速度也不同。 4.模块设计:出租车计费器可分为两大模块,即控制模块和译码显示模块。系统框图如下: 5.电路符号:出租车计费器的输入信号有:计费时钟脉冲clk ;汽车启动键start ;汽车停止键stop ;档位speedup 。输出信号:7段显示控制信号seg7;小数点dp 。 6.具体设计流程: (1)根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA ,counterB ,counterC ,counterD ,counterE 。①计数器A 完成车费百位。②计数器B 完成车费十位和个位。③计数器C 完成车费角和分(显示时只显示角)。④计数器D 完成计数到20(完成车费的起步价)。⑤计数器E 完成模拟实现车行驶100 m 的功能。 计费时钟 档位 启动 控制模块 显示模块 暂停 停止

基于数电设计出租车里程计价器

电子技术课程设计报告题目:出租车里程计价器设计 学生姓名: 学生学号: 年级: 专业: 班级: 指导教师: 机械与电气工程学院制 2016年11月

出租车计价器课程设计 机械与电气工程学院自动化 1设计的任务与要求 1.1课程设计任务 (1)能够实现计程功能 (2)实现计费功能,计费标准为:按行驶里程收费,起步费为6.0元,并在车行3公里后再按2.0 元/公里,最高计费为99.9元,车停止不计费,能将车费显示出来。 1.2初始参数和要求 (1)74LS160计数器的简介 74LS160 是一个具有异步清零、同步置数、可以保持状态不变的十进制上升沿计数器,共有54/74160 和54/74LS160 两种线路结构型式。 (2)74LS85比较器的简介 74LS85比较器是一个4位数值比较器,它是由高位开始比较,逐位进行。若最高位已比较出大小,则以后各位大小都对比较结果没有影响;如果最高位相等,则比较次高位;同理,次高位已比较出大小,则以后各位大小对结果没有影响。如果4位比较都相等,则再看级联信号输入。级联输入信号是由低位比较器的输出而来。 (3)74LS283加法器的简介 74LS加法器是4为超前进位加法器,能够实现两个数值信号的相加。 (4)初始要求 电路能够实现初始设定,起步费为6.0元,并在车行3公里后再按2.0 元/公里计算,车停止不计费,能将路程及车费显示出来。 2出租车里程计价器设计方案制定 2.1系统工作原理 本设计方案系统的总体工作原理如图1所示。按行驶里程收费,起步费为6.0元,并在车行3公里后再按2.0 元/公里,最高计费为99.9元,车停止不计费,将路程及车费显示出来。

出租车计价器课程设计报告

昆明理工大学信息工程与自动化学院学生实验报告 (2012 —2013 学年第 2 学期) 课程名称:可编程逻辑器件设计开课实验室:信自楼 2013 年4月 11日

一、引言 汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。 我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。 随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。我们设计采用8086为主控器,以A44E霍尔传感器测距,实现对出租车的多功能的计价设计,输出采用8段数码显示管。 二、总体设计方案 利用8253作为定时/计数器,控制电机转速并测量电机的转数;8255作为输入输出接口,控制数码管显示启动后经过的里程数(小数点后取2位有效值)。 硬件连接说明: 直流电机控制器的基础上,增加了一个电机测速电路构成。 8255的B口作为数码管的笔划码驱动;C口的低4位作为段码控制,显示实际里程,同时,也用于输出键盘的列扫描码;PC6、PC7输入行扫描码,用于识别按键,程序中仅使用了PC6行上的四个按键,其定义如下: X1:启动/停止键;X2:加速键,与X3、X4键组合使用;X3:“+”键;X4:“-”键。 A口仅使用了PA0,输出PWM脉冲信号,通过驱动芯片驱动电机,其输出电压的高低与PWM脉冲的占空比成正比。 电机的转数,通过霍尔元件变换为脉冲个数,送入8253的通道2,计数后,将转数转换为里程数,最小单位为0.01公里,送CPU记录,结果由数码管显示出来。

出租车计价器系统完整版

智能电子产品设计与制作 课程设计(论文) 题目: 《出租车计价器系统设计》 学院:电气与电子信息工程学院 专业名称: 学号: 学生姓名: 同组成员: 指导教师: 课设时间:2011年5月23日—2011年6月10日 目录

一.设计目的 (2) 二.设计要求 (2) 三.系统结构 (2) 四.功能模块设计 (3) 五.软件设计 (5) 六.电路组装与调试 (6) 七.电路仿真 (7) 八.总结 (8) 八.附录 (9)

出租车计价器课程设计 一、设计目的 随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,以红外对管测转速,对实际里程的模拟,实现对出租车的多功能的计价设计,并采用AT24C01实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜和中途等待来调节单价。 二、设计要求 出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。从起步价开始,当汽车程行驶未满3公里时,均按起步价计算。过3公里后,实现每1公里单价收费,中间遇暂停时,计程数不再增加,开始计时收费,测距收费和测时收费的和便构成了一位乘客的车费。同时,白天和夜晚价格不同,可以进行切换。白天单价、夜晚单价、等待单价和起步价格都可通过独立键盘进行调节。(默认起步价为5元/3公里,里程单价白天为1.5元/公里,夜晚为1.8元/公里,等待计时单价为0.5元/5分钟) 三、系统结构 根据设计的要求选择实验的方案:采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。设计采用AT89S51单片机为主控器,以红外对管和电机测转速(按键替代),实现对出租车的基本的计价设计,并采用AT24C02实现在系统掉电的时候保存单价等信息,输出采用8段数码显示管,相对液晶显示价格便宜,利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的计价功能。 器系统结构图如下: 四、功能模块 1、单片机模块

简易出租车里程计费器

测控08级综合课程设计 题目:简易出租车里程计费器 摘要:本系统以STC89C52RC单片机为控制核心,辅以键盘调节、12864显示、蜂鸣器报警、车速模拟、车速检测及信息存储电路,实现了出租车计价器的行车里程和车速的实时检测与显示、计价金额显示以及价格预置等功能,满足了题目中基本部分及发挥部分的要求。在此基础上,还增加了断电保护、蜂鸣器警示、行驶里程等功能。该系统功能齐全,实用性强。经测试,计价器的各项显示指标均满足题目要求。 关键词:出租车里程计费器;STC89C52RC+;MOC70T2;;掉电保护;

Abstract: This system uses STC89C52 microcontroller as control core. With the keyboard control circuit, digital display circuit, beep alarm circuit, speed measureement circuit, speed detection circuit and information storage circuit,this system realizes function of the meter taxi driving mileage ,display and detection of real-time speed, valuation display and price set in advance, it meets all essential and additional requirement. Additional function such as power-off protection , beep alarm the print of mileage and consumption is added. This system is fully functioned and easy to implement. The measurement results show that all indicators of this taxi meter meet the requirement.

最新出租车计价器课程设计

出租车计价器课程设 计

大学 《单片机应用与仿真训练》设计报告 出 租 车 计 价 器 姓名: 学号: 3 姓名: 学号: 专业班级:自动化09-7班 指导老师: 所在学院:电气学院 2012年7月4 日 摘要

本设计基于AT89SC51单片机,采用霍尔传感器采集轮胎转数的信息,使用外部中断0将霍尔传感器采集的信息输入到单片机,实现对于出租车行驶里程的计算;对于中途等待以及红绿灯等待,使用定时器计时,并将时间转化为里程数以计费;输出设备采用数码管,本设计采用的是两个4位一体的共阴极数码管,输出里程数和费用;此外,本设计还设计了状态指示灯,用以指示计价器的工作状态和显示状态。 出租车计价器是出租车行业计费系统的核心,是出租车行业发展的重要标志,性能良好的计价器对于乘客和出租车行业都是必需的。 关键词:计价器、单片机、霍尔传感器

目录 1 概述 (4) 1.1 出租车计价器概述 (4) 1.2 单片机的概述 (4) 2 总体方案设计 (6) 2.1 设计任务要求 (6) 2.1.1 设计任务 (6) 2.1.2 设计要求 (6) 2.2 设计的主要功能 (6) 2.3 方案的选取 (7) 2.3.1 硬件设计方案 (7) 2.3.2 软件设计方案 (8) 3 硬件设计 (8) 3.1 AT89S52单片机及最小系统 (9) 3.2 测距单元 (11) 3.3 按键单元和状态显示单元 (14) 3.4 数码显示单元 (15) 4 软件设计 (17) 4.1 系统主程序 (17) 4.2 数据处理子程序 (18) 4.3 等待时间计时子程序 (19) 4.4 键盘扫描子程序 (20) 5 Proteus软件仿真 (21) 6课程设计过程中遇到的问题 (22) 7 课程设计体会 (23) 参考文献 (24) 附1、原程序代码 (25) 附2、系统原理图 (30)

基于51单片机的出租车计价器带仿真及程序

引言 现在各个城市出租车行业都已普及,因此出租车计价器的技术已经成熟,但是出租车计价器的市场还具有广阔的前景。随着城市建设的日益完善,关乎城市面貌的出租车行业也将迅速发展,出租车计价器的的大批量需求也是毫无疑问的,所以未来出租车计价器的市场还是有相当大的潜力的。 本次出租车计价器设计以AT89S52单片机为中心,采用U18霍尔传感器对轮胎转数进行计数,实现对出租车里程的测量,并最终计算出结果。其中采用寄存器芯片AT24C02使系统在掉电的时候对单价、里程、车轮长度等信息进行存储,采用时钟芯片DS1302来显示时间和在系统需要时进行计时。输出采用两个4段数码显示管,而且根据按键有空车指示灯、等待查询指示灯、单程指示灯进行指示。 汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是有一定的应用价值的。

1 绪论 1.1 出租车计价器概述 我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。 本次设计的目的在于现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。 1.2 单片机的概述 计算机系统已明显地朝巨型化、单片化、网络化三个方向发展。巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算和处理。单片化是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,这种单片计算简称单片机。单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的所以单片机又称微控制器MCU(Micro Controller Unit)。用它可以很容易地将计算机嵌入到各种仪器和现场控制设备中,因此单片机又叫做嵌入式微控制器(Embedded MCU)。单片机自20世纪70年代问世以来,以其鲜明的特点得到迅猛发展,已广泛应用于家用电器、智能玩具、智能仪器仪表、工业控制、航空航天等领域,经过30多年的发展,性能不断提高,品种不断丰富,已经形成自动控制的一支中坚力量。据统计,我国的单片机年容量已达1~3亿片,且每年以大约16%的速度增长,但相对于国际市场我国的占有率还不到1%。这说明单片机应用在我国有着广阔的前景。对于从事自动控制的技术人员来讲,

出租车自动计费系统

课程设计

东北石油大学课程设计任务书 课程EDA技术课程设计 题目出租车自动计费系统 专业电子信息工程姓名邵文瀚学号080901140717 主要内容、基本要求、主要参考资料等 主要内容: 设计一个最大量程为99.99元的出租车自动计费,计费器具有行车里程计费、等候时间计费及起价三部分功能,并用数码管显示车费的数目。 基本要求: 1、设计一个出租车自动计费器,具有行车里程计费、等候时间计费、及起价三部分,用四位数码管显示总金额,最大值为99.99元; 2、行车里程单价1元/公里,等候时间单价0.5元/10分钟,起价3元(3公里起价)均能通过人工输入。 3、行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,然后用BCD码比例乘法器将里程脉冲乘以每公里单价的比例系数,比例系数可由开关预置。例如单价是1.0元/公里,则脉冲当量为0.01元/脉冲。 4、用LED显示行驶公里数,两个数码管显示收费金额。 主要参考资料: [1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005. [2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006. [3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003. 完成期限2011.3.11 指导教师 专业负责人 2011年3月7日

一、总体设计思想 1.基本原理 随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计采用AT89S52单片机为主控器,以A44E霍尔传感器测距,实现对出租车的多功能的计价设计,输出采用8段数码显示管。 大体设计思路为把传感器安装在车轮上,主要检测汽车行进的公里数,并产生一系列相应的脉冲输出,脉冲送到单片机进行处理,单片机根据程序设定通过计算脉冲数换算出行驶公里数,再根据从EEPROM中读取的价格等相关数据进行金额的计算,计算好的金额、里程和单价都实时地显示在数码管上。独立键盘可以调节价格等相关数据,按下相应的按钮,产生信号交由单片机处理并实时显示出来,调节好的数据存储到EEPROM中,掉电后可以使调好的数据不丢失,系统结构图如图。 2.设计框图 根据计费器设计要求,可将该系统分成四大模块,一块为计费模块,一块为时间计时模块,一块为路程控制模块,另一块为输出显示模块。

出租车里程计价器

1 设计任务描述 1.1设计题目:出租车里程计价器 1.2 设计要求 1.2.1 设计目的 (1) 掌握出租车里程计价器的构成,原理和设计原理; (2)熟悉集成电路的使用方法。 1.2.2 基本要求 (1) 设计秒信号脉冲产生器; (2) 行驶里程信号用传感器产生,出租车起价费为3公里8元,此后为每550米加收1元; (3) 等候时间为10分钟计价器加收1元,等候时间信号由时间产生; (4) 计价表的计数、寄存、译码显示系统;里程数的计数、寄存、译码显示系统。 1.2.3 发挥部分 (1) 白天、晚上的转换,晚上为3公里9元,此后每500米加收一元; (2) 空调使用时,为3公里9元,此后每500米加收一元。

2 设计思路 根据此次课程设计的要求,我设计的出租车里程计价器基本电路由四个部分组成,其中振荡器和分频器组成标准的秒信号发生器,由不同进制的计数器、译码器和显示器组成整体的电路系统。秒信号送入计数器进行计数,把累计的结果以“秒”的六百进制数字显示出来,构成等待计时部分。 一、等待计时: (1)震荡电路设计:可采用由集成电路定时器555与RC组成的多谐震荡器。选用555定时器构成多谐振荡器,振荡器的频率为1000赫兹。(2)分频电路设计:采用三片74LS90级联,每片10分频,最终得到1HZ的方波信号供秒计数器进行计数。(3) 秒信号送入计数器进行计数,把累计的结果以“秒”的六百进制数字显示出来。以上三部分构成等待计时电路。 二、公里计数: (1)传感器送来米信号脉冲,由计数器计数。(2)三公里比较电路设计:千位计数器输出送给数值比较器,进行比较,当大于或等于三时,数值比较器输出有效信号,送给价钱计数系统。(3)由显示译码器和显示器构成公里显示。以上三部分构成公里计数系统。 三、价钱计数: (1)由数值比较器送来有效脉冲,使三位550进制的计数器开始计数。(2)由两片计数器组成,低位计数器预置为8,前三位计数器计满向此进位,计数器加1。(3)由显示译码器和译码器构成价钱显示。以上三部分构成价钱计数系统。 四、夜晚/空调计价: (此部分为发挥部分) 由开关控制,开关闭合时此系统开始工作。(1)由数值比较器送来有效脉冲,使三位500进制的计数器开始计数。(2)由两片计数器组成,低位计数器预置为9,前三位计数器计满向此进位,计数器加1。(3)由显示译码器和译码器构成价钱显示。

出租车计价器 课程设计报告

软件学院 课程设计报告 课程 题目出租车计价器 班级集成13-4 专业集成电路设计与集成系统 学生学号 指导教师(填写自己班的指导教师) 年月日 1.课程设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的组合逻

辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 2.课程设计题目描述和要求 2.1.课程设计题目描述 ①.实现计费功能,计费标准为:按行驶里程计费,起步价为7.0元,并在车行3km 后按2.2元/km 计费,当计费器达到或超过20元时,每公里加收50%的车费,车停止不计费。 ②.现场模拟功能:以开关或按键模拟公里计数,能模拟汽车起动、停止、暂停等状态。 ③.将车费和路程显示出来,各有一位小数。 2.2.总体设计思路框架 2.3.课程设计题目要求 ①.设计正确,方案合理。 ②.程序精炼,结构清晰。 ③.设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。 ④.上机演示。 ⑤.有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 3.设计思想和设计内容 3.1 出租车计费设计

该出租车计费器按下开关S1后开始计费和计里程数,起步价是7元,行驶3公里,以后2.2元/公里。并且设计选择模块,在车费超过20元每公里加收50%车费即3.3元/公里。 3.2 基本设计思想 出租车计费器根据设计要求可初步分为3方面——显示、记里程数、记费。之后再根据三方面分别设计模块。1.显示模块。一般计数器显示数字为1-F即16进制,而16进制不方便观看,所以在设计这一模块时我们将16进制改为10进制输出进而设计了译码模块。2、里程模块。设计要求对里程计数主要分为两个方面,计数以及公里数比较。即3公里之内收7元,3公里之后20元(通过计算为9公里)以内每公里2.2元,9公里以外为每公里3.3元。所以,我们将里程模块分为里程计数模块以为比较模块。3.计费模块。计费模块同里程比较模块所以将两个模块合二为一,为价格计算模块。 4.Verilog代码 4.1顶层模块 module taxi( clk,stop,rst_n, time1,time2,time3,time4, seg1,seg2,seg3,seg4 ); input clk; input stop; input rst_n; output [6:0]time1; output [6:0]time2; output [6:0]time3; output [6:0]time4;

51单片机出租车计价器的设计

基于51单片机原理出租车计价器的设计 摘要 出租车计价器是出租车营运收费的专用只能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高。国内出租车计价器已经经历了4个阶段的发展。从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器;再从集成电路式到目前的单片机系统设计的出租车计价器。出租车计价器计费是否准确是乘客最关心的问题,而计价器营运数据的管理是否方便才是出租车司机最关注的。在随着科技的发展,现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。 本次设计是采用AT89C52单片机为中心,外加霍尔传感器行对里程进行测距,由于实验室的限制的问题所以改用按键代替霍尔传感器,实现对出租车计价统计,输出采用LCD1602A的出租车计价器。 关键字:51系列单片机,霍尔传感器,LCD1602A

前言 (2) 第一章出租车计价系统的设计要求与设计方案 (3) 1.1 基本设计要求 (3) 1.2 性能指标 (3) 1.3 显示功能 (3) 第二章出租车计价器系统的硬件设计 (4) 2.1 出租车硬件框图 (4) 2.2 AT89C52单片机及引脚说明 (4) 2.3 LCD1602A的简介 (7) 2.4 时钟电路 (10) 2.5 复位电路设计 (10) 2.6 显示电路 (11) 2.7 键盘接口技术 (12) 2.8 霍尔传感器设计 (12) 第三章出租车计价器系统的软件设计 (13) 3.1 系统整体程序流程 (13) 3.2 中断子函数 (14) 3.3 按键判断方式 (15) 3.4 LCD1602显示的判断 (15) 第四章出租车系统的安装与调试 (17) 4.1 硬件调试 (17) 4.2 软件调试 (17) 第五章设计体会与小结 (18) 参考文献 (19) 附录 (20) 一源程序 (20) 二系统硬件原理图 (29)

出租车计价系统设计

分类号:200 届本科生毕业论文 题目:出租车计价系统设计 作者姓名:李小双 学号:2007080416 系(院)、专业:机械与电子工程学院 指导教师姓名:胡波 指导教师职称:讲师

宿州学院毕业设计出租车计价系统设计 200 年月日 摘要 摘要::出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。 关键词:出租车计价器;单片机;控制 ABSTRACT Abstract:Taximeter is both passengers and drivers of the transaction criteria, it is the taxi industry an important symbol, a taxi is the most important tools. It relates to the interests of both transactions. Has a good performance regardless of the meter is a vast number of taxi drivers or passengers are very necessary. Therefore, the car meter is also very much a study of value. The use of analog circuits and digital circuit design of the meter as a whole circuit of a larger scale, using the device, a failure rate is high and difficult to debug, the pattern of switching need to use mechanical switches, mechanical switch will cause a long-time contacts Bad, functions not easy to achieve. SCM used for the design, a relatively powerful, with less hardware and appropriate software can easily coordinate with each other to achieve the design requirements, flexibility and strong, can be programmed by software to complete more of the additional Function. Pricing model for the switch, software programming and can easily cite the achievement. To avoid a mechanical switch the destabilizing factors. Keywords: Taximeter ;89 S51 MCU ;control

出租汽车里程计价表

电子技术课程设计任务书

电子技术课程设计任务书 2.对课程设计成果的要求〔包括图表、实物等硬件要求〕:设计电路,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。要求图纸布局合理,符合工程要求,使用Protel软件绘出原理图(SCH)和印制电路板(PCB),器件选择要有计算依据。 3.主要参考文献: [1]谢自美。电子线路设计、实验、测试[M]华中理工大学,2001 [2] 彭介华. 电子技术课程设计指导[M]. 北京:高等教育出版社,1997 [3] 毕满清. 电子技术实验与课程设计[M]. 北京:机械工业出版社,1995 [4] 陈明义. 电工电子技术课程设计指导[M]. 长沙:中南大学出版社,2002 [5] 陈永甫. 新编555集成电路应用800例[M]. 北京:电子工业出版社2000 4.课程设计工作进度计划: 序号起止日期工作内容 1 2011-1-3 布置任务,教师讲解设计方法及要求 2 2011-1-4 学生查找阅读资料,并确定方案 3 2011-1-5 学生设计小组会议,讨论方案 4 2011-1-6~11 设计、仿真实验 5 2010-1-12~13 写说明书,小组讨论 6 2010-1-14 答辩 指导教师苏泽光日期: 2010 年 12 月日

目录 引言 (1) 1 系统设计 (2) 1.1设计内容 (2) 1.2设计目的 (2) 1 3设计要求 (2) 1.4设计思路 (2) 1.5设计框图 (2) 1.6设计所需的元件 (3) 2.工作原理 (3) 2.1总体构想 (3) 2.2 AT89S51单片机及其引脚说明 (3) 2.3 AT24C02引脚图及其引脚功能、掉电存储单元设计 (5) 2.4里程计算、计价单元的设计 (6) 2.5 按键单元的设计 (8) 2.6语音功能的设计 (8) 3.系统主程序设计 (8) 3.2 定时中断服务程序设计 (9) 3.3 里程计数中断服务程序设计 (9) 3.4 中途等待中断服务程序设计 (9) 3.5 显示子程序服务程序设计 (9) 3.6 键盘服务程序设计 (9) 4.系统测试 (11) 4.1 测试使用的仪器或软件 (11) 4.2 出租汽车里程计价表VHDL程序 (11) 4.2.1模块设计 (11)

单片机出租车计价器课程设计报告书

word完美格式 嵌入式系统基础 课 程 说 明 书 设计题目:出租车计价器 学院:太原理工大学现代科技学院 班级:电子信息 姓名: 学号:

一、设计题目: 出租车计价器 二、设计思路: 如今单片机由于其体积小,性能完善,所以广泛应用于各个行业中。在出租车上,计价器便采用了单片机的应用技术,采用一系列的外部设备将出租车行驶以及停车等各个状态输入单片机,通过程序加以运算控制,再输出显示以及打印等。 我们试着用所学的知识,设计并模拟出租车计价器的工作方式,通过实践来掌握应用设备的工作原理。 三、设计任务 ●出租车计价器需要的主要外部设备有公里计数器,以及显示、定时装置,通 过线路连接构成一个完整的系统。 ●公里计数器设想:利用光电或者霍尔效应原理对车轮转过360°角位移产生 一个脉冲信号送给单片机作为一定距离的计数值。 ●显示器:用LED显示,动态扫描显示,不断输出即时价格已及时间。 ●定时装置(本设计中未引入):记录在停车或某些情况下的时间,用于辅助 计价。 四、里程计数器的原理(光电式) 在与车轴同步的轴上装有一隔光盘,上仅有以窄缝可以通光。在隔光盘两侧分别装有与车体固定的光源和感光元件。当隔光盘随轴转动时,光源发出的光被隔光盘隔离,只有在窄缝处感光元件接收到光信号,对后续电路产生一个脉冲。这就是对里程转换为计数值的基本原理。 其产生的脉冲信号则作为单片机计数器的输入信号,当单片机中计数器计到某一数量即为车行驶一公里,并对价格进行增加。在没有实际对这样计数装置试用,只能对其原理进行分析,在之下的程序设计中只取其脉冲信号作为单片机输入信号(P3.4)。

五、LED显示电路 对设计总体分析下,只需对其价格进行显示,选用四个LED数码管分别显示价格的百位、十位、个位以及十分位(单位:元)。显示方式采用动态扫描的方式,数据输出为P0口,位选为P2口,共阴极(如图)。 P0.7-P0.0 数码管输出数据 P2.7-P2.4 数码管位选 六、计价器的计价要求 ●计价方式:起价(两公里)白天8元,晚上8.6元;由一开关进行选择。每 公里1.5元。 ●转数与公里数:汽车轮胎周长近似为1.5米,故一百米需要转过67圈,计 67个数产生一个溢出中断。 七、电路原理图及引脚

51单片机出租车计价器设计课程设计

任务书 毕业设计(论文)原创性声明和使用授权说明 原创性声明本人郑重承诺:所呈交地毕业设计(论文),是我个人在指导教师地指导下进行地研究工作及取得地成果.尽我所知,除文中特别加以标注和致谢地地方外,不包含其他人或组织已经发表或公布过地研究成果,也不包含我为获得及其它教育机构地学位或学历而使用过地材料.对本研究提供过帮助和做出过贡献地个人或集体,均已在文中作了明确地说明并表示了谢意. 日期:名:者作签

期:指导教师签名:日 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)地规定,即:按照学校要求提交毕业设计(论文)地印刷本和电子版本;学校有权保存毕业设计(论文)地印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目地前提下,学校可以公布论文地部分或全部内容. 期:日作者签名: 学位论文原创性声明本人郑重声明:所呈交地论文是本人在导师地指导下独立进行研究所取得地研究成果.除了文中特别加以标注引用地内容外,本论文不包含任何其他个人或集体已经发表或撰写地成果作品.对本文地研究做出重要贡献地个人和集体,均已在文中以明确方式标明.本人完全意识到本声明地法律后果由本人承担. 日月日期:年作者签名: 学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文地规定,同意学校保留并向国家有关部门或机构送交论文地复印件和电子版,允许论文被查阅和借阅.本人授权大学可以将本学位论文地全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文. .涉密论文按学校规定处理 日年月日期:作者签名:日月年日期:导师签名:摘要 随著超大规模集成电路技术地发展,单片机也随之有了很大发展,各种新颖地单片机层出不穷,并已广泛地应用到人类生活地各个领域,成为当今科学技术现代化不可缺少地重要工具.许多高校也纷纷开办了单片机这门学科,并在学科教授完后设有课程设计,希望同学能够通过这次设计学习和应用单片机解决工作中碰到地实际问题. 现代交通工具迅猛发展,出租车在人们地日常生活中所扮演地角色越练越重要,但如何准确计费,以达到既使乘客满意又不让出租车司机亏本地目地,就迫在眉睫.本课程设计主题是利用等实现出租车费用、LED位8、8279液晶显示器、可编程键盘显示接口器件LCD单片机、89C51. 路程和时间显示,作为一个单片机在实际生活中地简单应用.

出租车计费系统

课程设计报告项目名称:出租车计价器设计与制作 课程名称:单片机技术 二级学院:电气与电子工程学院 系:电气工程系 班级:14电气4班 学号:29 学生姓名:黄凌周 小组成员:刘智超黄凌周 指导教师:钟立华 成绩:

报告完成日期2016年12月20日 目录 摘要2 1 课程设计任务书3 1.1 课程设计任务3 1.2 课程设计方案3 2硬件电路设计4 2.1 振荡电路4 2.2 复位电路设计5 2.3 键盘接口电路5 2.4 显示电路6 2.4.1 1602LCD的基本参数及引脚功能6 2.4.2 显示模块采用1602液晶显示接口电路7 2.5 单片机各引脚功能说明7 3软件设计10 3.1 单片机资源使用10 3.2 单片机软件模块设计10 3.2.1 中断子函数10 3.2.2 判键子函数11 3.2.3 显示子程序11 3.3 总程序流程框图12 总结13 参考文献14 附录1 元件件清单15

附录2原理图16 附录3 程序清单17 摘要 本设计的是一个基于单片机STC89C52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。 在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。通过按键模拟出租车的运行,暂停,停止。在1602液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。在这里主要是以STC89C52单片机为核心控制器,P1口接1602液晶显示模块。 关键字STC89C52;1602液晶;出租车计费器

出租汽车里程计价表

出租汽车里程计价表

电子技术课程设计任务书 2.对课程设计成果的要求〔包括图表、实物等硬件要求〕: 设计电路,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。要求图纸布局合理,符合工程要求,使用Protel软件绘出原理图(SCH)和印制电路板(PCB),器件选择要有运算依据。 3.要紧参考文献: [1]谢自美。电子线路设计、实验、测试[M]华中理工大学,2001 [2] 彭介华. 电子技术课程设计指导[M]. 北京:高等教育出版社,1997 [3] 毕满清. 电子技术实验与课程设计[M]. 北京:机械工业出版社,1995 [4] 陈明义. 电工电子技术课程设计指导[M]. 长沙:中南大学出版社,2002 [5] 陈永甫. 新编555集成电路应用800例[M]. 北京:电子工业出版社2000 4.课程设计工作进度打算: 序号起止日期工作内容 1 2018-1-3 布置任务,教师讲解设计方法及要求 2 2018-1-4 学生查找阅读资料,并确定方案 3 2018-1-5 学生设计小组会议,讨论方案 4 2018-1-6~11 设计、仿真实验 5 2018-1-12~13 写说明书,小组讨论 6 2018-1-14 答辩 指导教师苏泽光日期: 2018 年 12 月日

目录 引言 (1) 1系统设计 (2) 1.1设计内容 (2) 1.2设计目的 (2) 1 3设计要求 (2) 1.4设计思路 (2) 1.5设计框图 (2) 1.6设计所需的元件 (3) 2.工作原理 (3) 2.1总体构想 (3) 2.2AT89S51单片机及其引脚说明 (3) 2.3 AT24C02引脚图及其引脚功能、掉电储备单元设计 (5) 2.4里程运算、计价单元的设计 (6) 2.5 按键单元的设计 (8) 2.6语音功能的设计 (8) 3.系统主程序设计 (8) 3.2 定时中断服务程序设计 (9) 3.3 里程计数中断服务程序设计 (9) 3.4 中途等待中断服务程序设计 (9) 3.5 显示子程序服务程序设计 (9) 3.6 键盘服务程序设计 (9) 4.系统测试 (11) 4.1 测试使用的仪器或软件 (11) 4.2 出租汽车里程计价表VHDL程序 (11) 4.2.1模块设计 (11)

单片机出租车计价器课程设计

单片机出租车计价器课程 设计 This manuscript was revised on November 28, 2020

嵌入式系统基础 课 程 说 明 书 设计题目:出租车计价器 学院:太原理工大学现代科技学院 班级:电子信息 姓名: 学号: 一、设计题目: 出租车计价器 二、设计思路: 如今单片机由于其体积小,性能完善,所以广泛应用于各个行业中。在出租车上,计价器便采用了单片机的应用技术,采用一系列的外部设备将出租车行驶以及停车等各个状态输入单片机,通过程序加以运算控制,再输出显示以及打印等。 我们试着用所学的知识,设计并模拟出租车计价器的工作方式,通过实践来掌握应用设备的工作原理。 三、设计任务

出租车计价器需要的主要外部设备有公里计数器,以及显示、定时装置,通过线路连接构成一个完整的系统。 公里计数器设想:利用光电或者霍尔效应原理对车轮转过360°角位移产生一个脉冲信号送给单片机作为一定距离的计数值。 显示器:用LED 显示,动态扫描显示,不断输出即时价格已及时间。 定时装置(本设计中未引入):记录在停车或某些情况下的时间,用于辅助计价。 四、里程计数器的原理(光电式) 在与车轴同步的轴上装有一隔光盘,上仅有以窄缝可以通光。在隔光盘两侧分别装有与车体固定的光源和感光元件。当隔光盘随轴转动时,光源发出的光被隔光盘隔离,只有在窄缝处感光元件接收到光信号,对后续电路产生一个脉冲。这就是对里程转换为计数值的基本原理。 其产生的脉冲信号则作为单片机计数器的输入信号,当单片机中计数器计到某一数 量即为车行驶 一公 里,并 对价格 进行增 加。在 没有实际对这样计数装置试用,只能对其原理进行分析,在之下的程序设计中只取其脉冲信号作为单片机输入信号()。 五、LED 显示电路 对设计总体分析下,只需对其价格进行显示,选用四个LED 数码管分别显示价格的百位、十位、个位以及十分位(单位:元)。显示方式采用动态扫描的方式,数据输出为P0口,位选为P2口,共阴极(如图)。 六、计价器的计价要求 计价方式:起价(两公里)白天8元,晚上元;由一开关进行选择。每公里元。 转数与公里数:汽车轮胎周长近似为1.5米,故一百米需要转过67圈,计67个数产生一个溢出中断。 七、电路原理图及引脚 八、源程序 ORG 0000H ;起始地址 AJMP START ORG 001BH ;计数中断地址 LJMP CNT1 ORG 0030H ;主程序地址 START: MOV PSW, #00H MOV IE, #88H ;IE=B MOV TMOD, #60H ;TMOD=01100000B ,T1工作方式2 数码管输出数据 数码管位选 显示小数点(长亮) 计价器工作开关 白天/夜间切换 计数脉冲输入

相关主题
文本预览
相关文档 最新文档