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

QQ登錄

只需一步,快速開始

帖子
查看: 2504|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

模擬光柵測速裝置的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:195503 發(fā)表于 2017-5-2 11:06 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint temp,tt,qian,bai,shi,ge;       
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit deng1=P1^3;
sbit deng2=P1^4;
sbit guang=P1^5;
sbit beepIO=P1^6;
int t1=(65536-10000)/256;
int        t2=(65536-10000)%256;
uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void keyscan();
void display();
void init();
void delay(uint z);
void shengyin();

/**************************************************************
                Ö÷oˉêy
******************************************************************/
void main()
{       
        init();//3õê¼»ˉ×ó3ìDò
        while(1)
        {
                if(tt==1)
                  {
                        tt=0;
                        if(++temp>=9999)
                           {
                                        ET0=0;
                                        shengyin ();   //μ÷óÃéùòô
                           }
                        qian=temp/1000;
                        bai=temp%1000/100;
                        shi=temp%100/10;
                        ge=temp%10;
                  }
                 keyscan();
                display();       
        }
}
/*********************************************************************
                                shengyin
***********************************************************************/
void shengyin()
{
uchar i,j;
for(j=5;j>0;j--)
{                          
for(i=0;i<50;i++)
{
beepIO=~beepIO;
delay(2);
}
}
}
/*********************************************************************
                                °′¼ü¿ØÖÆ
***********************************************************************/
void keyscan()
{
        if(key2==0||guang==1)         //ÔYí£¼Æê±
        {
        deng1=1;
        deng2=0;
        TR0=0;
        }
        if(key3==0||guang==0)         //¿aê¼¼Æê±
        {
        deng2=1;         
        deng1=0;
        TR0=1;
        }  
}

/*********************************************************************
                                ÏÔê¾
***********************************************************************/
void display()
{
      P2=0x08;
          P0=table[qian];
          delay(1);
          P2=0x04;
          P0=table[bai]+0x80;
          delay(1);
          P2=0x02;
          P0=table[shi];
          delay(1);
      P2=0x01;
          P0=table[ge];
          delay(1);
}
/*********************************************************************
                                Ñóê±
***********************************************************************/
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
/*********************************************************************
                        3õê¼»ˉ
***********************************************************************/
void init()
{       

    P2=0x00;
        P0=0xc0;
        temp=0;
        TMOD=0x01;
        TH0=t1;
        TL0=t2;
        EA=1;
        ET0=1;
        TR0=1;       
}
/*********************************************************************
                        ÖD¶Ï
***********************************************************************/
void t0() interrupt 1
{
        TH0=t1;
        TL0=t2;
        tt++;       
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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