Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.62 Mб
Скачать

Лабораторна робота №7 Тема: Інформаційний обмін з накопичувачем ммс/sd.

Мета роботи: навчитися програмувати мікроконтролер, програмно звертатися до вбудованих модулів, отримати навички по програмуванню обміну з картами пам’яті типу ММС/SD.

Матеріальне забезпечення роботи: персональний комп’ютер, програмне забезпечення віртуального середовища Proteus ISIS, мова програмування С, відлагоджувальний комплект ICD2.

Завдання для попередньої підготовки.

  1. Вивчити відповідний теоретичний матеріал.

  2. Опрацювати контрольні запитання.

  3. Підготовити звіт.

  4. Намалювати схеми для моделювання та дослідження.

Хід роботи:

  1. В програмному симуляторі зібрати схему згідно завдання лабораторної роботи.

  2. Створити проект програмного коду в програмі mikroC.

  3. Внести заготовлений код програми до програмного середовища.

  4. Компілювати проект.

  5. Внести отриманий двійковий компільований код до програми відлагоджувальника.

  6. Запустити програму відлагоджувальник.

  7. Проаналізувати роботу програми в різних режимах.

Вихідні дані до роботи:

Multi| Media| Card| (MMC|) - це стандарт карт флэш| пам'яті. MMC| карти в даний час|нині| доступні в об'ємах|обсягах| до 1 GB| включно і використовуються в стільникових телефонах, mp3| плеєрах, цифрових камерах і PDA|.

MIKROC| надає бібліотеку для доступу до даних в MMC| через SPI|. Ця бібліотека також підтримує карти пам'яті SD|(Secure| Digital|).

Карти Secure| Digital|

Secure| Digital| (SD|) - це стандарт карт флэш| пам'яті, заснований на старому форматі Multi| Media| Card| (MMC|). SD| карти в даний час|нині| доступні в об'ємах|обсягах| до 2 GB| включно і використовуються в стільникових телефонах, mp3| плеєрах, цифрових камерах і PDA|.

Примітки|тлумачення|:

Бібліотека працює тільки|лише| з|із| сімейством PIC18|;

Бібліотечні функції створюють і читають файли тільки|лише| з|із| кореневого каталога;

Бібліотечні функції при записі файлу заносять дані в обидві таблиці FAT1| і FAT2|, але|та| при читанні використовують дані тільки|лише| з|із| таблиці FAT1|; тобто відновлення даних при руйнуванні FAT1| не проводиться|виробляє|.

Починаючи|розпочинати| з|із| версії 5.0.0.3, бібліотека може обмінюватися даними з|із| носієм, який містить|утримує| Master| Boot| Record| (MBR|) в секторі 0. Вона читає необхідну інформацію з|із| MBR| і переходить до першого доступному "primary|" логічному розділу. Для детальної інформації про MBR|, фізичних і логічних пристроях|устроях|, "primary"/"secondary" розділах і таблицях розділів, слід звернутися|обертатися| до інших ресурсів, наприклад Wikipedia| і тому подібне

Примітка|тлумачення|: функція Spi_Init_Advanced|(MASTER_OSC_DIV16|, DATA_SAMPLE_MIDDLE|, CLK_IDLE_LOW|, LOW_2_HIGH|); має бути викликана|спричиняти| перед ініціалізацією Mmc_Init|.

Приклад|зразок| використання бібліотеки

У наступному|такому| прикладі|зразку| 1024 байти записуються|занотовують| в сектори 55 і 56, а потім сектори читаються і виводяться в USART| для візуального контролю.

unsigned| i;

unsigned| short| tmp|;

unsigned| short| data|[512];

void| main|() {

Usart_Init|(9600);

// Ініціалізація інтерфейсу MMC|

Spi_Init_Advanced|(MASTER_OSC_DIV16|, DATA_SAMPLE_MIDDLE|, CLK_IDLE_LOW|, LOW_2_HIGH|);

while| (Mmc_Init|(&PORTC|, 2)) ;

// Заповнення буфера символами "M"|

for| (i = 0; i <= 511; i++|) data|[i]= "M"|;

// Запис його в сектор 55 MMC|

tmp| = Mmc_Write_Sector|(55, data|);

// Заповнення буфера символами "E"|

for| (i = 0; i <= 511; i++|) data|[i]= "E"|;

// Запис його в сектор 56 MMC|

tmp| = Mmc_Write_Sector|(56, data|);

/** Тепер читання секторів 55 і 56 **/

// Читання сектора 55

tmp| = Mmc_Read_Sector|(55, data|);

// Відправка 512 байтів з|із| буфера в USART|

if| (tmp| == 0)

for| (i = 0; i < 512; i++|) Usart_Write|(data|[i]);

// Читання сектора 56

tmp| = Mmc_Read_Sector|(56, data|);

// Відправка 512 байтів з|із| буфера в USART|

if| (tmp| == 0)

for| (i = 0; i < 512; i++|) Usart_Write|(data|[i]);

}//~!

Підключення пристроїв

Схема виводів|висновків| карти пам'яті MMC|