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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 20-11-2008, 03:22 AM   #16
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi popeye_ts22 View Post
Em không hiểu các chế độ auto restart và auto shutdown trong chip 16F887 có nhiệm vụ gì thế ạ,cả thời gian "Dead-band" nghĩa là như nào ạ.Timer 1 làm khối thời gian cơ sở cho capture và compare ,hiểu như nào ạ.
Tks các bác nhìu nhìu..
Bạn đang nói về module ECCP của PIC16F887. Khi có một sự kiện thể hiện yêu cầu shut-down (tắt) module ECCP, trạng thái của các ngõ ra của module ECCP cần được xác định trước một cách rõ ràng, để tránh gây hư hại đến mạch ứng dụng. Chức năng này được gọi là auto-shutdown.

Nếu chế độ auto-restart của module ECCP được cho phép (enabled), sau khi điều kiện shut-down được gỡ bỏ, module ECCP sẽ tự động restart lại bằng điểm khởi đầu của một chu kỳ PWM. Nếu chế độ auto-restart không được cho phép (disabled), bạn sẽ phải xóa bit ECCPASE trong thanh ghi ECCPAS để cho phép module ECCP hoạt động trở lại.

Khi các ngõ ra của module ECCP được dùng để kích các nửa cầu, các linh kiện đóng/ngắt nằm cùng một nửa cầu cần tránh được kích cùng một lúc, vì sẽ dẫn đến hiện tượng ngắn mạch nguồn. Do bản chất vật lý của các linh kiện dùng làm khóa (van) chuyển mạch, cần có một thời gian trễ giữa sự kiện tắt một khóa (van) và bật khóa (van) kia thuộc cùng một nửa cầu. Thời gian trễ này gọi là dead-time hay dead-band.

Timer1 được gọi là khối thời gian cơ sở cho các sự kiện capture và compare vì nó được dùng để xác định các thời điểm mà các sự kiện được phát hiện hay thay đổi.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 20-11-2008 lúc 03:56 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-11-2008, 01:21 PM   #17
popeye_ts22
Đệ tử 2 túi
 
popeye_ts22's Avatar
 
Tham gia ngày: Jul 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 42
:
Send a message via Yahoo to popeye_ts22
Cám ơn bác.Bác cho em hỏi.Em muốn nạp ICSP qua mạch mnp1,dùng phần mềm Pgm.Em phải cấu hình cho nó như nào ạ.Phần các pin và hardware test là như nào hả bác.Trên mạch của em chỉ cần đưa các chân ICSP rùi cắm vào 6 chân của mnpic1 phải không ạ.
Hình Kèm Theo
File Type: jpg PGM.JPG (42.5 KB, 1022 lần tải)
__________________
Best Regard.
popeye_ts22 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-11-2008, 02:42 AM   #18
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi popeye_ts22 View Post
Cám ơn bác.Bác cho em hỏi.Em muốn nạp ICSP qua mạch mnp1,dùng phần mềm Pgm.Em phải cấu hình cho nó như nào ạ.Phần các pin và hardware test là như nào hả bác.Trên mạch của em chỉ cần đưa các chân ICSP rùi cắm vào 6 chân của mnpic1 phải không ạ.
Đọc bài viết của bạn rồi tôi cũng không rõ bạn đang dùng mạch nạp nào. Với các mạch nạp qua cổng COM như JDM và tương thích (PG2C của Olimex chẳng hạn), bạn chỉ cần chọn JDM Programmer trong PICPgm. Nếu bạn dùng JDM Mod của tôi thì cần chỉnh lại cấu hình: chọn Invert cho chân Data Out.

Trên mạch ứng dụng thì bạn cần cách ly các chân của PIC được sử dụng cho ICSP với các mạch ngoại vi khác, vấn đề này đã được nói nhiều lần trên diễn đàn, bạn hãy tìm kiếm trong diễn đàn với Google bằng từ khóa ICSP. Post #17 của luồng sau là một trong những bài viết của tôi đề cập đến việc hiện thực mạch đích cho ICSP: http://www.picvietnam.com/forum/show...p?t=429&page=2

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-11-2008, 12:47 AM   #19
popeye_ts22
Đệ tử 2 túi
 
popeye_ts22's Avatar
 
Tham gia ngày: Jul 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 42
:
Send a message via Yahoo to popeye_ts22
Talking

