当前位置:文档之家› 基于单片机出租车计价器课题设计(c语言编写)

基于单片机出租车计价器课题设计(c语言编写)

基于单片机出租车计价器课题设计(c语言编写)
基于单片机出租车计价器课题设计(c语言编写)

综合技能训练

题目:基于单片机出租车计价器设计学生姓名:

班级学号:

专业:

指导老师:

东华理工大学机械与电子工程学院

二0一三年六月

一、设计任务和性能指标

1.1设计任务

出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。

出租车计价器的主要功能是计价显示、时钟显示、根据白天、黑夜、途中等待来调节营运参数、计量数据查询等。要求用Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要求的功能),印刷电路板(要求布局合理,线路清晰),绘出程序流程图,并给出程序清单(要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性)。 1.2性能指标

1. 不同情况具有不同收费标准:白天、晚上、途中等待(>10min 开始收费);

2. 数据输出:单价输出、路程输出、总金额输出;

3. 按键:启动计时开关、数据显示切换、白天/晚上切换、复位;

4.

能手动进行修改单价,但单价设定需密码进入。

二、设计方案

2.1任务分析

出租车计价器基本功能部分是根据里程数来完成总金额的输出。实现方法有两种。

方案一:采用数字电路控制。其原理方框图如图2.1所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。

移位寄存器

电路

里程传感器

金额显示

单价显示

电源电路及保护电路

图2.1 数字电路实现框图

方案二:采用单片机控制。利用单片机丰富的IO 端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。本方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对

系统进行升级,所以我们采用后一种方案。

2.2系统设计

键盘电路

显示电路

单片机

掉电保护

里程输入

图2.1电路系统构成框图

主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。

时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302。采用DS1302作为主要计时芯片、可以做到计时准确。更重要的是,DS1302可以在很小的电流的后备电源(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流对后备电源进行慢速充电,可以保证后备电源基本不耗电。采用串行数据传输,与单片机硬件连接简单,如果使用时钟芯片DS12887,将采用并行数据传输,占用更多的硬件资源。因此为节省单片机端口,时钟芯片采用DS1302。

它们可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔器件以霍尔效应为其工作基础。霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHZ),耐振动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀。活儿现行器件的精度高、线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、无知重复精度高(可达Im级)。采用了各种步长和保护措施的霍尔器件的工作温度范围宽,可达-55摄氏度~150摄氏度。

数据显示模块采用的是LED数码管显示,LCD虽然也能实现显示功能,但在距屏幕1米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能满足要求,因此建议采用LED数码管显示。数码管总共用了12个,其中第一行显示小时和分钟,第二行第一个显示单价,后面3个显示里程数,最后一行显示总价。

按键控制模块使用了3个脉冲开关,其中一个开关负责换位,另一个负责改数,第三个按键负责切换至等待时间。

三系统硬件设计

3.1电源电路

因为出租车上的电压时12V,而芯片所需供电电压是5V,所以选择LM7805的经典电路电源电路完成12V转5V的目的。电源电路图如下图3.1所示:

图3.1电源电路图

3.2单片机的最小系统

单片机最小系统采用的是STC89C54芯片,STC89C54是一种低功耗、高新能CMOS 8为微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51铲平指令和引脚完全兼容。偏上FLASH允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有平桥的8为CPU何在系统可编程Flash,使得STC89C54为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C54具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16为定时器/计数器,一个6向量2级终端结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0HZ 静态逻辑操作,支持2中软件可选择节点模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、终端继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。单片机最小系统电路图如下图3.2所示:

图3.2单片机最小系统电路图

3.3 DS1302时钟电路

若采用单片机计时,一方面需要采用计数器,占用阴间资源,另一方面需要设置终端、查询等,同样耗费单片机的资源,并且使用单片机的时钟误差比较大,当长时间使用后会,会出现很大错误,而在系统中采用DS1302则能很好的解决这个问题。DS1302时钟电路图如图3.3所示:

图3.3 DS1302时钟电路图

3.4显示电路的设计

