|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
30-05-2011, 07:22 PM | #2 |
Đệ tử 5 túi
Tham gia ngày: Dec 2010
Bài gửi: 101
: |
Gửi bạn tham khảo nhé
Trong file này củng dùng ngắt rb0 đây nhưng có đều chương trình chạy như thế này.cái này bạn xem file mình gửi cho bạn nhé. Lúc trước mình hay sài asm bây giờ bỏ lâu quá củng không mấy nhớ lệnh cho lắm.nhưng mình có thễ gợi ý bạn làm như thế này . Ban đầu vào chương trình main cho biến nào đó bằng 0 hiện thi xong rồi tăng lên một quay về chương trình chính goto main cho hiển thị tiếp nhé mổi lần hiển thị xem nó bằng 10 chưa nếu bẳng 10 thì không cho hiển thị và xóa biến đó về 0 cho hiển thị lại nhé . Khi nhấn nút xảy ra ngat nhảy vào ngắt bạn chỉ cần đảo bít sao mổi lần ngắt là xong sao do kiểm tra biến đó bắng 0 hay bằng 1 lưu ý trong asm kiểm tra bit của biến đó dùng btfss hoac btfsc tùy bạn thôi có thể làm như sau:
Equ dem 20h movlw b'00000001' xorwf dem,0 lệnh này đặt trong chương trình ngắt nhé .lệnh này giúp mỗi lần ngắt thì bít 0 của biến dem được đảo. Trong chương trình main btfss dem,0 goto hienthiled // nếu bít 0 của dem bằng 0 thì hiển thị led goto loop hienthiled .............. Hiển thị tại đây tăng biển hien thị goto main loop // dây chuong trình không làm gì cả vì vòng lập vô hạn hiện thị led tại đây nhưng không cho bien hiển thị tăng nhé goto loop end còn về ngắt bạn xem trong ví dụ của mình sẻ hiểu . Bạn không nên thay đổi những cái trong đó mình quy định nhé mình chỉ giúp bạn nhiêu đây thôi nếu là ccs thì viết rất dể và ngắn nửa . Bạn cứ học asm rành đi rồi chuyển sang ccs nhé để viết các chương trình lớn dể dàng hơn so với asm .chúc thành công. thay đổi nội dung bởi: phatcddt08a, 30-05-2011 lúc 07:33 PM. |
|
|