Главная Гальваническое покрытие Обработка поверхности Радиотехника
Бессточные операции Гальвано- химическое производство Достижения

Самые новые
Основы организации современных гальвано-химических производств
Взаимная адаптация технологий гальванического производства и очистки сточных вод
Импульсная металлизация печатных плат
Создание высокоэффективных систем промывки деталей
Утилизация гальванических отходов как гигиеническая проблема
Получение химико-механических цинковых покрытий на высокопрочных термообработанных сталях
Переработка металлургических отходов
Последние достижения в гальванопластике
Обработка промывных вод травильных агрегатов
Экологические перспективные технологии цинкования, кадмирования и меднения
Об утилизации гальванических шламов
Технологии изготовления технологической оснастки и продуктов методом гальванопластики
Россия экспортировала продукции химической промышленности и каучука на 11,3 млн долларов
В октябре экспорт ферросплавов уменьшился на 0,03% до 108,9 тыс. тонн
Мировое производство стали за 10 месяцев 2006 года выросло на 9,2%
Производство алюминия продолжает расти
Химическое производство в России выросло на 1,2%
Китай за 10 месяцев увеличил выпуск медной продукции на 6,6% до 4,6 млн. т
"Антон" - "Северсталь"
Чистая прибыль ОАО "Ульяновский автомобильный завод"
Оценка эфф. подготовки поверхности полистирола перед химической металлизацией
"Российские металлургические компании и ЕС - особые отношения"
Аналитики расходятся во мнениях по прогнозу цен на железную руду
Evraz увеличивает выплаты
Китай вышел на ежемесячный объем экспорта стали
Чистая прибыль Borealis в III квартале выросла в 2,6 раза
"Цинк среди драгоценных металлов"
Росбанк стал держателем 29,33% "Норникеля"
"Северсталь" подорожала на 2.7 миллиарда долларов после вчерашнего IPO
Новая волна слухов на тему консолидации в мировой металлургии
Итоги деятельности химического комплекса за 9 месяцев
Стратегия развития металлургической промышленности
Инженеры в почете
Информационное обеспечение химического комплекса
Дефицит кадров
Спрос на оцинкованную сталь растет
Карта: 1 2 3 4 5 6 7 8 9
10 11 12 13 14
Главная Радиотехника


Работа с EEPROM типа 24LCxx.


Компания Microchip выпускает широкий спектр недорогой энергонезависимой памяти с последовательным интерфейсом I2C. Емкость этих EEPROM опять начинается со 128 бит и может достигать 256 и более кбит, что позволяет применять ее в различных областях электроники. И хотя сейчас многие микроконтроллеры имеют EEPROM данных на своем кристалле, ее может оказаться недостаточно. Поэтому в некоторых случаях применение внешней памяти будет вполне оправданно (примеры применения данных микросхем имеются и на этом сайте).

Полное описание технических характеристик EEPROM можно найти на сайте производителя, а на этой странице приведены лишь тексты подпрограмм для работы с данными микросхемами. Подпрограммы написаны для PIC-контроллеров и позволяют производить запись или чтение одного байта по заданному адресу EEPROM. Эти подпрограммы применимы для работы с микросхемами емкостью до 16 кбит. Для больших емкостей необходимо приведенные ниже подпрограммы модифицировать что бы адрес ячейки памяти передавался двумя байтами. Так же, если за один цикл необходимо считать/записать более одного байта, то нижеприведенные подпрограммы так же необходимо модифицировать.

Текст программы:
LIST p=16c505, r=hex

include P16C505.INC cblock 0x08 ;Регистры AddrLo ;Младший байт адреса в EEPROM

AddrHi ;Старший байт адреса в EEPROM Cnt ;Счетчик Temp ;Регистры для хранения переменных разного назначения

TempTr ; endc ;Константы для инициализации

InitOption equ b'00000000'

InitPortC equ b'00000000'

InitPortB equ b'00000000' SDARecPortC equ b'00010000' ;Константа для переключения линии SDA на вход #define SCL PORTC,3

#define SDA PORTC,4 goto Begin Init ;Общая инициализация

movlw InitPortB ;

tris PORTB ;

movlw InitPortC ;

tris PORTC ;

movlw InitOption ;

option ;

return ; SwReceive ;Переключение SDA на вход

movlw SDARecPortC

tris PORTB

return Transmitt

movwf TempTr ;

