📄 contral.txt
字号:
#include "reg51.h"
#include "stdio.h"
#define uc unsigned char
sbit IN1 =P2^0 ;
sbit IN2 =P2^1 ;
sbit a0=P2^2;
sbit a1=P2^3;
sbit a2=P2^4;
sbit a3=P2^5;
sbit b1=P1^0;
sbit b2=P1^1;
sbit b3=P1^2;
sbit b4=P1^3;
sbit b5=P1^4;
sbit b6=P1^5;
sbit b7=P1^6;
sbit b8=P1^7;
uc s[]={0x3F,0x06};//显示运行的方式;00代表逆时针转动;01代表顺时针转动;10代表停止;
uc s1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D};//显示定时的数组
uc s2[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67}; //显示时间的数组
uc s3[]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xE7};
int e=0; //定义相应的全局变量
int c=0;
int n=0;
int g3=0;
int g4=0;
int g5=0;
int g6=0;
wait(int i) //延时函数
{
int k,j;
for(k=i;k>0;k--);
for(j=250;j>0;j--);
{
if(b1==0&b2==0) //判断按键是否按下
{ c=c+1;
e=e+1;
return c;
return e;
}
else if(b1==0&b2==1)
{ c=c+1;
return c;
return e;
}
else if(b1==1&b2==0)
{
e=e+1;
return c;
return e;
}
else
{
return c;
return e;
}
}
}
void Init() //初始化函数
{
a0=0; //初始显示为0
P0=s[0];
wait(1);
a0=1;
a1=0;
P0=s[0];
wait(1);
a1=1;
IN1=1; //电动机初始不转动
IN2=1;
a2=0; //初始定时为00
P0=s1[0];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
b8=0; //设置初始时间
P3=s2[0];
wait(1);
b8=1;
b7=0;
P3=s3[0];
wait(1);
b7=1;
b6=0;
P3=s2[0];
wait(1);
b6=1;
b5=0;
P3=s3[0];
wait(1);
b5=1;
b4=0;
P3=s2[0];
wait(1);
b4=1;
b3=0;
P3=s3[0];
wait(1);
b3=1;
}
showWay( ) //显示方式的函数以及电动机的转动情况
{ int d;
d=c%3;
switch(d){
case 0:
a0=0;
P0=s[0];
wait(1);
a0=1;
a1=0;
P0=s[0];
wait(1);
a1=1;
IN1=0;
IN2=1;
break;
case 1:a0=0;
P0=s[0];
wait(1);
a0=1;
a1=0;
P0=s[1];
wait(1);
a1=1;
IN1=1;
IN2=0;
break;
case 2:a0=0;
P0=s[1];
wait(1);
a0=1;
a1=0;
P0=s[0];
wait(1);
a1=1;
IN1=1;
IN2=1;
break;
}
}
settime( ) //设置定时时间
{
int f;
f=e%7;
switch(f){
case 0:
a2=0;
P0=s1[0];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
break;
case 1:a2=0;
P0=s1[1];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
break;
case 2:a2=0;
P0=s1[2];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
break;
case 3:a2=0;
P0=s1[3];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
break;
case 4:a2=0;
P0=s1[4];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
break;
case 5:
a2=0;
P0=s1[5];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
break;
case 7:
a2=0;
P0=s1[6];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
break;
}
}
showtime() //显示时间的函数
{ int s;
int g,g1,g2;
s=s+1;
g=s%10;
g2=s%60;
g1=g2/10;
if(g==9&&g1==5)
g3=g3+1;
if(g3>=10)
g3=0;
if(g==9&&g3==9&&g1==5)
g4=g4+1;
if(g4>=6)
g4=0;
if(g==9&&g3==9&&g1==5&&g4==5)
g5=g5+1;
if(g5>=10)
g5=0;
if(g==9&&g3==9&&g1==5&&g4==5&&g5==9)
g6=g6+1;
if(g6>=3)
g6=0;
b8=0;
P3=s2[g6];
wait(1);
b8=1;
b7=0;
P3=s3[g5];
wait(1);
b7=1;
b6=0;
P3=s2[g4];
wait(1);
b6=1;
b5=0;
P3=s3[g3];
wait(1);
b5=1;
b4=0;
P3=s2[g1];
wait(1);
b4=1;
b3=0;
P3=s3[g];
wait(1);
b3=1;
}
main() //主函数
{
Init();
while(1)
{
int g7;
g7=g5+10*g6;
if(g7<5||g7>22) // 判断时间是否满足广告牌的转动时间
{
a0=0;
P0=s[0];
wait(1);
a0=1;
a1=0;
P0=s[0];
wait(1);
a1=1;
IN1=0;
IN2=0;
a2=0;
P0=s1[0];
wait(1);
a2=1;
a3=0;
P0=s1[0];
wait(1);
a3=1;
showtime();
}
else //满足转动时间
{showWay( );
settime();
showtime();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -