|
Tài trợ cho PIC Vietnam |
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 |
27-08-2009, 01:23 PM | #1 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 59
: |
kỹ thuật bảng pic
hiện tại em đang tự học pic theo tut pic16f877a từ dễ đến khó, đọc xong có một chỗ em không hiểu là vấn đề kỹ thuật bảng cho pic. em thấy việc đọc giá trị trong bảng sao giống giống với việc gọi một chuong trình con quá (em chỉ đoán vậy thôi), vậy mục đích chính của kỹ thuật bảng là gì, mong các anh giải đáp giúp em.
đây là đoạn code trong tut pic6f877a, nhờ các anh giải thích kỹ hoạt động giúp em. ORG 0x000 GOTO start start ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐ ; Khởi tạo PORT B ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐ BCF STATUS,RP1 BSF STATUS,RP0 ; chọn BANK1 CLRF TRISB ; PORTB <‐ outputs BCF STATUS,RP0 ; chọn BANK0 ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐ ; Vòng lặp chính của chương trình ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐ Loop1 CLRF count ; reset thanh ghi Loop2 MOVF count, 0 ; đưa giá trị thanh ghi “count” v o thanh ghi W CALL table ; gọi chương trình con “table” MOVWF PORTB ; xuất giá trị chứa trong thanh ghi W ra PORTB CALL delay100ms INCF count, 0 ; tăng giá trị thanh ghi “count” ; kết quả chứa t rong thanh ghi W XORLW d’8’ ; thực hiện phép toán XORgiữa thanh ghi W và ; giá trị 8, kết quả chứa trong t hanh ghi W BTFSC STATUS,Z ; kiểm tra bit Z (Zero) GOTO Loop1 ; nhảy về label Loop1 nếu Z = 1 INCF count, 1 ; thực thi lệnh này nếu Z = 0 GOTO Loop2 ;================================================= ========================== ; Các chương trình con ;================================================= ========================== ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐ ; Chương trình con cho kĩ thuật bản g ;‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐ table ADDWF PCL,1 ; cộng giá trị trong thanh ghi W vào thanh ghi ; PCL, kết quả chứa trong thanh ghi PCL RETLW b’10000000’ ; dữ liệu của bảng RETLW b’01000000’ RETLW b’00100000’ RETLW b’00010000’ RETLW b’00001000’ RETLW b’00000100’ RETLW b’00000010’ RETLW b’00000001’ |
|
|