单片机c语言出租车计时程序,基于单片机出租车计价器课题设计c语言编写(样例3)...

《基于单片机出租车计价器课题设计(c语言编写).doc》由会员分享,可免费在线阅读全文,更多与《基于单片机出租车计价器课题设计(c语言编写)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、lay){for(I=;I;i)循环次移位{tem=addr;DIO=(bit)(temamx);每次传输低字节addrgtgt=;SCLK=;右移一位SCLK=;}发送数据for(i=;igt;i){tem=dat;DIO=(bit)(temamx);datgtgt=;SCLK=;SCLK=;}CE=;}unsignedcharRead(unsignedcharaddr)数据读取子程序{unsignedchari,tem,dat,dat;CE=;SCLK=;CE=;发送地址for(i=;igt;i)循环次移位{tem=addr;DIO=(bit)(temamx);每次传输低字节addrgtgt=;SCLK=;。

2、AB[]==amamTAB[]==)||TAB[]==){TAB[]=;}}eak;case:ss();if(P==){for(i=;i!=;){i=P;ss();};TAB[]++;if(TAB[]==){TAB[]=;}}eak;default:eak;}}Voiddie(){intx;for(m=;mlt;){ss();qie(m);if(P==){for(x=;xlt;){ss();x=P;};m++;}}set();}voidmm(){TAB[]=Read(x);TAB[]=Read(x)%;TAB[]=Read(x);TAB[]=Read(x)%;TAB[]=;TAB[]=Coo;TAB[]=Coo。

3、];P=tm;P=;P=;P=;PsbitDIO=P^;*DS的IO脚数据*sbitCE=P^;*DS的RST脚片选*sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitACC=ACC^;sbitACC=ACC^;voidtime()interrut{inti,j;TH=x;TL=xa;i++;if(i==){i=;j++;};if(j==){j=;f=Coo;}}voidmDelay(unsignedintDelay){unsignedintI;for(;Delaygt;De。

4、[]=;}}}elsemmm();ss();if(P==){for(i=;ilt;){ss();i=P;}die();}}}P;ss();};TAB[]++;if(TAB[]==){TAB[]=;}}eak;case:ss();if(P==){for(i=;i!=;){i=P;ss();};TAB[]++;if(TAB[]==){TAB[]=;}}eak;case:ss();if(P==){for(i=;i!=;){i=P;ss();};TAB[]++;if(TAB[]==){TAB[]=;}}eak;case:ss();if(P==){for(i=;i!=;){i=P;ss();};TAB[]++;if((T。

5、=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det。

6、%;TAB[]=Coo%;if(TAB[]lt=amamTAB[]==amamTAB[]==){TAB[]=;}else{TAB[]=(+(Coo)*TAB[])%;}TAB[]=TAB[]*TAB[];TAB[]=Coo*TAB[]+Coo%*TAB[];TAB[]=(Coo*TAB[]+Coo%*TAB[])%;}voidcount()上电时能自动产生ms宽的复位脉冲;具有人工复位功能,当人工复位端输入低电平时,产生复位信号输出。复位电路如图所示:图复位电路图四、系统软件设计主程序设计程序的难度主要就是在数码管的显示和外部脉冲的采集部分,分别采用LS芯片对数码管进行段选,使数码管显示对应的数,另外使用LS对。

7、*DS的SCLK脚脉冲*al()初始化DS{Write(xE,x);禁止写保护Write(x,x);秒位初始化Write(x,x);分钟初始化Write(x,x);Write(x,x);Write(x,x);Write(xc,x);小时初始化Write(xE,x);允许写保护}voidset(){Write(xE,x);禁止写保护Write(x,TAB[]*+TAB[]);分钟初始化Write(x,TAB[]*+TAB[]);Write(xE,x);}voidss(){inti;uchar*;=TAB;for(i=;ilt;i++){det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P。

8、AB[]==amamTAB[]==)||TAB[]==){TAB[]=;}}eak;case:ss();if(P==){for(i=;i!=;){i=P;ss();};TAB[]++;if(TAB[]==){TAB[]=;}}eak;default:eak;}}Voiddie(){intx;for(m=;mlt;){ss();qie(m);if(P==){for(x=;xlt;){ss();x=P;};m++;}}set();}voidmm(){TAB[]=Read(x);TAB[]=Read(x)%;TAB[]=Read(x);TAB[]=Read(x)%;TAB[]=;TAB[]=Coo;TAB[]=Coo。

9、数码管进行位选,选择哪个数码管亮,采用的是动态显示。还有外部脉冲的收集,需要对里程数进行显示,所以必须要先进行脉冲的采集。程序流程图如图所示:图程序流程图子程序设计DS子程序流程图显示单价、总价、路程、时间等数据,循环扫描进行显示。(如果在一分钟内没有脉冲,开启终端,显示秒分子程序。DS子程序流程图如所示:图DS流程图开始写入实参数addrCE=SCLK=I=取ADDR低位Addr右移一位Sclk上升沿是否是上升沿Y等待上升沿Ni++;igt?结束YN显示子程序流程图显示子程序流程图如图所示:图显示子程序流程图修改时间子程序修改TAB数组里的前位数据,分别为小时、分钟、单价开始定义指针*将指针指向数组TAB将P。

10、赋值给DET,将dislaytab数组位赋DET值将TMP赋值给P,*P++Pgt?结束YN附录:程序清单includequotreghquotincludequotintrinshquotdefineucharunsignedcharuchartm;uchardet;ucharCoo;intm;intf;ucharcodeDisTab[]={xc,xf,xa,xb,x,x,x,xf,x,x,xc};字形码ucharTAB[];sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitP=P^;sbitSCLK=P^;。

11、=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;det=*;tm=DisTab[det];P=tm;P=;P=;P=;P=;P=;P=;++;}}voidsett(){TAB[]=Read(x);TAB[]=Read(x)%;TAB[]=Read(x);TAB[]=R 。

12、ead(x)%;TAB[]=;TAB[]=Coo;TAB[]=Coo%;TAB[]=Coo%;if(TAB[]lt=amamTAB[]==amamTAB[]==){TAB[]=;}else{TAB[]=(+(Coo)*TAB[])%;}TAB[]=TAB[]*TAB[];TAB[]=Coo*TAB[]+Coo%*TAB[];TAB[]=(Coo*TAB[]+Coo%*TAB[])%;}voidmmm(){TAB[]=Read(x);TAB[]=Read(x)%;TAB[]=Read(x);TAB[]=Read(x)%;TAB[]=;}voidqie(intj){uchari;switch(j){case:ss(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值