PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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
Prev Previous Post   Next Post Next
Old 30-03-2010, 12:49 AM   #1
kimlikimli
Nhập môn đệ tử
 
Tham gia ngày: Sep 2009
Bài gửi: 4
:
Unhappy 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
kimlikimli vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:08 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam