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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-06-2007, 08:53 PM   #1
kien_war
Nhập môn đệ tử
 
Tham gia ngày: Apr 2007
Bài gửi: 10
:
oa oa .. cam on bac' namqn nhieu !!!!!!!!!
kien_war vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-06-2007, 09:05 PM   #2
kien_war
Nhập môn đệ tử
 
Tham gia ngày: Apr 2007
Bài gửi: 10
:
Anh ơi cho em hỏi thêm cái nữa là:
1.Tại sao lại có lệnh CLRF PORTD (nằm trong hàm main) ... trong đây ta đâu đụng gì đến cổng D của 16F877A ?!
2.
MOVF RCREG,W
MOVWF PORTD
Trong ngắt có 2 lệnh này, thật ra là dư thừa vì trong mạch test ta ko có kết nối LED vào PortD !
3. Em sửa lại như vầy có được ko ạ:

list p=16f877A
#include <p16f877A.inc>
__CONFIG 0x393A
errorlevel -302

w_temp EQU 0x71
status_temp EQU 0x72
pclath_temp EQU 0x73

;************************************************* *********************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program

ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move STATUS register into W register
movwf status_temp ; save off contents of STATUS register
movf PCLATH,W ; move PCLATH register into W register
movwf pclath_temp ; save off contents of PCLATH register

;================================================= ============================
BANKSEL RCREG
MOVF RCREG,W
MOVWF PORTB ; Chuyen du lieu nhan duoc ra PortB
BANKSEL TXREG ;
MOVWF TXREG ; Chuyen du lieu nguoc lai PC
;================================================= =============================

movf pclath_temp,w ; retrieve copy of PCLATH register
movwf PCLATH ; restore pre-isr PCLATH register contents
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie

main
BANKSEL ADCON1
MOVLW 0x06
MOVWF ADCON1
CALL Init_serialport
BANKSEL TRISB
CLRF TRISB ; Cho dang PORTB la dang out
BSF INTCON,GIE
BSF INTCON,PEIE
GOTO $

Init_serialport ; Module khoi tao cho Serial
BANKSEL TXSTA
BSF TRISC,7 ; Chon chan rb2 la dang in
BCF TRISC,6
MOVLW B'00100100' ; Chon che do 8 bit, Hightbaudrate
MOVWF TXSTA
MOVLW D'25' ; Chon che do 9.600
MOVWF SPBRG
BSF PIE1,RCIE ; Cho phep ngat ( receive )
BANKSEL RCSTA
MOVLW B'10010000' ;
MOVWF RCSTA
RETURN

END ; directive 'end of program'
kien_war vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-06-2007, 10:22 PM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Theo tôi thì người viết có ý định xuất dữ liệu ra cả PORTD lẫn PORTB để có thể sử dụng một trong hai port này tùy theo phần cứng hiện có. Việc có thừa một lệnh xuất ra port B không làm ảnh hưởng gì đến mục tiêu của tutorial, là tìm cách sử dụng USART của PIC16F877A. Code sửa lại của bạn là ok.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 04:50 PM.


Đượ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