Таймер/счетчик2 в ШИМ режиме - Timer/Counter 2 in PWM mode

При установленном ШИМ режиме таймер/счетчик и регистр сравнения выхода OCR2 формируют 8-разрядный, без ложных выбросов и с правильной фазой ШИМ сигнал с выходом через PD7(OC2) выводы. Таймер/счетчик2 работает как реверсивный счетчик, считающий от $00 до $FF, после чего он считает в обратную сторону до нуля и только после этого начинает новый цикл. Когда состояние счетчика совпадает с содержимым регистра сравнения выхода выводы PD7(OC2) устанавливаются или очищаются, в соответствии с установленными, в регистрах управления таймерами/счетчиками TCCR2, битами COM21/COM20. См. табл. 2.15.

Таблица 2.15. Выбор режима сравнения в ШИМ режиме

COM21 COM20 Эффект, оказываемый на вывод Compare/PWM
    Не подсоединен
    Не подсоединен
    Очистка при совпадении, счет по нарастанию. Установка при совпадении, счет по убыванию (неинвертирующий ШИМ).
    Очистка при совпадении, счет по убыванию. Установка при совпадении, счет по нарастанию (инвертирующий ШИМ).

В ШИМ режиме при записи содержимое регистра сравнения выхода пересылается на временное хранение. Содержимое фиксируется при достижении таймером/счетчиком состояния $FF. Такой прием предохраняет от появления ШИМ импульсов увеличенной ширины (ложных выбросов) в случае несинхронной записи OCR2. Пример см. на рис. 2.2.

 
 

Рис. 2.2. Эффект несинхронной фиксации OCR

В промежуток времени между операциями записи и фиксации считывание из OCR2 приведет к считыванию из места временного хранения. Это означает, что чаще всего при чтении значения уставки считывание будет производиться из OCR2.

При состоянии регистра OCR $00 или $FF выход ШИМ будет удерживаться на низком или высоком уровне, в зависимости от установок COM21/COM20. См. табл. 2.16.

Таблица 2.16.Состояние ШИМ выходов при OСR2 = $00 или $FF

COM21 COM20 OCR2 Выход PWMn
    $00 L – низкий уровень
    $FF H – высокий уровень
    $00 H – высокий уровень
    $FF L – низкий уровень

В ШИМ режиме флаг переполнения таймера TOV2 устанавливается при смене направления счета при $00. Прерывания по переполнению таймера 2 работает так же, как и в нормальном режиме таймеров/счетчиков, т.е. они срабатывают когда TOV2 установлены, и разрешены прерывания по переполнению таймера и глобальному прерыванию. Это относится также к флагам сравнения выхода таймеров и прерываниям. Частота ШИМ будет соответствовать тактовой частоте таймера деленной на 510.

Как уже указывалось выше, таймер/счетчик2 может работать в асинхронном режиме. Тогда он тактируется сигналом вывода 28 (T0SC1). При этом выводы РС6 и РС7, связанные с генератором, не могут использоваться как общие выводы входа/выхода. В лабораторном комплексе асинхронный режим работы таймер/счетчика2 не предусмотрен.

ldi r17,$07;Для счетчиков

out tccr0,r17

ldi r17,$07

out tccr1b,r17

ldi r17,$00

sts des,r17

ldi r17,$00

sts ed,r17

