View Full Version : CHương trình cho PIC 16f887
nvm123
27-09-2012, 10:37 PM
mọi người ơi cho em hỏi. chương trình cho pic 16f877a có khác nhau gì với pic 16f887 không ạh. em đang học vi điều khiển ông thầy bảo khi học là hoc 16f877a còn làm mạch thì dung fcon 16f887 cho rẻ. khi em mô phỏng thì em dùng con 16f877a thì chạy bình thường, còn khi em thay con 16f887 trong mô phỏng thì nó không chạy. mặc dù em đã thay #include<16f877a.h> thành #include<16f887.h> trong CCS nhưng vẫn không được. mong mọi người giúp em với ạ. em xin cám ơn!
nvm123
28-09-2012, 01:06 AM
em tìm ra nguyên nhân là ngắt RB không xảy ra khi có phím bấm.còn xử ls thế nào thì em vẫn chịu vì chương trình em khai báo trong 16f877a.h là chạy bình thường. mọi người giúp em với ạ
handsometran
28-09-2012, 04:20 PM
em tìm ra nguyên nhân là ngắt RB không xảy ra khi có phím bấm.còn xử ls thế nào thì em vẫn chịu vì chương trình em khai báo trong 16f877a.h là chạy bình thường. mọi người giúp em với ạ
Trường hợp này tôi đã gặp phải, giữa 16F877A và 887 khác nhau về một số quy định biến các từ khóa của các thanh ghi và cờ ngắt.... Nhưng về thứ tự chân đều giống nhau y chang. Mà 16F877A đang được hãng Microchip khuyến nghị chuyển sang 887, có lẽ sắp lỗi thời.
shoknshok
04-10-2012, 02:07 PM
Bạn có thể giải thích đoạn code dùng ngắt trong con này được ko? Mình cũng đang tìm hiểu nhưng không biết viết một đoạn chương trình ngắt như thế nào cả? Thanks! :)
handsometran
05-10-2012, 03:42 PM
Bạn có thể giải thích đoạn code dùng ngắt trong con này được ko? Mình cũng đang tìm hiểu nhưng không biết viết một đoạn chương trình ngắt như thế nào cả? Thanks! :)
Tôi viết một đoạn ví dụ cho bạn xem, đầu tiên là khởi tạo ngắt. nếu bạn dùng nhiều ngắt thì dùng nguyên portB 8 pin (xem lại datasheet), còn dùng 1 ngắt thì có RB0 vì đó là chân ngắt đặt biệt. Tôi dùng RB0 để ngắt xung nhận từ encoder, mỗi khi xung cạnh xuống là báo ngắt và biến xung tăng lên 1.
//===========INITIALIZE PWM MODUL===============================//
void init_ngat()
//XEM DATASHEET TRANG 128
{
PEIE = 1;//cho phep ngat ngoai vi
GIE = 1;//cho phep ngat toan cuc
INTEDG = 0;//ngat RB0 khi co xung xuong
INTF = 0;//xoa co ngat RB0
//INTE = 1;// chua cho phep ngat ngoai RB0 hoat dong
//ADIE = 1;// cho phep ngat ADC
//ADIF = 0;// xoa co bao ngat ADC
}
/=====CHUONG TRINH DEM XUNG ENCODER====================//
void interrupt ISR()
{
if(INTF && INTE)
{xung++;
INTF =0;}
}
Bạn tham khảo chương trình trong bài tiểu luận này sẽ hiểu thêm hơn về ngắt http://www.picvietnam.com/forum/showthread.php?t=30520
ksd.thainguyen
15-04-2013, 11:01 AM
minh moi tim hieu ve pic nen chua bit phai bat dau tu dau?
Vậy mình xin mạn phép hỏi bậc anh chị đi trước hướng dẫn giúp mình nhé?
- cần tham khảo tài liệu nào?
- sử dụng phần mềm gì?
ksd.thainguyen
15-04-2013, 11:18 AM
dear các anh.
minh đang lam de tai ve Pic, nhung chua biet tim hieu nhu thế nao? tham khao tai lieu gi? su dung phan mem gi?
rất mong đựoc cấc anh hướng dẫn giúp đỡ.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.