#include<STC12C5A60S2.h>
#define uint unsigned int
#define uchar unsigned char
sbit ppo00=P0^7;
sbit ppo01=P1^0;
sbit ppo02=P1^1;
sbit ppo03=P1^2;
sbit ppo04=P1^3;
sbit ppo05=P1^4;
sbit ppo06=P1^5;
sbit ppo07=P1^6;
sbit ppo08=P1^7;
sbit ppo09=P0^6;
//sbit ppo10=P2^0;
sbit ppo10=P2^0;
sbit ppo11=P2^1;
sbit ppo12=P2^2;
sbit ppo13=P2^3;
sbit ppo14=P2^4;
sbit ppo15=P2^5;
sbit ppo16=P2^6;
sbit ppo17=P2^7;
sbit ppo18=P0^4;
//sbit ppo19=P0^5;
sbit ppo19=P0^5;
sbit key1=P3^7;
sbit key2=P3^6;
sbit key3=P3^5;
sbit key4=P3^4;
sbit key5=P3^3;
sbit key6=P3^2;
uchar bdata MC;
sbit c1=MC^0;
sbit c2=MC^1;
sbit c3=MC^2;
sbit c4=MC^3;
sbit c5=MC^4;
sbit c6=MC^5;
sbit c7=MC^6;
sbit c8=MC^7;
unsigned int PSHU[24]= { 1500,1500,1500,1500,1500, 1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,};
unsigned int WSHU[24] ={ 1500,1500,1500,1500,1500, 1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500};
uchar pwmst=0,pwmat=10,pwmnt=0,XVB2=0;
uint sjt=0,pwm_value=1500,HESHU=0,zhonx=1500,chai=0,chaa=0;
uchar chia=0,H=0,L=0,WEI=0,kaix=0;
uchar zbucan=200,ybucan=200;
uint dinsi=0,cans=0,canb=0;
uint kuan1=1000,kuan2=1500,kuan3=2000,kuan11=1200,kuan13=1800;
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}
void yunxin()
{ uchar z=0;
for( z=0;z<22;z++){
PSHU[z]= WSHU[z];
}
}
void Sdelay(uchar z)
{
for(;z>0;z--)
{ delay(200); }
}
void InitTimer(void)
{
TMOD=0x11;//定时器1 方式2 用于产生波特率;定时器0 方式1 用于刷新显示
TH0=-1500/256;//定时1.5MS,这时舵机处于0度
TL0=-1500%256;
TH1=-1500/256;
TL1=-1500%256;
EA=1; //开全局中断 //开串口中断
ET0=1; //开定时器0中断
ET1=1;
TR0=0;
TR1=0;
}
void UartInit(void) //9600bps@12.000MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
BRT = 0xD9; //设定独立波特率发生器重装值
AUXR |= 0x01; //串口1选择独立波特率发生器为波特率发生器
AUXR |= 0x10; //启动独立波特率发生器
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void skwb(unsigned char c)
{
switch(c)
{
case 0: ppo00=1; break;
case 1: ppo01=1;break;
case 2: ppo02=1;break;
case 3: ppo03=1;break;
case 4: ppo04=1;break;
case 5: ppo05=1;break;
case 6: ppo06=1;break;
case 7: ppo07=1;break;
case 8: ppo08=1;break;
case 9: ppo09=1;break;
default: break;
}
}
void skwc(unsigned char c)
{
switch(c)
{
case 0: ppo00=0; break;
case 1: ppo01=0;break;
case 2: ppo02=0;break;
case 3: ppo03=0;break;
case 4: ppo04=0;break;
case 5: ppo05=0;break;
case 6: ppo06=0;break;
case 7: ppo07=0;break;
case 8: ppo08=0;break;
case 9: ppo09=0;break;
default: break;
}
}
void skwz(unsigned char c)
{
switch(c)
{
case 0: ppo10=0;break;
case 1: ppo11=0;break;
case 2: ppo12=0;break;
case 3: ppo13=0;break;
case 4: ppo14=0;break;
case 5: ppo15=0;break;
case 6: ppo16=0;break;
case 7: ppo17=0;break;
case 8: ppo18=0;break;
case 9: ppo19=0;break;
default: break;
}
}
void skwx(unsigned char c)
{
switch(c)
{
case 0: ppo10=1;break;
case 1: ppo11=1;break;
case 2: ppo12=1;break;
case 3: ppo13=1;break;
case 4: ppo14=1;break;
case 5: ppo15=1;break;
case 6: ppo16=1;break;
case 7: ppo17=1;break;
case 8: ppo18=1;break;
case 9: ppo19=1;break;
default: break;
}
}
void SHUZI(void)
{
SendOneByte(0x0a);
while(!RI);RI=0; WEI=SBUF;
SendOneByte(0x0b);
while(!RI);RI=0; H=SBUF;
SendOneByte(0x0e);
while(!RI);RI=0; L=SBUF; HESHU=(H<<8)+L; PSHU[WEI]=HESHU;
SendOneByte(0x0f);
}
void WHUZI(void)
{
SendOneByte(0x0a);
while(!RI);RI=0; WEI=SBUF;
SendOneByte(0x0b);
while(!RI);RI=0; H=SBUF;
SendOneByte(0x0e);
while(!RI);RI=0; L=SBUF; HESHU=(H<<8)+L; WSHU[WEI]=HESHU;
SendOneByte(0x0f);
}
void jiao1(uint ki1,uint ki2,uint ki3,uchar shu)
{
if( ((PSHU[0]==ki1)&&(PSHU[1]==ki2) &&(PSHU[2]==ki3))==1 )
{
c1=1;
}else{
if(PSHU[0]!=ki1) { if( PSHU[0]>ki1){ PSHU[0]--;}else{PSHU[0]++;} }
if(PSHU[1]!=ki2) { if( PSHU[1]>ki2){ PSHU[1]--;}else{PSHU[1]++;} }
if(PSHU[2]!=ki3) { if( PSHU[2]>ki3){ PSHU[2]--;}else{PSHU[2]++;} }
delay(shu);
c1=0;
}
}
void jiao2(uint ki3,uint ki4,uint ki5,uchar shu)
{
if( ((PSHU[3]==ki3)&&(PSHU[4]==ki4) &&(PSHU[5]==ki5) )==1)
{
c2=1;
}else{
if(PSHU[3]!=ki3) { if( PSHU[3]>ki3){ PSHU[3]--;}else{PSHU[3]++;} }
if(PSHU[4]!=ki4) { if( PSHU[4]>ki4){ PSHU[4]--;}else{PSHU[4]++;} }
if(PSHU[5]!=ki5) { if( PSHU[5]>ki5){ PSHU[5]--;}else{PSHU[5]++;} }
delay(shu);
c2=0;
}
}
void jiao3(uint ki6,uint ki7,uint ki8,uchar shu)
{
if( ((PSHU[6]==ki6)&&(PSHU[7]==ki7) &&(PSHU[8]==ki8) ) ==1)
{
c3=1;
}else{
if(PSHU[6]!=ki6) { if( PSHU[6]>ki6){ PSHU[6]--;}else{PSHU[6]++;} }
if(PSHU[7]!=ki7) { if( PSHU[7]>ki7){ PSHU[7]--;}else{PSHU[7]++;} }
if(PSHU[8]!=ki8) { if( PSHU[8]>ki8){ PSHU[8]--;}else{PSHU[8]++;} }
delay(shu);
c3=0;
}
}
void jiao4(uint ki1,uint ki2,uint ki3,uchar shu)
{
if( ((WSHU[0]==ki1)&&(WSHU[1]==ki2) &&(WSHU[2]==ki3))==1 )
{
c4=1;
}else{
if(WSHU[0]!=ki1) { if( WSHU[0]>ki1){ WSHU[0]--;}else{WSHU[0]++;} }
if(WSHU[1]!=ki2) { if( WSHU[1]>ki2){ WSHU[1]--;}else{WSHU[1]++;} }
if(WSHU[2]!=ki3) { if( WSHU[2]>ki3){ WSHU[2]--;}else{WSHU[2]++;} }
delay(shu);
c4=0;
}
}
void jiao5(uint ki3,uint ki4,uint ki5,uchar shu)
{
if( ((WSHU[3]==ki3)&&(WSHU[4]==ki4) &&(WSHU[5]==ki5) )==1)
{
c5=1;
}else{
if(WSHU[3]!=ki3) { if( WSHU[3]>ki3){ WSHU[3]--;}else{WSHU[3]++;} }
if(WSHU[4]!=ki4) { if( WSHU[4]>ki4){ WSHU[4]--;}else{WSHU[4]++;} }
if(WSHU[5]!=ki5) { if( WSHU[5]>ki5){ WSHU[5]--;}else{WSHU[5]++;} }
delay(shu);
c5=0;
}
}
void jiao6(uint ki6,uint ki7,uint ki8,uchar shu)
{
if( ((WSHU[6]==ki6)&&(WSHU[7]==ki7) &&(WSHU[8]==ki8) ) ==1)
{
c6=1;
}else{
if(WSHU[6]!=ki6) { if( WSHU[6]>ki6){ WSHU[6]--;}else{WSHU[6]++;} }
if(WSHU[7]!=ki7) { if( WSHU[7]>ki7){ WSHU[7]--;}else{WSHU[7]++;} }
if(WSHU[8]!=ki8) { if( WSHU[8]>ki8){ WSHU[8]--;}else{WSHU[8]++;} }
delay(shu);
c6=0;
}
}
void jiao7(uint ki18,uint ki19,uchar shu)
{
if( ((PSHU[9]==ki18)&&(WSHU[9]==ki19) )==1)
{
c7=1;
}else{
if(PSHU[9]!=ki18) { if( PSHU[9]>ki18){ PSHU[9]--;}else{PSHU[9]++;} }
if(WSHU[9]!=ki19) { if( WSHU[9]>ki19){ WSHU[9]--;}else{WSHU[9]++;} }
delay(shu);
c7=0;
}
}
void did1(uchar shu)
{
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
}
void did2(uchar shu)
{
while(MC!=0xff) {
jiao1(kuan1,kuan1,kuan1, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan1,kuan1,kuan1, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan3,kuan3,kuan3, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
}
void did3(uchar shu)
{
while(MC!=0xff) {
jiao1(1050,1050,1500,shu );
jiao2(1050,1050,1500,shu );
jiao3(1050,1050,1500,shu );
jiao4(1950,1950,1500, shu );
jiao5(1950,1950,1500, shu );
jiao6(1950,1950,1500, shu );
}
MC=0x00;
c7=1;c8=1;
}
void qian1(uchar shu)
{
while(MC!=0xff) {
jiao1(kuan1,kuan1,kuan13, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan1,kuan1,kuan13, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan3,kuan3,kuan11, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//2
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan13, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan2,kuan2,kuan13, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan2,kuan2,kuan11, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//3
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan13, shu );
jiao2(kuan1,kuan1,kuan13, shu );
jiao3(kuan2,kuan2,kuan13, shu );
jiao4(kuan3,kuan3,kuan11, shu );
jiao5(kuan2,kuan2,kuan11, shu );
jiao6(kuan3,kuan3,kuan11, shu );
}
MC=0x00;
c7=1;c8=1;
//4
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan1,kuan1,kuan13, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan3,kuan3,kuan11, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan3,kuan3,kuan11, shu );
}
MC=0x00;
c7=1;c8=1;
//5
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan2,kuan2,kuan13, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan2,kuan2,kuan11, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan2,kuan2,kuan11, shu );
}
MC=0x00;
c7=1;c8=1;
}
void houz1(uchar shu)
{
while(MC!=0xff) {
jiao1(kuan1,kuan1,kuan11, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan1,kuan1,kuan11, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan3,kuan3,kuan13, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//2
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan11, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan2,kuan2,kuan11, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan2,kuan2,kuan3, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//3
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan11, shu );
jiao2(kuan1,kuan1,kuan11, shu );
jiao3(kuan2,kuan2,kuan11, shu );
jiao4(kuan3,kuan3,kuan13, shu );
jiao5(kuan2,kuan2,kuan13, shu );
jiao6(kuan3,kuan3,kuan13, shu );
}
MC=0x00;
c7=1;c8=1;
//4
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan1,kuan1,kuan11, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan3,kuan3,kuan13, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan3,kuan3,kuan13, shu );
}
MC=0x00;
c7=1;c8=1;
//5
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan2,kuan2,kuan11, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan2,kuan2,kuan13, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan2,kuan2,kuan13, shu );
}
MC=0x00;
c7=1;c8=1;
}
void zuozou(uchar shu)
{
while(MC!=0xff) {
jiao1(kuan3,kuan1,kuan13, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan3,kuan1,kuan13, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan1,kuan3,kuan13, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//2
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan13, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan2,kuan2,kuan13, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan2,kuan2,kuan13, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//3
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan13, shu );
jiao2(kuan3,kuan1,kuan2, shu );
jiao3(kuan2,kuan2,kuan13, shu );
jiao4(kuan1,kuan3,kuan2, shu );
jiao5(kuan2,kuan2,kuan13, shu );
jiao6(kuan1,kuan3,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//4
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan3,kuan1,kuan2, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan1,kuan3,kuan2, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan1,kuan3,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//5
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
}
void youzou(uchar shu)
{
while(MC!=0xff) {
jiao1(kuan3,kuan1,kuan11, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan3,kuan1,kuan11, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan1,kuan3,kuan11, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//2
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan11, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan2,kuan2,kuan11, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan2,kuan2,kuan11, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//3
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan11, shu );
jiao2(kuan3,kuan1,kuan2, shu );
jiao3(kuan2,kuan2,kuan11, shu );
jiao4(kuan1,kuan3,kuan2, shu );
jiao5(kuan2,kuan2,kuan11, shu );
jiao6(kuan1,kuan3,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//4
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan3,kuan1,kuan2, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan1,kuan3,kuan2, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan1,kuan3,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
//5
while(MC!=0xff) {
jiao1(kuan2,kuan2,kuan2, shu );
jiao2(kuan2,kuan2,kuan2, shu );
jiao3(kuan2,kuan2,kuan2, shu );
jiao4(kuan2,kuan2,kuan2, shu );
jiao5(kuan2,kuan2,kuan2, shu );
jiao6(kuan2,kuan2,kuan2, shu );
}
MC=0x00;
c7=1;c8=1;
}
void shin1(uchar shu)
{
while(MC!=0xff) {
jiao1(1000,700,1500, shu );
jiao2(1500,1500,1500, shu );
jiao3(1000,700,1200, shu );
jiao4(1500,1500,1500, shu );
jiao5(2000,2400,1800, shu );
jiao6(1500,1500,1500, shu );
}
MC=0x00;
c7=1;c8=1;
while(MC!=0xff) {
jiao1(1000,1600,1500, shu );
jiao2(1500,1500,1500, shu );
jiao3(1000,1600,1200, shu );
jiao4(1500,1500,1500, shu );
jiao5(2000,1400,1800, shu );
jiao6(1500,1500,1500, shu );
}
MC=0x00;
c7=1;c8=1;
while(MC!=0xff) {
jiao1(1900,1700,1300, shu );
jiao2(1500,1100,1500, shu );
jiao3(1700,1700,1300, shu );
jiao4(1500,2000,1300, shu );
jiao5(1000,1200,1500, shu );
jiao6(1500,2000,1300, shu );
}
MC=0x00;
c7=1;c8=1;
while(MC!=0xff) {
jiao1(1500,1500,1400, shu );
jiao2(1500,1100,1300, shu );
jiao3(1500,1500,1400, shu );
jiao4(1500,2000,1600, shu );
jiao5(1500,1500,1600, shu );
jiao6(1500,2000,1500, shu );
}
MC=0x00;
c7=1;c8=1;
while(MC!=0xff) {
jiao1(1500,1500,1400, shu );
jiao2(1500,1600,1300, shu );
jiao3(1500,1500,1400, shu );
jiao4(1600,1400,1600, shu );
jiao5(1500,1500,1600, shu );
jiao6(1200,1400,1500, shu );
}
MC=0x00;
c7=1;c8=1;
while(MC!=0xff) {
jiao1(1500,1000,1400, shu );
jiao2(1500,1600,1300, shu );
jiao3(1500,1000,1400, shu );
jiao4(1600,1400,1600, shu );
jiao5(1500,1900,1600, shu );
jiao6(1200,1400,1500, shu );
}
MC=0x00;
c7=1;c8=1;
while(MC!=0xff) {
jiao1(1500,1000,1400, shu );
jiao2(1500,1600,1300, shu );
jiao3(1500,1000,1400, shu );
jiao4(1600,1400,1600, shu );
jiao5(1500,1900,1600, shu );
jiao6(1200,1400,1500, shu );
}
MC=0x00;
c7=1;c8=1;
}
void SHUZa(void)
{
while(!RI); RI=0; XVB2=SBUF;
}
void shudu(void)
{
while(!RI); RI=0; PSHU[21]=SBUF;
}
void kuadu(void)
{
while(!RI); RI=0;
kuan11=kuan11-SBUF;
kuan13=kuan13+SBUF;
}
void kuadu2(void)
{
while(!RI); RI=0;
kuan11=kuan11+SBUF;
kuan13=kuan13-SBUF;
}
void pkwd(unsigned char q)
{
switch(q)
{
case 0: kaix=0; break;
case 1: kaix=0,did2(20); break;
case 2: kaix=0,did3(20); break;
case 3: kaix=1 ;break;
case 4: kaix=2;break;
case 5: kaix=0;break;
case 6: kaix=3; break;
case 7:kaix=4; break;
case 10: kaix=0,SHUZa();break;
case 11:kaix=5; break;
case 0x7d: kaix=0,kuadu2(); break;
case 0x7e: kaix=0,kuadu(); break;
case 0x7f: kaix=0,shudu(); break;
case 0xf1: kaix=0,SHUZI(); break;
case 0xf2: kaix=0,did1(20); break;
case 0xf3: kaix=0,WHUZI(); break;
case 0xf4: kaix=0,yunxin(); break;
default: ;break;
}
}
void cocli(void)
{
if(RI)
{
RI=0;
pkwd(SBUF);
// SendOneByte(SBUF);
}
else
TI = 0;
}
void main()
{
MC=0x00;
c7=1;
c8=1;
PSHU[21]=45;
PSHU[22]=200;
PSHU[23]=200;
PSHU[10]=0;
WSHU[10]=0;
pwmat=0;
did1(1);
UartInit();
InitTimer();
SendOneByte(0x01);
skwb(pwmst);
TR0=1;
skwx(pwmat);
TR1=1;
did1(30);
// did1();
while(1)
{
if(kaix==1){
qian1(PSHU[21]);
}
if(kaix==2)
{ SendOneByte(0x03);
houz1(PSHU[21]);
}
if(kaix==3)
{
zuozou(PSHU[21]);
}
if(kaix==4)
{
youzou(PSHU[21]);
}
if(kaix==5)
{
shin1(PSHU[21]);
}
// jiao1(2000,2000,2000, 20 );
//delay(200); delay(200); delay(200); delay(200); delay(200);
cocli();
}
}
void timer0(void) interrupt 1//定时器0中断函数
{
TR0=0;
skwc(pwmst);
if( PSHU[pwmst]>2000) {
cans=PSHU[pwmst]+cans-2000;
} else{
chai =chai+(2000- PSHU[pwmst]);
}
if(pwmst==9) {
if(chai>=cans){ chai=chai-cans; }else{ chai=0;}
PSHU[10]=chai;
}
pwmst++;
if(pwmst>10){ chai=0; pwmst=0;cans=0; }
pwm_value= PSHU[pwmst];
TH0=-pwm_value/256;
TL0=-pwm_value%256;
skwb(pwmst);
TR0=1;
}
void timer1(void) interrupt 3//定时器1中断函数
{
TR1=0;
skwz(pwmat);
if( WSHU[pwmat]>2000) {
canb=WSHU[pwmat]+canb-2000;
} else{
chaa =chaa+(2000- WSHU[pwmat]);
}
if(pwmst==9) {
if(chai>=cans){ chaa=chaa-cans; }else{ chaa=0;}
WSHU[10]=chaa;
}
pwmat++;
if(pwmat>10){ chaa=0; pwmat=0;canb=0; }
pwm_value= WSHU[pwmat];
TH1=-pwm_value/256;
TL1=-pwm_value%256;
skwx(pwmat);
TR1=1;
}
|