|
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 |
30-03-2010, 12:49 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2009
Bài gửi: 4
: |
giúp mình với
điều khiển led chạy dùng bảng dữ liệu !! theo 1 tài liệu viết cái bài này, mình cũng viết như vậy nhưng lại báo sai. mình ko biết vì sao hết? có ai biết giúp mình với
Đoạn code như sau : list p=16f877a ; list directive to define processor #include <p16f877a.inc> ; processor specific variable definitions __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF ORG 0x020 count1 EQU 0x20 ; dung cho chuong trinh delay counta EQU 0x21 ; dung cho chuong trinh delay countb EQU 0x22 ; dung cho chuong trinh delay count EQU 0x23 ; dung de tra bang du~ lieu MAIN_PROG CODE start BANKSEL PORTB ; chon bank chua' PORTB CLRF PORTB ; xoa' PORTB = 00000000 ; PORTB = output BANKSEL TRISB ; chon bank chua' TRISB MOVLW 0x00 ; tin hieu ra TRISB MOVWF TRISB BANKSEL PORTB loop1 CLRF count ; reset thanh ghi chua' gtri dem' Loop2 MOVF count,0 ; dua gia tri dem vao thanh ghi W CALL Table ; goi chuong trình con Table MOVWF PORTB ; xuat gtri chua' trong thanh ghi W ra PORTB CALL delay100ms ; goi chuong trình con delay100ms INCF count,0 ; tang gtri trong thanh count len 1dv va chua' kq trong thanh W XORLW d'8' ; so sanh thanh ghi W voi gtri 8 BTFSC STATUS,Z ; kiem tra bit Z (Zero) GOTO Loop1 ; nhay ve label Loop1 neu W = 0 INCF count,1 ; thuc thi lenh nay neu W kha'c 0 GOTO Loop2 ;=============== chuong trinh con ========================================= Table ADDWF PCL,1 ; cong gia tri thanh ghi W vao thanh ghi PCL, kq chua trong thanh ghi PCL RETLW b'10000000' RETLW b'01000000' RETLW b'00100000' RETLW b'00010000' RETLW b'00001000' RETLW b'00000100' RETLW b'00000010' RETLW b'00000001' ;============ chuong trinh con delay100s ========================= delay100ms MOVLW d'100' ; gia tri thap phan ( if 1000ms = d'1000' ) MOVWF count1 ; dua gia tri vao thanh count1 d1 MOVLW 0xC7 ; gia tri C7h( 199) MOVWF counta ; dua gia tri vao thanh counta MOVLW 0x01 ; gia tri 01h (1) MOVWF countb ; dua gia tri vao thanh countb delay_0 DECFSZ counta,1 ; giam? gtri thanh counta xuong' 1dv , gtri dua vao thanh f GOTO $+2 ; khac' 0 -> nhay thuc hien lenh GOTO delay_0 ; = 0 -> thuc hien lenh DECFSZ countb,1 DECFSZ countb,1 ; giam? gtri thanh countb xuong' 1dv , gtri dua vao thanh f GOTO delay_0 ; khac' 0 -> nhay len delay_0 ; = 0 -> thuc hien lenh DECFSZ count1,1 DECFSZ count1,1 GOTO d1 RETURN ; tro ve chuong trinh chinh ;================================================= ================ END ; ket thuc chuong trinh |
|
|