资源简介

51单片机霍尔测速 数码管显示,调试通过

资源截图

代码片段和文件信息

#include

#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6; //段选锁存器控制端
sbit wela=P2^7; //位选锁存器控制端
uint temp=0;
uchar buf_min=1;
uchar table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};//共阴极数码管[0~9]
uchar disnum[4]={0};
void display();
void delay(uint x);

sbit P1_0=P1^0;
sbit P1_7=P1^7;

//定时器0中断函数
void timer0()interrupt 1 using 1//0定时器100ms定时中断
{
  TH0=0x3c;TL0=0xb0;
  buf_min=buf_min+1;
if(P1_0==1)
P1_0=0;
else P1_0=1;

}
void main()
{
P1_0=0;
P1_7=0;
TMOD=0x51; //T0为定时中断方式

TH1=0;TL1=0; //T1初始化

TH0=0x3c;TL0=0xb0;//T0初始化
EA=1;ET0=1;TR0=1;//开T0定时中断

TR1=1;//T1开始计数

  while(1)
  {
     if(buf_min==10) //定时达到1s后,开始处理数据并显示
       {
if(P1_7==1)
P1_7=0;
else P1_7=1;

TR1=0; //计数器1停止计数
temp=(TH1*256+TL1)*60;//单个磁钢,单位为r/min
TH1=0;TL1=0; //T1初始化
TR1=1;//计数器1开始计数
// temp=buf_min;
buf_min=0;
    disnum[3]=temp/1000;
disnum[2]=(temp%1000)/100;
disnum[1]=(temp%100)/10;
disnum[0]=(temp%100)%10;
       }
display();
  }
}

//四位显示函数
void display()
{
  dula=0;
  P0=table[disnum[3]];
  dula=1;
  dula=0; //送高位段值(led1)
  wela=0;
  P0=0xfe;
  wela=1;
  wela=0; //选通高位数码管(wei1)
  delay(1200);
  P0=table[disnum[2]];
  dula=1;
  dula=0;
  P0=0xfd;
  wela=1;
  wela=0;
  delay(1200);
  P0=table[disnum[1]];
  dula=1;
  dula=0;
  P0=0xfb;
  wela=1;
  wela=0;
  delay(1200);
  P0=table[disnum[0]];
  dula=1;
  dula=0;
  P0=0xf7;
  wela=1;
  wela=0;
  delay(1200);
}
//延时子程序
void delay(uint x)//x=1000时为1ms延时
{
  while(--x);
}

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

     文件       5420  2012-08-10 16:39  定时器计数器显示\fff

     文件       1682  2012-08-10 16:39  定时器计数器显示\fff.hex

     文件         64  2012-08-10 16:39  定时器计数器显示\fff.lnp

     文件       8182  2012-08-10 16:39  定时器计数器显示\fff.M51

     文件       1072  2012-08-11 08:42  定时器计数器显示\fff.Opt

     文件        220  2012-08-11 08:42  定时器计数器显示\fff.plg

     文件       2020  2012-08-10 16:49  定时器计数器显示\fff.Uv2

     文件       1074  2012-08-10 16:49  定时器计数器显示\fff_Opt.Bak

     文件          0  2012-08-10 16:01  定时器计数器显示\fff_Uv2.Bak

     文件       5115  2002-04-16 14:32  定时器计数器显示\STARTUP.A51

     文件      11665  2012-08-10 16:39  定时器计数器显示\STARTUP.LST

     文件        749  2012-08-10 16:39  定时器计数器显示\STARTUP.OBJ

     文件       1730  2012-08-10 16:39  定时器计数器显示\Text3.c

     文件       4314  2012-08-10 16:39  定时器计数器显示\Text3.LST

     文件       5211  2012-08-10 16:39  定时器计数器显示\Text3.OBJ

     目录          0  2012-08-13 11:18  定时器计数器显示

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

                48518                    16


评论

共有 条评论