Em ko tìm kĩ nên ko thấy đã có vấn đề ICSP kia rùi.Cám ơn bác.Mạch của em là mạch mnpic1 bác ạ.Có gì em sẽ hỏi thêm bác sau.Hihi.
Hình Kèm Theo
File Type: jpg mnpic1.jpg (6.0 KB, 1015 lần tải)
__________________
Best Regard.
popeye_ts22 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2009, 12:57 PM   #20
minh_luandt
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 10
:
em cũng mới mua vài con PIC16F887 về để làm DATN
Nghe nói giống 877a nhưng mà em ko biết "configuration bit" để sử dụng portB
vì lấy chương trình của 877a bỏ vào thì chỉ có bít 6 và bit 7 hoạt động còn lại thì ko thể set đcj
minh_luandt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2009, 05:17 PM   #21
minh_luandt
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 10
:
à em tìm ra roài
BANKSEL ANSELH
MOVLW 0X00
MOVWF ANSELH
Nhưng config bits thì vẫn còn mù lắm
minh_luandt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2009, 06:02 PM   #22
nguyenk38
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 2
:
Chào bạn MINH_LUANDT!
Có thể bỏ ra chút thời gian giúp mình được không? Mình đang có vấn đề về đề tài đang thực hiện, đề tài có liên quan đến Pic và giao tiếp với máy tính. Vấn đề của mình mắc phải là: Làm thế nào để tạo trên máy tính một bảng điều khiển, trên đó có các icons mà khi ta nhấn chuột vào icons đó nó sẽ thực hiện lệnh điều khiển thông qua Pic 16F877A. Có thể dùng VB6 để tạo ra cái Form đó không? Chương trình up cho Pic thì mình đã viết xong nhưng để tạo ra bảng điều khiển như mình nói ở trên thì mình phải làm những gì?
Cố gắng giúp mình nha. Xin chân thành cảm ơn.
Mình đang ở GV-TPHCM, giúp mình nha. Thanks kèm theo một bữa nhậu...Hi!
nguyenk38 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2009, 09:11 PM   #23
minh_luandt
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 10
:
Mình cũng đang nghiên cứu đó
bạn có thể dùng Giao tiếp USART bất động bộ giao tiếp giữa máy tính và PIC
để vài bữa nữa mình up lên cho bạn 1 đồ án nhé
minh_luandt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2009, 09:13 PM   #24
minh_luandt
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 10
:
báo cáo đồ án
minh_luandt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-03-2009, 11:17 PM   #25
copxongpaste
Nhập môn đệ tử
 
Tham gia ngày: Jan 2009
Bài gửi: 1
:
em mới mày mò cái này , sao mà khó quá các bác ơi
copxongpaste vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-03-2009, 04:17 PM   #26
dinh tien
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 2
:
goi em

em Le Duc co datasheet bang tieng viet cua pic 16f877a khong cho anh nhe.
em goi file vao mail nay cho anh nhe: dinhtien04d1808@yahoo.com
anh cam on em
Trích:
Nguyên văn bởi LeDuc View Post
Chiều nay em định mua vài con 16f877A ve thực hành, em được chị Thủy tư vấn nên dùng con 16f887, nó vừa rẻ hơn mà các chức năng ko thua gì 16f877A . Em kiến thức nông cạn xem datasheet 2 con chỉ thấy khác nhau chút ít thôi, ko biết các bác thấy thế nào?
Các bác có thể so sánh 2 con này ko? có thể thay thế 16f877A = 16f887 ko? em cần làm mạch điều khiển robot nên cần tốc dộ xử lý cao.
Giúp em với.
Thanks các bác!
dinh tien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-06-2010, 06:01 PM   #27
huuducel
Nhập môn đệ tử
 
Tham gia ngày: Mar 2010
Bài gửi: 7
:
Question Dùng Capture đọc tín hiệu Remote

Mấy pro ơi, mình đang làm đề tài dùng input capture của con Pic6f887 để đọc tín hiệu của cái remote. Mày mò lập trình mãi mà nó không chạy. Hôm nay post lên để anh em cùng mổ xẻ xem nó bị sai chỗ nào.
Đoạn code của em như sau:

#include<stdlib.h>
#include<htc.h>
__CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS);
__CONFIG(BORV21);
#define _XTAL_FREQ 4000000

