PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-01-2011, 02:20 AM   #1
cachep47
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 6
:
Thumbs down Khai báo sử dụng SPI cho 16F877A

Chào cả nhà!
Mình đang gặp khó khăn lập trình giao tiếp PIC 16F877A với 74595 qua cổng SPI.
Mình đã mô phỏng qua Proteus thì OK nhưng khi tiến hành chạy mạch thật thì không hiển thị được.
Đoạn chương trình như sau :



// Khai báo ....
#use spi(DO=PIN_C5, CLK=PIN_B3, BITS=8)
Void main()
{
...
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_16);
...
While(1)
{
spi_write(0xAA);
latch_data();// Chốt dũ liệu hiển thị
delay_ms(1000);

spi_write(0xBB);
latch_data();// Chốt dũ liệu hiển thị
delay_ms(1000);
}
}




Chạy mạch thật thì không có tín hiệu ra .Mình không hiểu đã sai chỗ nào mong các bạn giúp đỡ!
Thanks!
cachep47 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2011, 08:30 AM   #2
hoc_picpicpic
Đệ tử 6 túi
 
Tham gia ngày: Feb 2009
Bài gửi: 127
:
mô fong chạy dc thì mạch thật của bạn có vấn đề bạn lên kiểm cha lại mạch xem .Ko biết bạn đang dùng con 74L595 hay 74HC595, các chân EN và MR mạch thực đã nối chuẩn chưa .Nếu bạn đang dùng con 74L595 thì nên chuyển qua con 74HC595

thay đổi nội dung bởi: hoc_picpicpic, 28-01-2011 lúc 08:40 AM.
hoc_picpicpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2011, 10:11 PM   #3
cachep47
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 6
:
Trích:
Nguyên văn bởi hoc_picpicpic View Post
mô fong chạy dc thì mạch thật của bạn có vấn đề bạn lên kiểm cha lại mạch xem .Ko biết bạn đang dùng con 74L595 hay 74HC595, các chân EN và MR mạch thực đã nối chuẩn chưa .Nếu bạn đang dùng con 74L595 thì nên chuyển qua con 74HC595
Chào Bạn!
Mình làm mạch thật với AVR chạy ngon lành. Vẫn phần cứng như vậy mình làm trên Pic thì lại không được. Mình nghĩ là chỉ tại phần mềm mình chưa khai báo đúng thư viện. Có ai đã làm qua rồi thì chỉ cho mình kiểu khai báo thư viện.

#use spi(DO=PIN_C5, CLK=PIN_C3, BITS=8)
........
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_16);

Mình thiết lập như vậy có sai chỗ nào không?
Mong câu trả lời của các bạn sớm!
Thân!
cachep47 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-01-2011, 08:28 AM   #4
hoc_picpicpic
Đệ tử 6 túi
 
Tham gia ngày: Feb 2009
Bài gửi: 127
:
bạn làm thế này đảm bảo chạy .


#include <16F877.H>
#fuses HS, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 20000000)


#byte SSPBUF = 0x13
#byte SSPCON = 0x14
#bit BF = SSPSTAT.0
#bit SMP = SSPSTAT.7
#bit CKE = SSPSTAT.6
#bit CKP = SSPCON.4
#bit SSPM1 = SSPCON.1
#bit SSPEN = SSPCON.5

//------------------------------------------
char SPI(char d)
{
SSPBUF=d;
while (!BF);
return SSPBUF;
}

//------------------------------------------
void spi_init()
{

set_tris_c(0b11010011); // sck rc3-0, sdo rc5-0, CS rc2-0.

SMP=0;
CKE=0;
CKP=1;
SSPM1=1;
//SSPM0=1;
SSPEN=1;

}
hoc_picpicpic 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à 10:42 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