minh dang can gap? goi hung nhe
Thông báo
Collapse
No announcement yet.
gui cho minh so dô mạch nap 89s52
Collapse
X
-
-
có ai giúp em vói, em đang lạp trình cho động cơ DC bàng 89c51,
em sủ dụng 6 nut nhấn , start, stop, quay thuan, quay nghich , tang , giam,
em đã lập trình được start , stop ,thuận, nghich.
còn phần thay đổi tốc độ DC thì em vẫn chưa lam được
mong anh chị chỉ giùm em
em là người mới nên chưa nắm rõ lắm
#include <REGX51.H>
/* Dinh nghia cac nut nhan*/
#define start P2_0
#define stop P2_1
#define thuan P2_2
#define nghich P2_3
#define tang P2_4
#define giam P2_5
bit PWM;
unsigned char dem=0;
unsigned int phantram_PWM=10;
/* Ham tao thoi gian tre*/
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<100;i++);
for(j=0;j<t;j++);
}
/* Khoi tao Timer 100us*/
void khoitaohethong()
{
//ES=1;
EA=0;
TMOD=0x02; // che do 8 bit tu nap
TH0=0x9b; // nap gia tri 155 ma hex
TL0=0x9b;
EA=1;
TR0=1;// Chay timer 0 bat dau dem so chu ki may
ET0=1;
}
/* Ngat tao ra PWM*/
void ngat_timer0(void) interrupt 1
{
TR0=0;
TF0=0;
dem++;
if(dem>=phantram_PWM)
{
PWM=1;
}
else
{
PWM=0;
}
if(dem==10) dem=0;
TR0=1;
}
/* Ham dung dong co*/
void startdc(void)
{
if(start==0)
P1_2=PWM;
}
void stopdc(void)
{
if(stop==0)
P1_2=1;
}
/* Ham quay thuan dong co*/
void quaythuan(void)
{
if(thuan==0)
P1_3=1;
}
/* Ham quay nghich dong co*/
void quaynghich(void)
{
if(nghich==0)
P1_3=0;
}
/* Ham dieu khien tang toc*/
unsigned char tangtoc(void)
{
if(tang==0)
{
while(tang==0)
{;}
phantram_PWM--;
delay(100);
if(phantram_PWM<1)
{
phantram_PWM=1;
} }
return (phantram_PWM);
}
/* Ham dieu khien giam toc*/
unsigned char giamtoc(void)
{
if(giam==0)
{
while(giam==0)
{;}
phantram_PWM++;
delay(100);
if(phantram_PWM>40)
phantram_PWM=40;
}
return (phantram_PWM);
}
/* Lua chon che do cua dong co*/
unsigned char n;
unsigned char chonchedo(void)
{
if(start==0)n=1;
if(stop==0) n=2;
if(thuan==0) n=3;
if(nghich==0) n=4;
if(tang==0)n=5;
if(giam==0)n=6;
switch(n)
{
case 0: {break;}
case 1: {startdc();break;}
case 2: {stopdc();break;}
case 3: {quaythuan();break;}
case 4: {quaynghich();break;}
case 5: {tangtoc();break;}
case 6: {giamtoc();break;}
}
return (n);
}
/* Chuong trinh chinh*/
void main()
{
khoitaohethong();
while(1)
{
startdc();
stopdc();
quaythuan();
quaynghich();
tangtoc();
giamtoc();
chonchedo();
}
}
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Trình điều khiển bước rời rạcbởi mèomướpDạ nếu chú đã viết được chương trình cho vđk thì thêm 1 chương trình con chạy động cơ bước chỉ đơn giản là copy phát. Về phần cứng thì vài con cách ly quang, vài con mosfet thôi ạ. thực sự là dễ dàng như bài tập bình thường của sinh viên thôi ạ...
-
Channel: Máy công cụ
Hôm qua, 12:55 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi Minhdai95vâng mình cảm ơn mn đã góp ý
-
Channel: Điện tử công suất
Hôm qua, 11:30 -
-
bởi tom22Xin chào
Tôi có một dự án trong đó một động cơ bước tích hợp được điều khiển bởi một bộ vi điều khiển.
Nhưng tôi thực sự không thích trả tiền cho trình điều khiển bước, khi tôi có một bộ vi điều khiển có khả năng thực...-
Channel: Máy công cụ
Hôm qua, 10:54 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú chủ thớt có thời gian và đam mê thì cứ từ từ ngâm cứu đi ạ đừng nghe chú Chú bq... dọa mà sợ ạ. Cái nguồn nhìn cũng lởm có khi hông bằng cái máy hàn tàu của chị hàng xóm hôm nọ tháo ra sửa với chú thợ thông ống nước suốt đêm mới xong. Chú ý an toàn xíu là được ạ...
-
Channel: Điện tử công suất
05-01-2025, 15:40 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi bqvietBộ nguồn xung ở tầm công suất 2700W này, gần 3 ký, không bao giờ đơn giản để mà sửa ngay cả đối với người có kinh nghiệm chứ đừng nói người không chuyên. Đám linh kiện công suất không tự nhiên cháy mà phải xuất phát từ nguyên nhân...
-
Channel: Điện tử công suất
04-01-2025, 22:09 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú kiểm tra đi ốt đầu vào, ra nữa ạ. Về phần kiểm tra dao động chú hỏi chị google ấy ạ, có nhìu cô chú đã hướng dẫn rồi ạ...
-
Channel: Điện tử công suất
04-01-2025, 16:53 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi Minhdai95mình đã kiểm tra phần công suất thấy hỏng cả 4 con IGBT mà mình muốn kiểm tra phần dao động và hồi tiếp khi chưa cấp điện cho mạch thì có cách nào không b, mình không phải dân trong nghề lên chưa có kinh nghiệm sửa. Cảm ơn b
-
Channel: Điện tử công suất
04-01-2025, 14:27 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú nhắm phần công suất dễ kiểm tra và hay hư hỏng nhất trước ạ. Rồi đến phần dao động nguồn, hồi tiếp...
-
Channel: Điện tử công suất
04-01-2025, 11:42 -
-
bởi Minhdai95mọi người đã ai sửa bộ nguồn này chưa ạ, cho e xin ít kinh nghiệm để sửa bộ nguồn. Em cảm ơn...
-
Channel: Điện tử công suất
04-01-2025, 11:22 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nhathung1101
-
Channel: Điện tử dành cho người mới bắt đầu
31-12-2024, 17:39 -
Comment