PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 24-01-2015, 12:58 PM   #23
lamdanh120293
Nhập môn đệ tử
 
Tham gia ngày: Dec 2013
Bài gửi: 1
:
Giúp em với, không biết code bị gì !

Mong các anh giúp em tìm nguyên nhân nổ mạch, không hiểu làm sao khi đổ code vào xe dò line, sau khi chạy được một đoạn thì xịt khói mạch sensor (adc tín hiệu line về vxl), chết con Pic, mạch công suất đứt cầu chì và hỏng 1 bên mạch công suất. Em đã kiểm tra phần đi dây, cách điện giữa các mạch, không thấy vấn đề gì. Hôm trước đã chạy pwm thì chạy bình thường ko có vấn đề, em dã test bộ dò line và mạch adc hoạt động bình thường, khi làm chương trình khác để dò line thì bị cháy..

Xe này em sử dụng các module :
- mạch line 8 led
- mach adc
- mach pic16f877a, 4Mhz
- mach công suất 2 động cơ

Em cảm ơn.
__________________________________________________ ______________________
#include <16f877a.h>
#include <math.h>

#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES WRT //Program Memory Write Protected
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOPROTECT //Code not protected from reading

#use delay(clock=4000000)
#define led pin_b0
#define kep 0
#define nha 1
#define dir1 PIN_C0
#define dir2 PIN_C3
#define en1 PIN_C1
#define en2 PIN_C2


//************************************************** ********************************
void main()
{
set_tris_D(0xFF);
unsigned char vitri;
setup_ccp1(ccp_pwm);
setup_ccp2(ccp_pwm);
setup_timer_2(t2_div_by_16,250,1);
set_pwm1_duty(255);
set_pwm2_duty(255);

// Toc do max tocdo = 0
// Toc do min tocdo = 255
// Dong co chay ccp_pwm = 0
// Huong Dco 1 tien la dir1 = 0
// Huong Dco 2 tien la dir2 = 0
// Dong co trai la pwm2
// Dong co phai la pwm1


while(1)
{
switch(input_d())
{
case 0b00000000: // ngoai san
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(500);
break;
case 0b00011000: // trung tam
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm2_duty(200);
set_pwm1_duty(200);
vitri = 0;
break;
//---------------------------------------------------------------
case 0b00111000: // lech trai 1
case 0b00110000:
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(205);
set_pwm2_duty(200);
vitri = 1;
break;
case 0b01110000: // lech trai 2
case 0b01100000:
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(210);
set_pwm2_duty(200);
vitri = 2;
break;
case 0b11100000: // lech trai 3
case 0b11000000:
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(200);
set_pwm2_duty(215);
vitri = 3;
break;
case 0b10000000: // lech trai 4
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(195);
set_pwm2_duty(215);
vitri = 4;
break;
//---------------------------------------------------------------
case 0b00011100: // lech phai 1
case 0b00001100:
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(200);
set_pwm2_duty(205);
vitri = -1;
break;
case 0b00001110: // lech phai 2
case 0b00000110:
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(200);
set_pwm2_duty(210);
vitri = -2;
break;
case 0b00000111: // lech phai 3
case 0b00000011:
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(215);
set_pwm2_duty(200);
vitri = -3;
break;
case 0b00000001: // lech phai 4
output_bit(dir1,0);
output_bit(dir2,0);
set_pwm1_duty(215);
set_pwm2_duty(195);
vitri = -4;
break;
default:
if(vitri > 2)
{
output_bit(dir1,1);
output_bit(dir2,0);
set_pwm1_duty(200);
set_pwm2_duty(200);
}
if(vitri < -2)
{
output_bit(dir1,0);
output_bit(dir2,1);
set_pwm1_duty(200);
set_pwm2_duty(200);
}
break;
}
}
}
//************************************************** ********************************
lamdanh120293 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT về USART trong PIC16F877A mafd_47a MPASM 16 19-02-2025 05:32 AM
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 28 28-01-2025 10:45 PM
Bộ so sánh và PWM cho PIC16F877A anhquangngai Cơ bản về vi điều khiển và PIC 24 08-09-2012 09:00 AM
Pic16f877a TỪ DỄ TỚi KhÓ ntc Cơ bản về vi điều khiển và PIC 373 23-05-2009 10:24 PM
CCS C for PIC16F877A nhh Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 405 24-04-2008 12:00 PM


Múi giờ GMT. Hiện tại là 07:51 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam