PDA

View Full Version : Vấn đề reset cho PIC 16F877A


ngoyeungoc
17-01-2010, 11:54 AM
Mạch reset cho PIC thì không cần phải nói rồi nhưng mình xin hỏi về giá trị các thanh ghi và các port sau khi ta reset. Theo lý thuyết VDK 8051 thì sau khi reset chương trình sẽ thực hiện lại từ đầu, không biết đối với PIC thì thế nào nữa. Khi mình giữ nút reset thì PIC không chạy nhưng khi thả ra thì PIC trở về trạng thái trước khi reset. Mình đang thiết kế mạch điều khiển cho động cơ bước, đã sử dụng RB4 - RB7 để điều khiển quay cùng chiều, ngược chiều KDH, quay nhanh, quay chậm. Còn nút STOP nữa mà mình chưa biết thiết kế sao, định ấn reset để stop nhưng không được rồi. Các bạn có thể gợi ý cho mình giải quyết vấn đề đó không. Mình cảm ơn rất nhiều.

Mr.Bi
17-01-2010, 03:46 PM
Theo như u nghĩ , t có thể hình dung : 1) U mún dùng nút RST để ngừng động cơ (có chủ í) . 2) Chưa bik lập trình nút bấm với các chân khác ngoài các chân RB4->7
khắc phục :
1) vào hàm main , ta khai báo STOP động cơ , sau đó mới thưc hiện while (1) {chờ nút bấm}
2) Thử lập trình nút bấm k dùng ngắt RB . Nếu đã làm đc thì k có lí j , thêm 1 nút STOP ngoài các chân RB để STOP mà u k làm đc . vd nhấn nút Ra0 thì động cơ ngừng , làm đc chứ ???

ngoyeungoc
19-01-2010, 08:17 PM
Mình mới tìm hiểu về PIC thôi. Để mình cố gắng thử xem. Thanks Bi nhiều nha.

ngoyeungoc
19-01-2010, 09:20 PM
Mình làm được rồi. Thanks nhiều nha. Cực kì đơn giản mà không nghĩ ra. Trước đây mình cứ nghĩ chỉ có thể dùng ngắt ngoài thôi. Cùi bắp thật nhỉ. Thanks!

ham hoc
08-05-2011, 09:44 AM
anh Bi ơi cho em hỏi: khi em mô phỏng trên proteus reset pic bằng công tắc thì chạy ngon. mạch chạy đúng theo ý mình khi reset thế mà khi nạp code vào mạch thật thì khi reset bằng công tắc nó lại không thấy thay đổi trạng thái gì cả. em thử tắt nguồn rồi cấp nguồn trở lại mà nó vẫn chạy y như ban đầu.không thay đổi theo ý của em. anh biết thì giúp em với.thanks

nghiemhuutoan
30-07-2011, 03:19 AM
Cho mình hỏi chut. khi reset PIC băng nút reset nối vs chân 1 của PIC6F877A thì dư liệu vân của một biến (khi khai báo ngoài hàm main() và chưa khởi tạo giá trị ban đâu) vân giư nguyên giá trị trước khi reset là sao ah.
Minh cám ơn.

pstin
25-09-2011, 12:58 AM
Hì, khi reset thì giá trị của một số biến vẫn giữ y như lúc nó đang chạy, ngay cả khi cúp điện xong rồi cấp lại có lúc nó vẫn nhớ kết quả trước đó, có lúc thì không nhớ!!!!!!!!!. Đơn giản là trước khi chạy vào chương trình chính bạn "reset" lại các giá trị của nó: thường là bien=0;