找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4339|回復(fù): 1
收起左側(cè)

分享一個(gè)出租車計(jì)費(fèi)系統(tǒng),可以顯示價(jià)格和里程,仿真+單片機(jī)源程序

[復(fù)制鏈接]
ID:325676 發(fā)表于 2018-7-1 08:18 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
0.png

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define        uint unsigned int
  4. #define T 100         
  5. sbit RES=P3^7;       
  6. int S=0,M=30;
  7. uchar count=0,ct=0;

  8. uchar tab_d[10]={0X3F,0X06,0X5B,0X4F,0X66,         //段碼
  9. 0X6D,0X7D,0X07,0X7F,0X6F};
  10. uchar tab_wei[8]={0xfe,0xfd,0xfb,0xf7,                 //位碼
  11. 0xef,0xdf,0xbf,0x7f};

  12. //延時(shí)函數(shù)
  13. void delay(uint t)  // tms
  14. {
  15.         uchar i=0;
  16.         while(t--)
  17.         for(i;i<120;i++);
  18. }

  19. //數(shù)碼管顯示函數(shù)
  20. void disp(uchar d,uchar x,uchar w)        //d為段選,x為小數(shù)點(diǎn),w為位選
  21. {
  22.         P2=0xff;         //位碼選擇         只能先設(shè)置位碼再設(shè)置段碼
  23.         P2=tab_wei[w];               
  24.         P0=0;
  25.         P0=tab_d[d]|x;                 // 加上小數(shù)點(diǎn)       
  26.         delay(T);                       
  27. }

  28. //計(jì)數(shù)函數(shù)
  29. void timer()
  30. {       
  31.         disp(M%10,0,0);                                //   角                                       
  32.         disp(M/10%10,0x80,1);                 //         元                  0x80表示加上小數(shù)點(diǎn)
  33.         if(M>=100)
  34.         disp(M/100%10,0,2);                           //        十元
  35.         if(M>=1000)
  36.         disp(M/1000%10,0,3);                 //        百元
  37.         disp(S%10,0,4);                             //          公里               
  38.         disp(S/10%10,0x80,5);
  39.         if(S>=100)
  40.         disp(S/100%10,0,6);
  41.         if(S>=1000)
  42.         disp(S/1000%10,0,7);                   
  43. }

  44. //定時(shí)器0中斷
  45. void time_50ms() interrupt 1       
  46. {
  47.         ct++;
  48.         if(ct==5)
  49.         {
  50.                 ct=0;
  51.                 S+=5;
  52.                 if(S>20)
  53.                 M+=8;                       
  54.         }
  55. }       

  56. //主函數(shù)
  57. void main()
  58. {               
  59.         P0=0;
  60.         P2=0XFF;
  61.         TMOD=0X0E;          //設(shè)置計(jì)數(shù)器模式
  62.         IT0=1;                 //電平觸發(fā)
  63.         TH0=255;           //1個(gè)脈沖延時(shí)
  64.         TL0=255;
  65.         TR0=1;
  66. ……………………

  67. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
出租車計(jì)費(fèi)系統(tǒng).rar (58.69 KB, 下載次數(shù): 72)


回復(fù)

使用道具 舉報(bào)

ID:414108 發(fā)表于 2018-12-23 11:15 | 顯示全部樓層
還差一個(gè)黑幣,請(qǐng)問(wèn)可以私發(fā)一下給我嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表