在显示模块需要对时间、单价、总价、路程、等待时间进行显示,采用的是LED数码管,数码管总共用了12个,其中第一行显示小时和分钟,第二行第一个显示单价,后面3个显示里程数,最后一行显示总价。

显示电路图(一个数码管)如下图3.4所示:

图3.4 显示电路图图3.5按键控制电路图

3.5按键控制的设计

按键的设置是为了能够手动更改时间和单价,还有就是手动切换到等待时间的地方,按键采用的是脉冲按键。

按键设置电路图如图3.5所示:

3.6掉电保护

掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。掉电

保护的芯片较多,如AT24C02 是ATMEL 公司的2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8 脚的DIP 封装,使用方便。掉电保护电路图如下图3.6所示:

图3.6 掉电保护电路图

3.7复位电路

复位功能采用的是MAX813L芯片。MAX813L是具有监控电路的微处理芯片,它具有4个功能:1具有独立的看门狗计时器,如果看门狗输入在1.6秒内无变化,就会产生看门狗输出;2掉电或电源电压低于1.25V时,产生掉电输出;3上电时能自动产生200ms宽的复位脉冲;4具有人工复位功能,当人工复位端输入低电平时,产生复位信号输出。

复位电路如图3.7所示:

图3.7复位电路图

四、系统软件设计

4.1主程序设计

程序的难度主要就是在数码管的显示和外部脉冲的采集部分,分别采用

74LS273芯片对数码管进行段选,使数码管显示对应的数,另外使用74LS154

对数码管进行位选,选择哪个数码管亮,采用的是动态显示。还有外部脉冲的收

集,需要对里程数进行显示,所以必须要先进行脉冲的采集。

程序流程图如图4.1所示:

图4.1程序流程图

4.2 子程序设计

4.2.1 DS1302子程序流程图

显示单价、总价、路程、时间等数据,循环扫描进行显示。(如果在一分钟内没有脉冲,开启终端,显示秒分子程序。

DS1302子程序流程图如4.2.1所示:

图4.2.1 DS1302子程序流程图

开始

写入实参数addr

CE=1 SCLK=0

I=0

取ADDR 低位

Addr 右移一位

Sclk 上升沿 是否是上升沿

Y

等待上升沿

N

i++; i>8 ?

结束

Y

N

4.2.2 显示子程序流程图

显示子程序流程图如图4.2.2所示:

图4.2.2 显示子程序流程图

4.3 修改时间子程序

修改TAB 数组里的前5位数据,分别为小时、分钟、单价.

开始

定义指针*p

将指针指向数组TAB

将P 赋值给DET,将displaytab 数组位赋DET 值

将TMP 赋值给P0, *P++

P > 12 ?

结束

Y N

附录:程序清单

#include"reg51.h"

#include "intrins.h"

#define uchar unsigned char

uchar tmp;

uchar det;

uchar Coo;

int m;

int f;

uchar code DispTab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0}; //字形码

uchar TAB[24];

sbit P00=P0^0;

sbit P01=P0^1;

sbit P02=P0^2;

sbit P03=P0^3;

sbit P04=P0^4;

sbit P05=P0^5;

sbit P10=P1^0;

sbit P27=P2^7;

sbit P14=P1^4;

sbit SCLK =P1^3; /*DS1302的SCLK脚脉冲*/

sbit DIO=P1^2; /*DS1302的IO脚数据*/

sbit CE=P1^1; /*DS1302的RST脚片选*/

sbit P15=P1^5;

sbit P23=P2^3;

sbit P21=P2^1;

sbit P16=P1^6;

sbit P35=P3^5;

sbit P22=P2^2;

sbit P17=P1^7;

sbit P20=P2^0;

sbit P26=P2^6;

sbit P24=P2^4;

sbit ACC7=ACC^7;

sbit ACC0=ACC^0;

void time() interrupt 1 //等待计时中断

{int i,j;TH0=0x15;

TL0=0xa0;i++;

if(i==100){i=0;j++;};

if(j==10){j=0;f=Coo;}}

