Будь умным!


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

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

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


Лабораторна робота № 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. 40 уе День Программа мероприятий 1 день
2. Периодизация и классификация искусства XX века
3. Дослідження управління якістю підготовки фахівців у вищих навчальних заклада
4. электрический Пекарь 1912 и это получает его власть{мощь} от экрана кремниевых солнечных ячеек на его крыше
5. Обломов длится 12 лет
6. Человек в футляре Крыжовник О любви.
7.  When Betle die in 2001 Which TV is wste of time
8. Искусство кино 1994 год 1 Перевод с английского О
9. тематика минералов
10. культ кукурузы д отток сельского населения в города 4
11. Вопросы к экзамену по анатомии и физиологии человека
12. Личность как продукт общественно-исторического развития
13. Работа полупроводниковых приборов основана на использовании электрических свойств металлов называе
14. Готовая продукция
15. Вторая навигация
16. это юридически установленные государством права и обязанности граждан; Административное выдворение на
17. либо социальной группе
18. Лабораторная работа 3 Система охлажденияЦель работы-Изучение де
19. Тема 2 Приемы редактирования письменных текстов при подготовке устных текстов для радио и телеэфира 2 часа
20. а ds Chlor ~ хлор ds Kohlendioxid ~ диоксид углерода двуокись углерода der Wsserstoff ~ водород der Suerstoff ~ кислород der Sti