出租车计价器代码
出租车计价器 代码

case 4:P3=0xdf;P0=table[licheng%10];break;
case 5:P3=0xbf;P0=table[danjia/10]+0x80;break;
case 6:P3=0x7f;P0=table[danjia%10];break;
zongjine=400;
licheng=0;
danjia=qibu;
}
if(key3num==5) //退出功能键
{
key3num=0;
}
if(key3==0)
{
delay(5);
}
if(key3num==2) //调夜晚单价
{
if(key1==0)
{
delay(5);
if(key1==0)
{
danjia2++;
if(danjia2==100)
danjia2=0;
while(!key1);
delay(5);
sbit key0=P1^0; //清零
sbit key1=P1^1; //切换/+
sbit key2=P1^2; //-
sbit key3=P1^3; //功能键
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
danjia1--;
if(danjia1==-1)
danjia1=99;
while(!key2);
delay(5);
出租车计价器代码VHDL

SIGNAL I:INTEGER RANGE 0 TO 5 :=0; --当状态从go/wait转到idle时,希望将价格等持续显示5秒。
ELSIF (SA='1' AND SB='0') THEN STATE<=GO;
W2<="0000"; W1<="0000"; W0<="0000"; K2<="0000"; K1<="0000"; K0<="0000"; I<=0; FIN<='1'; CLK3S<='0';COUNT3S<=0; --此刻进入go状态已经一秒。
ELSE
STATE<=GO;
W2<=W2; W1<=W1; W0<=W0; K2<=K2; K1<=K1; K0<=K0;I<=I+1;
END IF;
ELSIF (SA='1' AND SB='0') THEN STATE<= GO;
END IF;
END IF;
END PROCESS U1;
U2:PROCESS(CLK1HZ) --有限状态机设计模块
BEGIN
IF RST='1' THEN W2<="0000"; W1<="0000"; W0<="0000"; K2<="0000"; K1<="0000"; K0<="0000"; I<=0; FIN<='0';
出租车计价器故障代码---5p

出租车计价器故障代码---5p
最近,出租车司机朋友们正在经历着混乱和困惑。
原因是出租车计价器突然出现5p故障代码。
这意味着,出租车司机们在完成一次行程后,收到的费用会受到一定的影响。
首先,在解决5p故障的过程中,出租车司机们很多情况下需要进行重置。
尤其是在抵达乘客目的地之后,大多数故障代码都要求出租车司机们进行重置操作。
然而,在某些情况下,当乘客要求司机们读取费用信息时,计价器仍然会出现5p故障代码。
此外,在出现5p故障后,还可以通过更换计价器来解决问题。
当司机们检查到计价器不能正常工作时,他们可以从许多供应商处购买新的计价器。
购买新的计价器可以解决司机们出现的5p故障问题,但同时要花费相当多的金钱才能重新购买。
最后,出租车司机们可以通过向专业的出租车计价器维修商寻求帮助来解决5p故障的问题。
在5p故障出现时,司机们可以直接联系出租车计价器维修商,专业的技术人员可以根据故障的具体原因,对出租车计价器进行必要的维护和修复,尽快恢复计价器的正常工作状态。
以上就是关于出租车计价器出现5p故障代码出现时,司机可以采取的措施。
司机们应该根据计价器的实际情况,选择最合适的解决方案,以尽可能地降低费用,为乘客提供更安全和便利的服务。
出租车计价器(单片机c语言)

分类号编号毕业设计题目:基于单片机的出租车计价器的设计——电子设计系别信息工程学院专业电子信息工程姓名学号2010年6月1 日学院毕业设计任务书设计题目:基于单片机的出租车计价器的设计——硬件部分专业:电子信息工程班级学号:姓名:指导教师:设计期限:2011年3月1日开始2011年6月1日结束院、系:北京信息工程学院2011年3 月1 日一、设计目的通过毕业设计使学生了解和掌握单片机应用技术;了解和掌握C语言的程序设计同硬件电路的结合;熟练运用proteus,keilC等软件的操作;了解和掌握单片机硬件电路的焊接和调试;了解和掌握掉电存储芯片AT24C02、霍尔传感器A44E、数码管、驱动芯片74LS245等外部接口芯片器件的应用。
二、主要设计内容实现出租车行驶里程和总金额的显示,预设起步价和起步公里数;实现清零、复位和掉电保护功能;实现对单价的调整。
三、重点研究问题(1)按下启动按键,显示起步里程与起步价。
(2)按模拟传感器信号的按键,显示行驶里程与总金额。
(3)按键控制清零、复位、掉电保护、调整预设单价。
(4)在软件中实现起步价,单价。
四、主要技术指标(1)数码管显示起步里程、单价,总里程、总金额。
(2)用按键控制清零、复位、掉电保护、调整预设单价。
五、设计成果要求(1)源程序通过编译、运行(2)软件烧录单片机硬件进行调试,运行(3)实现所述功能(4)电路板焊接、检测(5)最终提交软硬件、设计说明书、外文翻译、毕业设计说明书等六、其它参考文献:[1] 谭浩强.C程序设计(第二版).清华大学出版社.2003[2]潘永雄.新编单片机原理与应用.西安电子科技大学出版社.2003设计开题报告2011年3 月15日摘要现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。
而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。
出租车计价器程序

float f; //里程数(Km)为简化运算以下全部取整数浮点数
int g; //千米数
uchar j; //千米个位
uchar k; //千米十位
uchar h; //总费用
uchar hge;//总费用个位
uchar hshi;//总费用十位
delay(5);
command(0x38);
delay(5);
command(0x38);
command(0x08); //显示关闭
command(0x01); //显示清屏
command(0x06); //显示光标移动设置
delay(5);
command(0x0C); //显示开及光标设置
}
//**********写数据至LCD************************
#define shuju P0//LCD1602 P0输出显示数据
//********位定义*****************************
sbit rs=P2^1; //LCD1602忙碌检测
sbit rw=P1^5; //LCD1602读写控制
sbit en=P1^6; //LCD1602使能端
}
//*******独立按键检测**********************
void key(void)
{
if(key1==0)
{
delay(15);
if(key1==0)//按键消抖
{
TR0=1;//打开定时器
flag=0;//标志位设置
flag1=1;
}
}
if(key2==0)
出租车计价器

出租车计价器课程设计一.设计任务设计并制作一台出租车计价器。
调试时采用10赫兹脉冲信号模拟,每个脉冲代表汽车行进10米。
基本要求:(1) 不同情况具有不同的收费标准白天 1元/公里 晚上 2元/公里 途中等待(>30秒开始收费) 1元/30秒(2) 数据输出(6位LED数码管显示)单价(元)输出2 位 路程(公里)输出2 位 总金额(元)输出2 位(3) 按键(4个)启动计价开关 数据复位(清零) 白天/晚上转换 途中等待转换二、硬件电路设计及描述1.硬件电路原理图(如图1所示)图1硬件电路原理图如图1所示6个数码管显示分别显示单位(元),里程,总金额。
采用动态显示方式,由P0口接6个数码管的八段,P2口分别接6个数码管的公共端,P0口输出数码管的字段码,P2口输出数码管的字位码。
接于P3.0,P3.1,P3.2的三个按键S1—S3为调整按键,S1为启动计价键,S2为白天晚上转换键,S3为数据复位(清零)键,SW1为途中等待转换键。
三、软件设计流程及描述1.出租车计价器的程序设计P3.0为启动按键(通过键盘扫描形式)P3.1为白天黑夜转换按键(通过键盘扫描形式)P3.2 为复位清零按键(以外部中断0的形式实现)定时器0 用于等待时间的定时,工作在方式1定时器1 用于计数用于计数,工作在方式2(1) 存储单元分配71H单元:脉冲计数单元;72H单元:总金额十位显示单元;73H单元:总金额个位显示单元;74H单元:里程十位显示单元;75H单元:里程个位显示单元;76H单元:单价个位显示单元;77单元:单价十位显示单元。
55H:50ms计数单元。
(2) 主程序设计主程序流程图如图2所示,由于用到了外部中断0,所以,按中断系统的编程结构在0000H处放置一条长跳转指令LJMP START跳转到主程序入口,在外部中断0的中断入口地址0003H处放置一条长跳转指令LJMP EXT0跳转到外部中断0服务程序处。
出租车计价器(单片机c语言)

P1.1:接功能键。
P1.3:接清零键。
P0口接数码管段选端,P2口接驱动芯片。
P3.4(T0):接模拟开关按键,替代了出租车计价器中的霍尔传感器。
P3.1、P3.0口接掉电保护电路。
2.3
按下计价按键时,显示起步价和起步里程范围,这些在程序中设置;当等于或超过两公里后,按计算总价的公式为:总价=起步价+单价*(总里程-起步里程)+1进行计价。本设计中,起步价为4元,起步里程为2公里,当然这些数据可以在程序中改写,以满足不同时期价格调整的需要。下图是通过在Keil C中编译通过,并生成Hex文件,在PROTEUS中仿真通过的整体硬件原理图:
图2.11时钟电路
2.4.6
按键控制电路中,单片机的P1.0管脚接启动/停止按键,通过软件编程,当按下按键计数器开始工作,开始计价;当弹起按键时,计数器停止工作,停止计价,启动/停止按键带自锁功能。按下启动按键,开关处于导通状态,这时给P1.0送低电平信号,这时TR0=1,计数器开始工作,调用计价子程序开始计价。清零按键接单片机的P1.3管脚,按下清零按键,P1.3为低电平,调用清零子程序,用于将显示数据清零,在程序中给各位赋0代码(0x3f),以达到清零的目的,方便下次计价。另外为功能键,控制价格调整,这个按键是在没有按下启动/停止按键时有作用,计价过程中无效。
能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。
图2.8复位电路
2.4.4
掉电保护电路中采用了存储芯片AT24C02。
AT24C02是一个CMOS标准的EEPROM存储器,是AT24CXX系列(AT24C01/02/04/08/16)成员之一,这些EEPROM存储器的特点是功耗小、成本低、电源范围宽,静态电源电流约30uA~110uA,具有标准的I2C总线接口,是应用广泛的小容量存储器之一。
EDA编程出租车计价器

目录1课程设计目的22设计任务与要求22.1设计任务22.2设计要求23系统组成24模块设计34.1秒分频模块34.2控制模块34.3计量模块34.3.1计价部分44.3.2计时部分44.3.3计程部分44.4译码显示模块45程序调试运行45.1顶层原理图45.2仿真结果56硬件验证66.1引脚锁定66.2硬件验证情况77、课程设计总结77.1、收获77.2、心得体会8参考文献9附录10出租车自动计价器的设计1课程设计目的为培养学生树立正确的设计思想和实事求是的工作作风,学习运用所学基础知识理论、专业知识、基本技能去分析和解决工程技术实际问题,提高学生的综合素质,使学生成为工程应用型合格人才,故进行《EDA技术及应用》的课程设计。
帮助学生全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
2设计任务与要求2.1设计任务本课题要求设计车租车自动计价器,能基本实现自动计价的功能。
2.2设计要求本出租车计价器的计费系统:行程3公里内,且等待累计时间2分钟内,起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟1.5元计费。
并能显示行驶公里数、等待累计时间、总费用。
设计的主要技术指标如下:①、计价范围:0~999.9元计价分辨率:0.1元②、计程范围:0~99公里计程分辨率:1公里③、计时范围:0~59分计时分辨率:1分3系统组成出租车自动计价器的系统方框图如图1所示:它有分频模块、控制模块、计时模块、计费模块及显示等模块组成。
图1.出租车自动计价器的系统方框图4模块设计4.1秒分频模块秒分频模块对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,15Hz和1Hz 的三种频率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
出租车计价器代码#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();_nop_();}; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit exter=P3^3; //外部中断sbit key0=P1^0; //清零sbit key1=P1^1; //切换/+sbit key2=P1^2; //-sbit key3=P1^3; //功能键sbit SCL=P2^2;uint inter,aa,bb,temp,temp1,numwei;uint zongjine,licheng,dengdai;uint zongjine1,licheng1;uint key3num,qiehuantemp,delaytemp;uchar danjia1,danjia2,danjia3,danjia,qibu;void delay(uint x) //延时时基为1ms{int i,j;for(i=x;i>0;i--)for(j=340;j>0;j--);}void display() //数码管显示{//数码管动态显示switch(numwei){case 0:P3=0xfe;P0=table[zongjine/100];break;case 1:P3=0xfd;P0=table[zongjine%100/10]+0x80;break;case 2:P3=0xfb;P0=table[zongjine%100%10];break;case 3:P3=0xef;P0=table[licheng/10];break;case 4:P3=0xdf;P0=table[licheng%10];break;case 5:P3=0xbf;P0=table[danjia/10]+0x80;break;case 6:P3=0x7f;P0=table[danjia%10];break;}if(numwei==7)numwei=0;}void keyscan() //键盘扫描{if(key3==0) //功能键调节{delay(5);if(key3==0){key3num++;if(key3num==5) key3num=0;while(!key3);delay(5);while(!key3);while(key3num){if(key3num==1) //调白天单价{if(key1==0){delay(5);if(key1==0){danjia1++;if(danjia1==100)danjia1=0;while(!key1);delay(5);while(!key1);}}if(key2==0){delay(5);if(key2==0){danjia1--;if(danjia1==-1)while(!key2);delay(5);while(!key2);}}zongjine=100;licheng=0;danjia=danjia1;}if(key3num==2) //调夜晚单价{if(key1==0){delay(5);if(key1==0){danjia2++;if(danjia2==100)danjia2=0;while(!key1);delay(5);while(!key1);}}if(key2==0){delay(5);if(key2==0){danjia2--;if(danjia2==-1)danjia2=99;while(!key2);delay(5);while(!key2);}}zongjine=200;danjia=danjia2;}if(key3num==3) //调等待单价{if(key1==0){delay(5);if(key1==0){danjia3++;if(danjia3==100)danjia3=0;while(!key1);delay(5);while(!key1);}}if(key2==0){delay(5);if(key2==0){danjia3--;if(danjia3==-1)danjia3=99;while(!key2);delay(5);while(!key2);}}zongjine=300;licheng=0;danjia=danjia3;}if(key3num==4) //调起步价{if(key1==0){delay(5);if(key1==0){if(qibu==100)qibu=0;while(!key1);delay(5);while(!key1);}}if(key2==0){delay(5);if(key2==0){qibu--;if(qibu==-1)qibu=99;while(!key2);delay(5);while(!key2);}}zongjine=400;licheng=0;danjia=qibu;}if(key3num==5) //退出功能键{key3num=0;}if(key3==0){delay(5);if(key3==0){key3num++;while(!key3);delay(5);while(!key3);}}}}}}void init(){zongjine=0;licheng=0;danjia=0;bb=0; //判断是否等待的时基个数inter=0;EA=1; //开总中断EX1=1; //开外部中断1IT1=1; //触发方式下降沿TMOD=0x01;TH0=(65536-3000)/256;TL0=(65536-3000)%256;ET0=1; //开定时器T0中断TR0=1; //开定时器T0P3=0x08;P0=table[0];}void jisuan(){if(licheng>3)zongjine1=qibu+(licheng-3)*danjia+dengdai*danjia3; //金额计算elsezongjine1=qibu+dengdai*danjia3; //起步公里内金额计算}void qiehuan(){if(key1==0) //白天夜晚切换{delay(5); //键盘防抖if(key1==0)qiehuantemp=!qiehuantemp;while(!key1);delay(5);while(!key1);}if(qiehuantemp==0)danjia=danjia2;if(qiehuantemp==1)danjia=danjia1;}void main(){init();qiehuantemp=1;key3num=0;while(1){if(key3num==0){zongjine=zongjine1,danjia=danjia,EX1=1;}else EX1=0;qiehuan(); //切换白天夜晚单价jisuan(); //计算总金额keyscan();if(key0==0) //清零键init();}}void inter1() interrupt 2 //脉冲中断{inter++;if(inter==50){inter=0;licheng++;if(licheng==100) licheng=0;}}void timer0() interrupt 1{TH0=(65536-3000)/256;TL0=(65536-3000)%256;display();bb++;temp1=licheng; //测试是否进入等待if(bb==10000) //10s无反应进入等待计费{bb=0;if(temp&&temp1) dengdai++;temp=licheng;}}。