các pro xem giúp em đoan code này lỗi ở đâu với em viết mà nó không chạy. Khi biên dịch thì nó không báo lỗi nào cả
// Chuong trinh dieu khien dong co Mot chieu
// Giao tiep voi may tinh qua cong noi tiep
// AT89s52, Thach Anh 11.0592
#include "at89x52.h"
sbit PWM = P2^0;
sbit nguoc = P2^5;
sbit thuan = P2^3;
void caicongcom() // cai dat cong com
{
TMOD=0x20; //Timer1, mode 2, baud rate 9600 bps
TH1=0XFD;
SCON=0x50;
TR1=1;
}
void nhan() // chuong trinh con nhan ki tu tu may tinh
{
char x;
if(RI==1)
x=SBUF;
RI=0;
}
void truyen(char y) // chuong trinh con gui ki tu len may tinh
{
SBUF=y;
if(TI==1)
TI=0;
}
void pwm(unsigned char duty) // chuong trinh con dieu che do rong xung
{
TH0=-100*duty/256;
TL0=-100*duty%256;
TR0=1;
PWM=1;
while(!TF0)
{
TF0=0;
TR0=0;
TH0=-100*(100-duty)/256;
TL0=-100*(100-duty)%256;
TR0=1;
PWM=0;
}
while(!TF0)
{
TF0=0;
TR0=0;
}
}
void chay() // chuong trinh con chay dong co
{
thuan=1;
nguoc=0;
pwm(10);
}
void tangtoc() // chuong trinh con tang toc dong co
{
int t;
t+=5;
if (t>100) t=100;
pwm(t);
}
void giamtoc() // chuong trinh con giam toc dong co
{
int t;
t-=5;
if (t<0) t=0;
pwm(t);
}
void daochieu() // chuong trinh con dao chieu
{
int tg;
thuan=tg;
thuan=nguoc;
nguoc=tg;
}
void dung()
{
thuan=0;
nguoc=0;
pwm(0);
}
void main() // chuong trinh chinh
{
char x;
while(1)
{
caicongcom();
nhan();
switch (x)
{
case 67:{chay(); truyen(65);break;}
case 84:{tangtoc(); truyen(66);break;}
case 71:{giamtoc(); truyen(67);break;}
case 68:{daochieu(); truyen(68);break;}
case 81:{dung(); truyen(69);break;}
}
}
}
// Chuong trinh dieu khien dong co Mot chieu
// Giao tiep voi may tinh qua cong noi tiep
// AT89s52, Thach Anh 11.0592
#include "at89x52.h"
sbit PWM = P2^0;
sbit nguoc = P2^5;
sbit thuan = P2^3;
void caicongcom() // cai dat cong com
{
TMOD=0x20; //Timer1, mode 2, baud rate 9600 bps
TH1=0XFD;
SCON=0x50;
TR1=1;
}
void nhan() // chuong trinh con nhan ki tu tu may tinh
{
char x;
if(RI==1)
x=SBUF;
RI=0;
}
void truyen(char y) // chuong trinh con gui ki tu len may tinh
{
SBUF=y;
if(TI==1)
TI=0;
}
void pwm(unsigned char duty) // chuong trinh con dieu che do rong xung
{
TH0=-100*duty/256;
TL0=-100*duty%256;
TR0=1;
PWM=1;
while(!TF0)
{
TF0=0;
TR0=0;
TH0=-100*(100-duty)/256;
TL0=-100*(100-duty)%256;
TR0=1;
PWM=0;
}
while(!TF0)
{
TF0=0;
TR0=0;
}
}
void chay() // chuong trinh con chay dong co
{
thuan=1;
nguoc=0;
pwm(10);
}
void tangtoc() // chuong trinh con tang toc dong co
{
int t;
t+=5;
if (t>100) t=100;
pwm(t);
}
void giamtoc() // chuong trinh con giam toc dong co
{
int t;
t-=5;
if (t<0) t=0;
pwm(t);
}
void daochieu() // chuong trinh con dao chieu
{
int tg;
thuan=tg;
thuan=nguoc;
nguoc=tg;
}
void dung()
{
thuan=0;
nguoc=0;
pwm(0);
}
void main() // chuong trinh chinh
{
char x;
while(1)
{
caicongcom();
nhan();
switch (x)
{
case 67:{chay(); truyen(65);break;}
case 84:{tangtoc(); truyen(66);break;}
case 71:{giamtoc(); truyen(67);break;}
case 68:{daochieu(); truyen(68);break;}
case 81:{dung(); truyen(69);break;}
}
}
}
Comment