Dưới đây là code đk tốc độ động cơ
Bác này giỏi code VXL giảng giúp em phần code này đc không ạ !
#include
#define Relay P2_0
#define PWM P2_1
#define TANG_TOC P3_6
#define GIAM_TOC P3_7
unsigned int i=5000;
unsigned int time1,time2;
//===============tre======================
void delay(unsigned int t)
{
unsigned int y;
for(y=0;y<t;y++);
}
//================Ngat=======================
void ngat_INT0() interrupt 0
{
time1++;
if(time1>1)
time1=0;
if(time1==1)
TR0=1;
if(time1==0)
TR0=0;
}
void ngat_INT1() interrupt 2
{
PWM=1; //khoi dong pwm
delay(200);
Relay=~Relay;
i=5000;
}
void ngat_timer_0() interrupt 1
{
time2++;
TR0=0;
TF0=0;
if(time2>1)
time2=0;
if(time2==0)
{
PWM=1;
TH0=-i/256;
TL0=-i%256;
}
if(time2==1)
{
PWM=0;
TH0=-(10000-i)/256;
TL0=-(10000-i)%256;
}
TR0=1;
}
//ham kiem tra nut nhan
void key()
{
if(TANG_TOC==0)
{
delay(200);
if(i>1000)
i-=10;
}
if(GIAM_TOC==0)
{
delay(200);
if(i<9990)
i+=10;
}
}
//=======Chuong trinh chinh======================
void main()
{
TMOD=0x01; //timer 0 mod 1
EA=1; //cho phep ngat toan cuc
EX0=1; //cho phep ngat ngoai
EX1=1;
ET0=1; //cho phep ngoat timer0
IT0=IT1=1; //ngat theo suon
while(1)
{
delay(50);
key();
}
}
Tải về đính kèm: