mình dịch không có lỗi nhưng mô phỏng thì không chạy. Mình đã dùng max232 để chuyển đổi mức điện áp. Mọi người sửa giúp mình với
Đây là đoạn code mình viết:
///////////////////////////////////////////
/* khai bao thu vien*/
#include <reg52.h>
#include <stdio.h>
#include <math.h>
/* khai bao cac bien*/
unsigned int demtg, demxung, n;
float tocdo;
/*cac chuong trinh con*/
void delay (unsigned int t)
{
unsigned int i;
for(i=1;i<=t;++i);
}
void ngatngoai0() interrupt 0
{
demxung++;
}
void ngattimer0() interrupt 1
{
demtg++;
TF0=0; // xoa co tran
TR0=1; // cho timer0 tiep tuc chay
}
void hienthi()
{
TR1=1;
while(!TI);
TI=0;
puts(" toc do dong co: ");
putchar(n/1000);
putchar((n%1000)/100);
putchar(((n%1000)%100)/10);
putchar(((n%1000)%100)%10);
delay(1000);
putchar(0x27); // dua con tro ve dau
putchar(0x27);
putchar(0x27);
putchar(0x27);
TR1=0;
}
/* chuong trinh chinh*/
void main()
{
SCON=0x52; // port noi tiep che do 1
TMOD=0x52; // timer0 mode 1, timer1 mode 1
IE= 0x83; // cho phep ngat ngoai INT0, ngat tu timer0
TH0=TL0=-9216; // nap gia tri dau
TH1=TL1=-3; // toc do baud la 9600
while(1)
{
TR0=1;
while(demtg<10); // tao khoang thoi gian 0,1s
TR0=0;
tocdo=demxung*600/24; // encoder co 24 lo, toc do tinh ra v/p
n=tocdo/1;
hienthi();
demtg=0;
demxung=0;
}
}
Đây là đoạn code mình viết:
///////////////////////////////////////////
/* khai bao thu vien*/
#include <reg52.h>
#include <stdio.h>
#include <math.h>
/* khai bao cac bien*/
unsigned int demtg, demxung, n;
float tocdo;
/*cac chuong trinh con*/
void delay (unsigned int t)
{
unsigned int i;
for(i=1;i<=t;++i);
}
void ngatngoai0() interrupt 0
{
demxung++;
}
void ngattimer0() interrupt 1
{
demtg++;
TF0=0; // xoa co tran
TR0=1; // cho timer0 tiep tuc chay
}
void hienthi()
{
TR1=1;
while(!TI);
TI=0;
puts(" toc do dong co: ");
putchar(n/1000);
putchar((n%1000)/100);
putchar(((n%1000)%100)/10);
putchar(((n%1000)%100)%10);
delay(1000);
putchar(0x27); // dua con tro ve dau
putchar(0x27);
putchar(0x27);
putchar(0x27);
TR1=0;
}
/* chuong trinh chinh*/
void main()
{
SCON=0x52; // port noi tiep che do 1
TMOD=0x52; // timer0 mode 1, timer1 mode 1
IE= 0x83; // cho phep ngat ngoai INT0, ngat tu timer0
TH0=TL0=-9216; // nap gia tri dau
TH1=TL1=-3; // toc do baud la 9600
while(1)
{
TR0=1;
while(demtg<10); // tao khoang thoi gian 0,1s
TR0=0;
tocdo=demxung*600/24; // encoder co 24 lo, toc do tinh ra v/p
n=tocdo/1;
hienthi();
demtg=0;
demxung=0;
}
}
Comment