📄 main.c
字号:
#include<AT89x51.h>
int i,j,rate,direction1,direction2;
unsigned int s1,s2;
//unsigned int v1[20]={2800,2820,2840,2860,2880,2900,2920,2940,2980,3000,3020,3040,3060,3080,3100,3120,3140,3160,3180,3200};
//unsigned int v3[20]={2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,2900,3000,3100,3200,3300,3400,3500,3600,3700,3800};
//unsigned int v2[20]={2900,2910,2920,2930,2940,2950,2960,2970,2980,2990,3000,3010,3020,3030,3040,3050,3060,3070,3080,3090};
unsigned int v1[20]={900,1000,1125,1250,1375,1500,1625,1750,1875,2000,1875,1750,1625,1500,1375,1250,1125,1000,950,900};
unsigned int v2[20]={1450,1455,1460,1465,1470,1475,1480,1485,1490,1495,1500,1505,1510,1515,1520,3025,1530,1535,1540,1545};
//unsigned int v1[20]={90,100,112,125,137,150,162,175,187,200,187,175,162,150,137,125,112,100,95,90};
void timer0(void) interrupt 1 using 2{
// if(j>=20) {i=0;}
if(s1>2500) {
TH0=255-(s1/256);
TL0=255-(s1%256);
P1_7=0;
i++;
s1=v1[i];
}//if
else if(500<s1<2500){
TH0=255-(s1/256);
TL0=255-(s1%256);
P1_7=1;
s1=20000-s1;
}//else if
else ;
}
void initial(void){
i=j=0;
rate=1;
s1=v1[i];
s2=v2[j];
direction1=0;
direction2=0;
P3_7=1;
P3_4=1;
}
/****************************************************************************
角度的大小按公式计算:90*(angle-3000)/(1000-3000) +:顺时针; -:逆时针;
*****************************************************************************/
void main(){
initial();
TMOD=0x11;
TH0=255;
TL0=240;
TH1=255;
TL1=230;
ET0=PT0=1;
ET1=PT1=1;
EA=1;
TR0=1;
TR1=1;
while(1){
if(P3_6==1){
if(P3_5==1) rate=1;//11
else if(P3_5==0) rate=2;//10
}
else if(P3_6==0){
if(P3_5==1) rate=3;//01
else if(P3_5==0) rate=4;//00
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -