Chào mừng đến với Câu Lạc Bộ Sáng Tạo
Chia sẻ kinh nghiệm
Kết nối đam mê
Đang cập nhật thời gian...
BÀI VIẾT NỔI BẬT
Xin chào! Tôi là Ếch Sáng Tạo :-)
Chia sẻ trang




Chuyên mục
Bài mới
Xem nhiều
Thống kê
  • Bài viết: 334/334
  • Thành viên: 10.085
  • Đang online: 5
  • Khách hôm nay: 597
  • Khách hôm qua: 6.143
  • Tổng khách: 16.204.298
Bài viết
Điều khiển tốc độ động cơ Motor DC sử dụng PWM - SangTaoClub.Net
Điều khiển tốc độ động cơ Motor DC sử dụng PWM
Đăng bởi: kienvuce - Thời gian: 04-11-2021, 22:40
Chuyên mục: Học lập trình 8051 - Lượt xem: 3.129

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:
88_1636040441.png
Kích thước: 62.46 KB
Bài viết sửa lúc 14-12-2021, 13:25 bởi kienvuce
  • Bạn chưa đăng nhập, không thể viết bình luận!
    Bấm vào đây để Đăng nhập hoặc Đăng ký!
  • Vũ Văn Thái lúc 23-11-2021, 08:58
    " unsigned int i=5000;
    unsigned int time1,time2; "

    Đây là khai báo biến thôi mà @@
    • tanbinhzero lúc 30-11-2021, 19:23
      Code này dùng để tăng giảm tốc độ động cơ DC bằng PWM mà.
      Biến i = 5000 là tốc độ trung bình khi mở nguồn
      Biến time1 dùng bật tắt PWM
      Biến time2 dùng chọn mức cao mức thấp PWM
    • kienvuce lúc 26-11-2021, 15:50
      Admin có thể giải thích hộ e phần khai báo 3 biến kia để làm gì với tạo xung pwm bằng timer0 như trong code được không ạ @@, mấy ngày nay e tìm hiểu pwm mà vẫn chưa rõ trong code nó tạo xung pwm kiểu gì ạ, em cảm ơn.
  • Trang 1/1: 1

    Bài viết cùng chuyên mục
    Chia sẻ bộ thư viện Driver chuẩn cho LCD Gphone và Home Phone Chia sẻ bộ thư viện Driver chuẩn cho LCD Gphone và Home Phone
    Đăng bởi: Vũ Văn Thái - Thời gian: 22-02-2017, 14:54
    Chuyên mục: Học lập trình 8051 - Lượt xem: 6.634
    Led 7 thanh 4 số điều khiển bằng nút bấm Led 7 thanh 4 số điều khiển bằng nút bấm
    Đăng bởi: HoangQuan69 - Thời gian: 09-10-2016, 15:08
    Chuyên mục: Học lập trình 8051 - Lượt xem: 5.943
    Chia sẻ Code đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307 Chia sẻ Code đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307
    Đăng bởi: Vũ Văn Thái - Thời gian: 13-05-2015, 09:00
    Chuyên mục: Học lập trình 8051 - Lượt xem: 28.711
    Bài 15: Lập trình quét phím matrix 4x4 hiển thị lên LCD 16x2 Bài 15: Lập trình quét phím matrix 4x4 hiển thị lên LCD 16x2
    Đăng bởi: Vũ Văn Thái - Thời gian: 20-11-2014, 08:57
    Chuyên mục: Học lập trình 8051 - Lượt xem: 31.829
    [Share] Code giao tiếp Graphic LCD 12864 SPI của máy GPHONE ZTE [Share] Code giao tiếp Graphic LCD 12864 SPI của máy GPHONE ZTE
    Đăng bởi: Vũ Văn Thái - Thời gian: 12-11-2014, 22:06
    Chuyên mục: Học lập trình 8051 - Lượt xem: 19.281
    [Share] Code C đo nhiệt độ dùng DS18B20 hiển thị lên LED 7 thanh [Share] Code C đo nhiệt độ dùng DS18B20 hiển thị lên LED 7 thanh
    Đăng bởi: Vũ Văn Thái - Thời gian: 12-11-2014, 09:02
    Chuyên mục: Học lập trình 8051 - Lượt xem: 19.609
    Bài 14: Đo nhiệt độ dùng cảm biến DS18B20 với 8051 Bài 14: Đo nhiệt độ dùng cảm biến DS18B20 với 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 19-10-2014, 10:11
    Chuyên mục: Học lập trình 8051 - Lượt xem: 25.435
    Bài 13: Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051 Bài 13: Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 22-08-2014, 22:18
    Chuyên mục: Học lập trình 8051 - Lượt xem: 46.040
    Bài 12: Tạo xung PWM dùng ngắt timer 8051 Bài 12: Tạo xung PWM dùng ngắt timer 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 02-03-2014, 20:45
    Chuyên mục: Học lập trình 8051 - Lượt xem: 24.138
    Bài 11: Lập trình quét LED 7 đoạn và nút nhấn Bài 11: Lập trình quét LED 7 đoạn và nút nhấn
    Đăng bởi: Vũ Văn Thái - Thời gian: 19-12-2013, 11:02
    Chuyên mục: Học lập trình 8051 - Lượt xem: 53.274
    
    Chào mừng hieutrang đã tham gia câu lạc bộ sáng tạo!
    Vũ Văn Thái - vuthai
    Hôm nay là sinh nhật của minhtien757, zena93, huytuong90, ngocson9xht, sam6886, hienbk9210, Thuvan, vanbong1325, nguyenanh26, Vanthu, el_gj_4, gnldgnds, nguyentrungduc, Tai1st, truongthanhphuong, ← Gửi tin nhắn chúc mừng
    Múi giờ: UTC+07:00 - Asia/Ho Chi Minh ***** IP của bạn: 18.220.81.106 ***** Status: Cache Update thành công!