Адрес Обознач. Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
$3F ($5F) SREG I T H S V N Z C
$3E ($5E) SPH SP9 SP8
$3D ($5D) SPL SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0
$3C ($5C) Reserved  
$3B ($5B) GIMSK INT1 INT0
$3A ($5A) GIFR INTF1 INTF0            
$39 ($59) TIMSK OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 TOIE0
$38 ($58) TIFR OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 TOV0
$37 ($57) Reserved  
$36 ($56) Reserved  
$35 ($55) MCUCR SE SM1 SM0 ISC11 ISC10 ISC01 ISC00
$34 ($54) MCUSR EXTRF PORF
$33 ($53) TCCR0 CS02 CS01 CS00
$32 ($52) TCNT0 Таймер/счетчик0 (8-разрядный)
$31 ($51) Reserved  
$30 ($50) Reserved  
$2F ($4F) TCCR1A COM1A1 COM1A0 COM1B1 COM1B0 PWM11 PWM10
$2E ($4E) TCCR1B ICNC1 ICES1 CTC1 CS12 CS11 CS10
$2D ($4D) TCNT1H Старший байт регистра счетчика Таймера/ счетчика1
$2С ($4С) TCNT1L Младший байт регистра счетчика Таймера/ счетчика1
$2В ($4В) OCR1AH Старший байт регистра сравнения A выхода Таймера/счетчика1
$2A ($4A) OCR1AL Младший байт регистра сравнения A выхода Таймера/счетчика1
$29 ($49) OCR1BH Старший байт регистра сравнения B выхода Таймера/счетчика1
$28 ($48) OCR1BL Младший байт регистра сравнения B выхода Таймера/счетчика1
$27 ($47) ICR1H Старший байт регистра захвата входа Таймера/счетчика1
$26 ($46) ICR1L Младший байт регистра захвата входа Таймера/счетчика1
$25 ($45) TCCR2 PWM2 COM21 COM20 CTC2 CS22 CS21 CS20
$24 ($44) TCNT2 Таймер/счетчик2 (8-разрядный)
$23 ($43) OCR2 Регистр сравнения выхода Таймера/счетчика2
$22 ($42) ASSR AS2 TCN2UB OCR2UB TCR2UB
$21 ($41) WDTCR WDTOE WDE WDP2 WDP1 WDP0
$20 ($40) Reserved  
$1F ($3F) EEARH   EEAR9
$1E ($3E) EEARL EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0
$1D ($3D) EEDR Регистр данных EEPROM
$1C ($3C) EECR EERIE EEMWE EEWE EERE
$1B ($3B) PORTA PORTA7 PORTA6 PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA0
$1A ($3A) DDRA DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0
$19 ($39) PINA PINA7 PINA6 PINA5 PINA4 PINA3 PINA2 PINA1 PINA0
$18 ($38) PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
$17 ($37) DDRB DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0
$16 ($36) PINB PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0
$15 ($35) PORTC PORTC7 PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0
$14 ($34) DDRC DDC7 DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0
$13 ($33) PINC PINC7 PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0
$12 ($32) PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0
$11 ($31) DDRD DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0
$10 ($30) PIND PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0
$0F ($2F) SPDR Регистр данных SPI
$0E ($2E) SPSR SPIF WCOL
$0D ($2D) SPCR SPIE SPE DORD MSTR CROL CPHA SPR1 SPR0
$0C ($2C) UDR Регистр данных UART
$0B ($2B) USR RXC TXC UDRE FE OR
$0A ($2A) UCR RXCIE TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8
$09 ($29) UBRR Регистр управления скоростью UART
$08 ($28) ACSR ACD ACO ACI ACIE ACIC ACIS1 ACIS0
$07 ($27) ADMUX MUX2 MUX1 MUX0
$06 ($26) ADCSR ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0
$05 ($25) ADCH ADC9 ADC8
$04 ($24) ADCL ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0
$03 ($20) Reserved  
$02 ($22) Reserved  
$01 ($21) Reserved  
$00 ($20) Reserved  
                     

Упрощенная схема блока управления представлена на рисунке 1.3. В схеме в качестве органов управления использовано пять кнопок (SB1 – SB6) и пять тумблеров (SA1 – SÀ5).

Кнопки SB1…SB5 и тумблеры SA1…SA5 подключены однотипно. При не нажатой кнопке и отключенном тумблере (нижнее положение тумблера) на соответствующие выводы микроконтроллера DD1 подаётся уровень логического нуля, а при нажатой кнопке и включенном тумблере – уровень логической единицы. В принципе неподключенный вывод микроконтроллера, используемый для ввода сигнала, воспринимается как вход, на который подан высокий уровень сигнала, соответствующий логической единице. Однако практический опыт показал, что при этом выше влияние помех и сильнее проявляется дребезг контактов. Для борьбы с влиянием дребезга контактов дополнительно на входах запросов внешнего прерывания INT0, INT1 и на входах таймеров /счетчиков T0 и T1 установлены RC цепочки на резисторах R5…R8 и конденсаторах C3…C6.

