Itnewsrussia.ru

Анализ современных технологий

Инициализация микроконтроллера

При запуске микроконтроллера необходимо проинициализировать следующие модули:

1. Порты ввода / вывода;

2. Модуль АЦП;

. Модуль CCP1;

. Таймер TMR1;

. Таймер TMR2;

. Модуль USART;

. Модуль MSSP;

Необходимо настроить прерывания от приемника USART, модуля CCP1, таймера TMR2, прерывания по заднему фронту сигнала на входе INT и прерывания по изменению уровня на входах <RB4:RB7>.

Листинг подпрограммы инициализации приведен ниже.

;-

; ИНИЦИАЛИЗАЦИЯ ПОРТОВ ВВОДА/ВЫВОДА INTCON, GIE ; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ PORTA ; ОЧИСТКА ПОРТОВ PORTB PORTC

B'00111111' ; ЛИНИИ RA0-RA5 НА ВВОД TRISA B'11110011' ; ЛИНИИ RB2, RB3 НА ВЫВОД

; ОСТАЛЬНЫЕ НА ВВОД TRISB TRISC

;-

; ИНИЦИАЛИЗАЦИЯ МОДУЛЯ USART B'10010000' ; ВКЛЮЧИТЬ МОДУЛЬ USART

; РАЗРЕШИТЬ ПРИЕМ

; УСТАНОВИТЬ 8-РАЗРЯДНЫЙ ПРИЕМ RCSTA B'00000100' ; УСТАНОВИТЬ 8-РАЗРЯДНУЮ ПЕРЕДАЧУ

; АСИНХРОННЫЙ НИЗКОСКОРОСТНОЙ РЕЖИМ ПЕРЕДАЧИ TXSTA D'129' ; СКОРОСТЬ ОБМЕНА 9600 бит/с SPBRG

;-

; ИНИЦИАЛИЗАЦИЯ МОДУЛЯ MSSP B'00001000' ; ВЕДУЩИЙ РЕЖИМ I2C SSPCON B'10000000' ; УПРАВЛЕНИЕ ДЛИТЕЛЬНОСТЬЮ ФРОНТА ВЫКЛЮЧЕНО

; ВЫХ. УРОВНИ СООТВЕТСТВУЮТ СПЕЦИФИКАЦИИ I2C SSPSTAT 0x09 ; ТАКТОВАЯ ЧАСТОТА 100 кГц SSPADD SSPCON2

;-

; ИНИЦИАЛИЗАЦИЯ МОДУЛЯ АЦП B'10001110' ; ПРАВОЕ ВЫРАВНИВАНИЕ

; КАНАЛ AN0 - АНАЛОГОВЫЙ ВХОД, ОСТАЛЬНЫЕ ЦИФРОВЫЕ ADCON1 B'10000001' ; МОДУЛЬ АЦП ВКЛЮЧЕН

; ТАКТОВАЯ ЧАСТОТА Fosc/32

; ВЫБРАН КАНАЛ 0 ADCON0

;-

; ИНИЦИАЛИЗАЦИЯ МОДУЛЯ CCP B'00001011' ; РЕЖИМ СРАВНЕНИЯ

; ТРИГГЕР СПЕЦИАЛЬНЫХ ФУНКЦИЙ CCP1CON 0x80 ; ЗАГРУЗИТЬ 8000h В РЕГИСТРЫ CCPR1H И CCPR1L CCPR1H CCPR1L

;-

; ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА TMR1 B'00000010' ; КОЭФФИЦИЕНТ ДЕЛЕНИЯ ПРЕДДЕЛИТЕЛЯ 1:1

; СИНХРОНИЗАЦИЯ ВКЛЮЧЕНА

; ВНЕШНИЙ ИСТОЧНИК ТАКТОВЫХ ИМПУЛЬСОВ T1CON TMR1L ; ОЧИСТКА РЕГИСТРОВ TMR1L И TMR1H TMR1H

;-

; ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА TMR2 B'01111010' ; ПРЕДДЕЛИТЕЛЬ 1/16, ВЫХОДНОЙ ДЕЛИТЕЛЬ 1/16

MOVWF T2CON 0xFF PR2

;- OPTION_REG ; ПОДКЛЮЧИТЬ ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ

; К ВЫВОДАМ PORTB

; АКТИВНЫЙ ЗАДНИЙ ФРОНТ ИМПУЛЬСА НА ВХОДЕ INT

;-

; ИНИЦИАЛИЗАЦИЯ ПРЕРЫВАНИЙ B'01011000' ; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ОТ ПЕРИФЕРИЙНЫХ МОДУЛЕЙ

; И ПРЕРЫВАНИЯ ПО ВХОДАМ INT И <RB4:RB7> INTCON B'00100110' ; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART,

; МОДУЛЯ CCP1 И ТАЙМЕРА TMR2 PIR1 PIE1

;-

; ИНИЦИАЛИЗАЦИЯ РЕГИСТРОВ ОБЩЕГО НАЗНАЧЕНИЯ EEADR ; ОЧИСТИТЬ РЕГИСТР АДРЕСА EECON1, EEPGD ; УСТАНОВИТЬ ЧТЕНИЕ ИЗ EEPROM EECON1, RD ; НАЧАТЬ ЧТЕНИЕ EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ MAX_TL ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР MAX_TL EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ MAX_TH ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР MAX_TH EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ START_ML ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР START_ML EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ START_MH ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР START_MH EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ START_HL ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР START_HL EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ START_HH ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР START_HH EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ STOP_ML ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР STOP_ML EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ STOP_MH ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ

; В РЕГИСТР STOP_MH EEADR, F ; УВЕЛИЧИТЬ АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ НА 1 EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ STOP_HL ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ Перейти на страницу: 1 2

Популярное:

Маршрутизация в мультисервисных сетях Маршрутизация на сегодняшний день определяется не формальными правилами и описаниями, характерными для сетей предыдущих поколений, а требованиями клиента и экономическими соображениями оператора связи. Чтобы оптимизировать работу сетей, разрабатываются различные методы маршрутизации, обеспечивающие сбалансированную наг ...