Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Приклад програми для лабораторної роботи №6




Приклад програми для лабораторної роботи №6

Під час руху джойстика запалюється точка на матриці світлодіодів.


ADCCON1 DATA 0EFH ; ADC CONTROL

ADCCON2 DATA 0D8H ; ADC CONTROL

ADCDATAL DATA 0D9H ; ADC DATA LOW BYTE

ADCDATAH DATA 0DAH ; ADC DATA HIGH BYTE

ADCI BIT 0DFH ; ADCCON2. 7 - ADC INTURRUPT FLAG

SCONV BIT 0DCH ; ADCCON2. 4 - SINGLE CONVERSION ENABLE

; DACCON DATA 0FDH; DAC CONTROL REGISTER

; CFG841  DATA 0AFH; GENERAL FLASH/PWM CONTROL REGISTER

dat     EQU R0

adr     EQU R1

Temp1 EQU R2

Temp2 EQU R3

dat1 EQU R4

Segm EQU 0x02

CSEG

ORG 0x0000

jmp begin

ORG 0x0033

begin:

  mov p1, 0xFF

  mov ADCCON1, #0ECh

  call off

  mov TCON, #11111111b

  mov TMOD, #11001100b

beg1:

  call diagonal

  jmp beg1

vboky:

vbik1:

  call rezult1

  cjne R5, #00000000b, vbik2

  cjne R7, #00001110b, vboky

  mov dat1, #00010000b

  jmp vbokend

vbik2:

  call rezult1

  cjne R5, #01001001b, vbik3

  cjne R7, #00001001b, vboky

  mov dat1, #00001000b

  jmp vbokend

vbik3:

  call rezult1

  cjne R5, #00001000b, vbik4

  cjne R7, #00000111b, vboky

  mov dat1, #00000100b  

  jmp vbokend

vbik4:

  call rezult1

  cjne R5, #10010010b, vbik5

  cjne R7, #00000100b, vboky

  mov dat1, #00000010b  

  jmp vbokend

vbik5:

  call rezult1

  cjne R5, #00000000b, vbik1

  cjne R7, #00000000b, vboky

  mov dat1, #00000001b

  jmp vbokend

vbokend:

ret

diagonal:

; JB p3. 2, diagonal

; call vboky

run:

kavalok1:

call rezult2

  cjne R5, #00000000b, kavalok2

  cjne R6, #00000000b, run

  call vboky

  call lampa1

kavalok2:

  call rezult2

  cjne R5, #01001001b, kavalok3

  cjne R6, #00000010b, run

  call vboky

  call lampa2

kavalok3:

  call rezult2

  cjne R5, #10010010b, kavalok4

  cjne R6, #00000100b, run

  call vboky

  call lampa3

      

kavalok4:

  call rezult2

  cjne R5, #00001000b, kavalok5

  cjne R6, #00000111b, run

  call vboky

  call lampa4

kavalok5:

  call rezult2

  cjne R5, #01001001b, kavalok6

  cjne R6, #00001001b, run

  call vboky

  call lampa5

kavalok6:

  call rezult2

  cjne R5, #01110111b, kavalok7

  cjne R6, #00001010b, run

  call vboky

  call lampa6

kavalok7:

  call rezult2

  cjne R5, #00000000b, kavalok1

  cjne R6, #00001110b, run

  call vboky

  call lampa7

jmp run

ret

rezult1:

  mov ADCCON2, #6h

  clr ADCI

  setb SCONV

  jnb ADCI, $

  mov b, adcdatal

  mov a, adcdatah

  clr acc. 7

  clr acc. 6

  clr acc. 5

  clr acc. 4

  mov Tl0, b

  mov TH0, a

  mov R5, TL0

  mov R7, Th0   

ret

rezult2:

  mov ADCCON2, #7h

  clr ADCI

  setb SCONV

  jnb ADCI, $

  mov b, adcdatal

  mov a, adcdatah

  clr acc. 7

  clr acc. 6

  clr acc. 5

  clr acc. 4

  mov Tl1, b

  mov TH1, a

  mov R5, TL1

  mov R6, Th1   

ret

lampa7:      

  mov dat, #10111111b

  mov adr, #00000101b

  call strob

; mov dat, #00000100b

  mov adr, #00000110b

  call strob1

ret

lampa6:      

  mov dat, #11011111b

  mov adr, #00000101b

  call strob

; mov dat, #00000100b

  mov adr, #00000110b

  call strob1

ret

lampa5:      

  mov dat, #11101111b

  mov adr, #00000101b

  call strob

; mov dat, #00000100b

  mov adr, #00000110b

  call strob1

ret

lampa4:      

  mov dat, #11110111b

  mov adr, #00000101b

  call strob

; mov dat, #00000100b

  mov adr, #00000110b

  call strob1

ret

lampa3:      

  mov dat, #11111011b

  mov adr, #00000101b

  call strob

; mov dat, #00000100b

  mov adr, #00000110b

  call strob1

ret

