24с04 и PIC16f74
|
|
Newer-1986 |
Дата: Пт, 20.04.2012, 11:55 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
2
Замечания:
±
На сайте с 27.02.2012
Статус:
Offline
|
Возникла такая необходимость с помощью микроконтроллера PIC16f74 полностью очистить eeprom 24c04. Пробовал писать программу в цикле записывать подряд FF.Но при симулировании в протеусе вылазит куча ошибок и при изменении программы и передачи по 6 байтов передача как бы проходит. Смотрел пример в книге по Протону, там eeprom другая стоит и принимает все значения подряд, при установке 24с04 ничего не происходит. Помогите пожалуйста с программой, ни как не могу решить эту проблему.
Device = 16F74 Xtal = 4
Declare SCL_Pin = PORTC.3 Declare SDA_Pin = PORTC.4
Dim Loop As Word
BStart BusOut %10100000 BusOut 0 BusOut 0 For Loop = 0 To 100 BusOut 255 Next BStop DelayMS 10
Stop
|
|
|
|
sangre11 |
Дата: Пт, 20.04.2012, 17:13 | Сообщение # 2 |
Группа:
Удаленные
Ранг:
Сообщений:
Статус:
|
Я думаю так надо реализовать. только проц 16f690 но сути не меняет.
;-------------------------- Общие настройки------------------------------------ Config FCMEN_ON, IESO_ON, BOREN_ON, CPD_OFF, CP_OFF, MCLRE_ON, PWRTE_OFF, WDT_ON, EXTRC_OSC_CLKOUT, BOREN_ON, WDT_ON, XT_OSC
Device = 16F690 ' Используемый микроконтроллер Xtal = 4 ' Частота осциллятора 4 МГц
'-------------------------- Настройки подключения ЖКИ ------------------------ Declare LCD_DTPin = PORTC.4 Declare LCD_RSPin = PORTC.1 Declare LCD_ENPin = PORTC.0 Declare LCD_Lines = 1 Declare LCD_Interface = 4
'-------------------------- Настройки устройств I2C --------------------------
Declare SDA_Pin PORTB.4 ' Линия SDA шины I2C Declare SCL_Pin PORTB.6 ' Линия SCL шины I2C Declare Slow_Bus OFF ' Выключить замедление при OSC > 4 Мгц Declare BUS_SCL OFF ' Выключить режим работы шины SCL без подтягивающего резистора
'-------------------------- Настройки портов ---------------------------------
PortB_Pullups = On ' Включить подтягивающие резисторы на PORTB Declare All_Digital = On ' Установить все порты цифровыми входами/выходами
CM1CON0 = 0 CM2CON0 = 0 CM2CON1 = 0 ANSELH = 0 ANSEL = 0 TRISB = %01010000
Dim B1 As Byte 'data clear Dim B2 As Byte 'dlja ponta Dim addressme As Word addressme = 0 'address cell count
Loop: 'main loop For addressme = 0 To 65000 'from 0 cell to cell number 65000(or other) B2 = addressme B1 = $FF 'ta hren' cnto nado zapisat', v dannom sluchae, kak ja ponjal nado FF
BStart BusOut %10100000, B2, [B1] 'zapis' znachenija v jacheiki
DelayMS 10
BStop
Print At 1,1,Dec addressme 'vyvod na ekran znachenuja schotchika DelayMS 30 Next GoTo Loop
Сообщение отредактировал
sangre11 - Пт, 20.04.2012, 17:28
|
|
|
|
Newer-1986 |
Дата: Сб, 21.04.2012, 20:26 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
2
Замечания:
±
На сайте с 27.02.2012
Статус:
Offline
|
Спасибо большое!!!Разобрался.
|
|
|
|
доцент2 |
Дата: Вт, 05.03.2013, 23:24 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
помогите разобраться с чтением из 24С01B или любой другой EEPROM с помощью PicKit составил простенький бинарный файл, рис. теперь с помощью программки пытаюсь считать данные по адресу, например $02
Symbol Lcd_SDA_EEPROM=PORTB.6 ' pin 12Symbol Lcd_CLK_EEPROM=PORTB.5 ' pin 11Dim A As Word ‘адресDim AA As Word ‘переменная считыванияА=$02BusIn $A0, A, [AA]но получаю -1, а должно быть $1С или 28. причем перебирал адреса с 00 до 05, но получаю только -1 подскажите в чем ошибка.
|
|
|
|