void mDelay(unsigned int Delay) //延时子程序

{ unsigned int I;

for(;Delay>0;Delay--)

{ for(I=0;I<124;I++)

{;}

}}

void Write1302 ( unsigned char addr,dat ) //DS1302写程序

{

unsigned char i,temp;

CE=0; //CE引脚为低,数据传送中止

SCLK=0; //清零时钟总线

CE = 1; //CE引脚为高,逻辑控制有效

//发送地址

for ( i=8; i>0; i-- ) //循环8次移位

{

temp = addr;

addr >>= 1;

SCLK = 0; //右移一位

SCLK = 1;

}

//发送数据

for ( i=8; i>0; i-- )

{

temp = dat;

DIO = (bit)(temp&0x01);

dat >>= 1;

SCLK = 0;

SCLK = 1;

}

CE = 0;

}

unsigned char Read1302 ( unsigned char addr ) //数据读取子程序

{

unsigned char i,temp,dat1,dat2;

CE=0;

SCLK=0;

CE = 1;

//发送地址

for ( i=8; i>0; i-- ) //循环8次移位

{

temp = addr;

addr >>= 1;

SCLK = 0;

SCLK = 1; //右移一位

}

//读取数据

for ( i=8; i>0; i-- )

{

ACC7=DIO;

ACC>>=1;

SCLK = 1;

SCLK = 0;

}

CE=0;

dat1=ACC;

dat2=dat1/16; //数据进制转换

dat1=dat1%16; //十六进制转十进制

dat1=dat1+dat2*10;

return (ACC);

}

void Initial() //初始化DS1302

{

Write1302 (0x8E,0x00); //禁止写保护

Write1302 (0x80,0x00); //秒位初始化

Write1302 (0x82,0x20); //分钟初始化

Write1302 (0x84,0x10);

Write1302 (0x86,0x23);

Write1302 (0x88,0x05);

Write1302 (0x8c,0x10); //小时初始化

Write1302 (0x8E,0x80); //允许写保护

}

void set() //修改时间

{

Write1302 (0x8E,0x00); //禁止写保护

Write1302 (0x82,TAB[7]*16+TAB[6]); //分钟初始化

Write1302 (0x84,TAB[0]*16+TAB[1]);

Write1302 (0x8E,0x80);}

void ss()//显示子程序

{int i;uchar *p;p=TAB;

for(i=0;i<1;i++){

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;

P14=0;P15=0;P16=0;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;

P20=0;P20=1;P14=1;P15=0;P16=0;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=0;P15=1;P16=0;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=1;P15=1;P16=0;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;

P20=0;P20=1;P14=0;P15=0;P16=1;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=1;P15=0;P16=1;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=0;P15=1;P16=1;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=1;P15=1;P16=1;P17=0;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=0;P15=0;P16=0;P17=1;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=1;P15=0;P16=0;P17=1;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=0;P15=1;P16=0;P17=1;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=1;P15=1;P16=0;P17=1;p++;

det=*p;

tmp=DispTab[det];

P0=tmp;P20=0;P20=1;P14=0;P15=0;P16=1;P17=1;p++;

}}

void sett() //显示等待时间及单价、总价、路程子程序{TAB[0]=Read1302(0x83)/10;

TAB[1]=Read1302(0x83)%10;

TAB[7]=Read1302(0x81)/10;

TAB[6]=Read1302(0x81)%10;TAB[8]=3;

TAB[2]=Coo/100;TAB[3]=Coo/10%10;

TAB[4]=Coo%10;

if(TAB[4]<=3&&TAB[2]==0&&TAB[3]==0)

{TAB[11]=8;}

else{

TAB[11]=(8+(Coo-3)*TAB[8])%10;}

TAB[5]=TAB[2]*TAB[8]/10;

TAB[9]=Coo/100*TAB[8]+Coo%100*TAB[8]/100; TAB[10]=(Coo/10*TAB[8]+Coo%10*TAB[8]/10)%10;} void mmm() //显示时间子程序