Сброс микроконтроллера осуществляется внешним сигналом. В блоке управления рабочего места эту роль выполняет кнопка SB6. При её нажатии сигнал низкого уровня подаётся на вывод RESET. При работе с комплексом для получения надежного сброса избегайте слишком кратковременных нажатий кнопки SB6 «Сброс». Эту кнопку следует удерживать в нажатом состоянии 1…3с.

При включении питания или при нажатии кнопки «Сброс» формируется прерывание по вектору $000 с наивысшим приоритетом. По этому адресу должна располагаться команда перехода rjmp к началу программы пользователя. При любом сбое в работе программы микроконтроллера прибегайте к услугам кнопки «Сброс».

Порт А микроконтроллера кроме функций восьмиразрядного двунаправленного порта ввода/вывода может выполнять альтернативную (дополнительную) к основной функции функцию аналого-цифрового преобразователя (АЦП). В БУ вывод 40 микроконтроллера, соответствующий биту PA0 порта А, используется для ввода аналогового сигнала. Аналоговый сигнал с уровнем напряжения 0…+5В снимается с потенциометра (потенциометрического резистора) R3. Гнезда XS1 и XS2 служат для подключения измерительного прибора для контроля напряжения, подаваемого на вход АЦП. Резистор R4 и стабилитрон VD3 служат для защиты входа АЦП от превышения допустимого уровня напряжения на входе АЦП и от переполюсовки при несанкционированной подаче внешнего напряжения на гнезда XS1 – XS2.

Гнезда XS3 и XS4 служат для наблюдения по осциллографу сигналов RxD и TxD при работе последовательного порта UART. Резисторы R1,R2 и стабилитроны VD1, VD2 служат для защиты входов PD0(RxD) и PD1(TxD) от несанкционированной подачи напряжения на рассматриваемые гнезда.

Через вилку разъема XР5 осуществляется связь БС с ЭВМ. Через эту вилку связываются с портом COM2 ПЭВМ последовательные порты микроконтроллера SPI и UART, а также подается напряжение питания БУ.

Резонатор ZQ1 и конденсаторы C7,C8 служат для работы внутреннего генератора тактовой частоты. В БУ использован резонатор на 8 МГц. Конденсаторы C1,C2,C9,C10,C11,C12 – фильтрующие.

В качестве выходных элементов используются три светодиода (зелёный, желтый, красный) VD4…VD6, звукоизлучатель («пищалка») HA1 и два семисегментных индикатора HG1 и HG2.

Порты A,B,C и D обеспечивают при выдаче сигнала логической единицы (при выходном напряжении высокого уровня) вытекающий ток не более 3мА. Этого явно не хватает для зажигания указанных светодиодов и сегментов семисегментных индикаторов. Для возможности их зажигания установлены резисторные сборки DR1 и DR2. Рассмотрим работу светодиода VD4. При выдаче на вывод 18 микроконтроллера логического нуля светодиод VD4 шунтируется открывшимся транзистором канала PD4 порта D и потому погашен. Втекающий ток в этот транзистор ограничивается левым резистором сборки DR1. При выдаче на вывод 18 микроконтроллера логической единицы транзистор рассматриваемого канала порта закрывается и через светодиод VD4 протекает ток от источника питания +5В, ограничиваемый параллельно включенными внутренним резистором порта и левым резистором сборки DR1.