lampa2:      

  mov dat, #11111101b

  mov adr, #00000101b

  call strob

; mov dat, #00000100b

  mov adr, #00000110b

  call strob1

ret

lampa1:      

  mov dat, #11111110b

  mov adr, #00000101b

  call strob

; mov dat, #00000100b

  mov adr, #00000110b

  call strob1

ret

off:

  mov dat, #11111111b

  mov adr, #00000101b

  call strob

; mov dat, #00000000b

  mov adr, #00000110b

  call strob1

ret

strob:

  setb P3. 6

  mov P0, dat

  mov P2, adr

  mov P2, #0x00

ret

strob1:

  setb P3. 6

  mov P0, dat1

  mov P2, adr

  mov P2, #0x00

ret

Delay:

  mov Temp1, #0xFF

loop:

  dec Temp1

  mov Temp2, #0xFF

  djnz Temp2, $

  cjne Temp1, #0x00, loop

ret

Ldelay:

  call delay

  call delay

  call delay

  call delay

  call delay

  call delay

  call delay

  call delay

  call delay

  call delay

 

RET

END


 

Варіанти індивідуальних завдань

Текст індивідуального завдання
За допомогою джойстика керувати швидкістю переміщення точки по світлодіодій лінійці. Швидкість переміщення визначається положенням ручки джойстика відносно вертикальної осі, нижнє положення відповідає максимальній швидкості (8 сегментів за 1с. ), верхнє положення мінімальна швидкість переміщення засвіченого світло діода (1 сегмент за 1с. ). Початковий стан: засвічений світлодіод переміщаєть по лінійці в напрямку знизу вверх з швидкістю відповідно до положення ручки джойстика.
За допомогою джойстика відповідно до положення його ручки по горизонтальній осі засвічувати світлодіоди. При встановленні ручки джойстика в ліве крайнє положення світлодіодна лінійка погашена, при встановленні ручки джойстика в праве крайнє положення засвічено всі світлодіоди. Початковий стан: засвічена кількість світлодіодів відповідно до положення ручки джойстика.
Відображати на статичному семисегментному індикаторі код від перетворення АЦП в десятковому форматі від каналу до якого підєднано горизонтальну вісь джойстика.
Відображати на статичному семисегментному індикаторі код від перетворення АЦП в десятковому форматі від каналу до якого підєднано вертикальну вісь джойстика.
На статичному індикаторі реалізувати біжучу стрічку, на якій по черзі засвічуються символи на 1, 2, 3 і 4 знакомісті відповідно починаючи з лівого, виводиться (“2”, “0”, “1”, “1”, ), зміна символів визначається положенням ручки джойстика відносно горизонтальної осі, ліве крайнє положення – символи змінюються з частотою 1 символ за 1с., крайнє праве положення – символи змінюються з частотою 8 символів за 1с. Початковий стан: символи змінюються з швидкістю відповідно до положення ручки джойстика.
На статичному індикаторі реалізувати біжучу стрічку, на якій по черзі засвічуються символи на 4, 3, 2 і 1 знакомісті відповідно починаючи з правого, виводиться (“1”, “1”, “0”, “2”, ), зміна символів визначається положенням ручки джойстика відносно вертикальної осі, верхнє крайнє положення – символи змінюються з частотою 1 символ за 1с., крайнє нижнє – положення символи змінюються з частотою 8 символів за 1с. Початковий стан: символи змінюються з швидкістю відповідно до положення ручки джойстика.
На матричному індикаторі засвічувати з певним періодом сисвол “*”. Тривалість світіння сомвола залежить від положення ручки джойстика відносно вертикальної осі. Верхнє крайнє положення – час відображення символа 1с., інтервал погашеного індикатора 1с., крайнє нижнє – час відображення символа 8с., інтервал погашеного індикатора 1с. початковий стан: символ відображається з частотою відповідно до полодення ручки джойстика.
На матричному індикаторі засвічувати з певним періодом сисвол “#”. Тривалість світіння сомвола залежить від положення ручки джойстика відносно горизонтальної осі. Праве крайнє положення – час відображення символа 1с., інтервал погашеного індикатора 1с., крайнє ліве – час відображення символа 8с., інтервал погашеного індикатора 8с. початковий стан: символ відображається з частотою відповідно до полодення ручки джойстика.
На матричному індикаторі засвічувати певну кількість рядків відповідну до положення ручки джойстика по вертикальній осі. Верхнє крайнє положення – засвічено всі рядки матричного індикатора, нижне крайнє положення – весь матричний індикатор погашено. Початковий стан: засвічено певну кількість рядків відповідно до положення ручки джойстика.
На матричному індикаторі засвічувати певну кількість стовпців відповідну до положення ручки джойстика по горизонтальній осі. Ліве крайнє положення – засвічено всі сторпці матричного індикатора, праве крайнє положення – весь матричний індикатор погашено. Початковий стан: засвічено певну кількість стовпців відповідно до положення ручки джойстика.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...