PDA

View Full Version : giup do gium em ve usart


gataytay
19-10-2009, 11:50 PM
Chào các anh,em viết chương trình giao tiếp giữa hai con PIC 16F877A dùng USART,chương trình của em là 32 led sáng dần rồi tắt dần.Tức là em dùng port b và port d của con 1 và con 2 để xuất,mỗi con là 16 led.Em cho giá trị vào 2 thanh ghi ở con 1 để truyền qua cho con 2.Khi biên dịch thì không báo lỗi nhưng khi mô phổng thì nó không chạy.Mấy anh giúp dùm em với......
code của em

con A:

{

title "USART_NHOM_12.asm"
processor p16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_HS_OSC&_LVP_OFF&_CPD_OFF
;---------------------------------------------------------------------
;su dung P_b va p_d cua MCU_A va P_b,P_d cua MCU_A
;lay noi dung thanh ghi 0x22 va 0x23 cua MCU_A truyen cho MCU_B(hien thi qua PORTB va PORTD)
;---------------------------------------------------------------------

ORG 0X00
GOTO MAIN_MCU_A

;---------------------------------------------------------------------
;khoi tao PORTB va PORTD
;---------------------------------------------------------------------
ORG 0X05
MAIN_MCU_A
BCF STATUS,RP1
BSF STATUS,RP0 ;CHON BANK 1
CLRF TRISB
CLRF TRISD
;---------------------------------------------------------------------
;khoi tao truyen du lieu
;---------------------------------------------------------------------

MOVLW D'129' ;toc do baud=9600
MOVWF SPBRG
BSF TXSTA,BRGH ;BRGH=1:chon toc do cao

BCF XSTA,SYNC ;SYNC=0:chon che do bat dong bo
BCF STATUS,RP1
BCF STATUS,RP0 ;chon BANK 0
BSF RCSTA,SPEN ;PSEN=1:cho phep cong noi tiep USART
;----------------------------------------------------------------------
;vong lap chuong trinh chinh
;----------------------------------------------------------------------

CLRF PORTB ;
CLRF PORTD ;
CLRF 0X22 ; tat het 4 port
CLRF 0X23 ;

SANG_DAN
CALL A_TO_B ;goi noi dung cua 0x22,0x23 qua MCU_B
CALL DELAY
BSF STATUS,C ;SET C=1;
CALL ROTA ;xoay trai cac port qua co C
BTFSS STATUS,C ;kiem tra C=1 thi nhay
GOTO SANG_DAN

TAT_DAN
CALL A_TO_B
CALL DELAY
BCF STATUS,C ;XOA C=0;
CALL ROTA
BTFSC STATUS,C ;kiem tra C=0
GOTO TAT_DAN
GOTO SANG_DAN

;----------------------------------------------------------------------
; chuong trinh con
;----------------------------------------------------------------------

A_TO_B
BSF TXSTA,TXEN ;TXEN=1 cho phep truyen du lieu
MOVF 0X22,0 ;chep noi dung cua thanh ghi 0x22 vao W
MOVWF TXREG ;dua noi dung can truyen vao thanh ghi dem truyen
W1 BTFSS PIR1,TXIF ;kiem tra co hieu truyen
GOTO W1

MOVF 0X23
MOVWF TXREG
W2 BTFSS PIR1,TXIF
GOTO W2
RETURN
;-----------------------------------------------------------------------

ROTA
RLF PORTB,1
RLF PORTD,1
RLF 0X22,1
RLF 0X23,1
RETURN
;-----------------------------------------------------------------------
DELAY
CLRF 0X30
D2 CLRF 0X31
D1 DECFSZ 0X31
GOTO D1
DECFSZ 0X30
GOTO D2
RETURN

END

}

con B
{
title "USART_NHOM_12_B.asm"
processor p16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_HS_OSC&_LVP_OFF&_CPD_OFF
;---------------------------------------------------------------------
;su dung Portb va portd cua MCU_A va Portb,Portd cua MCU_A
;lay noi dung thanh ghi 0x22 va 0x23 cua MCU_A truyen cho MCU_B
;---------------------------------------------------------------------

ORG 0X00
GOTO MAIN_MCU_B

;---------------------------------------------------------------------
;khoi tao PORTB va PORTD
;---------------------------------------------------------------------
ORG 0X05
MAIN_MCU_B
BCF STATUS,RP1
BSF STATUS,RP0 ;CHON BANK 1
CLRF TRISB
CLRF TRISD
;---------------------------------------------------------------------
;khoi tao nhan du lieu
;---------------------------------------------------------------------

MOVLW D'129' ;toc do baud=9600
MOVWF SPBRG
BSF TXSTA,BRGH ;BRGH=1:chon toc do cao

BCF TXSTA,SYNC ;SYNC=0:chon che do bat dong bo
BCF STATUS,RP1
BCF STATUS,RP0
BSF RCSTA,SPEN ;PSEN=1:cho phep cong noi tiep USART
;----------------------------------------------------------------------
;chuong trinh chinh
;----------------------------------------------------------------------
BSF RCSTA,RCEN ;cho phep nhan du lieu
L1 BTFSS PIR1,RCIF ;kiem tra co hieu nhan
GOTO L1
MOVF RCREG,0
MOVWF PORTB ;dua du lieu nhan vao PORTB
CLRF RCREG ;xoa de nhan data tiep theo

L2 BTFSS PIR1,RCIF
GOTO L2
MOVF RCREG,0
MOVWF PORTD
CLRF RCREG
GOTO L1
END
}