当前位置:文档之家› 电子设计资料-出租车计价器-程序

电子设计资料-出租车计价器-程序

#include<reg52.h>#define uchar unsigned charsbit P3_4=P3^4;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x86,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[4];int qw,bw,sw,gw,a,b,c;void disp(void){for(c=3;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void scjs(void)interrupt 3{TH1=0X3C;TL1=0xB0;a=a+1;if(a==2){a=0;P3_4=!P3_4;if(P3_4==0){b=TH0*256+TL0;///yw=sz[0]=b/100000;//ww=sz[0]=b/10000%10;qw=sz[0]=b/1000%10;bw=sz[1]=b/100%10;sw=sz[2]=b/10%10;gw=sz[3]=b%10;disp();}}}main(){IE=0X88;TH1=0X3C;TL1=0XB0;TR0=1;TR1=1;a=0;while(1);}2#include<reg52.h>#define uchar unsigned charsbit P3_4=P3^4;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f;void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void scjs(void)interrupt 3{TH1=0X3C;TL1=0xB0;a=a+1;if(a==2){a=0;P3_4=!P3_4;if(P3_4==0){b=TH0*256+TL0;d=34;e=6;f=7;qw=sz[0]=b/100000;bw=sz[1]=b/10000%10;sw=sz[2]=b/1000%10;gw=sz[3]=b/100%10;yw=sz[4]=b/10%10;ww=sz[5]=b%10;disp();}}}main(){TMOD=0x15;IE=0X88;TH1=0X3C;TL1=0XB0;TR0=1;TR1=1;a=0;while(1);}3#include<reg52.h>#define uchar unsigned charsbit P3_4=P3^4;sbit jia=P2^0;sbit jian=P2^1;sbit gl=P2^2;sbit hp=P2^3;unsigned char keycnt=0;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f;d=46; //单价e=00; //公里数f=00;//jiage=d*e; //金额void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void KEY() //按键扫描程序{unsigned char i,j;if(hp==0){for(i=20;i>0;i--) //延时去干扰for(j=248;j>0;j--);if(hp==0){keycnt++;switch(keycnt) //按下次数判断{case 1: //第一次按下d=40;break;case 2: //第二次按下d=50;break;case 3: //第三次按下d=60;keycnt=0; //重新开始判断键值break;}while(hp==0);}}void scjs(void)interrupt 3 {TH1=0X3C;TL1=0xB0;a=a+1;if(a==2){a=0;P3_4=!P3_4;if(P3_4==0){//b=TH0*256+TL0;f=e*d/10;qw=sz[0]=d/10%10;bw=sz[1]=d%10;sw=sz[2]=e/10%10;gw=sz[3]=e%10;yw=sz[4]=f/10%10;ww=sz[5]=f%10;if(jia==0){d++;}if(jian==0){d--;}if(gl==0){e=5;}disp();KEY();}}}main(){void KEY();TMOD=0x15;IE=0X88;TH1=0X3C;TL1=0XB0;TR0=1;TR1=1;a=0;while(1);}4#include<reg52.h>#define uchar unsigned charsbit P3_4=P3^4;sbit jia=P2^0;sbit jian=P2^1;sbit gl=P2^2;sbit hp=P2^3;sbit j=P2^4;unsigned char keycnt=0;unsigned **t=0;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f,g;d=46; //单价e=00; //公里数f=00;//jiage=d*e; //金额void jishuqi(){if(j==0)cnt++;if(cnt=100)e++;cnt=0;}void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void KEY() //按键扫描程序{unsigned char i,j;if(hp==0){for(i=20;i>0;i--) //延时去干扰for(j=248;j>0;j--);if(hp==0){keycnt++;switch(keycnt) //按下次数判断{case 1: //第一次按下d=46;break;case 2: //第二次按下d=12;break;case 3: //第三次按下d=78;keycnt=0; //重新开始判断键值break;}while(hp==0);}}}void scjs(void)interrupt 3 {TH1=0X3C;TL1=0xB0;a=a+1;if(a==2){a=0;P3_4=!P3_4;if(P3_4==0){//b=TH0*256+TL0;if(e>3)f=g;else f=5;//g=e*d/10;//f=e*d/10+5;qw=sz[0]=d/10%10;bw=sz[1]=d%10;sw=sz[2]=e/10%10;gw=sz[3]=e%10;yw=sz[4]=f/10%10;ww=sz[5]=f%10;if(jia==0){d++;}if(jian==0){d--;}if(gl==0){e=5;}disp();KEY();jishuqi();}}}main(){void KEY();TMOD=0x15;TH1=0X3C;TL1=0XB0;TR0=1;TR1=1;a=0;while(1);}5#include<reg52.h>#define uchar unsigned charsbit P3_4=P3^4;sbit jia=P2^0;//价格加sbit jian=P2^1;//价格减sbit gl=P2^2; //公里sbit hp=P2^3; //换屏sbit j=P2^4;//记数unsigned char keycnt=0;unsigned **t=0;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f,g;d=46; //单价e=03; //公里数f=05;//jiage=d*e; //金额/*void jishuqi(){if(j==0)cnt++;e++;cnt=0;}*/ /*void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void KEY() //按键扫描程序{unsigned char i,j;if(hp==0){for(i=20;i>0;i--) //延时去干扰for(j=248;j>0;j--);if(hp==0){keycnt++;switch(keycnt) //按下次数判断{case 1: //第一次按下d=46;break;case 2: //第二次按下d=12;break;case 3: //第三次按下d=78;keycnt=0; //重新开始判断键值break;}while(hp==0);}}}void led(void){qw=sz[0]=d/10%10;bw=sz[1]=d%10;sw=sz[2]=e/10%10;gw=sz[3]=e%10;yw=sz[4]=f/10%10;ww=sz[5]=f%10;}void scjs(void)interrupt 3 {TH1=0X3C;TL1=0xB0;a=a+1;if(a==2){a=0;P3_4=!P3_4;if(P3_4==0){//b=TH0*256+TL0;//f=5;if(jia==0){d++;}if(jian==0){d--;}if(gl==0){e++;}if(e>3){g=e*d/10;f=g;}//f=e*d/10+5;led();disp();KEY();jishuqi();}}}main(){void KEY();TMOD=0x15;IE=0X88;TH1=0X3C;TL1=0XB0;TR0=1;TR1=1;a=0;while(1);}6#include<reg52.h>#define uchar unsigned char sbit P3_4=P3^4;sbit jia=P2^0;//价格加sbit jian=P2^1;//价格减sbit gl=P2^2; //公里sbit hp=P2^3; //换屏sbit j=P2^4;//记数unsigned char keycnt=0;unsigned **t=0;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f,g;d=46; //单价e=03; //公里数f=05;//jiage=d*e; //金额void jishuqi(){if(j==0){cnt++;**t){case 10:e++;cnt=0;break;while(hp==0);}}}void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void KEY() //按键扫描程序{unsigned char i,j;if(hp==0){for(i=20;i>0;i--) //延时去干扰for(j=248;j>0;j--);if(hp==0){keycnt++;switch(keycnt) //按下次数判断{case 1: //第一次按下d=46;break;case 2: //第二次按下d=12;break;case 3: //第三次按下d=78;keycnt=0; //重新开始判断键值break;}while(hp==0);}}}void led(void){qw=sz[0]=d/10%10;bw=sz[1]=d%10;sw=sz[2]=e/10%10;gw=sz[3]=e%10;yw=sz[4]=f/10%10;ww=sz[5]=f%10;}void scjs(void)interrupt 3{TH1=0X3C;TL1=0xB0;a=a+1;{a=0;P3_4=!P3_4;if(P3_4==0){//b=TH0*256+TL0; //f=5;if(jia==0){d++;}if(jian==0){d--;}if(gl==0){e++;}if(e>3){g=e*d/10;f=g;}led();disp();KEY();jishuqi();}}}main(){void KEY(); TMOD=0x15;IE=0X88;TH1=0X3C;TL1=0XB0;TR0=1;a=0;while(1);}7#include<reg52.h>#define uchar unsigned charsbit P3_4=P3^4;sbit jia=P2^0;//价格加sbit jian=P2^1;//价格减sbit gl=P2^2; //公里sbit hp=P2^3; //换屏sbit j=P2^4;//记数unsigned char keycnt=0;unsigned **t=0;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f,g,u,v,w,z;d=46; //单价e=03; //公里数f=05;u=12;//时v=00;//分w=00;//秒//jiage=d*e; //金额void jishuqi(){{cnt++;**t){case 10:e++;cnt=0;break;while(hp==0);}}}void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void KEY() //按键扫描程序{unsigned char i,j;if(hp==0){for(i=20;i>0;i--) //延时去干扰for(j=248;j>0;j--);if(hp==0){keycnt++;switch(keycnt) //按下次数判断{case 1: //第一次按下d=46;break;case 2: //第二次按下d=12;break;case 3: //第三次按下d=78;keycnt=0; //重新开始判断键值break;}while(hp==0);}}}void led(void) //显示时间{z=TH0*256+TL0;if(z>3){w++;z=0;}if(w>59){v++;w=0;}if(v>59){u++;v=0;}if(u>23){u=0;}qw=sz[0]=u/10%10;bw=sz[1]=u%10;sw=sz[2]=v/10%10;gw=sz[3]=v%10;yw=sz[4]=w/10%10;ww=sz[5]=w%10;}void led1(void) //显示价格里程金额{qw=sz[0]=d/10%10;bw=sz[1]=d%10;sw=sz[2]=e/10%10;gw=sz[3]=e%10;yw=sz[4]=f/10%10;ww=sz[5]=f%10;}void scjs(void)interrupt 3 {TH1=0X3C;TL1=0xB0;a=a+1;if(a==3){a=0;P3_4=!P3_4;if(P3_4==0){//b=TH0*256+TL0;//f=5;if(jia==0){d++;}if(jian==0){d--;}if(gl==0){e++;}if(e>3){g=e*d/10;f=g;}led();disp();KEY();jishuqi();}}}main(){void KEY();TMOD=0x15;IE=0X88;TH1=0X3C;TL1=0XB0;TR0=1;TR1=1;a=0;while(1);}8#include<reg52.h>#define uchar unsigned charsbit P3_4=P3^4;sbit jia=P2^0;//价格加sbit jian=P2^1;//价格减sbit gl=P2^2; //公里sbit hp=P2^3; //换屏sbit j=P2^4;//记数unsigned char keycnt=0;unsigned **t=0;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f,g,u,v,w,z;d=46; //单价e=03; //公里数f=05;u=12;//时v=00;//分w=00;//秒//jiage=d*e; //金额void jishuqi(){if(j==0){cnt++;**t){case 10:e++;cnt=0;break;while(hp==0);}}}void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}void KEY() //按键扫描程序{unsigned char i,j;if(jian==0){for(i=20;i>0;i--) //延时去干扰for(j=248;j>0;j--);if(hp==0)keycnt++;switch(keycnt) //按下次数判断{case 1: //第一次按下d=46;break;case 2: //第二次按下d=12;break;case 3: //第三次按下d=78;keycnt=0; //重新开始判断键值break;}while(hp==0);}}}void shizhong(void){z=TH0*256+TL0;if(z>1){w++;z=0;}if(w>59){v++;w=0;}if(v>59){u++;v=0;}if(u>23){}}void led(void) //显示时间{if(jian==0){u++;}if(gl==0){v++;}if(hp==0){w++;}qw=sz[0]=u/10%10;bw=sz[1]=u%10;sw=sz[2]=v/10%10;gw=sz[3]=v%10;yw=sz[4]=w/10%10;ww=sz[5]=w%10;}void led1(void) //显示价格里程金额{KEY();qw=sz[0]=d/10%10;bw=sz[1]=d%10;sw=sz[2]=e/10%10;gw=sz[3]=e%10;yw=sz[4]=f/10%10;ww=sz[5]=f%10;}void scjs(void)interrupt 3{TH1=0X3C;TL1=0xB0;a=a+1;if(a==12)a=0;P3_4=!P3_4;if(P3_4==0){//b=TH0*256+TL0; //f=5;/*if(jia==0){d++;}if(jian==0){d--;}if(gl==0){e++;}*/if(e>3){g=e*d/10;f=g;}shizhong();if(jia==0)led();elseled1();disp();jishuqi();}}}main(){void KEY(); TMOD=0x15;IE=0X88;TH1=0X3C;TR0=1;TR1=1;a=0;while(1);}9最终程序#include<reg52.h>#include <stdio.h>#include <absacc.h>#define uchar unsigned charsbit P3_4=P3^4;sbit jia=P2^0;//价格加sbit jian=P2^1;//价格减sbit gl=P2^2; //公里sbit hp=P2^3; //换屏sbit j=P2^4;//记数unsigned char keycnt=0;unsigned **t=0;bit write=0; //写24C08 的标志;//code uchar tab[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,}; //code uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; code uchar tab[10]={0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef,}; uchar sz[6];int yw,ww,qw,bw,sw,gw,a,b,c,d,e,f,g,u,v,w,z;d=46; //单价e=00; //公里数f=05;v=00;//分w=00;//秒//jiage=d*e; //金额/////////24C08 读写驱动程序////////////////////sbit scl=P3^4; // 24c08 SCLsbit sda=P3^5; // 24c08 SDAvoid delay1(unsigned char x){ unsigned int i;for(i=0;i<x;i++);;}void flash(){ ; ; }void x24c08_init() //24c08 初始化子程序{scl=1; flash(); sda=1; flash();}void start() //启动(I方C)总线{sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();} void stop() //停止(I方C)总线{sda=0; flash(); scl=1; flash(); sda=1; flash();}void writex(unsigned char j) //写一个字节{ unsigned char i,temp;temp=j;for (i=0;i<8;i++){temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();} scl=0; flash(); sda=1; flash();}unsigned char readx() //读一个字节{unsigned char i,j,k=0;scl=0; flash(); sda=1;for (i=0;i<8;i++){flash(); scl=1; flash();if (sda==1) j=1;else j=0;k=(k<<1)|j;scl=0;}flash(); return(k);}void clock() //(I方C)线时钟{unsigned char i=0;scl=1; flash();while ((sda==1)&&(i<255))i++;scl=0; flash();}////////从24c02 的地址address 中读取一个字节数据/////unsigned char x24c08_read(unsigned char address){unsigned char i;start(); writex(0xa0);clock(); writex(address);clock(); start();writex(0xa1); clock();i=readx(); stop();delay1(10);return(i);}//////向24c02 的address 地址中写入一字节数据info///// void x24c08_write(unsigned char address,unsigned char info){EA=0;start(); writex(0xa0);clock(); writex(address);clock(); writex(info);clock(); stop();EA=1;delay1(50);}/////////////24C08 读写驱动程序完/////////////////////void Delay(unsigned int tc) //延时程序{while( tc != 0 ){unsigned int i;for(i=0; i<100; i++);tc--;}}/////////////////////////////////////////////////////////////////////////////void jishuqi(){if(j==0){cnt++;**t){case 30:e++;cnt=0;break;while(hp==0);}}}void disp(void){for(c=5;c>=0;c--){SBUF=tab[sz[c]];while(!TI);TI=0;}}/*void KEY() //按键扫描程序{unsigned char i,j;if(jian==0){for(i=20;i>0;i--) //延时去干扰for(j=248;j>0;j--);if(hp==0){keycnt++;switch(keycnt) //按下次数判断{case 1: //第一次按下d=46;break;case 2: //第二次按下d=12;break;case 3: //第三次按下d=78;keycnt=0; //重新开始判断键值break;while(hp==0);}}}*/void shizhong(void){z=TH0*256+TL0;if(z>1){w++;z=0;}if(w>59){v++;w=0;}if(v>59){u++;v=0;}if(u>23){u=0;}}void led(void) //显示时间{if(jian==0){u++;}if(gl==0){v++;}if(hp==0){w++;}qw=sz[0]=u/10%10;bw=sz[1]=u%10;sw=sz[2]=v/10%10;gw=sz[3]=v%10;yw=sz[4]=w/10%10;ww=sz[5]=w%10;}void led1(void) //显示价格里程金额{//KEY();if(jian==0){d=46;}if(gl==0){d=78;}if(hp==0){e=0;3.-f=0;}qw=sz[0]=d/10%10;bw=sz[1]=d%10;sw=sz[2]=e/10%10;gw=sz[3]=e%10;yw=sz[4]=f/10%10;ww=sz[5]=f%10;jishuqi();x24c08_write(2,e);}void scjs(void)interrupt 3{TH1=0X3C;TL1=0xB0;a=a+1;if(a==12){a=0;P3_4=!P3_4;if(P3_4==0){//b=TH0*256+TL0; //f=5;/*if(jia==0){d++;}if(jian==0){d--;}if(gl==0){e++;}*/if(e>3){g=e*d/10;f=g;}shizhong();if(jia==0)led();elseled1();disp();jishuqi();}}}main(){x24c08_init(); //初始化24C08e=x24c08_read(2);//读出保存的数据赋于//void KEY();TMOD=0x15;IE=0X88;TH1=0X3C;TL1=0XB0;TR0=1;TR1=1;a=0;while(1);}。

相关主题