bsf SDA ;

call Init ;Переключить линию для передачи bcf SDA ;Start

bcf SCL ; bcf STATUS,C ;Передача байта управления

rlf AddrHi,0 ;и трех старших бит адреса

iorlw b'10100000' ;

call SendByte ; call SwReceive ;Переключить линию для приема подтверждения bsf SCL ;Прием подтверждения

btfsc SDA ;

goto Transmitt ;Подтверждение отсутствует

bcf SCL ; call Init ;Переключить на передачу movf AddrLo,0 ;Передать младший байт адреса

call SendByte ;

call SwReceive ;Переключить линию для приема подтверждения bsf SCL ;прием подтверждения

btfsc SDA ;

goto Transmitt ;Подтверждение отсутствует

bcf SCL ; call Init ;Переключить на передачу movf TempTr,0 ;Передача байта

call SendByte ;

call SwReceive ;Переключить линию для приема подтверждения bsf SCL ;Прием подтверждения

btfsc SDA ;

goto Transmitt ;Подтверждение отсутствует

bcf SCL ; call Init ;Переключить на передачу bcf SDA ;Stop

bsf SCL ;

bsf SDA ; return SendByte ;Подпрограмма передачи одного байта

movwf Temp

movlw 0x8

movwf Cnt

SendBt

clrwdt

bcf SDA

rlf Temp,1

btfsc STATUS,C

bsf SDA

bsf SCL

bcf SCL

decfsz Cnt,1

goto SendBt

return Receive

bsf SDA ;

call Init ;Переключить на передачу

bcf SDA ;Start

bcf SCL ; bcf STATUS,C ;Передача байта управления

rlf AddrHi,0 ;и трех старших бит адреса

iorlw b'10100000' ;

call SendByte ; call SwReceive ;Переключить на прием bsf SCL ;Прием подтверждения

btfsc SDA ;

goto Receive ;Подтверждение отсутствует

bcf SCL ; call Init ;Переключить на передачу movf AddrLo,0 ;Передать младший байт адреса

call SendByte ;

call SwReceive ;Переключить на прием bsf SCL ;Прием подтвержедния

btfsc SDA ;

goto Receive ;Подтверждение отсутствует

bcf SCL ; call Init ;Переключить на передачу bsf SDA ;Повторный Start

bsf SCL ;

bcf SDA ;

bcf SCL ; bsf STATUS,C ;Передача байта управления

rlf AddrHi,0 ;и трех старших бит адреса

iorlw b'10100000' ;

call SendByte ;

call SwReceive ;Переключить на прием bsf SCL ;прием подтверждения

btfsc SDA ;

goto Receive ;Подтверждение отсутствует

bcf SCL ; call ReceiveByte ;Прием байта bcf SDA ;

call Init ;Переключить на передачу

bsf SCL ;Передача подтверждения

bsf SDA ;Stop

return ReceiveByte ;Подпрограмма приема одного байта

movlw 0x8

movwf Cnt

ReceiveBt

clrwdt

bsf SCL

bcf STATUS,C

btfsc SDA

bsf STATUS,C

rlf Temp,1

bcf SCL

decfsz Cnt,1

goto ReceiveBt

movf Temp,0

movwf TempTr

return Begin

;Пример использования подпрограмм: movlw 0xbc ;Запись значения 0x55 по адресу 0x2bc

movwf AddrLo ;

movlw 0x02 ;

movwf AddrHi ;

movlw 0x55 ;

call Transmitt ; movlw 0xbc ;Чтение байта по адресу 0x2bc

movwf AddrLo ;

movlw 0x02 ;

movwf AddrHi ;

call Receive ;Полученное значение будет в регистре w goto $ end


Читайте далее: Как читать штрих код, Необычные профессии микросхем для часов, Применение АЦП КР572ПВ5, Экономичный преобразователь кода для семисегментного индикатора, Схема, обеспечивающая развертку по диагональной оси любого осциллографа, Мощный транзистор в лавинном режиме, Простой индикатор уровня сигнала на ИН13, Кварцевый фильтр, Повышение частоты кварца, Драйвер лазерной указки, Подставка для паяльника, Имитируем работу клавиатуры, Как удлинить ось, Как закрепить тонкое сверло в патроне электродрели, Нож для зачистки проводов, Третья рука радиоконструктора, Размещение инструмента,
Самые читаемые