|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
|
Ðiều Chỉnh | Xếp Bài |
11-08-2011, 08:10 PM | #1 |
Đệ tử 1 túi
Tham gia ngày: Mar 2011
Bài gửi: 15
: |
Giao tiếp I2C
Mình đanh học giao tiếp i2c , mình đo nhiệt độ sử dụng IC số TC74 nhưng mô phỏng ko chạy được. Bác nào biết chỉ em với .
|
11-08-2011, 11:06 PM | #2 |
Đệ tử 1 túi
Tham gia ngày: Mar 2011
Bài gửi: 15
: |
Ah file mp mình nối sai dây phải là sclk=pin_c3, sda=pin_c4 . mình ko hiểu sao nó chạy sai ra kêt quả 255 nhỉ ???
thay đổi nội dung bởi: nvquyvn, 12-08-2011 lúc 11:43 AM. |
25-08-2011, 06:04 AM | #3 |
Đệ tử 1 túi
Tham gia ngày: Mar 2011
Bài gửi: 15
: |
Chan qua , cha ai them qtam den , toan la .....
|
25-08-2011, 08:05 AM | #4 | |
Đệ tử 3 túi
Tham gia ngày: Jul 2011
Bài gửi: 55
: |
Trích:
[code= #include <htc.h> #include <stdio.h> #include "lcd.h" #include "i2c.h" //__CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS); char khoi_dong_sensor(); char doc_nhiet_do_sesor(); char t; void main() { unsigned int i; lcd_init(); i2c_init(); if(khoi_dong_sensor()) { printf("\fI2C Sensor fails"); while(1); } printf("\f----- Lab5 -----\n***I2C Sensor***"); // delay 3s for(i=0;i<30;i++) __delay_ms(100); while(1) { t = doc_nhiet_do_sesor(); printf("\fNhiet do phong:\n %d", t); __delay_ms(100); __delay_ms(100); __delay_ms(100); } } void putch(char c) { lcd_putc(c); } char khoi_dong_sensor() { i2c_start(); if(i2c_write(0x90)) return -1; if(i2c_write(0x00)) return -1; i2c_stop(); return 0; } char doc_nhiet_do_sesor() { char nhiet; i2c_start(); if(i2c_write(0x90)) return -1; if(i2c_write(0x00)) return -1; i2c_start(); if(i2c_write(0x91)) return -1; nhiet = i2c_read(1); i2c_stop(); //return nhiet; }[\code]
__________________
ĐINH THANH SANG 1990 AN MỸ - CẨM CHÂU - HỘI AN - QUẢNG NAM DĐ: 01684222047 Yahoo ID: thanh_sang_mua_he_mai_xanh@yahoo.com.vn |
|
05-09-2011, 12:45 PM | #5 |
Đệ tử 1 túi
Tham gia ngày: Mar 2011
Bài gửi: 15
: |
e thu rui ko duoc !
co ai giup minh vs . #include "16f877a.h" #device *=16 #use delay(clock=20M) #fuses nowdt, hs, noput, nodebug,noprotect, nobrownout, nolvp, nocpd, nowrt #use i2c(master,sda=pin_c4,scl=pin_c3) #include "lcd.c" void main() { int i,temp; lcd_init(); lcd_putc("STARTING"); for(i=0;i<=10;i++) { lcd_putc("."); delay_ms(5); } lcd_putc("\f"); while(1) { // khoi dong sensor i2c_start(); i2c_write(0x9B); i2c_write(0x00) ; i2c_stop(); // doc nhiet do i2c_start(); i2c_write(0x9B); i2c_write(0x00); i2c_start(); //if(i2c_write(0x91)) temp=i2c_read(1); i2c_stop(); lcd_putc(" Nhiet do phong "); lcd_putc("\n"); printf(lcd_putc,"\r %u",temp); delay_ms(100); } } |
|
|