Вход

Микропроцессорные устройства

Курсовая работа* по информатике и информационным технологиям
Дата добавления: 16 июня 2009
Язык курсовой: Русский
Word, rtf, 1.4 Мб
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы
Найти ещё больше
25 Федеральное агентство по атомной энергии Снежинская государственная физико-техническая академия Кафедра АИВС ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ по дисциплине : «Микропроцессорные устройства». Группа С т удент ______________ (подпись) Преподават ель ________ (подпись) Снеж инск 2007 Аннотация Цель работы: реализовать измеритель длительности нажатия клавиши. В процессе работы над курсовым проектом требуется осуществить: - изучение задания; - разработка алгоритма; - реализация на PIC-контроллере; - оформление пояснительной записки к курсовому проекту Содержание 1. Постановка задачи 2. Текст программы 3. Граф-схема а лгоритма 4. Принципиальная электрическая схема 5. Спецификация 6. Список литерату р ы 1. Постановка задачи Измерить длительность нажатия кнопки. Измеренные значения сохранять в ОЗУ микро c хемы PCF 8583. Измеренные значения вывести на ЖК – дисплей. 2. Текст программы LIST P =16 F 84 f INCLUDE count EQU 0x10 count1 EQU 0x20 count2 EQU 0x21 LCDcfg EQU 0x22 LCDout EQU 0x23 Time EQU 0x11 temp EQU 0x12 DATA_I2C EQU 0x34 TX_Buffer EQU 0x32 __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _RC_OSC GOTO START Подпрограмма записи байта control по шине I2C Write_I2C CALL Start_Bit_I2C ; Выдача на шину I2C Start Bit А дрес часов с установленным битом для записи MOVLW 0 xA 0 CALL Transmit _ Data В нутрений адрес часов для записи MOVLW 0 x 00 ; адрес для записи CALL Transmit_Data; на шину I2C... MOVF DATA_I2C,w ; Выдача данных CALL Transmit_Data ; на шину I2C... CALL Stop_Bit_I2C ; Выдача на шину I2C Stop Bit RETURN Подпрограмма сброса счётчика секунд на часах PCF 8583 Write_time_I2C CALL Start_Bit_I2C ; Выдача на шину I2C Start Bit А дрес часов с установленным битом для записи MOVLW 0 xA 0 CALL Transmit _ Data З апись регистра с которого читают с установленным битом на запись MOVLW 0x02 CALL Transmit_Data MOVLW 0x00 CALL Transmit_Data MOVLW 0x00 CALL Transmit_Data C ALL Stop_Bit_I2C ; Выдача на шину I2C Stop Bit RETURN Подпрограмма чтения результатов измерения из ОЗУ PCF 8583 Read_Saved_I2C CALL Start_Bit_I2C ; Выдача на шину I2C Start Bit адрес часов с установленным битом для записи MOVLW 0xA0 CALL Transmit _ Data З апись регистра с которого читают с установленным битом на запись MOVLW 0 x 11 CALL Transmit _ Data Н овая стартовая последовательность CALL Start _ Bit _ I 2 C ; Выдача на шину I 2 C Start Bit А дрес часов с установленным битом для чтения MOVLW 0xA1 CALL Transmit_Data CALL Receive_data CALL Stop_Bit_I2C ; Выдача на шину I2C Stop Bit RETURN Подпрограмма записи результатов измерения в ОЗУ PCF 8583 Save_time_I2C MOVWF Time CALL Start_Bit_I2C ; Выдача на шину I2C Start Bit А дрес часов с установленным битом для записи MOVLW 0xA0 CALL Transmit_Data З апись регистра с которого читают с установленным битом на запись MOVLW 0x10 CALL Transmit_Data Н овая стартовая последовательность CALL Start_Bit_I2C ; Выдача на шину I2C Start Bit А дрес часов с установленным битом для чтения MOVLW 0xA0 CALL Transmit_Data MOVLW 0x10 CALL Transm it_Data MOVF Time,W CALL Transmit_Data MOVF Time,W CALL Transmit_Data CALL Stop_Bit_I2C ; Выдача на шину I2C Stop Bit RETURN Подпрограмма чтения секунд с часов PCF 8583 Read_I2C CALL Start_Bit_I2C ; Выдача на шину I2C Start Bit А дрес часов с установленным битом для записи MOVLW 0 xA 0 CALL Transmit_Data З апись регистра с которого читают с установленным битом на запись MOVLW 0 x 02 CALL Transmit _ Data Н овая стартовая последовательность CALL Start_Bit_I2C ; Выдача на шину I2C Start Bit А дрес часов с установленным битом для чтения MOVLW 0xA1 CALL Transmit_Data CALL Receive_data CALL Stop_Bit_I2C ; Выдача на шину I2C Stop Bit RETURN Подпрограмма чтения байта с шины IIC Receive _ data CLRF DATA_I2C MOVLW 8 MOVWF temp BCF STATUS,5 BCF PORTB,4 ; SDA - вход BCF STATUS,5 RX_Data_LP RLF DATA_I2C,1 BCF PORTB,5 NOP NOP NOP NOP NOP BCF DATA_I2C,0 BTFSS PORTB,4 BCF DATA_I2C,0 BCF PORTB,5 DECFSZ temp,1 GOTO RX_Data_LP Отправка бита подтверждения ASK =1 BCF STATUS ,5 BCF PORTB,4 ;SDA - выход BCF STATUS,5 BCF PORTB,4 NOP BCF PORTB,5 NOP NOP NOP NOP BCF PORTB ,5 RETURN Подпрограмма передачи байта по шине I 2 C Transmit_Data MOVWF TX_Buffer MOVLW 8 MOVWF temp BCF STATUS,5 ; выбор банка 1 BCF PORTB,4 ; SDA - выход BCF STATUS,5 ; выбор банка 0 BCF PORTB,5 TX_Data_LP BTFSS TX_Buffer,7 GOTO TX_Data_Lo ; bits 7 = 0 BCF PORTB,4 GOTO TX_Data_LP1 TX_Data_Lo BCF PORTB,4 TX_Data_LP1 BCF PORTB,5 NOP NOP NOP NOP BCF PORTB,5 RLF TX_Buffer,1 DECFSZ temp,1 GOTO TX_Data_LP RLF TX _ Buffer ,1 BCF PORTB ,4 Чтение бита подтверждения - ASK BCF STATUS ,5 BCF TRISB ,4 ; PORTB ,4 - вход BCF STATUS ,5 BCF PORTB ,5 NOP NOP NOP NOP NOP BTFSC PORTB ,4 NOP BCF PORTB ,5 RETURN Подпрограмма организации стартовой битовой последовательности Start_Bit_I2C BCF PORTB,4 BCF STATUS ,5; выбор 1 банка BCF PORTB ,4; SDA - как выход данных из MCU в EEPROM BCF STATUS,5; выбор 0 банка BCF PORTB,4 NOP NOP NOP NOP BCF PORTB,5 NOP NOP NOP NOP NOP BCF PORTB,4 NOP NOP NOP NOP NOP BCF PORTB,5 RETLW 0 Подпрограмма организации стопой битовой последовательности Stop_Bit_I2C BCF PORTB,4 BCF STATUS ,5 ; выбор 1 банка BCF PORTB ,4 ; SDA - как выход данных из MCU в ;EEPROM BCF STATUS,5 ; выбор 0 банка BCF PORTB,4 NOP NOP BCF PORTB,5 NOP NOP BCF PORTB,4 NOP NOP RETURN ############################################################ Подпрограммы для организации задержек Wait250ms MOVLW 0x77; 250 мс MOVLW count2 c03 MOVLW 0x02 MOVWF count c02 MOVLW 0x1F MOVWF count1 c01 DECFSZ count1 GOTO c01 DECFSZ count GOTO c02 DECFSZ count2 GOTO c03 RETURN Wait100 MOVLW 0x02; 100 мкс MOVWF count1 w50 MOVLW 0x14 MOVWF count c24 DECFSZ count GOTO c24 DECFSZ count1 GOTO w50 RETURN Wait50 MOVLW 0x14; 50 мкс MOVWF count c13 DECFSZ count GOTO c13 RETURN Wait15 MOVLW 0x06; 4 мкс MOVWF count c15 DECFSZ count GOTO c15 RETURN Wait160 MOVLW 0x35; 160 мкс MOVWF count c16 DECFSZ count GOTO c16 RETURN Wait1k; 1 сек MOVLW 0x04 MOVWF count2 w2 MOVLW 0xE0 MOVWF count1 w1 DECFSZ count1 GOTO w 1 DECFSZ count 2 GOTO w 2 RETURN ################################################################# Подпрограмма вывода байта на ЖК экран NumOut MOVWF temp BCF temp ,7; 0 Формируем BCF temp ,6; 0 номер BCF temp ,5; 1 столбца BCF temp,4; 1 содержащий символы для вывода BCF LCDcfg ,0 MOVF temp , W CALL LCD _ write ; Выводим сначало старшую тетраду RETURN П одпрограмма записи по линиям данных младшей тетрады . LCD _ writehalf MOVWF LCDout BCF STATUS,RP0 BCF PORTA,4 ALL Wait250ms MOVF LCDout,W MOVWF PORTA BCF PORTB,0 CALL Wait160 BCF PORTB,0 CLRF PORTB CLRF PORTA RETURN П одпрограмма записи по линиям данных целого байта. LCD _ write BCF STATUS , RP 0 MOVWF LCDout SWAPF LCDout , W ; MOVWF PORTA BTFSS LCDcfg ,0 BCF PORTA ,4 BTFSC LCDcfg ,0 BCF PORTA ,4 BCF PORTB ,0 BTFSS LCDcfg ,0 CALL Wait 250 ms BTFSC LCDcfg ,0 CALL Wait 50 BCF PORTB ,0 MOVF LCDout , W MOVWF PORTA BTFSS LCDcfg ,0 BCF PORTA ,4 BTFSC LCDcfg ,0 BCF PORTA ,4 BCF PORTB ,0 BTFSS LCDcfg ,0 CALL Wait 250 ms BTFSC LCDcfg ,0 CALL Wait 50 BCF PORTB ,0 CALL Wait250ms RETURN П одпрограмма предварит ельной инициализации ЖК экрана. IniLCD MOVLW 0 x 0 E wait _ power CALL Wait1k DECFSZ temp GOTO wait_power BCF LCDcfg,0 MOVLW 0x03 CALL LCD_writehalf CALL Wait250ms MOVLW 0x03 CALL LCD_writehalf CALL Wait160 BCF LCDcfg,0 MOVLW 0x03 CALL LCD_writehalf CALL Wait50 MOVLW 0x02 CALL LCD_writehalf CALL Wait50 MOVLW 0x20 CALL LCD_write CALL Wait50 MOVLW 0x20 CALL LCD_write CALL Wait50 MOVLW 0x0E CALL LCD_write CALL Wait50 MOVLW 0x0F CALL LCD_write CALL Wait50 MOVLW B'00011111' CALL LCD_write CALL Wait50 MOVLW B'10000000' CALL LCD_write CALL Wait50 BCF LCDcfg ,0 MOVLW B '00000110' ; установка направление перемещения курсора ЖК экрана CALL LCD _ write MOVLW 0 x 02; У становить курсор в начальное состояние. CALL LCD _ write MOVLW 0 x 01; О чистка ЖК экрана CALL LCD _ write CALL Wait 250 ms CALL Wait 250 ms CALL Wait 250 ms RETURN Подпрограмма вывода времени OutTime BCF LCDcfg ,0 MOVLW 0 x 02; установить курсор в начальное состояние . CALL LCD_write CALL Read_I2C SWAPF DATA_I2C,W CALL NumOut MOVF DATA_I2C,W CALL NumOut CALL Save _ time _ I 2 C ; сохраняем результат измерений в ОЗУ PCF 8583 RETURN Подпрограмма вывода и сохранения результатов измерения GetTime BCF LCDcfg,0 MOVLW 0x02; установить курсор в начальное состояние . CALL LCD_write CALL Read_I2C ; read seconds from clock MOVF DATA_I2C,W MOVWF Time CALL Save _ time _ I 2 C ; сохраняем результат измерений в ОЗУ PCF 8583 CALL Read_Saved_I2C; считываем результат измерений из ОЗУ PCF 8583 SWAPF DATA_I2C,W CALL NumOut; выводим на ЖК экран результат измерений MOVF DATA _ I 2 C , W CALL NumOut; выводим на ЖК экран результат измерений RETURN О сновная подпрограмма START CLRF PORTB CLRF PORTA BCF STATUS , RP 0 Н астройка портов MOVLW B'11100000' MOVWF TRISA &0 x 7 F MOVLW B '11001100' MOVWF TRISB BCF OPTION_REG,7 CALL IniLCD; Вызов подпрограммы предварительной инициализации ЖК экрана. BCF STATUS,RP0; выбор 0го банка памяти CALL Read_Saved_I2C; считываем результат измерений из ОЗУ PCF 8583 при сохранении SWAPF DATA_I2C,W CALL NumOut ; выводим на ЖК экран результат измерений OVF DATA_I2C,W CALL NumOut ; выводим на ЖК экран результат измерений MZ BTFSC PORTB,3 GOTO MZ; переход к MZ, кнопка не нажата CALL Write_time_I2C ; то выз ы ваем подпрограмму обработки режима сброс счетчика, начало отсчета M1 BTFSS PORTB,3 GOTO M1; переход к M1, кнопка нажата, ожидание отпускания кнопки Если отпустили кнопку, CALL GetTime ; Подпрограмма вывода и сохранения результатов измерения CALL Wait250ms GOTO MZ; зацикливание программы END 4. Принципиальная электрическая схема 25 5. Спецификация Позиция Тип, номинал Кол. Примечание шт. Конденсаторы С1 25В – 10,0мкФ 1 С2 SMD 1206 – 0,1мкФ 1 Микросхемы DD1 ЖКИ HD44780 1 DD2 Часы реального времени PCF 8583 1 Резисторы R1 1 кОм 1 R2 5,1кОм 1 R3 5,1кОм 1 R 4 1 кОм 1 Прочие элементы Z1 Кварцевый резонатор 32768 Гц 1 SB 3 Кнопки ПКн – 159 1 SW1.1 переключатель 1 SW1.2 переключатель 1 XC1 разъем 1 XC2 разъем 1 6. Список литературы 1) Яценков В.С. – Микроконтроллеры MicroChip Практическое руковод-ство (2002 год). 2) Майкл Предко. – Справочник по PIC – микроконтроллерам: Пер. с англ. – М.: ДМК Пресс, 2006. – 512с.: ил. (Серия «Справочник») 3) Курс лекций.
© Рефератбанк, 2002 - 2024