У вас вопросы?
У нас ответы:) SamZan.net

Лабораторна робота 5

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 3.2.2025

Лабораторна робота № 5.

Переривання. програмні автомати

Мета роботи: знайомство з організацією системи переривань, програмною реалізацією автоматів за допомогою мікроконтролерів.

Завдання:

1 . Налаштуйте Таймер 0 на синхронізацію із заданою частотою FCLK0 , формованої з тактової частоти мікроконтролера FOSC . Обробник переривання по переповнення Таймера 0 повинен формувати два періодичних сигналу з шпаруватістю S = 2 і заданими періодами Т (див. таблицю 5).

2 . Налаштуйте Таймер 1 на формування переривання від вихідного порівняння і синхронізацію із заданою частотою FCLK1 , формованої з тактової частоти мікроконтролера FOSC . Оброблювач переривання від вихідного порівняння повинен забезпечити формування на виході ОС1 сигналу з шпаруватістю S = 4 і періодом Т (див. таблицю 5).

Таблица 5. Исходные данные для заданий 1 и 2

Варіиант

Дані для завдання 1

Дані для завдання 2

FCLK0

T для PB.3

T для PB.2

FCLK1

T для OC1

1

FOSC

FOSC/256

FOSC/2560

FOSC/64

FOSC/6400

2

FOSC/8

FOSC/16384

FOSC/2048

FOSC/8

FOSC/20000

3

FOSC/64

FOSC/16384

FOSC/32768

FOSC

FOSC/8000

4

FOSC/256

FOSC/262144

FOSC/65536

FOSC/8

FOSC/8000

5

FOSC/1024

FOSC/262144

FOSC/1048576

FOSC/64

FOSC/25600

3. Налаштуйте Таймер 1 на роботу в режимі 10-розрядного ШІМ з частотою синхронізації рівній тактовою частотою мікроконтролера FOSC. Оброблювач переривання від вихідного порівняння повинен забезпечувати лінійну зміну скважности ШІМ-сигналу.

4. Розробіть програму, яка за допомогою періодичного переривання реалізує динамічну індикацію для схеми на малюнку 5 - відображає в 16-ричном вигляді значення 8-розрядної змінної.

Виконання роботи

1) Таймер 0

Лістинг Результат

.include "..\Appnotes\2313def.inc"

.EQU NTau = 122              

.EQU NRem = 18                

.EQU A_LINE = 0              

.EQU B_LINE = 1              

.DEF Counter = r17            

.DSEG

.ORG 0xc0

stack: .BYTE 0x10             

.EQU sp_ini = stack+0x0f

.CSEG

.ORG 0x00

       rjmp  RESET           

.ORG 0x06

       rjmp  OVR0_isr        

RESET:

      ldi r16,sp_ini         

      out SPL,r16

      sbi PORTB,A_LINE      

      ldi r16,0x07          

      out DDRB,r16

      clr r16               

      out TCNT0,r16

      ldi r16,0x01           

      out TCCR0,r16

      ldi r16,0x02        

      out TIMSK,r16

      clr Counter            

      sei                 

   rjmp PC                   

OVR0_isr:

      in r16,SREG     

      push r16

      inc Counter     

      cpi Counter,NTau

    brlo OVR0_end     

    brne OVR0_0           

    rjmp OVR0_end

 OVR0_0:

ldi r16,256-NRem

      out TCNT0,r16

      sbis PORTB,A_LINE

    rjmp OVR0_m1

      cbi PORTB,A_LINE

      sbi PORTB,B_LINE

    rjmp OVR0_end

 OVR0_m1:

ldi r16,256-NRem/10

         out TCNT0,r16

      sbis PORTB,B_LINE             

      cbi PORTB,B_LINE

      sbi PORTB,A_LINE

    rjmp OVR0_end

 OVR0_end:

      pop r16         

      out SREG,r16

reti  

2) Таймер 1

Лістинг

.include "..\Appnotes\2313def.inc"

.EQU NTau = 122                            

.EQU A_LINE = 0                           

.DEF Counter = r17            

.DSEG

.ORG 0xc0

stack: .BYTE 0x10             

.EQU sp_ini = stack+0x0f

.CSEG Результат

.ORG 0x00

       rjmp  RESET           

.ORG 0x06

       rjmp  OVR0_isr        

RESET:

      ldi r16,sp_ini         

      out SPL,r16

      sbi PORTD,A_LINE      

      ldi r16,0x07          

      out DDRD,r16

      clr r16               

      out TCNT1L,r16

      ldi r16,0x03          

      out TCCR1B,r16

      ldi r16,0xC0        

      out TIMSK,r16

 ser r16

 out ocr1al,r16

 ldi r16,4

 out ocr1al,r16

      clr Counter            

      sei                 

   rjmp PC                   

