Similar presentations:
Микроконтроллеры. Интерфейсы
1. Микроконтроллеры
ЛекцииМикроконтроллеры
Интерфейсы
2016
2. Что такое интерфейс?
ДисплейМК
I2C
МК
Память
SPI
Часы
ПЛИС
Лог. ур
Физ. ур
UART драйв
ер
GPIO
UART
ПК
3.
Состав микроконтроллера PIC164. GPIO: General Port Input Output
МКRA0
RA1
RA2
RA3
PORTA
RA4
RA5
RA6
TRISA
RA7
5. Роспись выводов и внешний вид PIC16F877
6. UART
МКТх
Rх
Rх
Тх
GND
МК
7. UART диаграмма данных (TTL)
Ustart
Data (Tx/Rx)
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
D
P
stop
start
t
U
t
F
Generated internal clock
8. UART
void WriteCom(unsigned char value){
while(TXIF == 0)
;
TXREG = value;
}
……………..
…………………
…………
…………………..
……………
WriteCom(25);
………………
9. UART + драйвер RS232
ПКТх
Rх
Rх
Тх MAX232
GND
Длинная линия
Драйвер
Физ. ур
UART
Лог. Ур
МК
pic16
10. UART RS232
11. UART + драйвер RS485
Rх MAX485Тх
ПК
Тх
Rх
Драйвер
UART
Лог. Ур
MAX485
Драйвер
GND
МК
pic16
Длинная линия
Device
En
Тх/Rх
Device
Тх/Rх MAX485
Драйвер
GND
Длинная линия
UART
Лог. Ур
МК
pic16
12.
UART + драйвер RS48513. SPI
SCLK : Serial Clock (output from master).MOSI : Master Output, Slave Input (output from master).
MISO : Master Input, Slave Output (output from slave).
SS : Slave Select (active low, output from master).
14. SPI
SCLK : Serial Clock (output from master).MOSI : Master Output, Slave Input (output from master).
MISO : Master Input, Slave Output (output from slave).
SS : Slave Select (active low, output from master).
-Только 4 провода
-Кол-во устройств ограничено кол-вом «пинов» МК
-Скорость до 4 МБит (1МБ, 10МБ)
-Полнодуплексный режим
15. SPI
SPI16. I2C
SCL : Serial Clock (output from master).SDA : Serial Data
-Только 2 провода
-До 16 (8) устройств
-Скорость до 400кБит (100кБ, 1000кБ)
-Полудуплексный режим
17. I2C
18. I2C
void I2C_start (void){
BCLIF=0;
SSPIF = 0; // сняли флаг
SEN = 1; // запустили стартовую последовательность
while(!SSPIF); // ждём установки флага
SSPIF = 0; // сняли флаг
}
void I2C_stop (void)
{
BCLIF=0;
SSPIF = 0; // сняли флаг
PEN = 1; // запустили стартовую последовательность
while(!SSPIF); // ждём установки флага
SSPIF = 0; // сняли флаг
}
19. I2C
void send_byte(unsigned char word){
SSPIF = 0; // сняли флаг
SSPBUF = word; // отправляем адрес/ данные
while(!SSPIF); // ждём установки флага
SSPIF = 0; // сняли флаг
BCLIF=0;
}
void read_byte(void)
{
BCLIF=0;
SSPIF=0;
RCEN=1;
while (!SSPIF && !BCLIF);
ACKDT=1;
BCLIF=0;
SSPIF=0;
ACKEN=1;
RCEN = 0;
while (!SSPIF && !BCLIF);