久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機的出租車計價器C51程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年11月06日   【字體:
已通過模擬測試

#include<reg52.h>
unsigned char cir_num,pwm_mach,temp,distance,wait_time,price,distance;
unsigned int a,t;
sbit pwm_mach=P1^0;
sbit key_clean=P3^0;//定義按鍵位置
sbit key_stop=P3^1;
sbit key_cheak=P3^2;
sbit key_oneway=P3^3;
sbit key_doubleway=P3^4;
unsigned char code led_buf[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char code seg[]={0,1,2,3,4,5,6,7};//分別對應相應的數碼管點亮
/************初始化定時器0******************/
void init_timer0()
{
        TMOD=0x01;
        TH0=0x3C;
        TL0=0xAF;//定時50MS
        EA=1;
        ET0=1;
        TR0=1;
}
/************初始化定時器1******************/
void init_timer1()
{
        TMOD=0x10;
        TH0=0x00;
        TL0=0x00;
         EA=1;                     
     ET1=1;                  
         TR1=1;

}
/************初始化定時器2******************/
void init_timer2()
{
        RCAP2H = (65536-50000)/256;// 50ms 自動重載
    RCAP2L = (65536-50000)%256;
   ET2=1;
   EA=1;
   TR2=1;

}
/************定時器0中斷******************/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x3C;               
TL0=0xAF;
if(a==20)//定時1s
         {a=0;
                if( cir_num<5)//檢測1S內圈數是否小于5
                        {t++;
                                if(t==300)//等待時間累加滿5分鐘里程加1
                                       
                                        temp=1;
                        }
     }
else cir_num++;
}

/************定時器1中斷******************/
void Timer1_isr(void) interrupt 3 using 1
{
TH1=0x00;                /* Init value */
TL1=0x00;
distance=cir_num*28+temp;//里程
cir_num++;//測速
}
/************定時器2中斷******************/
void Timer2_isr(void) interrupt 5 using 1//定時器2中斷
{

    TF2=0;
        while(1)
        {
        pwm_mach=0;
        delay(200);
    pwm_mach=~pwm_mach;
        delay(400);
        }

}
/**************延時函數**************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*********主函數******************/
void main()
{
        init_time0();
        init_time1();
        init_time2();
        while(1)
        {
                key_order();
                dsp_data();
        }
}
/**********按鍵控制****************/
void key_order()
{
        if(!key_clean)
        {distance=0;
                cir_num=0;
                t=0;
         }
         if(!key_stop)
        {
                 ET0=0;
                 ET1=0;
                 TR0=0;
                 TR1=0;
                 ET2=0;
                 TR2=0;
         }
         if(!key_oneway)
        {
                 flag=0;//去執行單程計價程序
         }
         if(!key_doubleway)
        {
                 flag=1;//去執行往返計價程序
         }
         if(!key_cheak)
        {
                 wait_time=1;//顯示等待時間
                //dis_time();//等待時間顯示函數
         }
}

/*********數據處理程序*****************/

void dsp_data()
{
        switch(flag)
        {
                case 0:price=(cir_num-10714)*20;break;
                case 1:price=(cir_num-10714)*15;break;
                default:price=8;    break;
        }
        switch(wait_time)
        {
                case 0:distance=cir_num*28+temp;//里程
                                        price_display();//價格顯示函數
                                        break;
                case 1:time_display();
                        break;
        }
}
/*********價格顯示函數***********/
void price_display()
{
                led_buf[4]=price/1000;
                led_buf[5]=price%1000/100;
                led_buf[6]=price%100/10;
                led_buf[7]=price%10;
                led_buf[6]=0x80;
}
/*********里程顯示函數***********/
void distance_display()
{
            led_buf[0]=distance/1000;
                led_buf[1]=distance%1000/100;
                led_buf[2]=distance%100/10;
                led_buf[3]=distance%10;
                led_buf[2]=0x80;
}
void time_display()
{
          led_buf[0]=t/1000;
                led_buf[1]=t%1000/100;
                led_buf[2]=t%100/10;
                led_buf[3]=t%10;
                led_buf[4]=0x6d;
}
關閉窗口

相關文章

主站蜘蛛池模板: 91视频91| 91久久精品国产 | 国产精品成人一区二区三区夜夜夜 | 亚洲精品第一 | 97影院2| 国产片网站 | 亚洲自拍一区在线观看 | 亚洲欧洲在线视频 | 欧美啪啪网站 | 黄色综合 | 夜久久 | 国产精品一区二区av | 亚洲一区二区三区四区五区午夜 | 一区二区三区四区不卡视频 | 黄色免费观看 | 国产91观看 | 欧美久久一级 | 91视频88av | 国产欧美日韩综合精品一区二区 | 成人av一区二区亚洲精 | 超碰成人免费观看 | 精品久久久久久亚洲综合网站 | 亚洲 欧美 综合 | 欧美一级视频 | 7777在线 | 激情欧美日韩一区二区 | 一区二区三区日韩精品 | 国产精品久久久久久久粉嫩 | 久久骚 | 一区二区免费高清视频 | 欧美成人免费在线 | 国产精品影视 | 国产精品一区二区在线 | 亚洲国产一区在线 | 国产成人高清视频 | 91精品国产日韩91久久久久久 | 日韩一区二区三区四区五区六区 | 欧美日韩国产在线观看 | 国产一级片一区二区 | 一级黄色网页 | 久久99视频 |