bit Overflow;
unsigned char Pulse_cycle;
bit CaptureRise;
bit CaptureFall;
bit CaptureComplete;
unsigned int PulseCycle;
unsigned int temp;
unsigned int val;
const char ErrorCycle = 8;
char i;
char buf[10];
void Interrupts_isr() // handler for TMR1 and CCP1
{
if(CCP1IF = 1) CCP1IF = 0;
if(CaptureRise = 1)
{
TMR1ON = 1;
CCP1IE = 0;
CCP1CON = 0x04; // Capture mode Falling
CCP1IF = 0;
CCP1IE = 1;
CaptureRise = 0;
CaptureFall = 1;
}
else if(CaptureFall = 1)
{
TMR1ON = 0;
CaptureComplete = 1;
PulseCycle = CCPR1L;
PulseCycle = ((PulseCycle|(CCPR1H<<8)) - ErrorCycle);
}

else if(TMR1IF = 1)
{
TMR1IF = 0;
Overflow = 1;
}
}
void Timer1_init() // Cau hinh Timer1
{
TMR1ON = 0;
TMR1CS = 0; // Clock internal Fosc/4
T1CKPS1 = 0;
T1CKPS0 = 0;
TMR1IE = 1;
}
void CapturePulse()
{
CaptureRise = 1;
CaptureFall = 0;
CaptureComplete = 0;
Overflow = 0;
CCP1IE = 0;// Cam ngat khi chuyen doi
CCP1CON = 0x05; // Captute mode rising
TMR1H = 0;
TMR1L = 0;
TMR1IE = 1;
CCP1IE = 1;
}
void PulseFinish()
{
CCP1IE = 0;
CCP1IF = 1;
TMR1ON = 0;
TMR1IE = 0;
TMR1IF = 0;
}

void Uart_init()
{
BRG16 = 0;
BAUDCTL = BAUDCTL & 0xF7;
TXSTA = 0x24; //Che do high-speed, cho phep phat du lieu
RCSTA = 0x90; //Nhan du lieu lien tuc, dung cac chan TX/RX
//baud rate = Fosc / (16*(n+1))
//n = Fosc/((baud rate)*16) - 1
SPBRG = 25; //Gia tri ung voi baud rate = 9600, xtal 4 MHz
//SPBRGH khong can dung den
while (CaptureComplete = 1);
val = PulseCycle;
for (i = 0; i < 10; i++) buf[i] = 0;
//Chuyen doi tu unsigned char sang ky tu ASCII
utoa(buf, val, 10);

i = 0;
while (buf[i] != 0) {
TXREG = buf[i];
i++;
while (TRMT == 0);
}
TXREG = '\n';
while (TRMT == 0);
TXREG = '\r';
for (i = 0; i < 10; i++) __delay_ms(100);
}

void main (void)
{
Uart_init();
Timer1_init();
TRISC2 = 1; // Input CCP1
CapturePulse();
while(CaptureComplete ==0 & Overflow ==0)
PulseFinish ();
if(Overflow == 1) // If co tran len 1 thi xuat gia tri ra man hinh
Uart_init();
}
huuducel vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2010, 09:32 PM   #28
hoangvinhlong
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 6
:
có bác nào có mạch điều khiển tốc độ động cơ thuận nghịch, nhanh chậm dùng pic 16f887 không cho em xin với để tham khảo
email: nguyenbatrung2688@gmail.com
em xin cám ơn!
hoangvinhlong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2010, 01:47 PM   #29
quocthaitn
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 1
:
em đang làm về điêu khiển thuận nghịch động cơ 1 chiều sử dùng 2 mạch vòng phản hồi âm tốc độ và âm dòng điện sử dụng các bộ pid số.ai có mạch phần này cho em xin để tham khao với
email của em la :nguyenquocthai1804@gmail.com
mọi người ai làm rồi hoặc có tài liều thì cho em vơi nhé!em xin chân thành cảm ơn
quocthaitn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-01-2011, 10:05 PM   #30
ham hoc
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Bài gửi: 8
:
chào các bác!em mới bắt đầu làm quen với con PIC 16F877 này. em có bài tập: thiết kế mạch 16 đầu vào và 16 đầu ra số sử dụng con PIC này, mà em chưa biết phải làm thế nào cả. Bác nào biết thì hướng dẫn giúp em với.
gmail của em là :lemung.07@gmail.com
cảm ơn rất nhiều !
ham hoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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


Múi giờ GMT. Hiện tại là 06:38 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