Code gốc của 1 bác trên này, e thêm phần tốc độ vào. Nhưng khi nhấn nút thì nó vẫn nhận giá trị a =500 bác nào sửa giúp e với !
#include <regx52.h>
#include <stdio.h>
sbit TRAI = P1^0;
sbit PHAI = P1^1;
sbit NUT = P1^2;
unsigned char M[] = {0x0e,0x0d,0x0b,0x07};
int i=0,j=0,a;
//-------------------------
void tocdo(){
a = 500;
while(NUT){
a = a + 500;
if (a > 5000) a = 500;
}
}
void delay(){
unsigned int t,time=10;
tocdo();
while(time--)
for(t=0;t<a;t++);
}
//--------------------------
void dc_thuan(){
while(TRAI){
delay();
P2 = M[i--];
if(i < 0)
i = 3;
}
i++;
}
//-------------------------
void dc1_dao(){
while(PHAI){
delay();
P2 = M[i++];
if(i > 3)
i = 0;
}
i--;
}
void main(){
P2 = 0;
while(1){
dc_thuan();
dc_dao();
}
}
#include <regx52.h>
#include <stdio.h>
sbit TRAI = P1^0;
sbit PHAI = P1^1;
sbit NUT = P1^2;
unsigned char M[] = {0x0e,0x0d,0x0b,0x07};
int i=0,j=0,a;
//-------------------------
void tocdo(){
a = 500;
while(NUT){
a = a + 500;
if (a > 5000) a = 500;
}
}
void delay(){
unsigned int t,time=10;
tocdo();
while(time--)
for(t=0;t<a;t++);
}
//--------------------------
void dc_thuan(){
while(TRAI){
delay();
P2 = M[i--];
if(i < 0)
i = 3;
}
i++;
}
//-------------------------
void dc1_dao(){
while(PHAI){
delay();
P2 = M[i++];
if(i > 3)
i = 0;
}
i--;
}
void main(){
P2 = 0;
while(1){
dc_thuan();
dc_dao();
}
}
Comment