{ TAB[0]=Read1302(0x85)/10;

TAB[1]=Read1302(0x85)%10;

TAB[7]=Read1302(0x83)/10;

TAB[6]=Read1302(0x83)%10;TAB[8]=3;} void qie(int j) //修改时间、单价子程序{uchar i;switch(j)

{ case 4:ss();

if(P22==0)

{for(i=0;i!=1;)

{i=P22;ss();};

TAB[8]++;

if(TAB[8]==10)

{TAB[8]=0;}}break;

case 3:ss();

if(P22==0)

{for(i=0;i!=1;)

{i=P22;ss();};

TAB[6]++;

if(TAB[6]==10)

{TAB[6]=0;}}break;

case 2:ss();

if(P22==0)

{for(i=0;i!=1;)

{i=P22;ss();};

TAB[7]++;

if(TAB[7]==6)

{TAB[7]=0;}}break;

case 1:ss();

if(P22==0)

{for(i=0;i!=1;)

{i=P22;ss();};

TAB[1]++;

if((TAB[0]==2&&TAB[1]==4)||TAB[1]==10) {TAB[1]=0;}}break;

case 0:ss();

if(P22==0)

{for(i=0;i!=1;)

{i=P22;ss();};

TAB[0]++;

if(TAB[0]==3)

{TAB[0]=0;}}break; default:break;}}

Void die() //修改单价位、时间位子程序{int x;for(m=0;m<5;)

{ss();qie(m);

if(P21==0)

{for(x=0;x<1;)

{ss();x=P21;};m++;}}set();}

void mm() //非计价时的显示时间

{

TAB[0]=Read1302(0x85)/10;

TAB[1]=Read1302(0x85)%10;

TAB[7]=Read1302(0x83)/10;

TAB[6]=Read1302(0x83)%10;TAB[8]=3;

TAB[2]=Coo/100;TAB[3]=Coo/10%10;

TAB[4]=Coo%10;

if(TAB[4]<=3&&TAB[2]==0&&TAB[3]==0)

{TAB[11]=8;}

else{

TAB[11]=(8+(Coo-3)*TAB[8])%10;}

TAB[5]=TAB[2]*TAB[8]/10;

TAB[9]=Coo/100*TAB[8]+Coo%100*TAB[8]/100; TAB[10]=(Coo/10*TAB[8]+Coo%10*TAB[8]/10)%10;} void count() //计价子程序

{int x;EA=1;

if(f==Coo)

{sett();ss();}

else{mm();}

if(P35==0)

{for(x=0;x<1;)

{ss();x=P35;}Coo++;}}

void main()

{int i,j;TMOD=0x01;

TH0=0x15;TL0=0xa0;TR0=1;ET0=1;Initial();P27=0; for(;;)

{if(P23==0)

{for(i=0;i<1;)

{ss();i=P23;}

for(j=0;j<1;)

{count();ss();

if(P23==0)

{for(i=0;i<1;)

{ss();i=P23;EA=0;}j++;

TAB[2]=TAB[3]=TAB[11]=TAB[5]=TAB[9]=TAB[10]=TAB[4]=0;}}} else mmm();ss();

if(P21==0)

{for(i=0;i<1;)

{ss();i=P21;}

die();}}}

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

昆明理工大学信息工程与自动化学院学生实验报告 (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记录,结果由数码管显示出来。

出租车计费系统的设计好

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 的功能。 计费时钟 档位 启动 控制模块 显示模块 暂停 停止

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

出租车计价器课程设 计

大学 《单片机应用与仿真训练》设计报告 出 租 车 计 价 器 姓名: 学号: 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)

出租车计价器系统完整版

智能电子产品设计与制作 课程设计(论文) 题目: 《出租车计价器系统设计》 学院:电气与电子信息工程学院 专业名称: 学号: 学生姓名: 同组成员: 指导教师: 课设时间: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、单片机模块

《单片机C语言程序设计》课程标准

