//---------------------------------
модуля I2C
Файл 24LC64.C
//------------------------------------------------------------------------
//ПО обслуживания 24LC64
//------------------------------------------------------------------------
#include "hardware.h" // подключение специальных заголовков и определений
♦include "24LC64.h" // подключение специальных заголовков и определений
volatile extern U16 I2C_addres; //адрес ячейки 24LC64
volatile extern U8 !2Cwr_byte; //байт данных для записи в 24LC64
volatile extern U8 wr_rd; //признак записи-чтения 24LC64 (0-запись, 1-чтение)
volatile extern U8 end_rd; //признак окончания чтения 24LC64
//Функция записи байта данных в 24LC64 по произвольному адресу
void wr_byte24LC64(U8 data_l2C, U16 addr_l2C)
{
//задать адрес ячейки 24LC64 //задать байт данных для записи в 24LC64 //установить признак записи //сбросить все флаги I2C //разрешение I2C //передать условие START I2C
I2C_addres = addr_I2C; I2Cwr_byte = data_I2C; wr_rd = 0;
OxFF 0x40 0x20
I2CONCLR I2CONSET = I2CONSET }
//Функция чтения байта данных в 24LC64 по произвольному адресу
U8 rd_byte24LC64(U16 addr_l2C) .
{
//задать адрес ячейки 24LC64 //установить признак чтения //сбросить признак окончания чтения //сбросить все флаги I2C //разрешение I2C //передать условие START I2C //ожидать окончания чтения //возврат прочитанного байта
I2C_addres = addr_I2C; wr_rd = 1;
end_rd = 0; I2CONCLR = OxFF; I2C0NSET = 0x40; I2CONSET = 0x20; while (end_rd == 0); return I2DAT; }
Файл 24LC64.h
//------------------------------------------------------------------------
//Заголовки и определения обслуж 24LC64
//------------------------------------------------------------------------
#include "hardware.h" //подключение специальных заголовков и определений ♦include "i2c.h" //подключение специальных заголовков и определений
//Объявление функции записи байта данных в 24LC64 по произвольному адресу void wr_byte24LC64(U8, U16);
//Объявление функции чтения байта данных в 24LC64 по произвольному адресу U8 rd_byte24LC64(U16);
//------------------------------------------------------------------------
Файл main.c программы обмена через 12С с 24LC64
//------------------------------------------------------------------------
// Основная программа обмена данными через I2C с 24LC64
//-----------------------------------------------------------------------
tinclude <iolpc2129.h> //подключение стандартных заголовков и определений
tinclude "hardware.h" //подключение специальных заголовков и определений
tinclude "i2c.h" //подключение специальных заголовков и определений
tinclude "24LC64.h" //подключение специальных заголовков и определений
volatile extern U8 flagn_knO, flagn_knl, flagn_kn2, flagn_kn3;
volatile U8 I2C_data = 1!1; //байт данных для записи в 24LC64
| НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |