⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 youbing.txt

📁 wu shji iisdjn sjdjsj skjncowj klsdjnmk kjvcks ksjdknk kajkal
💻 TXT
字号:
这个程序是帮同学做的课程设计。

我是个新手,程序写的很烂,这程序搞了将近一星期了,连LED显示部分调试也没通过


!!!LED显示有问题!!!

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit key_add=P1^0;
sbit key_reduce=P1^1;
sbit key_begin=P1^2;
sbit RY_A=P1^3;
sbit RY_B=P1^4;
sbit RY_C=P1^5;
sbit p1_7=P1^7;


bit positive=0,wait1=0,wait2=0,negative=0,working=0;
uchar minute=25;
uchar code displaytable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint countpositive=0,countwait1=0,countwait2=0,countnegative=0,countminute=0;


void Delay10ms(uint delay10ms);
void Display(void);
void Minute_Add(void);
void Minute_Reduce(void);
void Revolve_Positive(void);
void Revolve_Wait1(void);
void Revolve_Wait2(void);
void Revolve_Negative(void);
void BZ_Work(void);
void Work_Over(void);


void Delay10ms(uint delay10ms)
{
uchar i=0;
for(;delay10ms>0;delay10ms--)
{
  for(;i<124;i++)
  {;}
}
}


void Display()!!问题程序!!tmp2取不到余!!显示个位一直为0,而且比十位亮很多!!
{
uchar tmp1,tmp2;
tmp1=minute/10;

tmp2=minute%10;

P0=displaytable[tmp1];
P2=0xfe;
Delay10ms(20);
P0=displaytable[tmp2];
P2=0xfd;
Delay10ms(20);
}


void Minute_Add()
{
if(key_add==0)
{
  Delay10ms(1);
  while(key_add==0)
  {
   minute++;
   if(minute>=99)
   {
    minute=0;
   }
   Delay10ms(20);
  }
}
}


void Minute_Reduce()
{
if(key_reduce==0)
{
  Delay10ms(1);
  while(key_reduce==0)
  {
   if(minute==0)
   {
    minute=99;
   }
   minute--;
   Delay10ms(20);
  }
}
}


void Time0() interrupt 1 using 1
{
TH0=(65536-15536)/256;
TL0=(65536-15536)%256;
countminute++;
if(countminute>=1400)
{
  countminute=0;
  minute--;
}
if(positive=1)
{
  countpositive++;
}
else if (wait1==1)
{
  countwait1++;
}
else if(wait2==1)
{
  countwait2++;
}
else if(negative==1)
{
  countnegative++;
}
Display();
}


void Revolve_Positive()
{
if(minute!=0)
{
  positive=1;
  RY_A=1;
  RY_B=0;
  RY_C=0;
  if(countpositive>=400)
  {
   positive=0;
   Revolve_Wait1();
  }
}
}


void Revolve_Wait1()
{
if(minute!=0)
{ 
  wait1=1;
  RY_A=0;
  if(countwait1>=200)
  {
   wait1=0;
   Revolve_Negative();
  }
}
}


void Revolve_Negative()
{
if(minute!=0)
{
  negative=1;
  RY_A=1;
  RY_B=1;
  RY_C=1;
  if(countnegative>=400)
  { 
   negative=0;
   Revolve_Wait2();
  }
}
}


void Revolve_Wait2()
{
if(minute!=0)
{
  wait2=1;
  RY_A=0;
  if(countwait2>=200)
  {
   wait2=0;
   Revolve_Positive();
  }
}
}


void Time1() interrupt 3 using 2
{
TH1=236;
TL1=3;
p1_7=!p1_7;
}


void Work_Over()
{
if(minute==0)
{
  RY_A=0;  
    }
}

void BZ_Work()
{
if(minute==0&&working)
{
  TH1=236;
  TL1=3;
  TR1=1;ET1=1;
}
}


void main()
{
P0=0xff;
P2=0xff;
TMOD=0x01;
TH0=50000/256;
TL0=50000%256;
EA=1;
ET0=1;
IP=0X08;
TR0=1;
while(1)
{
  if(key_begin==0)
  {working=1;}
  Minute_Add();
  Minute_Reduce();
  Revolve_Positive();
  BZ_Work();
  Work_Over();
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -