**************************************************************************** Краткое описание команд микроконтроллеров pic 16f873 -------- RP1- БАНКИ ПАМЯТИ ----------------------------------------- RP(1&0)=0x00 // 0- банк памяти --------------------------- RP(1&0)=0x01 // 1- банк памяти -------------------------- RP(1&0)=0x10 // 2- банк памяти ---------------------------- RP(1&0)=0x11 // 3- банк памяти ------------------------------ ---------------------------------------------------------------------------------------------------------------- INDF-оБРАЩЕНИЕ К РЕГИСТРУ ЗАПИСАННОГО В БАНКИ =0x0000 0000 ----------------------------------------------------------------------------------------------------------------- TMR0-рЕГИСТР ТАЙМЕРА 0 (ОБРАЩЕНИЕ НЕИЗВЕСТНО) ---------------------------------------------------------------------------------------------------------------- PCL-младшие счётчики команд PC ----------------------------------------------------------------------------------------------------------------- Банк 0 ------------------------------------------------------------------------------------------------------------------ STATUS = 0x0001 1xxx |||| |||| |||| |||+- C - (– флаг C (нулевой бит) – флаг |||| ||| переноса-займа если C=1, то было |||| ||| переполнение регистра (происходил |||| ||| перенос) если C=0, то не было |||| ||| переполнения регистра (либо был заём) |||| ||+-- DC - ( флаг десятичного переноса/заема (для |||| || команд: ADDWF, ADDWL, SUBWF, SUBWL), |||| || заем имеет инверсное значение. В |||| || случае переноса из младшего полубайта |||| || бит устанавливается в 1. В случае |||| || отсутствия переноса из младшего |||| || полубайта бит сбрасывается в 0. ) |||| |+--- Z - ( флаг Z (второй бит) – флаг нулевого |||| | результата если Z=1, то был нулевой |||| | результат выполнения команды если Z=0, то |||| | ненулевой результат выполнения команды) |||| +---- -PD - ( флаг включения питания. После POR или |||| выполнения команды CLRWDT бит ё |||| установлен в 1. После выполнения |||| команды SLEEP бит сбрасывается в 0. |||| Этот бит доступен только для чтения ) |||+------ -TO - ( флаг переполнения сторожевого таймера. ||| После сброса по включению питания POR ||| или выполнения команд CLRWDT, SLEEP  ||| бит установлен в 1. После ||| переполнения сторожевого таймера  ||| сбрасывается в 0. Этот бит доступен ||| только для чтения. ) ||+------- RP0 - ( – биты выбора банка при || непосредственной адресации (11- банк || 3; 10 – банк 2; 01 – банк 1; 00 – || банк 0). Биты доступны для чтения и || записи. ) |+-------- RP1 - ( ) +--------- IRP - ( бит выбора банка при косвенной адресации. При IRP=1 выбирается банк 2 или 3;  при IRP=1 выбирается банк 0 или 1. Бит доступен для чтения и записи. ) ------------------------------------------------------------------------------------------------------------------ FSR - Регистр адресса при коственной адресации = 0x xxxx xxxx ------------------------------------------------------------------------------------------------------------------ PORTA = 0x0x0000 // Упровляется цифрами десятичного ввода 1-int i; Пример: PORTA = 16; --------------------------------------------------------------------------------------------------------------------- PORTB,C,D,E - ЧТЕНИЕ И запись состояния выводов ------------------------------------------------------------------------------------------------------------------------ PCLATH - Старшие биты счетчика команд PC 0x0 0000 ------------------------------------------------------------------------------------------------------------------------ INTCON = 0x0000 000x |||| |||| |||| |||+- RBIF - ( флаг прерывания по изменению сигнала на входах RB7:RB4 порта PORTB. |||| ||| 1 – зафиксировано изменение уровня сигнала на одном из входов RB7:RB4 |||| ||| (сбрасывается программно); 0 – не было изменения уровня сигнала ни на |||| ||| одном из входов RB7:RB4. ) |||| ||+-- INTF - ( Флаг внешнего прерывания INT. 1 – выполнено условие внешнего прерывания |||| || на выводе RB0/INT (сбрасывается программно); 0 -  внешнего прерывания не |||| || было. ) |||| |+--- T0IF - ( – флаг прерывания по переполнению TMR0. 1 - произошло переполнение TMR0 |||| | (сбрасывается программно); 0 – переполнения TMR0 не было. ) |||| +---- RBIE - ( Бит разрешения прерывания по изменению сигнала на входах RB7:RB4 порта |||| PORTB. 1 – прерывание разрешено; 0 – прерывание запрещено. ) |||+------ INTE - ( –бит разрешения внешнего прерывания INT. 1 – прерывание разрешено; ||| 0 – прерывание запрещен ) ||+------- T0IE - ( T0IE – бит разрешения прерывания по переполнению TMR0. 1 – прерывание || разрешено; 0 – прерывание запрещено. ) |+-------- PEIE - ( бит разрешения прерываний от периферийных модулей. 1 –разрешены все | немаскированные прерывания периферийных модулей; 0 – прерывания от | периферийных модулей запрещены. ) +--------- GIE - ( бит глобального разрешения прерываний. 1 – разрешены все немаскированные прерывания; 0 – все прерывания запрещены. ) ---------------------------------------------------------------------------------------------------------------------------- PIR1 = 0x0000 0000 |||| |||| |||| |||+- TMR1IF - ( флаг прерывания по переполнению TMR1. Запрос на прерывание |||| ||| 1 – произошло переполнение TMR1; 0 – переполнения TMR1 не было. ) |||| ||+-- TMR2IF - ( флаг прерывания по переполнению TMR2. 1 – произошло переполнение |||| || TMR2; 0 – переполнения TMR2 не было. ) |||| |+--- CCP1IF - ( флаг прерывания от модуля CCP1. Режим захвата 1 – выполнен захват |||| | значения TMR1; 0 – захват значения TMR1 не происходило. Режим |||| | сравнения 1 –значение TMR1 достигло указанного в регистрах |||| | CCPR1H:CCPR1L; 0 – значение TMR1 не достигло указанного в регистрах |||| | CCPR1H:CCPR1L. ШИМ режим Не используется ) |||| +---- CCPIF - ( SSPIF – флаг прерывания от модуля синхронного последовательного порта. ||||   1 – выполнено условие возникновения прерывания от модуля MSSP; |||| Для SPI: - выполнен прием/передача данных. |||| Для ведомый I2C:- выполнен прием/передача данных. |||| Для ведущий I2C: - Выполнен прием/передача данных. |||| Завершено формирование на шине бита START. |||| Завершено формирование на шине бита STOP. |||| - Завершено формирование на шине бита повторный START. |||| - Завершено формирование на шине бита подтверждения. |||| - Обнаружено на шине формирование бита START (для режима с несколькими ведущими). |||| - Обнаружено на шине формирование бита STOP (для режима с несколькими ведущими).   |||| 0 – условие возникновения прерывания от модуля MSSP не выполнено. ) |||+------ TXIF - ( флаг прерывания от передатчика USART. 1 – буфер передатчика USART пуст; ||| 0 – буфер передатчика USART полон. ) ||+------- RCIF - ( флаг прерывания от приемника USART. 1 – буфер приемника USART полон; || 0 – буфер приемника USART пуст. ) |+-------- ADIF - ( флаг прерывания от модуля АЦП. 1 – преобразование АЦП завершено; | 0 – преобразование АЦП не  завершено. ) +--------- PSPIF - ( флаг  прерывания от ведомого параллельного порта. 1 – произошла операция чтения или записи; 0 – операции чтения или записи не происходило. ) ---------------------------------------------------------------------------------------------------------------------------------------- PIR2 = 0x-r-0 0--0 r-РЕЗЕРВ |||| |||| |||| |||+- CCP2IF - ( флаг прерывания от модуля CCP2. Режим захвата 1 – выполнен захват значения TMR1; |||| ||| 0 – захват значения TMR1 не происходило. |||| ||| Режим сравнения 1 –значение TMR1 достигло указанного в регистрах CCPR2H:CCPR2L; |||| ||| 0 – значение TMR1 не достигло указанного в регистрах CCPR2H:CCPR2L. ШИМ режим Не используется ) |||| +---- BCLIF - ( флаг прерывания возникновения коллизий на шине. 1 – на шине обнаружены коллизии |||| (только в режиме ведущего I2C); 0 – коллизий не обнаружено. ) |||+------ EEIF - ( Резерв – всегда должен равняться нулю. EEIF – флаг прерывания по ||| окончанию записи данных в память EEPROM. 1 – запись в EEPROM завершена; ||| 0 – запись в EEPROM не завершена или не была начата. ) |+-------- r (5) - ( ) -------------------------------------------------------------------------------------------------------------------------------------- TMR1L = 0x xxxx xxxx // МЛАДШИЙ БИТ 16-ТИ РАЗРЯДНОГО ТАЙМЕРА 1 TMR1H = 0x xxxx xxxx // Старший бит 16-ти разрядного таймера 1 -------------------------------------------------------------------------------------------------------------------------- T1CON = 0x --00 0000 |||| |||| |||| |||+- TMR1ON - (TMR1ON = 1; // Включить TMR1 ) |||| ||+-- TMR1CS - (бит разрешения тактирования таймера внешними сигналами ) |||| |+--- T1SYNC - (бит разрешения синхронизации внешних тактовых импульсов внутренней чааотой командных циклов ) |||| +---- T10SCEN - (бит разрешения использования встооенного генератора схемы THRl ) |||+------ T1CKPS0 - (выбор коэффициента деления прескалера для таймера ТИЯГ. ||| 11 - коэффициент деления задается равным 8; ||| 10 - коэффициент деления задается равным 4; ||| 01 - коэффициент деления задается равным 2; ||| 00 - коэффициент деления задается равным 1 ) ||+------- T1CKPS1 - (выбор коэффициента деления прескалера для таймера ТИЯГ. 11 - коэффициент деления задается равным 8; 10 - коэффициент деления задается равным 4; 01 - коэффициент деления задается равным 2; 00 - коэффициент деления задается равным 1 ) ------------------------------------------------------------------------------------------------------------------------- TMR2 = 0x0000 0000 ---------------------------------------------------------------------------------------------------------------------------- T2CON = 0x -000 0000 |||| |||| |||| |||+- T2CKPS0 - (T1CKPS0 ) |||| ||+-- T2CKPS1 - (T1CKPS1 ) |||| |+--- TMR2ON - (TMR2ON = 1; // Включить TMR2 ) |||| +---- TOUTPS0 - ( ) |||+------ TOUTPS1 - ( ) ||+------- TOUTPS2 - ( ) |+-------- TOUTPS3 - (выбор коэффициента деления поаскалера для таймера тинО: 1111 - коэффициент деления задается равным 16; 1110 - коэффициент задается равным 15; ) ------------------------------------------------------------------------------ SSPBUF = xxxx xxxx // Буфер приёмника MCCP/ Регистр передатчика ------------------------------------------------------------------------------- SSPCON = 0x0000 0000 |||| |||| |||| |||+- SSPM0 - ( ) |||| ||+-- SSPM1 - ( ) |||| |+--- SSPM2 - ( ) |||| +---- SSPM3 - (выбор режима работы модуля SSP Биты Режим 1111 Режим ГС (используется 10-разрядный адрес), инициирование прерываний по стартовому и стоповому битам 1110 Режим 1'С (используется 7-разрядный адрес), инициирование прерываний по стартовому и стоповому битам 1101 Зарезервирован 1100 Зарезервирован 1011 Режим 1C (управляемые устройства в режиме ожидания) 1010 Зарезервирован 1001 Зарезервирован Режим Гс (частота синхронизирующих импульсов определяется 0111 оно 0101 регистром SSPADD) Режим 1'С (используется 10- разрядный адрес) Режим ГС (используется 7-разряднн й адоес) оюо Режим SPI, SLAVE, вывод SS (Slave Select) не используется 0011 Режим SPI, SLAVE, вывод SS (Slave Select) разрешен 0010 Режим SPI, MASTER, синхронизация от TMR2 * 0001 Режим SPI, MASTER, синхронизация от Fosc/64 0000 Режим SPI, MASTER, синхронизация от Fosc/16 Режим SPI, MASTER, синхронизация от Fosc/4 ) |||+------ CKP - ( выбор фронта для передачи в режиме SPI (0 - передний фронт),в режиме ГС установка этого бита разрешает тактирование ) ||+------- SSPEN - (бит разрешения SSP режима работы портов микроконтроллера ) |+-------- SSPOV - (флаг переполнения приемного буфера модуля SSP ) +--------- WCOL - (флаг коллизий при записи (1 - запись новых данных в буферный регистр была произведена во время передачи) ) --------------------------------------------------------------------------------- CCPR1L - Младший байт захвата/сравнени/ Шим ССР1 CCPR1H - сТАРший байт захвата/сравнени/ Шим ССР1 ---------------------------------------------------------------------------------- CCP1CON = 0x--00 0000 |||| |||| |||| |||+- CCP1M0 - ( ) |||| ||+-- CCP1M1 - ( ) |||| |+--- CCP1M2 - ( ) |||| +---- CCP1M3 - (ССР1МЗ - ССР1М0 - выбор режима модуля ССР1: 11 хх - режимы ШИМ; 1011 - режим триггера специальных событий; 1010 - режим генерации прерываний при сравнении; 1001 - задание начального высокого уровня сигнала ССР2 и принудительный переход к низкому уровню сигнала при равенстве; 1000 - задание начального низкого уровня сигнала ССР1 и принудительный переход к высокому уровню при равенстве; 0111 - захват по каждому шестнадцатому переднему фронту импульсов; 0110 - захват по каждому четвертому переднему фронту импульсов; 0101 - захват по каждому переднему фронту импульсов; 0100 - захват по каждому заднему фронту импульсов; ООхх - модуль захвата/сравнения/ШИМ отключен модуля захвата, приведенной на рис. 7.17. Цель режима захвата -зафиксировать значение таймера (в данном случае таймера TMR1) в момент появления определенного условия. Таким условием может быть фронт внешнего сигнала. ) |||+------ CCP1Y - (Ширина импульса Шим определяется значением регистра **************************************************************************** Краткое описание команд микроконтроллеров pic 16f873 -------- RP1- БАНКИ ПАМЯТИ ----------------------------------------- RP(1&0)=0x00 // 0- банк памяти --------------------------- RP(1&0)=0x01 // 1- банк памяти -------------------------- RP(1&0)=0x10 // 2- банк памяти ---------------------------- RP(1&0)=0x11 // 3- банк памяти ------------------------------ ---------------------------------------------------------------------------------------------------------------- INDF-оБРАЩЕНИЕ К РЕГИСТРУ ЗАПИСАННОГО В БАНКИ =0x0000 0000 ----------------------------------------------------------------------------------------------------------------- TMR0-рЕГИСТР ТАЙМЕРА 0 (ОБРАЩЕНИЕ НЕИЗВЕСТНО) ---------------------------------------------------------------------------------------------------------------- PCL-младшие счётчики команд PC ----------------------------------------------------------------------------------------------------------------- Банк 0 ------------------------------------------------------------------------------------------------------------------ STATUS = 0x0001 1xxx |||| |||| |||| |||+- C - (– флаг C (нулевой бит) – флаг |||| ||| переноса-займа если C=1, то было |||| ||| переполнение регистра (происходил |||| ||| перенос) если C=0, то не было |||| ||| переполнения регистра (либо был заём) |||| ||+-- DC - ( флаг десятичного переноса/заема (для |||| || команд: ADDWF, ADDWL, SUBWF, SUBWL), |||| || заем имеет инверсное значение. В |||| || случае переноса из младшего полубайта |||| || бит устанавливается в 1. В случае |||| || отсутствия переноса из младшего |||| || полубайта бит сбрасывается в 0. ) |||| |+--- Z - ( флаг Z (второй бит) – флаг нулевого |||| | результата если Z=1, то был нулевой |||| | результат выполнения команды если Z=0, то |||| | ненулевой результат выполнения команды) |||| +---- -PD - ( флаг включения питания. После POR или |||| выполнения команды CLRWDT бит ё |||| установлен в 1. После выполнения |||| команды SLEEP бит сбрасывается в 0. |||| Этот бит доступен только для чтения ) |||+------ -TO - ( флаг переполнения сторожевого таймера. ||| После сброса по включению питания POR ||| или выполнения команд CLRWDT, SLEEP  ||| бит установлен в 1. После ||| переполнения сторожевого таймера  ||| сбрасывается в 0. Этот бит доступен ||| только для чтения. ) ||+------- RP0 - ( – биты выбора банка при || непосредственной адресации (11- банк || 3; 10 – банк 2; 01 – банк 1; 00 – || банк 0). Биты доступны для чтения и || записи. ) |+-------- RP1 - ( ) +--------- IRP - ( бит выбора банка при косвенной адресации. При IRP=1 выбирается банк 2 или 3;  при IRP=1 выбирается банк 0 или 1. Бит доступен для чтения и записи. ) ------------------------------------------------------------------------------------------------------------------ FSR - Регистр адресса при коственной адресации = 0x xxxx xxxx ------------------------------------------------------------------------------------------------------------------ PORTA = 0x0x0000 // Упровляется цифрами десятичного ввода 1-int i; Пример: PORTA = 16; --------------------------------------------------------------------------------------------------------------------- PORTB,C,D,E - ЧТЕНИЕ И запись состояния выводов ------------------------------------------------------------------------------------------------------------------------ PCLATH - Старшие биты счетчика команд PC 0x0 0000 ------------------------------------------------------------------------------------------------------------------------ INTCON = 0x0000 000x |||| |||| |||| |||+- RBIF - ( флаг прерывания по изменению сигнала на входах RB7:RB4 порта PORTB. |||| ||| 1 – зафиксировано изменение уровня сигнала на одном из входов RB7:RB4 |||| ||| (сбрасывается программно); 0 – не было изменения уровня сигнала ни на |||| ||| одном из входов RB7:RB4. ) |||| ||+-- INTF - ( Флаг внешнего прерывания INT. 1 – выполнено условие внешнего прерывания |||| || на выводе RB0/INT (сбрасывается программно); 0 -  внешнего прерывания не |||| || было. ) |||| |+--- T0IF - ( – флаг прерывания по переполнению TMR0. 1 - произошло переполнение TMR0 |||| | (сбрасывается программно); 0 – переполнения TMR0 не было. ) |||| +---- RBIE - ( Бит разрешения прерывания по изменению сигнала на входах RB7:RB4 порта |||| PORTB. 1 – прерывание разрешено; 0 – прерывание запрещено. ) |||+------ INTE - ( –бит разрешения внешнего прерывания INT. 1 – прерывание разрешено; ||| 0 – прерывание запрещен ) ||+------- T0IE - ( T0IE – бит разрешения прерывания по переполнению TMR0. 1 – прерывание || разрешено; 0 – прерывание запрещено. ) |+-------- PEIE - ( бит разрешения прерываний от периферийных модулей. 1 –разрешены все | немаскированные прерывания периферийных модулей; 0 – прерывания от | периферийных модулей запрещены. ) +--------- GIE - ( бит глобального разрешения прерываний. 1 – разрешены все немаскированные прерывания; 0 – все прерывания запрещены. ) ---------------------------------------------------------------------------------------------------------------------------- PIR1 = 0x0000 0000 |||| |||| |||| |||+- TMR1IF - ( флаг прерывания по переполнению TMR1. Запрос на прерывание |||| ||| 1 – произошло переполнение TMR1; 0 – переполнения TMR1 не было. ) |||| ||+-- TMR2IF - ( флаг прерывания по переполнению TMR2. 1 – произошло переполнение |||| || TMR2; 0 – переполнения TMR2 не было. ) |||| |+--- CCP1IF - ( флаг прерывания от модуля CCP1. Режим захвата 1 – выполнен захват |||| | значения TMR1; 0 – захват значения TMR1 не происходило. Режим |||| | сравнения 1 –значение TMR1 достигло указанного в регистрах |||| | CCPR1H:CCPR1L; 0 – значение TMR1 не достигло указанного в регистрах |||| | CCPR1H:CCPR1L. ШИМ режим Не используется ) |||| +---- CCPIF - ( SSPIF – флаг прерывания от модуля синхронного последовательного порта. ||||   1 – выполнено условие возникновения прерывания от модуля MSSP; |||| Для SPI: - выполнен прием/передача данных. |||| Для ведомый I2C:- выполнен прием/передача данных. |||| Для ведущий I2C: - Выполнен прием/передача данных. |||| Завершено формирование на шине бита START. |||| Завершено формирование на шине бита STOP. |||| - Завершено формирование на шине бита повторный START. |||| - Завершено формирование на шине бита подтверждения. |||| - Обнаружено на шине формирование бита START (для режима с несколькими ведущими). |||| - Обнаружено на шине формирование бита STOP (для режима с несколькими ведущими).   |||| 0 – условие возникновения прерывания от модуля MSSP не выполнено. ) |||+------ TXIF - ( флаг прерывания от передатчика USART. 1 – буфер передатчика USART пуст; ||| 0 – буфер передатчика USART полон. ) ||+------- RCIF - ( флаг прерывания от приемника USART. 1 – буфер приемника USART полон; || 0 – буфер приемника USART пуст. ) |+-------- ADIF - ( флаг прерывания от модуля АЦП. 1 – преобразование АЦП завершено; | 0 – преобразование АЦП не  завершено. ) +--------- PCPIF - ( флаг  прерывания от ведомого параллельного порта. 1 – произошла операция чтения или записи; 0 – операции чтения или записи не происходило. ) ---------------------------------------------------------------------------------------------------------------------------------------- PIR2 = 0x-r-0 0--0 r-РЕЗЕРВ |||| |||| |||| |||+- CCP2IF - ( флаг прерывания от модуля CCP2. Режим захвата 1 – выполнен захват значения TMR1; |||| ||| 0 – захват значения TMR1 не происходило. |||| ||| Режим сравнения 1 –значение TMR1 достигло указанного в регистрах CCPR2H:CCPR2L; |||| ||| 0 – значение TMR1 не достигло указанного в регистрах CCPR2H:CCPR2L. ШИМ режим Не используется ) |||| +---- BCLIF - ( флаг прерывания возникновения коллизий на шине. 1 – на шине обнаружены коллизии |||| (только в режиме ведущего I2C); 0 – коллизий не обнаружено. ) |||+------ EEIF - ( Резерв – всегда должен равняться нулю. EEIF – флаг прерывания по ||| окончанию записи данных в память EEPROM. 1 – запись в EEPROM завершена; ||| 0 – запись в EEPROM не завершена или не была начата. ) |+-------- r (5) - ( ) -------------------------------------------------------------------------------------------------------------------------------------- TMR1L = 0x xxxx xxxx // МЛАДШИЙ БИТ 16-ТИ РАЗРЯДНОГО ТАЙМЕРА 1 TMR1H = 0x xxxx xxxx // Старший бит 16-ти разрядного таймера 1 -------------------------------------------------------------------------------------------------------------------------- T1CON = 0x --00 0000 |||| |||| |||| |||+- TMR1ON - (TMR1ON = 1; // Включить TMR1 ) |||| ||+-- TMR1CS - (бит разрешения тактирования таймера внешними сигналами ) |||| |+--- T1SYNC - (бит разрешения синхронизации внешних тактовых импульсов внутренней чааотой командных циклов ) |||| +---- T10SCEN - (бит разрешения использования встооенного генератора схемы THRl ) |||+------ T1CKPS0 - (выбор коэффициента деления прескалера для таймера ТИЯГ. ||| 11 - коэффициент деления задается равным 8; ||| 10 - коэффициент деления задается равным 4; ||| 01 - коэффициент деления задается равным 2; ||| 00 - коэффициент деления задается равным 1 ) ||+------- T1CKPS1 - (выбор коэффициента деления прескалера для таймера ТИЯГ. 11 - коэффициент деления задается равным 8; 10 - коэффициент деления задается равным 4; 01 - коэффициент деления задается равным 2; 00 - коэффициент деления задается равным 1 ) ------------------------------------------------------------------------------------------------------------------------- TMR2 = 0x0000 0000 ---------------------------------------------------------------------------------------------------------------------------- T2CON = 0x -000 0000 |||| |||| |||| |||+- T2CKPS0 - (T1CKPS0 ) |||| ||+-- T2CKPS1 - (T1CKPS1 ) |||| |+--- TMR2ON - (TMR2ON = 1; // Включить TMR2 ) |||| +---- TOUTPS0 - ( ) |||+------ TOUTPS1 - ( ) ||+------- TOUTPS2 - ( ) |+-------- TOUTPS3 - (выбор коэффициента деления поаскалера для таймера тинО: 1111 - коэффициент деления задается равным 16; 1110 - коэффициент задается равным 15; ) ------------------------------------------------------------------------------ SSPBUF = xxxx xxxx // Буфер приёмника MCCP/ Регистр передатчика ------------------------------------------------------------------------------- SSPCON = 0x0000 0000 |||| |||| |||| |||+- SSPM0 - ( ) |||| ||+-- SSPM1 - ( ) |||| |+--- SSPM2 - ( ) |||| +---- SSPM3 - (выбор режима работы модуля SSP Биты Режим 1111 Режим ГС (используется 10-разрядный адрес), инициирование прерываний по стартовому и стоповому битам 1110 Режим 1'С (используется 7-разрядный адрес), инициирование прерываний по стартовому и стоповому битам 1101 Зарезервирован 1100 Зарезервирован 1011 Режим 1C (управляемые устройства в режиме ожидания) 1010 Зарезервирован 1001 Зарезервирован Режим Гс (частота синхронизирующих импульсов определяется 0111 оно 0101 регистром SSPADD) Режим 1'С (используется 10- разрядный адрес) Режим ГС (используется 7-разряднн й адоес) оюо Режим SPI, SLAVE, вывод SS (Slave Select) не используется 0011 Режим SPI, SLAVE, вывод SS (Slave Select) разрешен 0010 Режим SPI, MASTER, синхронизация от TMR2 * 0001 Режим SPI, MASTER, синхронизация от Fosc/64 0000 Режим SPI, MASTER, синхронизация от Fosc/16 Режим SPI, MASTER, синхронизация от Fosc/4 ) |||+------ CKP - ( выбор фронта для передачи в режиме SPI (0 - передний фронт),в режиме ГС установка этого бита разрешает тактирование ) ||+------- SSPEN - (бит разрешения SSP режима работы портов микроконтроллера ) |+-------- SSPOV - (флаг переполнения приемного буфера модуля SSP ) +--------- WCOL - (флаг коллизий при записи (1 - запись новых данных в буферный регистр была произведена во время передачи) ) --------------------------------------------------------------------------------- CCPR1L - Младший байт захвата/сравнени/ Шим ССР1 CCPR1H - сТАРший байт захвата/сравнени/ Шим ССР1 ---------------------------------------------------------------------------------- CCP1CON = 0x--00 0000 |||| |||| |||| |||+- CCP1M0 - ( ) |||| ||+-- CCP1M1 - ( ) |||| |+--- CCP1M2 - ( ) |||| +---- CCP1M3 - (ССР1МЗ - ССР1М0 - выбор режима модуля ССР1: 11 хх - режимы ШИМ; 1011 - режим триггера специальных событий; 1010 - режим генерации прерываний при сравнении; 1001 - задание начального высокого уровня сигнала ССР2 и принудительный переход к низкому уровню сигнала при равенстве; 1000 - задание начального низкого уровня сигнала ССР1 и принудительный переход к высокому уровню при равенстве; 0111 - захват по каждому шестнадцатому переднему фронту импульсов; 0110 - захват по каждому четвертому переднему фронту импульсов; 0101 - захват по каждому переднему фронту импульсов; 0100 - захват по каждому заднему фронту импульсов; ООхх - модуль захвата/сравнения/ШИМ отключен модуля захвата, приведенной на рис. 7.17. Цель режима захвата -зафиксировать значение таймера (в данном случае таймера TMR1) в момент появления определенного условия. Таким условием может быть фронт внешнего сигнала. ) |||+------ CCP1Y - (Ширина импульса Шим определяется значением регистра CCPR1L И CCP1Y,CCP1X ) ||+------- CCP1X - ( ) ----------------------------------------------------------------------------------- RCSTA = 0x0000 0000 |||| |||| |||| |||+- RX9D - (девятый бит принимаемых данных ) |||| ||+-- OERR - (флаг ошибки буферизации ) |||| |+--- FERR - (бит признака ошибки формата ) |||| +---- ADDEN - (разрешение обнаружения адреса в асинхронном режиме ) |||+------ CREN - (бит разрешения режима непрерывного приема ) ||+------- SREN - (бит разрешения режима однократного приема в синхронном режиме ) |+-------- RX9 - (бит разрешения приема данных в 9-разрядном формате ) +--------- SPEN - (логическое включение USART ) ------------------------------------------------------------------------------------- TXREG = 0x0000 0000 //Передатчик USART RCREG = 0x0000 0000 //Приемник USART CCPR2L - Младший байт захвата/сравнени/ Шим ССР1 CCPR2H - сТАРший байт захвата/сравнени/ Шим ССР1 -------------------------------------------------------------------------------------- CCP2CON = 0x--00 0000 |||| |||| |||| |||+- CCP2M0 - ( ) |||| ||+-- CCP2M1 - ( ) |||| |+--- CCP2M2 - ( ) |||| +---- CCP2M3 - ( ) |||+------ CCP2Y - ( ) ||+------- CCP2X - ( ) ------------------------------------------------------------------------------------------ ADDRESH //Старший байт преобразования АЦП ADDCON0 = 0x0000 00-0 |||| |||| |||| |||+- ADON - (активизация модуля АЦП ) |||| ||+-- ---- - ( ) |||| |+--- GO/-DONE - (устанавливается для инициирования аналого-цифрового преобразования, по окончании -сбрасывается) |||| +---- CHS0 - ( ) |||+------ CHS1 - ( биты выбора канала аналого-цифрового преобразователя;) ||+------- CHS2 - (111 - AN7;110-AN6;101 - AN5;100 - AN4;011 -AN3;010 - AN2;001 - AN1;000 - AN0 ) |+-------- ADCS0 - (биты выбора тактовых импульсов АЦП (вместе с битом ADCS2 регистра ADC0N1): ) +--------- ADCS1 - (111 - внутренний RC-генератор; 110 - Fosc/64; 101 - Fosc/16;100- Fosc/4; 011 - внутренний RC 010- Fosc/32; 001 -Fosc/8; 000 - Fosc/2 -генератор; ) ----------------------------------------------------------------------------------------- ----------------------------- БАНК 1 ---------------------------------------------------------------------------------------- INDF-оБРАЩЕНИЕ К РЕГИСТРУ ЗАПИСАННОГО В БАНКИ =0x0000 0000 ------------------------------------------------------------------------------------ TMR0-рЕГИСТР ТАЙМЕРА 0 (ОБРАЩЕНИЕ НЕИЗВЕСТНО) ---------------------------------------------------------------------------------------------- PCL-младшие счётчики команд PC ------------------------------------------------------------------------------------------------------------------------- OPTION_REG = 0x1111 1111 |||| |||| |||| |||+- PS0 - ( Биты установки коэффициента деления предделителя |||| |||            Значение    Для TMR0    Для WDT |||| |||            000    1:2  1:1 |||| ||| 001 1:4 1:2 |||| ||| 010 1:8 1:4 |||| |||   011 1:16 1:8 |||| ||| 100 1:32 1:16 |||| ||| 101 1:64   1:32 |||| ||| 110 1:128  1:64 |||| ||| 111 1:256  1:128 ) |||| ||+-- PS1 - ( ) |||| |+--- PS2 - ( ) |||| +---- PSA - ( PSA – Бит выбора включения предделителя. 1 – предделитель |||| включен перед WDT; предделитель включен перед TMR0. ) |||+------ T0SE - ( бит выбора фронта приращения TMR0 при внешнем тактовом сигнале. ||| 1 – приращение по заднему фронту сигнала (с высокого к низкому) ||| на выводе RA4/T0CKI; 0 - приращение по переднему фронту сигнала ||| (с низкого к высокому) на выводе RA4/T0CKI. ) ||+------- T0CS - ( бит выбора тактового сигнала для TMR0. 1 – внешний тактовый сигнал || с вывода RA4/T0CKI; 0 – внутренний тактовый сигнал CLKOUT. ) |+-------- INTEDG - ( бит выбора активного фронта сигнала на входе внешнего прерывания INT. | 1 – прерывание по переднему фронту сигнала; 0 – прерывание по | заднему фронту сигнала. ) +--------- -RBPU - ( бит включения подтягивающих резисторов на входах PORTB. 1 – подтягивающие резисторы отключены; 0 – подтягивающие резисторы включены. ) --------------------------------------------------------------------------------------------------------------------------- STATUS = 0x0001 1xxx |||| |||| |||| |||+- C - ( ) |||| ||+-- DC - ( ) |||| |+--- Z - ( ) |||| +---- -PD - ( ) |||+------ -TO - ( ) ||+------- RP0 - ( ) |+-------- RP1 - ( ) +--------- IRP - ( ) ----------------------------------------------------------------------------------------------------------------------------- PCON = 0x------qq || |+-- -BOR - ( флаг сброса по снижению напряжения питания. 1 – сброса по снижению напряжения | питания не было; 0 – произошел сброс микроконтроллера по снижению напряжения | питания (должен быть установлен программно в «1» для обнаружения последующего сброса BOR). ) +--- -POR - ( флаг сброса по включению питания. 1 – сброса по включению питания не было; 0 – произошел сброс микроконтроллера по включению питания (должен быть установлен программно в «1» для обнаружения последующего сброса POR). ) ---------------------------------------------------------------------------------------------------------------------------- PCLATH = 0x---0 0000 ----------------------------------------------------------------------------------------------------------------------------- INTCON = 0x0000 000x |||| |||| |||| |||+- RBIF - ( ) |||| ||+-- INTF - ( ) |||| |+--- T0IF - ( ) |||| +---- RBIE - ( ) |||+------ INTE - ( ) ||+------- T0IE - ( ) |+-------- PEIE - ( ) +--------- GIE - ( ) -------------------------------------------------------------------------------- PIE1 = 0x0000 0000 |||| |||| |||| |||+- TMR1IE - (Биты управления системой прерывания таймера 1. Флаг прерывания должен очищаться программно. ) |||| ||+-- TMR2IE - (Биты управления системой прерывания таймера 2. Флаг прерывания должен очищаться программно. ) |||| |+--- CCP1IE - ( разрешение прерывания от модуля ССР1 ) |||| +---- CCPIE - (разрешение прерывания от MSSD ) |||+------ TXIE - (разрешение прерывания от USART, когда буферный регистр передачи пуст ) ||+------- RCIE - (разрешение прерывания от USART при приеме данных ) |+-------- ADIE - (разрешение на прерывание после завершения аналого-цифрового преобразования ) +--------- PCPIE - (разрешение прерывания от PSP при выполнении операций чтения/записи ) --------------------------------------------------------------------------------- PIR2 = 0x-r-0 0--0 r-РЕЗЕРВ |||| |||| |||| |||+- CCP2IE - (Биты управления системой прерывания модуля захвата/сравнения ССP2. Флаг прерывания должен очищаться программно. ) |||| +---- BCLIE - (Биты управления системой прерывания устройства, отслеживающего коллизию мультимастерного обмена шины I2C. Флаг прерывания должен очищаться программно. ) |||+------ EEIE - (Биты управлением системой прерывания устройства записи во FLASH или EEPROM – память. Флаг прерывания должен очищаться программно. ) |+-------- r (5) - ( ) ---------------------------------------------------------------------------------- SSPCON2 = 0x0000 0000 |||| |||| |||| |||+- SEN - (SEN - устанавливается для инициирования старт условий шины 1C Входа. В отличие от большинства других периферийных модулей МоДУль MSSP не обеспечивает автоматического управления битами Регистра TRIS. Таким образом, если не была выполнена предвари-Тельная установка битов регистра TRIS, модуль интерфейса 12С не Ск,оясет нормально функционировать. ) |||| ||+-- RSEN - (устанавливается для инициирования повторных старт-условий шины ГС ) |||| |+--- PEN - (обнуляется для инициирования стоп-условия шины ГС ) |||| +---- RCEN - (устанавливается для разрешения режима приема модуля I С ) |||+------ ACKEN - (инициирует последовательность подтверждения шины I С ) ||+------- ACKDT - (устанавливается для посылки подтверждения при приеме байта ) |+-------- ACKSTAT - (устанавливается при получении подтверждения приема ог slave-устройства шины ГС ) +--------- GCEN - (устанавливается для разрешения прерываний при приеме адреса общего вызова (0x0000) ) ------------------------------------------------------------------------------------ PR2 = 0x1111 1111 - Регистр периода таймера ------------------------------------------------------------------------------------- SSPADD = 0x0000 0000 - Регистр генератора скорости обмена ------------------------------------------------------------------------------------- SSPSTAT = 0x0000 0000 |||| |||| |||| |||+- BF - (флаг"буфер полон"; устанавливается при заполнении буфера во время приема или передачи данных ) |||| ||+-- UA - (устанавливается в том случае, когда необходимо модифицировать адрес (содержимое регистра SSPADD, режим 1!С) ) |||| |+--- R/-W - (бит типа операции в режиме 1гС: 0 - запись; 1 - чтение ) |||| +---- s - (флаг обнаружения стартового бита (в режиме 1гС) ) |||+------ P - (флаг обнаружения стопового бита (в режиме 1гС) ) ||+------- D/-A - (используется в режиме 1гС: 1 - последним был передан байт данных; 0 - байт адреса ) |+-------- CKE - (1 - передача данных (ТХ) при переходе от активного состояния к пассивному, 0 - наоборот Отсутствует в BSSP ) +--------- SMP - (стробирование данных осуществляется в конце битового интервала; 0 - стробирование данных осуществляется в середине битового интервала Отсутствует в BSSP ) ------------------------------------------------------------------------------------ TXSTA = 0x0000 -010 |||| |||| |||| |||+- TX9D - ( девятый бит передаваемых данных ) |||| ||+-- TRMT - (флаг "передающий регистр пуст" (передача слова завершена) ) |||| |+--- BRGH - (бит выбора скорости передачи: 1 - высокая; 0 - низкая _ ) |||| +---- ---- - ( ) |||+------ SYNC - (бит выбора режима работы USART. 1 - синхронный режим; 0 - асинхронный ) ||+------- TXEN - (бит разрешения передачи данных ) |+-------- TX9 - (устанавливается для разрешения передачи данных в 9-разрядном формате ) +--------- CSRC - (бит выбора источника тактовых импульсов в синхронном режиме 1 - внутренний источник; 0 - внешний генератор ) -------------------------------------------------------------------------------------- SPBRG = 0x0000 0000 //Регистр гениратора скорости USART --------------------------------------------------------------------------------------- ADRESL = 0xxxxx xxxx //Младший байт результат преобразование АЦП -------------------------------------------------------------------------------------- ADCON1 = 0x0--- 0000 |||| |||| |||| |||+- PCFG0 - (биты конфигурирования выводов микроконтроллера ) |||| ||+-- PCFG1 - ( ) |||| |+--- PCFG2 - ( ) |||| +---- PCFG3 - ( ) +--------- ADFM - (1 - возврат результата преобразования в формате с правым выравниванием; 0 - возврат в формате елевым выравниванием ) -----------------------------------------********------------------------------------- - ----------------------------------------*БАНК 2*------------------------------------- -----------------------------------------********--------------------------------------- INDF-оБРАЩЕНИЕ К РЕГИСТРУ ЗАПИСАННОГО В БАНКИ =0x0000 0000 ------------------------------------------------------------------------------------- TMR0-рЕГИСТР ТАЙМЕРА 0 (ОБРАЩЕНИЕ НЕИЗВЕСТНО) -------------------------------------------------------------------------------------- PCL-младшие счётчики команд PC --------------------------------------------------------------------------------------- STATUS = 0x0001 1xxx |||| |||| |||| |||+- C - ( ) |||| ||+-- DC - ( ) |||| |+--- Z - ( ) |||| +---- -PD - ( ) |||+------ -TO - ( ) ||+------- RP0 - ( ) |+-------- RP1 - ( ) +--------- IRP - ( ) -------------------------------------------------------------------------------------- PCLATH = 0x---0 0000 --------------------------------------------------------------------------------------- INTCON = 0x0000 000x |||| |||| |||| |||+- RBIF - ( ) |||| ||+-- INTF - ( ) |||| |+--- T0IF - ( ) |||| +---- RBIE - ( ) |||+------ INTE - ( ) ||+------- T0IE - ( ) |+-------- PEIE - ( ) +--------- GIE - ( ) ------------------------------------------------------------------------------------ EECON1 = x--- x000 |||| |||| |||| |||+- RD - ( бит управления чтением 1 = инициирует чтение EEPROM (Чтение занимает один цикл. RD сбрасывается аппаратно. Бит RD можно только установить программно, но не сбросить. Бит RD нельзя установить, когда EEPGD=1 (работа с памятью программ) или CFGS=1 (работа с конфигурационными регистрами)) 0 = не инициирует чтение EEPROM.) |||| ||+-- WR - (бит управления записью 1 = инициирует цикл стирания/записи для памяти данных EEPROM, либо цикл стирания или цикл записи для памяти программ (самотактируемая операция, бит сбрасывается аппаратно, как только запись завершится. Бит WR можно только установить программно, но не сбросить.)0 = цикл записи в EEPROM завершён ) |||| |+--- WREN - (бит разрешения записи Flash-памяти программ или EEPROM-памяти данных 1 = разрешает циклы записи во Flash-память программ или EEPROM-память данных 0 = запрещает циклы записи во Flash-память программ или EEPROM-память данных ) |||| | --- +--------- EEPGD - ( бит выбора Flash-памяти программ или EEPROM-памяти данных 1 = доступ будет осуществляться к памяти программ 0 = доступ будет осуществляться к памяти данных ) ------------------------------------------------------------------------------------- EECON2 0x---- ---- // Не реализован ( Регистр управления 2 ) ------------------------------------------------------------------------------------------------------------------------ ************************************************************************************************************************ ************************************************************************************************************************* T10SLEN-бит разрешения использования встооенного генератора схемы THRl --- - ---с-1-1-------- ------------------------------------------------------------------------------------------------ T1SYNCH - бит разрешения синхронизации внешних тактовых импульсов внутренней чааотой командных циклов ------------------------------------------------------------------------------------------------------ Табл3. режим частота OSC1 OSC2 Керамический резонатор XT 455кГц 68-100пф 68-100пф 2мГц 15-68пф 15-68пф 4мГц 15-68пф 15-68пф HS 8мГц 10-68пф 10-68пф 16мГц 10-22пф 10-22пф Кварцевый резонатор LP 32кГц 33пф 33пф 200кГц 15пф 15пф XT 200кГц 47-68пф 47-68пф 1мГц 15пф 15пф 4мГц 15пф 15пф HS 4мГц 15пф 15пф 8мГц 15-33пф 15-33пф 20МГц 15-33пф 15-33пф --------------------------------------------------------------------------------------------------------------------------- ) ||+------- CCP1X - ( ) ----------------------------------------------------------------------------------- RCSTA = 0x0000 0000 |||| |||| |||| |||+- RX9D - (девятый бит принимаемых данных ) |||| ||+-- OERR - (флаг ошибки буферизации ) |||| |+--- FERR - (бит признака ошибки формата ) |||| +---- ADDEN - (разрешение обнаружения адреса в асинхронном режиме ) |||+------ CREN - (бит разрешения режима непрерывного приема ) ||+------- SREN - (бит разрешения режима однократного приема в синхронном режиме ) |+-------- RX9 - (бит разрешения приема данных в 9-разрядном формате ) +--------- SPEN - (логическое включение USART ) ------------------------------------------------------------------------------------- TXREG = 0x0000 0000 //Передатчик USART RCREG = 0x0000 0000 //Приемник USART CCPR2L - Младший байт захвата/сравнени/ Шим ССР1 CCPR2H - сТАРший байт захвата/сравнени/ Шим ССР1 -------------------------------------------------------------------------------------- CCP2CON = 0x--00 0000 |||| |||| |||| |||+- CCP2M0 - ( ) |||| ||+-- CCP2M1 - ( ) |||| |+--- CCP2M2 - ( ) |||| +---- CCP2M3 - ( ) |||+------ CCP2Y - ( ) ||+------- CCP2X - ( ) ------------------------------------------------------------------------------------------ ADDRESH //Старший байт преобразования АЦП ADDCON0 = 0x0000 00-0 |||| |||| |||| |||+- ADON - (активизация модуля АЦП ) |||| ||+-- ---- - ( ) |||| |+--- GO/-DONE - (устанавливается для инициирования аналого-цифрового преобразования, по окончании -сбрасывается) |||| +---- CHS0 - ( ) |||+------ CHS1 - ( биты выбора канала аналого-цифрового преобразователя;) ||+------- CHS2 - (111 - AN7;110-AN6;101 - AN5;100 - AN4;011 -AN3;010 - AN2;001 - AN1;000 - AN0 ) |+-------- ADCS0 - (биты выбора тактовых импульсов АЦП (вместе с битом ADCS2 регистра ADC0N1): ) +--------- ADCS1 - (111 - внутренний RC-генератор; 110 - Fosc/64; 101 - Fosc/16;100- Fosc/4; 011 - внутренний RC 010- Fosc/32; 001 -Fosc/8; 000 - Fosc/2 -генератор; ) ----------------------------------------------------------------------------------------- ----------------------------- БАНК 1 ---------------------------------------------------------------------------------------- INDF-оБРАЩЕНИЕ К РЕГИСТРУ ЗАПИСАННОГО В БАНКИ =0x0000 0000 ------------------------------------------------------------------------------------ TMR0-рЕГИСТР ТАЙМЕРА 0 (ОБРАЩЕНИЕ НЕИЗВЕСТНО) ---------------------------------------------------------------------------------------------- PCL-младшие счётчики команд PC ------------------------------------------------------------------------------------------------------------------------- OPTION_REG = 0x1111 1111 |||| |||| |||| |||+- PS0 - ( Биты установки коэффициента деления предделителя |||| |||            Значение    Для TMR0    Для WDT |||| |||            000    1:2  1:1 |||| ||| 001 1:4 1:2 |||| ||| 010 1:8 1:4 |||| |||   011 1:16 1:8 |||| ||| 100 1:32 1:16 |||| ||| 101 1:64   1:32 |||| ||| 110 1:128  1:64 |||| ||| 111 1:256  1:128 ) |||| ||+-- PS1 - ( ) |||| |+--- PS2 - ( ) |||| +---- PSA - ( PSA – Бит выбора включения предделителя. 1 – предделитель |||| включен перед WDT; предделитель включен перед TMR0. ) |||+------ T0SE - ( бит выбора фронта приращения TMR0 при внешнем тактовом сигнале. ||| 1 – приращение по заднему фронту сигнала (с высокого к низкому) ||| на выводе RA4/T0CKI; 0 - приращение по переднему фронту сигнала ||| (с низкого к высокому) на выводе RA4/T0CKI. ) ||+------- T0CS - ( бит выбора тактового сигнала для TMR0. 1 – внешний тактовый сигнал || с вывода RA4/T0CKI; 0 – внутренний тактовый сигнал CLKOUT. ) |+-------- INTEDG - ( бит выбора активного фронта сигнала на входе внешнего прерывания INT. | 1 – прерывание по переднему фронту сигнала; 0 – прерывание по | заднему фронту сигнала. ) +--------- -RBPU - ( бит включения подтягивающих резисторов на входах PORTB. 1 – подтягивающие резисторы отключены; 0 – подтягивающие резисторы включены. ) --------------------------------------------------------------------------------------------------------------------------- STATUS = 0x0001 1xxx |||| |||| |||| |||+- C - ( ) |||| ||+-- DC - ( ) |||| |+--- Z - ( ) |||| +---- -PD - ( ) |||+------ -TO - ( ) ||+------- RP0 - ( ) |+-------- RP1 - ( ) +--------- IRP - ( ) ----------------------------------------------------------------------------------------------------------------------------- PCON = 0x------qq || |+-- -BOR - ( флаг сброса по снижению напряжения питания. 1 – сброса по снижению напряжения | питания не было; 0 – произошел сброс микроконтроллера по снижению напряжения | питания (должен быть установлен программно в «1» для обнаружения последующего сброса BOR). ) +--- -POR - ( флаг сброса по включению питания. 1 – сброса по включению питания не было; 0 – произошел сброс микроконтроллера по включению питания (должен быть установлен программно в «1» для обнаружения последующего сброса POR). ) ---------------------------------------------------------------------------------------------------------------------------- PCLATH = 0x---0 0000 ----------------------------------------------------------------------------------------------------------------------------- INTCON = 0x0000 000x |||| |||| |||| |||+- RBIF - ( ) |||| ||+-- INTF - ( ) |||| |+--- T0IF - ( ) |||| +---- RBIE - ( ) |||+------ INTE - ( ) ||+------- T0IE - ( ) |+-------- PEIE - ( ) +--------- GIE - ( ) -------------------------------------------------------------------------------- PIE1 = 0x0000 0000 |||| |||| |||| |||+- TMR1IE - (Биты управления системой прерывания таймера 1. Флаг прерывания должен очищаться программно. ) |||| ||+-- TMR2IE - (Биты управления системой прерывания таймера 2. Флаг прерывания должен очищаться программно. ) |||| |+--- CCP1IE - ( разрешение прерывания от модуля ССР1 ) |||| +---- CCPIE - (разрешение прерывания от MSSD ) |||+------ TXIE - (разрешение прерывания от USART, когда буферный регистр передачи пуст ) ||+------- RCIE - (разрешение прерывания от USART при приеме данных ) |+-------- ADIE - (разрешение на прерывание после завершения аналого-цифрового преобразования ) +--------- PCPIE - (разрешение прерывания от PSP при выполнении операций чтения/записи ) --------------------------------------------------------------------------------- PIR2 = 0x-r-0 0--0 r-РЕЗЕРВ |||| |||| |||| |||+- CCP2IE - (Биты управления системой прерывания модуля захвата/сравнения ССP2. Флаг прерывания должен очищаться программно. ) |||| +---- BCLIE - (Биты управления системой прерывания устройства, отслеживающего коллизию мультимастерного обмена шины I2C. Флаг прерывания должен очищаться программно. ) |||+------ EEIE - (Биты управлением системой прерывания устройства записи во FLASH или EEPROM – память. Флаг прерывания должен очищаться программно. ) |+-------- r (5) - ( ) ---------------------------------------------------------------------------------- SSPCON2 = 0x0000 0000 |||| |||| |||| |||+- SEN - (SEN - устанавливается для инициирования старт условий шины 1C Входа. В отличие от большинства других периферийных модулей МоДУль MSSP не обеспечивает автоматического управления битами Регистра TRIS. Таким образом, если не была выполнена предвари-Тельная установка битов регистра TRIS, модуль интерфейса 12С не Ск,оясет нормально функционировать. ) |||| ||+-- RSEN - (устанавливается для инициирования повторных старт-условий шины ГС ) |||| |+--- PEN - (обнуляется для инициирования стоп-условия шины ГС ) |||| +---- RCEN - (устанавливается для разрешения режима приема модуля I С ) |||+------ ACKEN - (инициирует последовательность подтверждения шины I С ) ||+------- ACKDT - (устанавливается для посылки подтверждения при приеме байта ) |+-------- ACKSTAT - (устанавливается при получении подтверждения приема ог slave-устройства шины ГС ) +--------- GCEN - (устанавливается для разрешения прерываний при приеме адреса общего вызова (0x0000) ) ------------------------------------------------------------------------------------ PR2 = 0x1111 1111 - Регистр периода таймера ------------------------------------------------------------------------------------- SSPADD = 0x0000 0000 - Регистр генератора скорости обмена ------------------------------------------------------------------------------------- SSPSTAT = 0x0000 0000 |||| |||| |||| |||+- BF - (флаг"буфер полон"; устанавливается при заполнении буфера во время приема или передачи данных ) |||| ||+-- UA - (устанавливается в том случае, когда необходимо модифицировать адрес (содержимое регистра SSPADD, режим 1!С) ) |||| |+--- R/-W - (бит типа операции в режиме 1гС: 0 - запись; 1 - чтение ) |||| +---- s - (флаг обнаружения стартового бита (в режиме 1гС) ) |||+------ P - (флаг обнаружения стопового бита (в режиме 1гС) ) ||+------- D/-A - (используется в режиме 1гС: 1 - последним был передан байт данных; 0 - байт адреса ) |+-------- CKE - (1 - передача данных (ТХ) при переходе от активного состояния к пассивному, 0 - наоборот Отсутствует в BSSP ) +--------- SMP - (стробирование данных осуществляется в конце битового интервала; 0 - стробирование данных осуществляется в середине битового интервала Отсутствует в BSSP ) ------------------------------------------------------------------------------------ TXSTA = 0x0000 -010 |||| |||| |||| |||+- TX9D - ( девятый бит передаваемых данных ) |||| ||+-- TRMT - (флаг "передающий регистр пуст" (передача слова завершена) ) |||| |+--- BRGH - (бит выбора скорости передачи: 1 - высокая; 0 - низкая _ ) |||| +---- ---- - ( ) |||+------ SYNC - (бит выбора режима работы USART. 1 - синхронный режим; 0 - асинхронный ) ||+------- TXEN - (бит разрешения передачи данных ) |+-------- TX9 - (устанавливается для разрешения передачи данных в 9-разрядном формате ) +--------- CSRC - (бит выбора источника тактовых импульсов в синхронном режиме 1 - внутренний источник; 0 - внешний генератор ) -------------------------------------------------------------------------------------- SPBRG = 0x0000 0000 //Регистр гениратора скорости USART --------------------------------------------------------------------------------------- ADRESL = 0xxxxx xxxx //Младший байт результат преобразование АЦП -------------------------------------------------------------------------------------- ADCON1 = 0x0--- 0000 |||| |||| |||| |||+- PCFG0 - (биты конфигурирования выводов микроконтроллера ) |||| ||+-- PCFG1 - ( ) |||| |+--- PCFG2 - ( ) |||| +---- PCFG3 - ( ) +--------- ADFM - (1 - возврат результата преобразования в формате с правым выравниванием; 0 - возврат в формате елевым выравниванием ) -----------------------------------------********------------------------------------- - ----------------------------------------*БАНК 2*------------------------------------- -----------------------------------------********--------------------------------------- INDF-оБРАЩЕНИЕ К РЕГИСТРУ ЗАПИСАННОГО В БАНКИ =0x0000 0000 ------------------------------------------------------------------------------------- TMR0-рЕГИСТР ТАЙМЕРА 0 (ОБРАЩЕНИЕ НЕИЗВЕСТНО) -------------------------------------------------------------------------------------- PCL-младшие счётчики команд PC --------------------------------------------------------------------------------------- STATUS = 0x0001 1xxx |||| |||| |||| |||+- C - ( ) |||| ||+-- DC - ( ) |||| |+--- Z - ( ) |||| +---- -PD - ( ) |||+------ -TO - ( ) ||+------- RP0 - ( ) |+-------- RP1 - ( ) +--------- IRP - ( ) -------------------------------------------------------------------------------------- PCLATH = 0x---0 0000 --------------------------------------------------------------------------------------- INTCON = 0x0000 000x |||| |||| |||| |||+- RBIF - ( ) |||| ||+-- INTF - ( ) |||| |+--- T0IF - ( ) |||| +---- RBIE - ( ) |||+------ INTE - ( ) ||+------- T0IE - ( ) |+-------- PEIE - ( ) +--------- GIE - ( ) ------------------------------------------------------------------------------------ EECON1 = x--- x000 |||| |||| |||| |||+- RD - ( бит управления чтением 1 = инициирует чтение EEPROM (Чтение занимает один цикл. RD сбрасывается аппаратно. Бит RD можно только установить программно, но не сбросить. Бит RD нельзя установить, когда EEPGD=1 (работа с памятью программ) или CFGS=1 (работа с конфигурационными регистрами)) 0 = не инициирует чтение EEPROM.) |||| ||+-- WR - (бит управления записью 1 = инициирует цикл стирания/записи для памяти данных EEPROM, либо цикл стирания или цикл записи для памяти программ (самотактируемая операция, бит сбрасывается аппаратно, как только запись завершится. Бит WR можно только установить программно, но не сбросить.)0 = цикл записи в EEPROM завершён ) |||| |+--- WREN - (бит разрешения записи Flash-памяти программ или EEPROM-памяти данных 1 = разрешает циклы записи во Flash-память программ или EEPROM-память данных 0 = запрещает циклы записи во Flash-память программ или EEPROM-память данных ) |||| | --- +--------- EEPGD - ( бит выбора Flash-памяти программ или EEPROM-памяти данных 1 = доступ будет осуществляться к памяти программ 0 = доступ будет осуществляться к памяти данных ) ------------------------------------------------------------------------------------- EECON2 0x---- ---- // Не реализован ( Регистр управления 2 ) ------------------------------------------------------------------------------------------------------------------------ ************************************************************************************************************************ ************************************************************************************************************************* T10SLEN-бит разрешения использования встооенного генератора схемы THRl --- - ---с-1-1-------- ------------------------------------------------------------------------------------------------ T1SYNCH - бит разрешения синхронизации внешних тактовых импульсов внутренней чааотой командных циклов ------------------------------------------------------------------------------------------------------ Табл3. режим частота OSC1 OSC2 Керамический резонатор XT 455кГц 68-100пф 68-100пф 2мГц 15-68пф 15-68пф 4мГц 15-68пф 15-68пф HS 8мГц 10-68пф 10-68пф 16мГц 10-22пф 10-22пф Кварцевый резонатор LP 32кГц 33пф 33пф 200кГц 15пф 15пф XT 200кГц 47-68пф 47-68пф 1мГц 15пф 15пф 4мГц 15пф 15пф HS 4мГц 15пф 15пф 8мГц 15-33пф 15-33пф 20МГц 15-33пф 15-33пф ---------------------------------------------------------------------------------------------------------------------------