广州康大职业技术学院 《单片机C语言程序设计》课程标准 一、基本信息 适用对像:应用电子技术专业的学生 课程代码: 学分:2 学时:36 制定人:徐又又 制定时间:2010年9月 所属系部:自动化 批准人:陶甫廷 二、课程的目标 1.专业能力目标 了解单片机C语言的特点、与PC机C语言的异同之处、单片机C语言的开发环境; 熟悉单片机C语言的基本语法规范、Keil C软件的应用及其与硬件平台的连接、C语言程 序结构设计、与单片机相关的设置等方面知识。 2.方法能力目标 了解用单片机C语言进行应用产品软件开发的步骤,具备单片机C语言程序的识读、修改的基本能力;学会使用Keil C软件进行源程序编辑、编译和软、硬件模拟调试的操作方 法与技能。 3.社会能力目标 通过后续课程《单片机应用实训》的学习与强化训练,具有使用单片机C语言进行电子产品、自动检测与控制和高新视听设施等方面的软件开发的职业技能。 三、整体教学设计思路 1.课程定位 该课程是应用电子技术和自动化技术等专业获得专业技能的必修课程之一,该课程属于职业技术课程,以培养电子产品开发相关行业急需的机电类和电子类高级技能应用型人才 为目标。 本课程一般在学生学完模拟电子技术与数字电子技术、计算机技术等专业基础课后再讲授;《单片机应用》等课程可作为先修课程,也可在同一学期开设。 2.课程开发思路

本课程根据“工学结合”的原则,强调对单片机C语言程序设计的理论部分删繁就简,以“实用够用”为度,就是为了便于他们在后续的实训月(四周)以及即将下厂顶岗实习期 (十周),将所学的单片机C语言程序设计的常用原理与实用知识,能够与实训、实习的生 产工位和顶岗工作更紧密地联系起来。 四、教学内容 1.学时分配 学习情境名称子学习情境1 子学习情境2 子学习情境3 子学习情境4 学时 分配 学习情境(单元)1 单片机C语言概述单片机C语言与 PC机C语言的异 同之处 简单的C程序介绍 及上机操作(编译 三个简单C程序) 3 教学时数 1 2 学习情境(单元)2单片机C语言开发环境 建立 Keil软件的使 用(源文件、 工程的建立) 上机操作(用keil 软件进行工程的设 置) 3 教学时数 2 1 学习情境(单元)3数据的类型、运算符和 表达式 用整型和字符型 定义变量 数的溢出 C51中特有的数 据类型 上机操作(用 算术运算符和 算术表达式编 写程序) 6 教学时数 2 1 2 1 学习情境(单元)4C51流程与控制顺序结构程序选择结构程序循环结构程 序(上机操作 编译冒泡排 序法程序) 6 教学时数 2 2 2 学习情 境(单 元)5 C51构造数据类型数组指针结构共用体和枚举 6 教学时数 2 2 1 1 学习情境(单元)6单片机内部资源的组成中断编程上机操作用定时器 /计数器资源 编程并编译 串口编程 6 教学时数 2 2 2 学习情境(单元)7函数函数的定义函数的调用局部变量和全局 变量 变量的存储类 别 6 教学时数 2 2 1 1

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

软件学院 课程设计报告 课程 题目出租车计价器 班级集成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;

数字电路出租车计价器设计

