Будь умным!


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

тема команд VR- команди маніпуляцій з битами

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


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

Система команд AVR: команди маніпуляцій з битами.

Модульне програмування. Підпрограми

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

Завдання:

1 . Поспостерігайте роботу програми з прикладу 8 . Яку функцію виконує оператор з SPL , r16 ?

2 . Напишіть підпрограму , яка встановлює прапор Т , якщо виконується умова ( r0.0 ! = R1.7 ) && ( r0.3 == R1.4 ) && R1.2 , і скидає його в іншому випадку .

3 . Напишіть підпрограму , яка виробляє множення двох чисел , що лежать в діапазоні від 0 до 3 , використовуючи таблицю творів.

4 . Напишіть програму , яка налаштовує порт PB.1 як вихід.

5 . Напишіть програму , яка налаштовує Таймер 0 на синхронізацію від тактового сигналу мікроконтролера з коефіцієнтом розподілу 8 .

6 . Намалюйте тимчасову діаграму роботи драйвера 7 - сегментного індикатора D1 на малюнку 5 . Згідно намальованою тимчасовій діаграмі розробіть підпрограму , яка виводить 1 байт даних в драйвер D1.

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

1)

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

.INCLUDE "..\appnotes\2313def.inc"  

.DSEG

.ORG 0x60

InArr: .BYTE 10

OutArr: .BYTE 10       

.CSEG  

rjmp Reset

Reset:

ldi r16,0x90

out SPL,r16 ;записывает данные из r16 в SPL

ldi XL,LOW(InArr)

ldi XH,HIGH(InArr)

ldi YL,LOW(OutArr)

ldi YH,HIGH(OutArr)

ldi r17,10

  loop:

ld r16,X+   

rcall ascii_to_bin

st Y+,r16   

dec r17

cpi r17,0

    brne loop  

rjmp PC

ascii_to_bin:

cpi  r16,0x39

brcs atb_m1

subi r16,0x30

rjmp atb_end

 atb_m1:

subi r16,0x37

 atb_end:

ret

2)

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

.INCLUDE "..\appnotes\2313def.inc"        

.CSEG   

rjmp Reset

Reset:

ldi r20,17

ldi r21,19

mov r0,r17

mov r1,r18

add r0,r1

sbrc r0,1

sbrs r0,1

sbrs r1,7

sbrc r1,7

sbrc r0,3

sbrs r0,3

sbrc r1,4

sbrs r1,4

sbrc r1,2

sbrs r1,2

clt

set

rjmp PC

3)

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

.INCLUDE "..\appnotes\2313def.inc"

.CSEG  

rjmp Reset

Reset:

ldi r17,2

ldi r18,3

ldi ZH,HIGH(num_of_ones*2)

ldi ZL,LOW(num_of_ones*2)

    clr r2

    rjmp tt

lpm   

rjmp PC

tt:

ldi r20,0x0F

and r17,r20

and r18,r20

mov r21,r17

mov r22,r18

ldi r20,0xF0

and r17,r20

and r18,r20

add r21,r17

add r22,r18

add r21,r22

add ZL,r21

add ZL,r2

lpm

ret

num_of_ones:

.DB 1, 2, 3, 2, 4, 6, 3, 6, 9

4)

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

.INCLUDE "..\appnotes\2313def.inc"  

.CSEG  

rjmp Reset

Reset:

sbi PORTB,0x01

ldi r16,0x01          

   out DDRB,r16

rjmp PC

5)

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

.INCLUDE "..\appnotes\2313def.inc"  

.CSEG  

rjmp Reset

Reset:

sbi PORTB,0x01

ldi r16,0x01          

   out DDRB,r16

ldi r16,0x02        

   out TCCR0,r16

rjmp PC

6)

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

.INCLUDE "..\appnotes\2313def.inc"

.EQU mosi_bit = 0x4  

.EQU miso_bit = 0x3  

.EQU sck_bit  = 0x5  

.EQU ss_bit   = 0x6  

Rjmp reset

reset:

rjmp spi_ini

i2:

rjmp Ind_select1

i3:

ldi r18,0xFC

rjmp spi_emulation1

i4:

rjmp Ind_unselect1

i5:

rjmp Ind_select2

i6:

ldi r18,0xF2

rjmp spi_emulation2

i7:

rjmp Ind_unselect2

i8:

rjmp PC

spi_ini:

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

       out DDRB,r16     

       sbi PORTB,ss_bit

       sbi PORTB,mosi_bit

       cbi PORTB,sck_bit

       cbi PORTB,mosi_bit

rjmp i2

spi_emulation1:

       ldi r16,0x80         

       clr r17            

  spi_m1:

       cbi PORTB,mosi_bit   

       sbrc r18,7           

         sbi PORTB,mosi_bit

       sbi PORTB,sck_bit    

       lsl r18              

       sbic PINB,miso_bit  

         or r17,r16

       cbi PORTB,sck_bit    

       lsr r16              

     brne spi_m1

rjmp i4

spi_emulation2:

       ldi r16,0x80         

       clr r17              

  spi_m11:

       cbi PORTB,mosi_bit   

       sbrc r18,7           

         sbi PORTB,mosi_bit

       sbi PORTB,sck_bit    

       lsl r18              

       sbic PINB,miso_bit   

         or r17,r16

       cbi PORTB,sck_bit    

       lsr r16              

     brne spi_m11

rjmp i7

Ind_select1:

       cbi PORTB,ss_bit

rjmp i3

Ind_select2:

       cbi PORTB,ss_bit

rjmp i6

Ind_unselect1:

       sbi PORTB,ss_bit

rjmp i5

Ind_unselect2:

       sbi PORTB,ss_bit

rjmp i8

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




1. Психологический анализ привычек людей
2. Личные неимущественные права
3. Реферат Жорж Санд
4. 1. Елементи трудової діяльності в ранньому дитинстві 6 1
5. Как я изучаю языки Като Ломб Как я изучаю языки Наталья Федченко fedchenkon@mil
6. тарок Глядя на этих людей никто не сказал бы что на их плечах тяготеет бремя государственных устоев
7. . Введение к проблеме 2
8. Юридическое оформление документов
9. Афонин Алексей Александрович 71 2
10. Волоколамская СОШ 2 Данный документ предназначен для соцпедагогов
11. Происхождение славянства как нации.html
12. Аерологія відкритих гірничих робіт Практична робота 1.
13. Влияние температуры на пластичность металла
14. Ковалев Сергей Адамович
15. Проблема познаваемости мира
16. Особенности медико-биологического сопровождения тренировочного процесса спортсменов с признаками соединительнотканной дисплази
17. Дорогой читатель мы будем очень благодарны за все Ваши замечания дополнения и предложения
18. на порог больницы вышел пожилой мужчина
19. Международный туризм Юго-восточная Азия
20. . Перетворення Галілея і Лоренца як альтернативні наслідки принципу відносності і симетрій простору і часу