• 大小: 23KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: 其他
  • 标签: 课程设计  HYIT  

资源简介

淮阴工学院 单片机课程设计 以车速里程测量为主的多功能任务设计 要求可以检测车轮所转圈数,从而确定里程,并显示。除基本电路外,需要车轮检测用传感器以及信号调理电路,数码管显示电路,时钟电路等。

资源截图

代码片段和文件信息

#include 
#include 
#define uchar unsigned char
#define uint unsigned int

sbit SPK  = P1^5;    //?¨ò?·??ù?÷

sbit SMG_q = P1^0;   //êy??1ü??
sbit SMG_b = P1^1;
sbit SMG_s = P1^2;
sbit SMG_g = P1^3;

sbit key1 = P3^7;      //°′?ü??
sbit key2 = P3^6;
sbit key3 = P3^5;
sbit key4 = P3^4;
sbit key5 = P3^3;
sbit key6 = P3^2;


uint m;
uchar abcn;
uchar sgspeed;
uchar qianbaishige;
unsigned char code table[]={0xc00xf90xa40xb00x990x920x820xf80x800x90};


void delay(uchar xms)       //?óê±ms
{
        uchar ij;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}


void display()         //速度数码管显示 P1位选,P0段选
{
    P1=0xff;
        delay(2);
        P1=0xfe;
        P0=table[g];  //显示速度的个位
        delay(5);

        P1=0xff;
        delay(2);
        P1=0xfd;
        P0=table[bai]; //显示百位
        delay(5);

        P1=0xff;
        delay(2);
        P1=0xfb;
        P0=table[shi];    //显示十位
        delay(5);

P1=0xff;
        delay(2);
        P1=0xf7;
        P0=table[ge];   //显示个位
        delay(5);
}


void keyscan()            //按键扫描
{
if(key4==0)        //4按下   
{
delay(10);
 if(key4==0)
{
                while(!key4)
{
display();
}
m++;
ge++;
if(ge>9)  //个位>9个位置0,十位加1
{
 ge=0;
 shi++;
}
if(shi>9)
{
 shi=0;
 bai++;
}
if(bai>9)
{
 bai=0;
 qian++;
}
if(qian>9)
{
qian=0;
bai=0;
    shi=0;
   ge=0;
}
}
  }

if(key2==0) //2按下
{
delay(10);
if(key2==0)
{
P1=0xff;
P2=0xfe;
delay(1000);
b=P2;
while(1)
{
    for(a=0;a<7;a++)
    {
b=_crol_(b1); //流水灯 左移7次
P2=b;
delay(1000);
    }

for(c=0;c<7;c++)
{
b=_cror_(b1); //右移7次
P2=b;
delay(1000);
}
if((P3&0xfc)!=0xfc)
break;
            }
}
P2=0xff; //关灯
}

if(key1==0) //1按下
{
delay(10);
if(key1==0)
{
P1=0xff;
while(1)
{
SPK=0;
delay(1000); //蜂鸣器鸣叫
delay(1000);
SPK=1;
delay(1000); //蜂鸣器关闭
delay(1000);

if((P3&0xfc)!=0xfc)
break;
      }
}
}

if(key3==0)      //3按下
{
delay(5);
if(key3==0)
{
while(!key3)
{
while(1)
{
P1=0xff; //消除鬼影
delay(5);
P1=0xfe; //显示1
P0=table[1];
delay(5);

P1=0xff;
delay(5);
P1=0xfd;
P0=table[3];
delay(5);

P1=0xff;
delay(5);
P1=0xfb;
P0=table[1];
delay(5);

P1=0xff;
delay(5);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8686  2019-06-19 16:25  测速\cesu

     文件       3778  2019-06-19 16:25  测速\cesu.c

     文件         25  2019-06-19 16:25  测速\cesu.lnp

     文件      13982  2019-06-19 16:25  测速\cesu.LST

     文件      11737  2019-06-19 16:25  测速\cesu.M51

     文件       9943  2019-06-19 16:25  测速\cesu.OBJ

     文件        163  2019-06-20 16:14  测速\cesu.plg

    .......     55214  2019-06-20 16:14  测速\cesu.uvopt

    .......     13220  2019-06-19 14:53  测速\cesu.uvproj

    .......     55214  2019-06-19 16:25  测速\cesu_uvopt.bak

    .......     13227  2019-06-19 14:41  测速\cesu_uvproj.bak

     目录          0  2019-06-20 16:14  测速

----------- ---------  ---------- -----  ----

               185189                    12


评论

共有 条评论