时序逻辑电路课程设计 引言: 我们组选择了题目一,设计出租车计价器,通过对课本、资料的查阅,再经过构思,设计,搭建电路,仿真,得出了结果,虽然不够完美,但是也掌握了一些知识,增加了对各种原件的印象。下文将详细给出设计。 一、资料查阅 通过参考数字电路课本,以及数字电路实验书,再经过网络查阅,也参考了网上有的类似的设计,想出了电路的基本思路。 二、对于要求的实现 要求1:根据出租车上的速度传感器传来的脉冲个数和设置的里程单价来计算对应的总价格,并将总价格通过LED实时显示。 对于此要求的实现,通过查阅,我们发现了74LS160十位计数器,有预制与清零功能,能进行0-9重复计数。功能表如下 要求2:起步价可以设置:。 由于74LS160有置数功能,所以可以置数,能够要求其从一个确定的数开始计数,所以可以设置起步价。对于从要过了起步价里程才开始计数,因为每一个单位里程是一次脉冲,而芯片又是每一次脉冲才记一次数,所以应用触发器的存储功能来使前几次脉冲无法传至芯片。 要求3:里程单价可以设置。 运用比例乘法器,可以实现脉冲的改变。比如用CC4527比例乘法器,输入一个BCD 数,其输出的脉冲为输入脉冲的BCD的十分之一倍。比如速度传感器的每个脉冲为1km,单价为2元,那么就输入20的BCD数,那么比例乘法器就会输出一个2倍速度传感器脉冲的脉冲信号,以此脉冲作为后面电路的时钟信号,可以实现单价2元。其他单价以此类推,但是由于仿真软件中没有找到比例乘法器,所以仿真中没有单价设置这一项。 要求4:可以对总价格进行复位,从而为下次计费做好准备。

运用74LS160的置数功能,重新对其进行置数即可实现下次重新开始计费。 三、具体电路 时序逻辑:左下角U1为里程脉冲发生器,经过N个D锁存器的延时,才可以传至上面的74LS160芯片,芯片开始计数,显示在右上方的两位显示器上,即计程车的价钱。电路中有两个单刀单置开关,上面的S1和下面的S2。S1的作用为每次重新搭载乘客后的清零和重新显示起步价,S2的功能为开启里程传感器,为计程车进行计价。下面对电路各个部分进行解释: 1.计数部分: 用N块74LS160芯片,即可显示N位十进制数,本次仿真以2位为例,也就是只可以显示0-99元的价格。上图七段显示管U5为十位,U3为个位。如图通过开关S5进行起步价设置控制,芯片有CR和LD引脚,CR为1,LD为0时可以进行置数,入上图,设置起步价为5元。由于当有脉冲时候,才会执行置数功能,而又不能和里程传感器用同一个时钟信号,所以单独设置了一个信号源,通过S1开关,既控制LD电位,又通过与门或门非门作为选择开关控制U16信号源的信号是否输入芯片。当开关断开,LD电位为0,U16信号导通到U2芯片,执行置数功能。当S1开关闭合,CR和LD电位都为1,以里程脉冲作为时钟信号执行计数功能,从预制的数字开始计数。

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

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个数产生一个溢出中断。 七、电路原理图及引脚

出租车计价器设计要求

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:信息工程学院 题目: 出租车计价器的设计与实现 初始条件: 本设计既可以使用集成译码器、计数器、定时器、脉冲发生器和必要的门电路等,也可以使用单片机系统构建多功能数字钟。用数码管显示行驶里程、停车时间和计费值。 要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求) 1、课程设计工作量:1周。 2、技术要求: 1)设计一个出租车计价器。要求用4位数码管显示行驶里程、停车时间和计费值,采用按键切换显示物理量。 2)出租车的起步价为3元,当里程行驶到1km后,费用为4元;当里程行驶到1.5km后,费用为5元;,当里程行驶到2km后,费用为6元;当里程行驶到2.5km后,费用为7元;当里程行驶到3km后,费用为8元;此后每公里计费为0.7元/0.5km。停车每达3分钟,增加 0.7元。 3)具有秒、分为60进制计数功能,能显示分、秒停车状态的计时结果,格式为:00:00min。。按照轮胎转动1圈为1m计算,计算并显示行驶的里程结果,格式为:000.0km。能显示乘车费用,格式为:000.0元。 4)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。 3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》 要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 1、年月日,布置课设具体实施计划与课程设计报告格式的 要求说明。

2、年月日至年月日,方案选择和电路设计。 3、年月日至年月日,电路调试和设计说明书撰写。 4、年月日,上交课程设计成果及报告,同时进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年 月日

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

