PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

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

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 09-06-2011, 05:17 PM   #1
le van ngot
Đệ tử 1 túi
 
Tham gia ngày: Oct 2010
Bài gửi: 22
:
Pic18f giao tiếp màn hình cảm ứng

Mình dùng PIC8F4620 giao tiếp IC ADS7843 (chíp điều khiển miếng cảm ứng) con này giao tiếp qua chuẩn SPI. Đây là code mình viết ko biết sai chổ nào mà no ko chạy. mong các bạn chỉ giúp.

#include <18f4620.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //Reset when brownout detected
#FUSES NOPUT //No Power Up Timer
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(clock=20000000)
#define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
////////////////////////////////////////////////////////////////////////////////
//////////////dinh nghia PIN/////////////////////
#define ADS7843_CS PIN_C1
#define ADS7843_BUSY PIN_C2
#define ADS7843_PENIRQ PIN_B0

////////////////////////////////////////////////////////////////////////////////
//////////////Cchuong trinh con/////////////////////

int16 ads7843_read(mode)
{
int8 lsb, msb;
int16 retval;

output_low(ADS7843_CS); //cho phep chon chip
spi_write(mode);

while (input (ADS7843_BUSY)== 1){;}
msb = spi_read(0);
lsb = spi_read(0);

output_high(ADS7843_CS); //khong phep chon chip

retval = make16(msb, lsb); // tra ve gia tri 16bit ket hop tu 2 bien (msb va lsb) msb la byte cao
retval >>= 4;
return(retval); //tra ve gia tri la: [x][x][x][x][x][x][x][x][x][x][x][x][] [] [] []
}
///////////////////////////////////////////////////////////////////////////////

void main()
{
output_high(ADS7843_CS); // Inactive state (disenable)
setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_4); //khoi tao chuan SPI
int16 x,y;
output_low(ADS7843_CS); // Inactive state (enable)
delay_ms(5);

while (TRUE)
{
while( input(ADS7843_PENIRQ) ==0 ) // is screen touch
{
x = ads7843_read (0x98);
delay_us (2);
y = ads7843_read (0xD8);
delay_ms (1);
if ((x<50)&& (y <50)) //neu vung duoc bam co gtri x,y <50 thi bat den chi thi RB7
{
output_bit( PIN_B7, 1);
delay_ms (100);
output_bit( PIN_B7, 0);
delay_ms (50);
}
}
}
}
File Kèm Theo
File Type: zip test7843.zip (13.7 KB, 89 lần tải)
le van ngot vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-11-2011, 12:17 PM   #2
thelaxong
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 3
:
bạn đã đổ mạch thực chưa, bạn co miếng cảm ứng không.minh cũng đang nghiên cứu về điều khiển màn hình cảm ứng.cò gì liên lạc với mình qua yahoo : phamminhthong177
thelaxong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-11-2011, 12:18 PM   #3
duchoadt
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 9
:
minh dang can mua 1 dong co brushless dc motor 24v cong suat 150w tro xuong
ai co lien he voi minh nhe 01682935220 minh xin cam on
duchoadt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-11-2011, 12:19 PM   #4
duchoadt
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 9
:
Smile mua dong co brushless dc motor

minh dang can mua 1 dong co brushless dc motor 24v cong suat 150w tro xuong
ai co lien he voi minh nhe 01682935220 minh xin cam on
duchoadt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2011, 06:37 PM   #5
pdkxlily
Đệ tử 2 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 27
:
output_bit( PIN_B7, 1); // cai này có fai là port b.7 lên mức 1 luôn fai ko bồ
delay_ms (100);
output_bit( PIN_B7, 0);
delay_ms (50);
pdkxlily vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-05-2012, 06:41 PM   #6
le van ngot
Đệ tử 1 túi
 
Tham gia ngày: Oct 2010
Bài gửi: 22
:
Đoạn code trên các bạn thêm vào:
#use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7, bits=8)
sau dòng use delay là chạy, đây là luận văn mình đã làm rồi và lỗi chỉ thiếu mỗi dòng lệnh đó
to pdkxlily:
output_bit( PIN_B7, 1); // lệnh xuất ra pin RB7 với mức logic [1]
le van ngot vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-06-2012, 04:07 PM   #7
le van ngot
Đệ tử 1 túi
 
Tham gia ngày: Oct 2010
Bài gửi: 22
:
Con ADS7843 tìm mua hơi khó khăn bạn nào cần thì liên hệ mình để lại http://www.picvietnam.com/forum/show...A1+t%E1%BB%91t
le van ngot 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à 07:37 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