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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)出租車計(jì)價(jià)器程序,僅供大家參考

[復(fù)制鏈接]
ID:677954 發(fā)表于 2019-12-31 22:03 | 顯示全部樓層 |閱讀模式
/*   開關(guān)的作用:P02 -----計(jì)價(jià)器啟動(dòng)開關(guān)   (K3=0 跑馬 ;K3=1 計(jì)價(jià)器清0)
                P03 -----汽車啟動(dòng)計(jì)價(jià)開關(guān)  (K4=0 計(jì)價(jià)器開實(shí)時(shí)計(jì)價(jià);K4=1顯示總價(jià)和總時(shí)間)
                P04 -----清0鍵             (K5=0 回到跑馬;K5=1 全部清0 )
     程序的功能:車子在啟動(dòng)前顯示P型跑馬,汽車啟動(dòng)后顯示價(jià)格0,按下開關(guān)K4開始實(shí)
                 時(shí)計(jì)價(jià),前兩位顯示時(shí)間,后四位顯示價(jià)格;2秒以內(nèi)按3元計(jì)價(jià),以后
                每增加2秒,價(jià)格增加0.7,當(dāng)超過6秒時(shí),按每增加1秒價(jià)格增加1元,以
                “元”作為計(jì)價(jià)單位,以小數(shù)點(diǎn)隔開元和角。按下中斷鍵時(shí)示顯故障提示
                “STOP"且響鈴,再次按中斷鍵時(shí),故障排除,恢復(fù)程序正常的工作。
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
  sbit P02=P0^2;                  //啟動(dòng)開關(guān)
  sbit P03=P0^3;                  //顯示最終價(jià)格
  sbit P04=P0^4;
  sbit P32=P3^2;
  sbit P37=P3^7;                  //清零開關(guān)
  uchar code
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9不帶小數(shù)點(diǎn)
  uchar codetable2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//0~9
             帶小數(shù)點(diǎn)
  void delay(uint z);
  uchar a,fen,miao,shu;            //定義時(shí)間參數(shù)
  uchar a=0;
  unsigned char temp;
  int m,i;                         //m表示價(jià)錢
  uint temp1,temp2;
  timer1() interrupt 0             //外部中斷,顯示STOP
   {
     P37=0;
    {
     P1=0x01;
     P2=0x6d;
     delay(5);
     P1=0x02;
     P2=0x31;
     delay(5);
     P1=0x04;
     P2=0x3f;
     delay(5);
     P1=0x08;
     P2=0x73;
     delay(5);
     P37=~P37;                      //響鈴
     }
    }
void main()                         //主程序
{uchar k;uint i;
TMOD=0x01;
TH0=(65536-50000)/256;             //定時(shí)50MS
TL0=(65536-50000)%256;
EA=1;                              //開中斷總控開關(guān)
IT0=0;                             //INT0零電平觸發(fā)
EX0=1;                             //開INT0中斷
TR0=1;                             //T0開始計(jì)時(shí)
ET0=1;                             //開T0中斷
  while(1)
ag: { TR0=0;
   if(P02==0)                      //啟動(dòng)跑馬開關(guān),開始跑馬
   { P1=0x01;
   P2=0x73;
   for(k=0;k<6;k++)
   {
   for(i=0;i<20000;i++);
   P1<<=1;                        //跑馬程序
    }
}
if(P02==1)                       //車子啟動(dòng),全部歸零,準(zhǔn)備計(jì)時(shí)計(jì)價(jià)
{
P2=0x3f;
P1=0xff;
delay(2);
P1=0x00;
delay(2);
}                                //設(shè)置T0定時(shí)器
/*if(P02==0)                     //啟動(dòng)跑馬開關(guān)
{ P1=0x01;
   P2=0x73;
   for(k=0;k<6;k++)
   {
   for(i=0;i<20000;i++);
   P1<<=1;                       //跑馬程序
    }
}
if(P02==1)
{
P1=0xff;
P2=0x3f;
delay(2);
P1=0x00;
delay(2);
} */
if(P03==1)                    //啟動(dòng)計(jì)時(shí)計(jì)價(jià)
{TR0=1;
temp1=shu;temp2=m;
P1=0x01;
P2=table[shu/10];
delay(2);//延時(shí)5毫秒
P1=0x00;
delay(2);                     //顯示時(shí)間
P1=0x02;
P2=table[shu%10];
delay(2);//延時(shí)5毫秒
P1=0x00;
delay(2);                     //顯示時(shí)間
P1=0x04;
P2=0X3f;
delay(2);
P1=0x00;
delay(2);                    //顯示價(jià)格(百位)
if(0<shu<=2)
m=30;
else if(shu==3)
m=30;
if(shu==4)
m=37;
if(shu==5)
m=37;
if(shu==6)
m=44;
if(shu>6)
m=10*shu-16;                //價(jià)格計(jì)算程序
P2=table[m/100];
P1=0x08;
//P2=table[m/100];
delay(2);
P1=0x00;
delay(2);                   //顯示價(jià)格(十位)
P2=table2[(m%100)/10];
P1=0x10;
//P2=table2[(m%100)/10];
delay(2);
P1=0x00;
delay(2);                   //顯示價(jià)格(個(gè)位)
P2=table[m%10];
P1=0x20;
//P2=table[m%10];
delay(2);
P1=0x00;
delay(2);                   //顯示價(jià)格(角位)
if(P04==1)
{
m=0;shu=0;temp1=0;temp2=0;
P1=0xff;
P2=0x3f;                    //清零程序
}
while(P03==0)                // 顯示最終價(jià)格和時(shí)間
{
P2=table[temp1/10];
P1=0x01;
//P2=table[temp1/10];
delay(1);
P1=0x00;
delay(1);
P2=table[temp1%10];
P1=0x02;
//P2=table[temp1%10];
delay(1);
P1=0x00;
delay(1);
P1=0x04;
P2=0X3f;
delay(1);
P1=0x00;
delay(1);
P2=table[temp2/100];
P1=0x08;
//P2=table[temp2/100];
delay(1);
P1=0x00;
delay(1);
P2=table2[(temp2%100)/10];
P1=0x10;
//P2=table2[(temp2%100)/10];
delay(1);
P1=0x00;
delay(1);
P2=table[temp2%10];
P1=0x20;
//P2=table[temp2%10];
delay(1);
P1=0x00;
delay(1);
  if(P04==1)
{
/*m=0;shu=0;temp1=0;temp2=0;   */
P1=0xff;
P2=0x3f;
  for(i=0;i<2000;i++);
goto ag;                           //清零時(shí),所有開關(guān)全零
}
}
}
/*if(P04==1)
{ for(i=0;i<200;i++);
m=0;shu=0;temp1=0;temp2=0;
P1=0xff;
P2=0x3f;
goto ag;
} */
}
}
void timer0() interrupt1                //設(shè)置定時(shí)器初值
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;                   //0.05s溢出
a++;
if(a==20)
{
a=0;
shu++;
if(shu==99)
shu=0;
}
}
void delay(uint z)                       //延遲函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=80;y>0;y--);
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美影院| 欧美日韩国产高清 | 国产一级片在线观看视频 | 中文字幕在线一 | 久干网| 欧美 日韩 国产 成人 在线 | 国产亚洲精品美女久久久久久久久久 | 亚洲精品久久区二区三区蜜桃臀 | 日韩在线观看一区二区三区 | 中文字幕不卡在线观看 | 在线观看中文字幕视频 | 亚洲欧美日韩国产 | 日韩高清一区二区 | 玖玖玖av | 精品一区电影 | 本道综合精品 | 久久久久国产 | 亚洲日本欧美日韩高观看 | 国产精品亚洲综合 | 日日拍夜夜| 精品1区2区3区4区 | 亚洲国产区 | 免费激情av| 国产传媒在线观看 | av一区二区三区四区 | 亚洲成人av在线播放 | 九九久久久 | 国产日韩精品一区 | 国产精品自产av一区二区三区 | av一级一片| 国产免费一区二区 | 国产日韩欧美二区 | 九色porny自拍视频 | 日韩欧美在线不卡 | 狠狠视频| 国产成人免费在线 | 日本精品一区二区三区四区 | 天天草天天干 | 国产精品美女久久久久久久网站 | 久久精品国产99国产精品 | 爱爱视频日本 |