单片机出租车计价器课程 设计 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 数码管输出数据 数码管位选 显示小数点(长亮) 计价器工作开关 白天/夜间切换 计数脉冲输入

出租车计价系统设计

分类号: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

出租车计价器课程设计

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

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

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

基于单片机的出租车计价器设计 摘要 出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有应用价值的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。数据信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根据不同的公司客户使用不同的界面。 该课题主要设计一款计价器,实现对出租车计价统计,采用时钟芯片DS1302实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。本课题设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价。同时在不计价的时候还能作为时钟为司机同志提供方便。 关键词:出租车计价器;多功能;AT89C52;软硬件设计

The Design Of T aximeter Based On MCU Abstract Taxi meter is the trading of both passengers and driver standards, it is an important indicator in taxi industry ,and it is the most important tool of a taxi.It relates to the interests of both transactions.Good performance of the meter, whether the vast number of friends and passengers, taxi drivers are very necessary.A good performance of the meter is very necessary to passengers and taxi drivers.Therefore, the research to taxi meter is very valuable.The design of the meter by the analog circuit and digital circuit have a larger scale,using a lot of device , resulting in high failure rate, difficult to debug, the mode switch need to use mechanical switches, mechanical switches over time will cause poor contact, function is not easy to achieve.The use of MCU design and relatively powerful, with less hardware and appropriate software can be easily complement each other to achieve the design requirements, and flexibility, can be programmed through software to perform additional functionality.Billing model for the switch can be easily programmed through the software.Avoiding the instability caused by mechanical switches.Data information can be understand at a glance, and even the finished product can easily modify the user interface, but also according to different customers using different interfaces. In the paper we designed a taxi meter realize of a meter taxi valuation statistics, using the system clock chip DS1302 achieved when the power-down unit and the system saved time and other information, the output 8-segment digital display tube. The subject of the meter design can not only realize the basic valuation, but also according to day and night, halfway to wait to adjust the unit price. While not denominated as the clock for the driver when the comrades can facilitate. Keywords:taximeter;multifunction;AT89C52;software/hardware des ign

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

嵌入式系统基础 课 程 说 明 书 设计题目:出租车计价器 学院:太原理工大学现代科技学院 班级:电子信息 姓名: 学号: 一、设计题目: 出租车计价器 二、设计思路: 如今单片机由于其体积小,性能完善,所以广泛应用于各个行业中。在出租车上,计价器便采用了单片机的应用技术,采用一系列的外部设备将出租车行驶以及停车等各个状态输入单片机,通过程序加以运算控制,再输出显示以及打印等。 我们试着用所学的知识,设计并模拟出租车计价器的工作方式,通过实践来掌握应用设备的工作原理。 三、设计任务 ●出租车计价器需要的主要外部设备有公里计数器,以及显示、定时装置,通过线路连 接构成一个完整的系统。 ●公里计数器设想:利用光电或者霍尔效应原理对车轮转过360°角位移产生一个脉冲 信号送给单片机作为一定距离的计数值。

●显示器:用LED显示,动态扫描显示,不断输出即时价格已及时间。 ●定时装置(本设计中未引入):记录在停车或某些情况下的时间,用于辅助计价。 四、里程计数器的原理(光电式) 在与车轴同步的轴上装有一隔光盘,上仅有以窄缝可以通光。在隔光盘两侧分别装有与车体固定的光源和感光元件。当隔光盘随轴转动时,光源发出的光被隔光盘隔离,只有在窄缝处感光元件接收到光信号,对后续电路产生一个脉冲。这就是对里程转换为计数值的基本原理。 其产生的脉冲信号则作为单片机计数器的输入信号,当单片机中计数器计到某一数量即为车行驶一公里,并对价格进行增加。在没有实际对这样计数装置试用,只能对其原理进行分析,在之下的程序设计中只取其脉冲信号作为单片机输入信号()。 五、LED显示电路 对Array设计总 体分析 下,只 需对其 价格进 行显示,选用四个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 MOV TH1, #0BDH ;自动重装 MOV TL1, #0BDH ;计67个数 SETB TR1 ;计数器启动 CLR ;点亮小数点dp MOV R4, #0FFH ;置数-1