OVR0_isr:

      in r16,SREG     

      push r16

      inc Counter     

      cpi Counter,NTau

    brlo OVR0_end     

    brne OVR0_0       

     ldi r16,0

 out TCNT1L,r17

 ldi r16,25

      out TCNT1H,r16    

    rjmp OVR0_end

 OVR0_0:

      cbi PORTD,A_LINE

    rjmp OVR0_end

 OVR0_end:

      pop r16         

      out SREG,r16

reti

3) Таймер 1 на роботу в режимі 10-розрядного ШИМ

Лістинг

.include "..\Appnotes\2313def.inc"

.EQU NTau = 122                            

.EQU A_LINE = 0                           

.DEF Counter = r17            

.DSEG

.ORG 0xc0

stack: .BYTE 0x10             

.EQU sp_ini = stack+0x0f

.CSEG

.ORG 0x00

       rjmp  RESET           

.ORG 0x06

       rjmp  OVR0_isr         Результат

RESET:

      ldi r16,sp_ini         

      out SPL,r16

      sbi PORTD,A_LINE      

      ldi r16,0x07          

      out DDRD,r16

      clr r16               

      out TCNT1L,r16

 ldi r16,0x03          

      out TCCR1A,r16

      ldi r16,0x01          

      out TCCR1B,r16

      ldi r16,0xC0        

      out TIMSK,r16

 ser r16

 out ocr1al,r16

 ldi r16,4

 out ocr1al,r16

      clr Counter            

      sei                 

   rjmp PC                   

OVR0_isr:

      in r16,SREG     

      push r16

      inc Counter     

      cpi Counter,NTau

    brlo OVR0_end     

    brne OVR0_0       

     ldi r16,0

 out TCNT1L,r17

 ldi r16,25

      out TCNT1H,r16    

    rjmp OVR0_end

 OVR0_0:

      cbi PORTD,A_LINE

    rjmp OVR0_end

 OVR0_end:

      pop r16         

      out SREG,r16

reti

4) Ддинамічна індикація

Лістинг Результат

.include "..\Appnotes\2313def.inc"

.EQU mosi_bit = 0x4  

.EQU miso_bit = 0x3

.EQU sck_bit  = 0x5  

.EQU ss_bit   = 0x6                          

.DSEG

.ORG 0xc0

stack: .BYTE 0x10             

.EQU sp_ini = stack+0x0f

.CSEG

.ORG 0x00

       rjmp  RESET           

.ORG 0x06

       rjmp  OVR0_isr        

RESET:

ldi r16,(EXP2(mosi_bit)|EXP2(sck_bit)|

EXP2(ss_bit)|EXP2(miso_bit))

       out DDRD,r16        

       sbi PORTD,ss_bit

       sbi PORTD,miso_bit

       cbi PORTD,sck_bit

       cbi PORTD,mosi_bit

ldi ZH,HIGH(time*2)

ldi ZL,LOW(time*2)

      ldi r16,sp_ini         

      out SPL,r16      

      ldi r16,0x07          

      out DDRB,r16

      clr r16               

      out TCNT0,r16

      ldi r16,0x01           

      out TCCR0,r16

      ldi r16,0x02        

      out TIMSK,r16

      clr Counter            

      sei                 

   rjmp PC                   

OVR0_isr:

      lpm

 adiw ZL,1

 ldi r16,0x80         

       clr r17              

 spi_m1:

       cbi PORTD,mosi_bit   

       sbrc r0,7           

         sbi PORTD,mosi_bit

       sbi PORTD,sck_bit  

       lsl r0             

       sbic PIND,miso_bit   

         or r17,r16

       cbi PORTD,sck_bit  

       lsr r16              

     brne spi_m1

reti  

time: .DB 0xFC,0x60,0xDA,0xF2

Висновок: Я ознайомився з організацією системи переривань, програмною реалізацією автоматів за допомогою мікроконтролерів.




1. Графика. Часть II.html
2. Дождь. Ты едешь в электричке и смотришь в окно
3. Пояснительная записка В условиях перехода России к рыночной экономике значительная часть населения все бо
4. Контрольная работа- Нормирование точности червячной передачи
5. Облік витрат на оплату праці
6. Лекция 16 Маркетинговый подход к управлению деятельностью таможенных органов Вводятся понятия таможен
7.  Статистическое изучение производственных показателей организации на основе метода группировок на пример
8. Барселона
9. Реферат на тему- Соціологічна думка в Україні до ХІХ століття Підготував- Студент 45п
10. PRтехнологии в бизнесе их роль и значение