微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 用人体感应控制数码管显示问题,求各位帮忙看看程序

用人体感应控制数码管显示问题,求各位帮忙看看程序

时间:10-02 整理:3721RD 点击:
各位帮看下我的程序哪里有问题?一直没找出来,我的目的是人体感应控制单个数码管显示:感应一次显示L再感应显示r,没感应不显示。结果是不感应显示倒着的F,感应有时L,r交替,有时连着两个L或两个r。大家看看我的程序问题出在哪里
#include <reg52.h>
bit flag;
sbit REEB = P3^4;
#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
void init_timer0(void);
void turn(void);
main()
{
  init_timer0();
  while(1)
  {
//    DataPort = 0xff;
  }
}
void init_timer0(void)
{
  TMOD |= 0X01;
  EA = 1;
  ET0 = 1;
  TR0 = 1;
}
void timer0_isr(void) interrupt 1
{
TH0=2001;                  //重新赋值 2ms
TL0=1;

  if(REEB == 0)
  {
    turn();
        flag = !flag;
  }

}
void turn(void)
{
  if(flag)
  {
//    DataPort = 0x00;
        DataPort = 0xc7;
  }
  else
  {
//    DataPort = 0x00;
        DataPort = 0xaf;
  }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top