出租车计价器设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:微机系统综合课程设计 课程设计题目: 出租车计价器的设计与实现 院(系): 计算机学院 专 业 : 计算机科学与技术 班 级: 24010104 学 号: 2012040101037 姓 名: 程里 指导教师: 罗振 说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要 求;数据不实 ,不予通过。报告和电子数据必须作为实验现象重复的关键依据。

学术诚信声明 本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。 本人签名: 日期:年月

沈阳航空航天大学课程设计任务书

课程设计总结:

目录 1 引言 0 1.1出租车计价器概述 0 1.2计价器整体功能描述结构 0 1.3各部分电路功能描述 (1) 2计价器硬件设计 (1) 2.1系统的硬件构成及功能 (1) 2.2MCS-51系列单片机内部结构及功能部件 (3) 2.2.1MCS-51系列单片机的内部结构框图 (3) 2.2.2单片机外部引脚说明 (4) 2.2.3并行输入/输出接口 (6) 3系统的软件设计 (6) 3.1软件总体设计 (6) 3.2系统主程序设计 (8) 3.3显示子程序服务程序 (9) 3.4按键服务程序 (9) 4系统调试与测试结果分析 (10) 4.1系统调试 (10) 4.1.1硬件调试 (10) 4.1.2软件调试 (10) 4.1.3软硬件联调 (10) 4.2 电路图 (11) 参考文献 (10) 附录(关键部分程序清单) (13)

单片机C语言程序设计师试题及答案

单片机C语言程序设计师试题 一、填空题 1、设X=5AH,Y=36H,则X与Y“或”运算为_________,X与Y的“异或”运算为________。 2、若机器的字长为8位,X=17,Y=35,则X+Y=_______,X-Y=_______(要求结果写出二进制形式)。 3、单片机的复位操作是__________(高电平/低电平),单片机复位后,堆栈指针SP的值是________。 4、单片机中,常用作地址锁存器的芯片是______________,常用作地址译码器芯片是_________________。 5、若选择内部程序存储器,应该设置为____________(高电平/低电平),那么,PSEN信号的处理方式为__________________。 6、单片机程序的入口地址是______________,外部中断1的入口地址是_______________。 7、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为_________,机器周期为_______________。 8、外围扩展芯片的选择方法有两种,它们分别是__________________和_______________。 9、单片机的内部RAM区中,可以位寻址的地址范围是__________________,特殊功能寄存器中,可位寻址的地址是____________________。 10、子程序返回指令是________,中断子程序返回指令是_______。 11、8051单片机的存储器的最大特点是____________________与____________________分开编址。 12、8051最多可以有_______个并行输入输出口,最少也可以有_______个并行口。 13、_______是C语言的基本单位。 14、串行口方式2接收到的第9位数据送_______寄存器的_______位中保存。 15、MCS-51内部提供_______个可编程的_______位定时/计数器,定时器有_______种工作方式。 16、一个函数由两部分组成,即______________和______________。 17、串行口方式3发送的第9位数据要事先写入___________寄存器的___________位。 18、利用8155H可以扩展___________个并行口,___________个RAM单元。 19、C语言中输入和输出操作是由库函数___________和___________等函数来完成。 二、选择题 1、C语言中最简单的数据类型包括(b )。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 2、当MCS-51单片机接有外部存储器,P2口可作为( c )。 A、数据输入口 B、数据的输出口 C、准双向输入/输出口 D、输出高8位地址 3、下列描述中正确的是( d )。 A、程序就是软件 B、软件开发不受计算机系统的限制 C、软件既是逻辑实体,又是物理实体 D、软件是程序、数据与相关文档的集合 4、下列计算机语言中,CPU能直接识别的是( d )。 A、自然语言 B、高级语言 C、汇编语言 D、机器语言 5、MCS-5l单片机的堆栈区是设置在( c )中。

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