Nguyên văn bởi luc_ky_luke
Xem bài viết
Thông báo
Collapse
No announcement yet.
Viết code cho robot dò đường
Collapse
X
-
đây là một bộ khung viết cho con dò đường dùng 89s52 bạn có thể tham khảo:
#include<REG52.H> // kb thu vien
sbit out_pwm1 = P2^0;
sbit out_pwm2 = P2^4;
sbit L1 = P2^2;
sbit L2 = P2^3;
sbit R1 = P2^6;
sbit R2 = P2^7;
sbit sw1 = P3^7;
unsigned char pwm1, pwm2;
int dem,xung,chieu;
void ngatngoai0 (void) interrupt 0
{
xung++;
}
void ngattimer0 (void) interrupt 1 // tao xung PWM
{
dem++;
if (dem ==256) dem =0;
if (dem < pwm1 )
out_pwm1=1;
else
out_pwm1=0;
if (dem < pwm2)
out_pwm2=1;
else
out_pwm2=0;
}
void quay_trai (void)
{
do
{
pwm1=20;
L1=R2=0;
pwm2=200;
L2=R1=1;
}
while(P2==0x81);
}
void quay_phai (void) // nguoc lai
{
do
{
pwm1=200;
L2=R1=0;
pwm2=20;
L1=R2=1;
}
while(P2==0x81);
pwm1=1;
pwm2=1;
}
void do_duong(void)
{
char temp;
temp=P2;
L1=R1=1; // tien
L2=R2=1; // tien
switch (temp)
{
case 12: // di thang
{
pwm1=250;
pwm2=250;
break;
}
case 8: // lech trai 1
{
pwm1=250;
pwm2=230;
break;
}
case 16: // lech trai 2
{
pwm1=250;
pwm2=200;
break;
}
case 32: // lech trai 3
{
pwm1=250;
pwm2=170;
break;
}
case 4: // lech trai 4
{
pwm1=250;
pwm2=230;
break;
}
default :
{
pwm1=100;
pwm2=100;
break;
}
case 2: //lech phai 1
{
pwm1=250;
pwm2=200;
break;
}
case 6: //lech phai2
{
pwm1=250;
pwm2=170;
break;
}
}
}
void chaythang(unsigned int quangduong)
{
xung=0;
do
{
do_duong();
}
while(xung<quangduong); // 1m
pwm1=1;
pwm2=1;
}
void main (void) // cct
{
// *** khoi tao ***
// khoi tao ngat
IE=0x83;
IT0=1;
// khoi tao ngat timer
TMOD=0x02;
TH0= 246;
TR0=1;
// chon do rong xung(chon toc doc cho motor)
pwm1=1;
pwm2=1;
while(sw1);
chaythang(500); //1m
while(1);
}
Comment
-
em đọc qua có phải đây là 2 cảm biến ko ạ, e đang cần làm mạch 6 cặp cảm biến cơ, chưa biết bố trí khoảng ách thế nào cho phù hợpNguyên văn bởi soc_con_haui Xem bài viếtđây là một bộ khung viết cho con dò đường dùng 89s52 bạn có thể tham khảo:
#incl
while(1);
}
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Cấu hình chiến game "quốc dân" cho nền tảng AM5: Lựa chọn tối ưu ngân sách với Ryzen 5 7500Fbởi kumarbrMình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 15:49 -
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:09 -
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -

Comment