標(biāo)題: 基于51單片機(jī)的出租車計(jì)價(jià)器Proteus仿真程序 [打印本頁]

作者: fgdfgdfgd    時(shí)間: 2021-11-13 11:57
標(biāo)題: 基于51單片機(jī)的出租車計(jì)價(jià)器Proteus仿真程序
設(shè)計(jì)功能:
(1): 顯示器顯示當(dāng)前單價(jià),當(dāng)前里程,當(dāng)前費(fèi)用
(2): 分時(shí)計(jì)費(fèi)( 白天,晚上標(biāo)準(zhǔn)不同,等待時(shí)間計(jì)費(fèi) )
(3): 定時(shí)器編程產(chǎn)生脈沖用于模擬車輛行走,一個(gè)脈沖代表兩米
(4): 使用按鍵控制計(jì)費(fèi)開始和計(jì)費(fèi)結(jié)束( 計(jì)費(fèi)結(jié)束保持顯示車費(fèi)等信息 )
小白不知道怎么發(fā)送圖片,但本人親測可用!

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


2個(gè)單片機(jī)實(shí)現(xiàn) 一個(gè)芯片發(fā)脈沖 一個(gè)芯片統(tǒng)計(jì)

單片機(jī)源程序如下:
  1. //---  頭文件   ---//
  2. #include "LCD1602.H"
  3. #include "Single_Key.h"
  4. #include "INT.H"
  5. #include "T0.H"
  6. //---  引腳聲明 ---//
  7. sbit Wait = P2^3;     //等待時(shí)間引腳
  8. //---  變量定義 ---//
  9. uchar Price = 0;                //汽車單公里價(jià)格
  10. //---   聲明    ---//

  11. void main()
  12. {        
  13. /************************ 程序初始化 *****************************/
  14.         LcdInit();     //LCD顯示屏初始化
  15.         Inint_T0;            //定時(shí)器初始化
  16.         INT0_Falling;
  17.         EX0 = 0;          //關(guān)閉外部計(jì)數(shù)中斷
  18. /************************ 主程序循環(huán) *****************************/
  19.         while(1)
  20.         {
  21.                 KeyTest_1();KeyTest_2();                        //檢測是白天還是夜晚
  22.                 KeyTest_3();KeyTest_4();                        //是否開始計(jì)數(shù)

  23.                   FirstLine_ClearOFF_Char(Price:,0 );
  24.                 LcdIDisplay_Num ( First_Line , Clear_OFF,6,Price);          //單價(jià)

  25.                 if( Price == 5 )
  26.                         LcdIDisplay_Char ( First_Line , Clear_OFF, 7, " " );   //防止顯示溢出

  27.                   FirstLine_ClearOFF_Char( km:,10 );                                              //公里
  28.                 LcdIDisplay_Num ( First_Line , Clear_OFF,13, KM );

  29.                   SecondLine_ClearOFF_Char(NOW Price:,0 );
  30.                 LcdIDisplay_Num ( Second_Line , Clear_OFF,10, Price * KM + Wait_Count );  //總價(jià)

  31.                 if( Single_KEY_Flag_1 == 1 )
  32.                 {
  33.                          Single_KEY_Flag_1 = 0;
  34.                         Price = 5;
  35.                 }

  36.                 if( Single_KEY_Flag_2 == 1 )
  37.                 {
  38.                          Single_KEY_Flag_2 = 0;
  39.                         Price = 10;
  40.                 }

  41.                 if( Single_KEY_Flag_3 == 1 )
  42.                 {
  43.                          Single_KEY_Flag_3 = 0;
  44.                         EX0 = 1;          //開啟外部計(jì)數(shù)中斷
  45.                         KM_COUNT = 0; KM = 0;
  46.                         Price = 5;
  47.                 }
  48.                 if( Single_KEY_Flag_4 == 1 )
  49.                 {
  50.                          Single_KEY_Flag_4 = 0;
  51.                         EX0 = 0;          //關(guān)閉外部計(jì)數(shù)中斷
  52.                         Price = 5;
  53.                 }
  54.                 if( Wait == 0 )
  55.                 {
  56.                   Enable_T0;         //開啟定時(shí)器
  57.                 }
  58.                 else
  59.                 {
  60.                   DisEnable_T0;        //關(guān)閉定時(shí)器
  61.                   Inint_T0;                //初始化定時(shí)器
  62.                 }
  63.         }
  64. }
復(fù)制代碼

仿真代碼51hei附件下載:
出租車計(jì)價(jià)器仿真.7z (95.35 KB, 下載次數(shù): 77)






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1