好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

基于Proteus的单片机

课程: 学院: 班级: 姓名: 学号:

小组其他成员: 指导老师:

出租车计价器的设计一、 设计背景

随着出租车行业的发展,对出租车计费器的要求也越来越高。二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而单片机开发的系统以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。

现在各大中城市出租车行业都已普及自动计费器,所以计费器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计费器的普及也是毫无疑问的,所以未来汽车计费器的市场还是十分有潜力的。

二、设计方案

1.设计功能:

计价功能:3.5公里以内(含3.5公里)价格为8 元, 超过3.5公里以后每0.5公里加0.8 元, 不足0.5公里按0.5公里计。 2.设计过程:

分为软件设计及硬件设计两个主要部分。其中,软件设计包括基于C语言的单片机源程序设计。硬件设计包括四个模块的设计即:主控模块,通信模块,电源模块,按键及显示模块。

三、软件设计

1.设计流程单片机的软件设计流程 如右图所示

其中初始化模块由硬件初始化和软件初 始化两部分组成, 硬件初始化主要是 对单片机及其它相关芯片进行初始

化; 而软件初始化主要是对各种软件 标志进行初始化, 同时将断电前保存 的各种状态数据读入单片机的RAM中。

2.单片机源程序

#include \#include \#define uchar unsigned char uchar a,b=0,temp=0x01; unsigned char

table[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,

0xBF,0x86,0xDB,0xCF,0xE6,0xED

,0xFD,0x87,0xFF,0xEF

};

unsigned

char

table1[]={ 0xBF,0x3F,0x3F,0x3F,0x3F,0xBF,0x3F,0x3F}; int m=0,n=10,ge=0,shi=0,h=0; uchar

n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0;

void delay (uchar t) for(t1=0;t1<10;t1++) for(t2=0;t2

void init () { P1_3=0; P2=0xff; P0=table[10]; delay(10); }

void display () {

P2_0=0;

P0=table[n1+10]; delay(1);

P2_0=1;

P2_1=0; if(h<3000)

P0=table[n2]; delay(1); P2_1=1;

}

else

{

{

P0=table[n2+n]; delay(1);

P2_1=1;

} P2_2=0; P0=table[n3]; delay(10);

P2_2=1;

P2_3=0; P0=table[n4]; delay(1);

P2_3=1;

P2_4=0; P0=table[n5]; delay(1); P2_4=1; P2_5=0; P0=table[n6]; delay(1); P2_5=1; P2_6=0; P0=table[n7]; delay(1);

P2_6=1;

P2_7=0; P0=table[n8]; delay(1);

P2_7=1;

}

void display1() { {

n7=n7+8;

}

if(n7<10)

{ n7=n7;

}

else {

n7=n7-10; n6++; }

if(n6==20) // { n6=10; n5++; }

if(n5==10) {

n5=0;

}

n4++; {

TH0=0X00; TL0=0X00; b++; h++; if(b==3) {

}

void main() {

TMOD=0X01; TH0=0X00; TL0=0X00; ET0=1; TR0=1; init(); while(1) {

if( P1_1==0 ) EA=0; init(); break;

}

if(P1_0==0 ) { EA=1;

}

else { EA=0;

}

display (); }

}

void int0() interrupt 1

b=0; if(n3<10) { n3++; }

if(n3==10) { n3=0;

n2++;

} if(n2==10) {

n2=0;

n1++;

}

if(n1<1) {

n4=n5=n7=n8=0; n6=18;

}

// 运行到9.99

if(n1==9 && n2==9 && n3==9)

{

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

基于Proteus的单片机课程:学院:班级:姓名:学号:小组其他成员:指导老师:出租车计价器的设计一、设计背景随着出租车行业的发展,对出租车计费器的要求也越来越高。二十世纪后半期,随着集成电路和计算机技术的飞速发
推荐度:
点击下载文档文档为doc格式
4hdgv63erq7dd7d92wae4uc568cqjj01a1v
领取福利

微信扫码领取福利

微信扫码分享