В БУ используются семисегментные индикаторы HG1 и HG2 с общим катодом. Для замыкания катодов индикаторов на общий провод служат транзисторы VT1 и VT2. Они управляются соответственно битами PB2 и PB3 порта B. Резисторы R10 и R11 обеспечивают ограничение базовых токов транзисторов соответственно VT1 и VT2. Транзисторы VT1 и VT2 при соответствующей программе обеспечивают динамическую индикацию информации на семисегментных индикаторах, т.е. вывод различной информации на оба индикатора. В этом случае поочередно зажигается то первый, то второй индикатор. При достаточно большой частоте переключений создается иллюзия одновременного непрерывного свечения индикаторов. Для зажигания информации на первом индикаторе необходимо установить в «1» бит PB2 и записать в порт C код выводимого первого символа. Затем, через некоторую программно реализуемую задержку времени, нужно сбросить бит РB2, установить в «1» бит РB3 и подать на порт C код второго выводимого символа. Через задержку времени нужно сбросить бит РB3,установить в «1» бит РB2 и так далее.

Ток звукоизлучателя HA1 ограничивается резистором R12.

При нажатии на кнопку «Сброс» БУ все выводы портов находятся в третьем состоянии. Светодиоды VD4…VD6 должны гореть, а сегменты все погашены, так как транзисторы VT1 и VT2 заперты.

Адресация входных и выходных сигналов блока управления очевидна из рис. 1.4. Например, светодиод VD4 (зеленый) имеет адрес РORTD,4, а сегмент «d» индикаторов HG1 и HG2 – PORTC,3. На лицевой панели пульта управления (рис. 1.4) рядом с каждым элементом указана его адресация. В скобках указаны позиционные обозначения элементов в принципиальной схеме блока управления (рис. 1.4). У тумблеров SA4, SA5 и кнопок SB4, SB5 в скобках дополнительно указано функциональное обозначение входов микроконтроллера, на которые воздействуют указанные тумблеры и кнопки.

На плате индикации размещается жидкокристаллический индикатор (ЖКИ), переключатель режима работы и светодиод.

ЖКИ представляет собой многострочный текстовый дисплей. Он имеет четыре строки по 16 символов, встроенный знакогенератор и светодиодную подсветку. Для управления ЖКИ и клавиатурой рабочего места на плате индикации установлен микроконтроллер АТ89С51 со специально разработанной программой.

Студент на рабочем месте набирает программу как при обычной работе на ПЭВМ типа IBM, но контролирует индикацию не по монитору, а по ЖКИ. На мониторе ПЭВМ в соответствующем окне высвечивается информация точно в таком же виде, как на ЖКИ.


 
 


Рис. 1.4. Упрощенный вид блока управления

На рис. 1.4. представлен вид общий БУ. На лицевую панель в верхней части БУ выведены аппараты платы управления, в нижней части – платы индикации.

Подключение кабеля рабочего места к БУ осуществляется через разъём 1. Вращением движка потенциометра 4 обеспечивается изменение значения напряжения Uвх на входе аналогового преобразователя.

Пьезоэлектрический звукоизлучатель 5, три светодиода 6 и два семисегментных индикатора 7, как уже упоминалось выше, обеспечивают отображение выходных сигналов микроконтроллера. На рис. 1.4. на одном из индикаторов указаны обозначения сегментов, соответствующие принятым их обозначениям в принципиальной электрической схеме.

Микроконтроллер 3 установлен на плате в 40 – контактной панельке. Он в принципе может при необходимости извлекаться из БУ, но обычное его место – на плате. Программирование его осуществляется непосредственно на месте его установки.

Пять кнопок 8 и пять тумблеров 9 используются в качестве источников входных сигналов. Кнопка 2 «Сброс» обеспечивает аппаратный сброс микроконтроллера.

В нижней части БУ располагается ЖКИ 11, переключатель режима работы 12 и светодиод 10 индикации работы ЖКИ. Переключатель режима работы имеет два положения. Первое положение «Набор программы» обеспечивает связь ЖКИ с ПЭВМ. Во втором режиме «Управление объектом» ЖКИ отключается от последовательного порта ПЭВМ, а к последовательному порту ПЭВМ подключается последовательный порт UART изучаемого микроконтроллера, для управления виртуальным объектом автоматизации, воспроизводимом на экране монитора ПЭВМ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: