1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giao tiếp SPI song công giữa 2 vđk PIC

3 1,6K 20
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giao tiếp spi song công giữa 2 vđk pic
Trường học University of Science and Technology
Chuyên ngành Electronics
Thể loại Đồ án tốt nghiệp
Thành phố Hanoi
Định dạng
Số trang 3
Dung lượng 98 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Code mẫu cho PIC - Giao tiếp SPI song công giữa 2 VĐK PICGiao tiếp SPI song công giữa 2 PIC: PIC Master ở trên truyền dữ liệu từ PortB công tắc trên qua PIC Slave ở dưới để hiển thị ra P

Trang 1

Code mẫu cho PIC - Giao tiếp SPI song công giữa 2 VĐK PIC

Giao tiếp SPI song công giữa 2 PIC: PIC Master ở trên truyền dữ liệu từ PortB (công tắc trên) qua PIC Slave ở dưới để hiển thị ra PortD (LED dưới) , PIC Slave cũng lấy dữ liệu từ PortB (công tắc dưới) của mình, truyền qua PIC Master để hiển thị ra PortD (LED trên)

Chương trình chạy mô phỏng trên ISIS - Proteus:

mô phỏng SPI trên Proteus

Mã nguồn:

Code Master:

#include <16f877a.h>

#include <def_877a.h>

Trang 2

#use delay(clock=20000000)

#use rs232(baud=38400,parity=N,xmit=PIN_C6,rcv=PIN_C7)

#use fast_io(B)

#use fast_io(D)

#use fast_io(A)

#define REG_Write 0x80

#INT_SSP

void spi()

{

PORTD=spi_read(PORTB);

delay_ms(10);

}

void main()

{

port_b_pullups(TRUE);

setup_spi(spi_master|spi_l_to_h|spi_clk_div_16);

enable_interrupts(INT_SSP);

enable_interrupts(GLOBAL);

SET_TRIS_B(0xff);

SET_TRIS_D(0x00);

SET_TRIS_A(0x00);

while(1)

{

delay_ms(100);

output_low(PIN_A5);//Chân C2 dùng Select chip delay_ms(10);//Tao tre de Slave chuan bi

spi_write(PORTB);

output_high(PIN_A5);

Trang 3

Code Slave:

#include <16f877a.h>

#include <def_877a.h>

#device *=16 ADC=8

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT

#use delay(clock=20000000)

#use rs232(baud=38400,parity=N,xmit=PIN_C6,rcv=PIN_C7)

#use fast_io(B)

#use fast_io(D)

#INT_SSP

void spi()

{

PORTD=spi_read(PORTB);//Vua nhan vua truyen

delay_ms(10);

}

void main()

{

port_b_pullups(TRUE);

setup_spi(spi_slave|spi_l_to_h|spi_clk_div_16);

enable_interrupts(INT_SSP);

enable_interrupts(GLOBAL);

TRISB=0xff;

TRISD=0x00;

while(1)

{

Ngày đăng: 27/05/2014, 23:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w