Короткі теоретичні відомості

До вузла статичної індикації входять: 4 регістри-фіксатори, струмообмежуючі резистори і чотири цифровий світлодіодний семисегментний дисплей. Схема їх увімкнення показана на рисунку 3.1. Зміст статичної індикації полягає у тому, щоб кожен індикатор постійно висвічувався від свого джерела інформації.

Число, яке виводиться на індикатор, фіксується відповідним регістром. Після запису числа в регістр, шина даних може приймати довільне значення, воно не буде впливати на значення, що висвічується на індикаторі. Хоча застосування статичної індикації і потребує відносно великих апаратних затрат, зате відпадає потреба в постійному переключенні індикаторів, як у випадку динамічної індикації, спрощується програмне забезпечення, контролер звільняється від необхідності постійної почергової передачі чисел на кожен індикатор, як у випадку динамічної індикації.

Коли потрібно засвітити сегмент індикатора, слід встановити відповідний біт регістра, рівний логічному нулю. Для того, щоб погасити відповідний індикатор, у регістр потрібно записати число 0FFh. Оскільки індикатори підключені без дешифраторів, то процес дешифрування слід проводити програмно. Програмне дешифрування дозволяє виводити на індикатор не тільки числа, а й деякі букви та інші символи.

 

Рисунок 3.1 – Схема позначення сегментів індикатора

 

Таблиця 3.1 – Дешифрування двійкового коду для семисегментного індикатора

Сегмент/цифра 1 2 3 4 5 6 7 8 9 0
Dat0 (a) 1 0 0 1 0 0 0 0 0 0
Dat1 (b) 0 0 0 0 1 1 0 0 0 0
Dat2 (c) 0 1 0 0 0 0 0 0 0 0
Dat3 (d) 1 0 0 1 0 0 1 0 0 0
Dat4 (e) 1 0 1 1 1 0 1 0 1 0
Dat5 (f) 1 1 1 0 0 0 1 0 0 0
Dat6 (g) 1 0 0 0 0 0 1 0 0 1
Dat7 (dp) 1 1 1 1 1 1 1 1 1 1

 

Для засвічування десяткової коми (dp, decimal point) потрібно встановити біт 7 дешифратора, рівний 0.

Адреси цифр дисплея розміщені наступним чином:

для запису в перший (справа наліво) розряд адрес рівний 01h;

для запису в другий розряд Р2 адрес рівний 02h;

для запису в третій розряд Р2 адрес рівний 03h;

для запису в четвертий розряд Р2 адрес рівний 04h.

Запис відбувається згідно послідовності, вказаної в лабораторній рободі №2.



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

На семисегментному індикаторі почергово появляються цифри ‘1’, ‘9’, ‘8’, ‘8’.

dat     EQU R0

adr     EQU R1

Temp1 EQU R2

Temp2 EQU R3

Temp3 EQU R4

 

Segm EQU 0x02

 

CSEG

ORG 0x0000

JMP run

ORG 0x0033

run:

  call off

  call ldelay

  call ldelay

  mov dat, #11001111b

  mov adr, #00000100b

  call strob

  call ldelay

  mov dat, #10010000b

  mov adr, #00000011b

  call strob

  call ldelay

  mov dat, #10000000b

  mov adr, #00000010b

  call strob

  call ldelay

  mov dat, #10000000b

  mov adr, #00000001b

  call strob

  call ldelay

 

petla:

  jmp petla

 

strob:

  setb P3.6

  mov P0,dat

  mov P2,adr

  mov P2,#0x00

Ret

off:

  mov dat, #11111111b

  mov adr, #00000001b

  call strob

  mov dat, #11111111b

  mov adr, #00000010b

  call strob

  mov dat, #11111111b

  mov adr, #00000011b

  call strob

  mov dat, #11111111b

  mov adr, #00000100b

  call strob

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


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



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