Основы электроники и программирование микропроцессорной техники. Микропроцессорная техника. Архитектуры микропроцессора - RISC и CISC

6.3.3. Программирование учебных задач

Начнем программирование учебных задач с написания программы, которая считывает состояние кнопки SB1 и выводит его на светодиодный индикатор VD2 так, что не нажатому состоянию кнопки (высокому уровню сигнала на входе RA4 ) соответствует светящееся состояние светодиода, и наоборот.

Листинг 12.2. (html , txt )

Листинг 12.2. (html , txt )

;основная программа

LOOP

CALL SB1_VD2 ;вызов подпрограммы SB1_VD2

;повторения процесса

GET_RA ;подпрограмма чтения состояния

;порта A

SB1_VD2 ;подпрограмма вывода на светодиод

;VD2 состояния кнопки SB1 (разряда 4

;регистра TEMPA)

GOTO P0 ;перейти на P0

;TEMPA,4=0 (кнопка нажата)

GOTO P1 ;перейти на P1

BCF VD2 ;погасить светодиод

RETURN

Листинг 12.2.

Основная программа содержит замкнутый цикл LOOP – GOTO LOOP , необходимый для периодического повторения цикла контроля состояния кнопки и вывода его на индикатор. Команда CLRWDT исключает влияние возможного сброса по переполнению сторожевого таймера на работу программы. Две следующие команды осуществляют вызов подпрограмм GET_RA и SB1_VD2 . Первая из них (GET_RA ) вначале считывает текущее состояние порта A , которое помещается в рабочий регистр W . Поскольку рабочий регистр может потребоваться при исполнении других команд, его состояние записывается в регистр TEMPA , используемый здесь для временного хранения состояния порта A . Таким образом, после возврата из подпрограммы GET_RA в разряде 4 регистра TEMPA содержится информация о состоянии кнопки SB1 : "1" – не нажата, "0" – нажата.

Подпрограмма SB1_VD2 TEMPA и, в зависимости от него, зажигает или гасит светодиод. В системе команд МК PIC16F84 нет команд условного перехода, поэтому для организации проверки того или иного условия используются команды, позволяющие пропустить выполнение следующей команды программы, в зависимости от состояния определенного бита в заданном регистре ( BTFSS и BTFSC ). В частности, команда BTFSS TEMP,4 пропускает исполнение команды GOTO P0 , если TEMP,4 = 1 (кнопка не нажата). Тем самым реализуется команда BSF VD2 , которая зажигает светодиод VD2 . Затем анализируется условие TEMP,4 = 0 (кнопка нажата) и, если оно имеет место, светодиод гасится.

Возможна более простая реализация заданного алгоритма, поскольку нажатое состояние кнопки исключает не нажатое (и наоборот), но представленный вариант более нагляден.

Рассмотрим более сложный вариант программы, предусматривающий зажигание светодиода VD2 только при следующем состоянии тумблеров и кнопок макета: SA1 = 1 , SA2 = 1 , SB1 = 1 и SB2 = 0 .

Листинг 12.3. (html , txt )

Листинг 12.3. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

CALL GET_RB ; вызов подпрограммы GET_RB

CALL ZAG_1110 ; вызов подпрограммы ZAG_1110

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

GET_RB ;подпрограмма чтения состояния

;порта B

MOVF PORTB,W ;чтение состояния порта B в W

MOVWF TEMPB ;пересылка W в TEMPB

RETURN

ZAG_1110 ;зажигает светодиод VD2 только при

;следующем состоянии тумблеров и

;кнопок макета:

;SA1 = SA2 = SB1 = 1 и SB2 = 0

BTFSS TEMPA,2 ;пропустить команду, если

GOTO P0 ;TEMPA,2=1

BTFSS TEMPA,3 ;пропустить команду, если

GOTO P0 ;TEMPA,3=1

BTFSS TEMPA,4 ;пропустить команду, если

GOTO P0 ;TEMPA,4=1

BTFSC TEMPB,0 ;пропустить команду, если

GOTO P0 ;TEMPB,0=0

BSF VD2 ;зажечь светодиод VD2

GOTO P1

BCF VD2 ;погасить светодиод VD2

RETURN

INCLUDE GET_RA.ASM

Листинг 12.3.

Подпрограммы GET_RA и GET_RB помещают в регистры TEMPA и TEMPB текущие состояния портов A и B , соответственно. Подпрограмма ZAG_1110 анализирует состояния разрядов 2,3 и 4 регистра TEMPA и разряда 0 регистра TEMPB , и при условии TEMPA,2,3,4 = 1,1,1 и TEMPB,0 = 0 , зажигает светодиод VD2 . При невыполнении хотя бы одного из этих условий светодиод гасится.

Использование директивы INCLUDE GET_PORTA.ASM позволяет включать уже отлаженные модули подпрограмм в текущую программу. Для того чтобы этой возможностью можно было воспользоваться, необходимо сохранять отлаженные модули в виде отдельных ассемблерных файлов.

Попробуем теперь использовать семисегментный индикатор для контроля состояния тумблеров макета. Вначале напишем программу, которая выводит на индикатор HL семисегментное изображение любого двоичного числа от 0b до 1111b в шестнадцатиричном представлении.

Листинг 12.4. (html , txt )

Листинг 12.4. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

MOVLW 0x0A ;пересылка константы 0A в W

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SEV_SEG ;подпрограмма обслуживания

;семисегментного индикатора

ANDLW 0x0F ;маскирование 4-х младших разрядов

;W и обнуление 4-х старших

ADDWF PCL,F ;сложение W с PCL и пересылка

;результата в PCL

RETLW 0x80 ;возврат из подпрограммы с 80 в W

RETLW 0xF2 ;возврат из подпрограммы с F2 в W

RETLW 0x48 ;возврат из подпрограммы с 48 в W

RETLW 0x60 ;возврат из подпрограммы с 60 в W

RETLW 0x32 ;возврат из подпрограммы с 32 в W

RETLW 0x25 ;возврат из подпрограммы с 25 в W

RETLW 0x04 ;возврат из подпрограммы с 04 в W

RETLW 0xF0 ;возврат из подпрограммы с F0 в W

RETLW 0x00 ;возврат из подпрограммы с 00 в W

RETLW 0x20 ;возврат из подпрограммы с 20 в W

RETLW 0x10 ;возврат из подпрограммы с 10 в W

RETLW 0x06 ;возврат из подпрограммы с 06 в W

RETLW 0x8C ;возврат из подпрограммы с 8C в W

RETLW 0x42 ;возврат из подпрограммы с 42 в W

RETLW 0x0C ;возврат из подпрограммы с 0C в W

RETLW 0x1C ;возврат из подпрограммы с 1C в W

Листинг 12.4.

Программа начинает свою работу с пересылки константы 0x0A в рабочий регистр W . Затем производится вызов подпрограммы обслуживания семисегментного индикатора SEV_SEG . Работа подпрограммы SEV_SEG начинается с маскирования 4-х младших разрядов W и обнуления 4-х старших. Тем самым из анализа исключаются старшие разряды передаваемого из рабочего регистра W числа. Затем маскированное содержимое регистра W добавляется к текущему состоянию младшего байта счетчика команд PCL , и результат помещается в PCL . Таким образом, производится дополнительное смещение счетчика команд на величину, которая была передана в рабочем регистре. Например, если было W=0 , то содержимое счетчика команд не изменится, и будет выполнена следующая команда RETLW 0x80 0x80 = B"1000000" в регистр W . Если, как было в при веденной программе, W=0A , то к содержимому PCL будет добавлено число 0x0A , и произойдет дополнительное смещение на 10 шагов. В результате будет выполнена команда RETLW 0x10 , которая вызовет возврат из подпрограммы с записью 0x10 = B"0001000" в регистр W .

После возврата из подпрограммы производится пересылка W в PORTB и отображение его состояния на семисегментном индикаторе HL . В частности, если W = 0 , то при выводе 1000000b на порт B семисегментный индикатор покажет 0 , а при W = A покажет A .Таким образом, может быть отображено любое 4-разрядное двоичное число.

Метод прямого управления счетчиком команд, использованный в подпрограмме SEV_SEG , может применяться для реализации табличной конвертации чисел. При этом необходимо иметь в виду, что данный метод не позволяет конвертировать более 256 значений в одной таблице. Кроме того, программа табличной конвертации должна целиком располагаться внутри 256-байтного блока во избежание переполнения младшего байта счетчика команд.

Используя подпрограмму SEV_SEG , напишем теперь программу, которая читает состояния тумблеров SA1 и SA2 и выводит на индикатор соответствующее число.

Листинг 12.5. (html , txt )

Листинг 12.5. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

RRF TEMPA,F ;сдвиг вправо на один разряд

;через перенос

RRF TEMPA,W ;сдвиг вправо на один разряд

;через перенос

ANDLW 0x03 ;маска на два младших разряда

CALL SEV_SEG ; вызов подпрограммы SEVEN_SEG

MOVWF PORTB ; пересылка W в PORTB

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

INCLUDE GET_RA.ASM

INCLUDE SEV_SEG.ASM

Листинг 12.5.

Подпрограмма GET_RA помещает в регистр TEMPA текущее состояние порта A . Таким образом, в разрядах 2 и 3 регистра TEMPA хранится текущее состояние тумблеров SA1 и SA2 . Для того чтобы биты состояния тумблеров заняли позиции 0 и 1 регистра TEMPA , производится два сдвига вправо через перенос, причем результат второго сдвига помещается в регистр W . Затем накладывается маска на два младших разряда рабочего регистра и производится вызов подпрограммы SEV_SEG . После выхода из подпрограммы результат подается на порт B и отображается на индикаторе.

Рассмотрим теперь программы, работающие в реальном масштабе времени, т.е. выдающие сигналы определенной длительности и частоты следования, либо учитывающие временные параметры входных сигналов. Основным элементом таких программ является подпрограмма формирования временной задержки. Рассмотрим один из возможных вариантов такой подпрограммы с использованием программных методов формирования задержки, т.е. без применения встроенного таймера.

Листинг 12.6. (html , txt )

Листинг 12.6. (html , txt )

;основная программа

MOVLW 0xL ;пересылка константы H"L" в W

CALL DELAY ;вызов подпрограммы DELAY

DELAY ;подпрограмма формирования

;задержки времени

LOOPD

RETURN ;возврат из подпрограммы

Листинг 12.6.

Основная программа производит вызов подпрограммы DELAY с некоторой константой L в рабочем регистре W , определяющей число внутренних циклов подпрограммы. Подпрограмма DELAY начинает свою работу с загрузки содержимого рабочего регистра в регистр пользователя COUNT1 . Команда DECFSZ COUNT1,F уменьшает на единицу содержимое регистра COUNT1 и проверяет его на равенство нулю. Нулевое состояние регистра COUNT1 приводит к выходу из цикла и возврату из подпрограммы. Для исполнения каждого внутреннего цикла требуется три машинных цикла МК (1 цикл на исполнение команды DECFSZ при ненулевом результате и 2 цикла на каждую команду GOTO ). Выход из подпрограммы DELAY потребует 4-х циклов (2 цикла на исполнение команды DECFSZ при нулевом результате и 2 цикла на RETURN ). Если добавить к этому еще 4 цикла, необходимых для загрузки константы в рабочий регистр, вызова подпрограммы и загрузки регистра пользователя COUNT1 , то общее время исполнения подпрограммы DELAY (задержка) составит

TD = 4 + 3*(L – 1) + 4 = 5 + 3*L циклов,

где L – константа, переданная через рабочий регистр в подпрограмму DELAY .

L = H"00" = .0 максимальный формируемый интервал времени составит 1,55 мс. Такой результат связан с тем, что команда DECFSZ сначала декрементирует содержимое регистра ( H"00" – 1 = H"FF" ), а затем уже анализирует результат.

Минимальный формируемый интервал времени составит при тех же условиях 5 циклов или 10 мкс. Для получения такого интервала необходимо перед вызовом подпрограммы DELAY загрузить в рабочий регистр число 0x01 .

Для расширения верхней границы формируемых временных интервалов, а также с целью повышения удобства работы с подпрограммой, можно добавить в цикл LOOPD одну или несколько дополнительных команд, в качестве которых чаще всего используется команда NOP . Для примера рассмотрим подпрограмму формирования задержки времени DELAY_C

Листинг 12.7. (html , txt )

Листинг 12.7. (html , txt )

DELAY_C ;подпрограмма формирования

;задержки времени (вариант C)

LOOPD

NOP ;пустая команда

GOTO LOOPD ;повторение цикла H"L" раз

RETURN ;возврат из подпрограммы

Листинг 12.7.

Общее время исполнения подпрограммы DELAY_C , включая ее вызов, составит

TD = 4 + 4*(L – 1) + 4 = 4 + 4*L циклов.

При тактовой частоте fosc = 2МГц и загрузке константы L = H'F9' = .249 формируемый интервал времени составит ровно 2 мс. Уменьшение константы на единицу уменьшает формируемый временной интервал на 8 мкс. В частности, при L = .124 образуется задержка в 1 мс.

Для формирования больших задержек времени, лежащих в диапазоне долей и единиц секунд, такой подход неудобен. В этом случае используются вложенные циклы, как показано в следующем примере.

Листинг 12.8. (html , txt )

Листинг 12.8. (html , txt )

;основная программа

MOVLW 0xL ;пересылка константы H'L' в W

CALL DELAY_D ;вызов подпрограммы DELAY_D

DELAY_D ;подпрограмма формирования

;большой задержки времени (вариант D)

LOOPD

CLRWDT ;сброс сторожевого таймера

RETURN ;возврат из подпрограммы

Листинг 12.8.

DELAY_D составляет 3*256 + 4

TD = 5 + (3*256 + 4)*L циклов.

При тактовой частоте fosc = 2МГц время цикла равно tц = 2 мкс, поэтому при загрузке L = H'00' = .0 максимальный формируемый интервал времени составит около 0,4 с.

Поскольку формируемый интервал времени достаточно велик, во внешний цикл включена команда сброса сторожевого таймера.

Интервал времени 0,4 с не совсем удобен для получения задержек времени, кратных секунде, поэтому рассмотрим еще один вариант подпрограммы формирования больших задержек времени с дополнительной командой NOP во внутреннем цикле.

Листинг 12.9. (html , txt )

Листинг 12.9. (html , txt )

DELAY_E ;подпрограмма формирования

;большой задержки времени (вариант E)

CLRF COUNT1 ;сброс содержимого регистра COUNT1

LOOPD

NOP ;пустая команда

GOTO LOOPD ;повторение цикла 256 раз

CLRWDT ;сброс сторожевого таймера

GOTO LOOPD ;повторение цикла H'L' раз

RETURN ;возврат из подпрограммы

Листинг 12.9.

Время исполнения внутреннего цикла подпрограммы DELAY_E составляет 4*256 + 4 машинных циклов МК, поэтому общая задержка составит

TD = 5 + (4*256 + 4)*L циклов.

При тактовой частоте fosc = 2МГц и при загрузке L = H'F3' = .243 формируемый интервал времени составит около 0,5 с при погрешности не более 0,2%. Если необходима более высокая точность, можно вставить необходимое количество пустых операций во внешний цикл формирования задержки.

Рассмотрим далее несколько программ с использованием подпрограмм формирования задержки времени. Начнем с написания программы, которая подает звуковой сигнал на динамик BA1 при нажатии на кнопку SB1 . Динамик будет звучать только в том случае, если на выход RA0 будет подан периодически изменяющийся сигнал. Для того чтобы звук был хорошо слышен, его частота должна находиться вблизи максимума слышимости человеческого уха. Выберем частоту звучания равной 1 КГц, что соответствует периоду следования импульсов сигнала 1 мс.

Листинг 12.10. (html , txt )

Листинг 12.10. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET _ RA ;вызов подпрограммы GET _ PORTA

CALL SB1_BA1 ;вызов подпрограммы SB1_BA1

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SB1_BA1 ;подпрограмма подачи звука на

;динамик BA1 при нажатии на кнопку

;SB1

BTFSC TEMPA,4 ;пропустить команду, если

;TEMPA,4=0 (кнопка нажата)

GOTO B0 ;перейти на B0

BSF BA1 ;подача высокого уровня на RA0

;H'3E' = .62 в W

BCF BA1 ;подача низкого уровня на RA0

MOVLW 0x3E ;пересылка константы

;H'3E' = .62 в W

CALL DELAY_C ;вызов подпрограммы DELAY_C

RETURN

INCLUDE GET_RA.ASM

INCLUDE DELAY_C.ASM

Листинг 12.10.

Как и раньше, подпрограмма GET_RA считывает текущее состояние порта A, которое затем передается в регистр TEMPA . Подпрограмма SB1_BA1 анализирует состояние разряда 4 регистра TEMPA и, в зависимости от результата, озвучивает динамик BA1 или нет. Необходимая выдержка линии RA0 в единичном и нулевом состояниях обеспечивается подпрограммой DELAY_C с параметром L = H'3E' = .62 . Это соответствует времени задержки около 0,5 мс, что и дает в результате необходимую частоту следования сигнала 1 Кгц.

Рассмотрим далее программу, которая заставляет мигать светодиод VD2 при нажатии на кнопку SB1 . Для того чтобы мигания были хорошо видны, выберем их частоту равной 1 Гц.

Листинг 12.11. (html , txt )

Листинг 12.11. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

CALL SB1_VD2M ;вызов подпрограммы

;SB1_VD2M

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SB1_VD2M ;подпрограмма мигания светодиода

;VD2 при нажатии на кнопку SB1

BTFSC TEMPA,4 ;пропустить команду, если

;TEMPA,4=0 (кнопка нажата)

GOTO V0 ;перейти на V0

BSF VD2 ;зажечь светодиод VD2

;H'F3' = .243 в W

BCF VD2 ;погасить светодиод

MOVLW 0xF3 ;пересылка константы

;H'F3' = .243 в W

CALL DELAY_E ;вызов подпрограммы DELAY_E

BTFSS TEMPA,4 ;пропустить команду, если

;TEMPA,4=1 (кнопка не нажата)

GOTO V1 ;перейти на V1

BCF VD2 ;погасить светодиод

RETURN

INCLUDE GET_RA.ASM

INCLUDE DELAY_E.ASM

Листинг 12.11.

Программа работает почти так же, как и предыдущая. Первое отличие заключается в том, что светодиод принудительно гасится при не нажатой кнопке. Второе отличие заключается в величине интервала времени, который составляет здесь 0,5 с и формируется подпрограммой DELAY_E .

Подпрограммы формирования задержки времени могут быть также полезны при работе с такими внешними источниками сигналов, как тумблеры, кнопки, переключатели и т.п. Дело в том, что все механические коммутаторы имеют одно негативное свойство, известное как "дребезг" контактов, которое обусловлено механическими колебаниями контактов при их замыкании и размыкании. Длительность колебаний составляет обычно несколько миллисекунд, в течение которых на вход МК может поступать пачка импульсов вместо идеального перепада.

Аппаратные способы борьбы с "дребезгом" контактов основаны на использовании RS-триггеров, одновибраторов или триггеров Шмитта. В устройствах на основе МК подавление "дребезга" контактов обычно осуществляется программными способами, которые основаны на повторном считывании состояния линии порта через определенное время.

В качестве примера рассмотрим "бездребезговый" вариант подпрограммы чтения состояния порта A .

Листинг 12.12. (html , txt )

Листинг 12.12. (html , txt )

GET_RAD ;подпрограмма чтения состояния

;порта A в регистр TEMPA

;с подавлением "дребезжания"

MOVF PORTA,W ;чтение состояния порта A в W

ANDLW 0x1C ;наложение маски b'00011100'

;на неиспользуемые биты W

MOVWF TEMPA ;пересылка W в TEMPA

CLRWDT ;сброс сторожевого таймера WDT

MOVLW 0x0A ;пересылка константы

;H'0A' = .10 в W

CALL DELAY_E ; вызов подпрограммы DELAY_E

MOVF PORTA,W ;чтение состояния порта A в W

ANDLW 0x1C ;наложение на W маски b'00011100'

SUBWF TEMPA,W ;вычитание W из TEMPA

BTFSS Z ;пропустить команду, если результат

;нулевой

GOTO DD ;перейти на метку DD

RETURN

INCLUDE DELAY_E.ASM

Листинг 12.12.

Суть работы подпрограммы заключается в повторном чтении состояния порта A спустя некоторое время после предыдущего и сравнении его с прежним значением. Константа H'0A' = .10 , пересылаемая в регистр W перед вызовом подпрограммы DELAY_E , обеспечивает значение задержки времени около 20 мс - этого, как правило, достаточно для завершения переходных процессов при переключении механических коммутаторов. Маскирование неиспользуемых разрядов порта повышает надежность работы подпрограммы. Сброс сторожевого таймера перед вызовом подпрограммы задержки нужен для исключения сброса МК между двумя процедурами опроса порта A .

Рассмотрим теперь работу программы, которая использует некоторые из разработанных ранее подпрограмм. Пусть целью работы программы является подсчет числа нажатий на кнопку SB1 с выводом результата на семисегментный индикатор в шестнадцатиричном коде.

Листинг 12.13. (html , txt )

Листинг 12.13. (html , txt )

;основная программа

CLRF COUNT3 ;сброс счетчика нажатий

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RAD ;вызов подпрограммы GET_RAD

BTFSC TEMPA,4 ;проверка нажатия SB1

GOTO LOOP ;если не нажата – возврат

;на метку LOOP

INCF COUNT3,F ;инкремент счетчика

MOVF COUNT3,W ;пересылка содержимого

;счетчика в рабочий регистр

CALL SEV_SEG ;вызов подпрограммы SEV_SEG

MOVWF PORTB ;пересылка W в PORTB

TEST

CALL GET_RAD ; вызов подпрограммы GET_RAD

BTFSS TEMPA,4 ;проверка нажатия SB1

GOTO TEST ;если еще нажата – возврат

;на метку TEST

GOTO LOOP ;возврат на метку LOOP

INCLUDE GET_RAD.ASM

INCLUDE SEV_SEG.ASM

Листинг 12.13.

Приведенные в главе программы не охватывают и малой доли возможностей, которые предоставляет даже такой простой макет, как изображенный на рис. 6.3 . Однако их освоение, надеюсь, будет полезным для начинающих пользователей PIC-контроллеров.

Согласно приведенному определению микропроцессорная система -- это собранная в единое целое совокупность взаимодействующих БИС микро-процессорного комплекта (иногда дополненная БИС из других комплектов)организованная в систему, т. е. вычислительная или управляющая система с микропроцессором в качестве узла обработки информации. Общая структурная схема. Типовая структура микропроцессорной системы изображена на рис. 3. Кратко охарактеризуем узлы-модули, входящие в ее состав, за исключением уже описанного микропроцессора.

Генератор тактовых импульсов -- источник последовательности прямоугольных импульсов, с помощью которых осуществляется управление событиями во времени. Он задает цикл команды -- интервал времени, необходимый для считывания выборки команды из памяти и ее исполнения. Цикл команды состоит из определенной последовательности элементарных действий, называемых состояниями (тактами). Для некоторых микропроцессоров не требуется внешний генератор тактовых импульсов: он содержится непосредственно в схеме однокристального микропроцессора.

Основная память системы (внешняя по отношению к микропроцессору) состоит из ПЗУ и ОЗУ.

Постоянное запоминающее устройство (ПЗУ) -- это устройство, в котором хранится программа (и при необходимости совокупность констант). Содержимое ПЗУ не может быть стерто. Оно используется как память программы, составленной заранее изготовителем в соответствии с требованиями ее пользователей. В таких случаях говорят, что программа жестко «зашита» в запоминающем устройстве. Чтобы осуществить иную программу, необходимо применить другое ПЗУ или его часть. Из ПЗУ можно только выбирать хранимые там слова, но нельзя вносить новые, стирать и заменять записанные слова другими. Оно подобно напечатанной таблице выигрышей по облигациям: можно лишь считывать имеющиеся там числа, но заменять их или вносить новые невозможно.

Помимо ПЗУ используются также ППЗУ и РППЗУ.

Программируемое постоянное запоминающее устройство (ППЗУ) отличается от ПЗУ тем, что пользователь может самостоятельно запрограммировать ПЗУ (ввести в него программу) с помощью специального устройства -- программатора, но только один раз (после введения программы содержимое памяти уже нельзя изменить).

Репрограммируемое постоянное запоминающее устройство (РППЗУ), называемое также стираемым ПЗУ, имеет такую особенность: хранимая информация может стираться несколько раз (при этом она разрушается). Иначе говоря, РППЗУ допускает перепрограммирование, осуществляемое с помощью программатора. Это облегчает исправление обнаруженных ошибок и позволяет изменять содержимое памяти.

Оперативное запоминающее устройство (ОЗУ), которое иначе называют запоминающим устройством с произвольной выборкой (ЗУПВ) или произвольным доступом (ЗУПД), служит памятью данных, подлежащих обработке, и результатов вычислений, а в некоторых микропроцессорных системах -- также программ, которые часто меняются. Его характерное свойство заключается в том, что время, требуемое для доступа к любой из ячеек памяти, не зависит от адреса этой ячейки. ОЗУ допускает как запись, так и считывание слов. По отношению к этому запоминающему устройству приемлема аналогия с классной доской, на которой мелом записаны числа: их можно многократно считывать, не разрушая, а при необходимости -- стереть число и записать на освободившемся месте новое. Следует иметь в виду, что информация, содержащаяся в ОЗУ, исчезает, стирается, если прерывается напряжение питания.

Интерфейсом называют устройство сопряжения. Это упрощенное определение. В более строгом толковании под интерфейсом понимают совокупность электрических, механических и программных средств, позволяющих соединять модули системы между собой и с периферийными устройствами. Его составными частями служат аппаратные средства для обмена данными между узлами и программные средства -- протокол, описывающий процедуру взаимодействия модулей при обмене данными. Интерфейс микропроцессорной системы относится к машинным интерфейсам. В микропроцессорной системе применяют специальные интерфейсные БИС для сопряжения периферийных устройств с системой (на рис. 2 они показаны в виде модулей интерфейса ввода и интерфейса вывода). Для этих БИС характерна универсальность, осуществляемая путем программного изменения выполняемых ими функций.

Более простые задачи решают порты ввода-вывода -- схемы, спроектированные (запрограммированные) для обмена данными с конкретными периферийными устройствами: приема данных с клавиатуры или устройства считывания, передачи их дисплею, телетайпу и т. п.

Порт -- это схема средней степени интеграции, содержащая адресуемый многорежимный буферный регистр ввода-вывода (МБР) с выходными тристабильными схемами (о них идет речь ниже при описании схемы ОЗУ), логикой управления и разъемом для подключения устройств ввода-вывода. Возможности перепрограммирования порта ограничены.

Когда периферийные устройства, входящие в состав микропроцессорной системы, сложны, выполняют многочисленные разнообразные операции, то для сопряжения применяют усложненный интерфейс, называемый периферийным программируемым адаптером. Он содержит набор встроенных портов и других регистров, облегчающих программирование и осуществление временного согласования. К одному периферийному программируемому адаптеру может быть подключено несколько простых устройств ввода-вывода. Подобный интерфейс считают универсальным интерфейсом широкого применения, поскольку его можно сочетать почти со всеми имеющимися периферийными устройствами.

Для многих микропроцессорных систем и микро-ЭВМ характерно несоответствие между относительно высокой скоростью обработки информации внутри микропроцессора и низкой скоростью обмена данными между модулями через интерфейс.

Устройство ввода осуществляет введение в систему данных, подлежащих обработке, и команд. Устройство вывода преобразует выходные данные (результат обработки информации) в форму, удобную для восприятия пользователем или хранения. Устройствами ввода-вывода служат блоки считывания информации с перфоленты и магнитной ленты (или записи на них), кассетные магнитофоны, гибкие диски, клавиатуры, дисплеи, аналого-цифровые и цифро-аналоговые преобразователи, графопостроители, телетайпы и т.п.

Далее предметом нашего внимания будут шины системы. Шиной называют группу линий передачи, используемых для выполнения определенной функции (по одной линии на каждый передаваемый бит). Особенность структуры микропроцессорной системы заключается в магистральной организации связей между входящими в ее состав модулями. Она осуществляется с помощью трех шин. По ним передаются вся информация и сигналы, необходимые для работы системы. Эти шины соединяют микропроцессор с внешней памятью (ОЗУ, ПЗУ) и интерфейсами ввода-вывода, в результате чего создается возможность обмена данными между микропроцессором и другими модулями системы, а также передачи управляющих сигналов.

Рассмотрим назначение и функции каждой из трех шин (на примере 8-разрядного микропроцессора), показанных на рис. 3.

Шина данных. Это двунаправленная шина: по ней данные могут направляться либо в микропроцессор, либо из него (на рис. 3 такая особенность шины данных подчеркнута стрелкой с двумя остриями, одно из которых обращено к микропроцессору, а другое -- от него). При этом необходимо еще раз подчеркнуть, что невозможна одновременная передача данных в обоих направлениях. Эти процедуры разнесены во времени в результате применения временного мультиплексирования.

Шина адреса (или адресная шина). По ней информация передается только в одном направлении -- от микропроцессора к модулям памяти или ввода-вывода.

Шина управления. Служит для передачи сигналов, обусловливающих взаимодействие, синхронизацию работы всех модулей системы и внутренних узлов микропроцессора. Одна часть линий шины управления служит для передачи сигналов, выходящих из микропроцессора (на рис. 3 это условно показано стрелкой, острие которой направлено вправо), а по другой части линий передаются сигналы к микропроцессору (на рис. 3 -- стрелка с острием, направленным влево).

Достоинством шинной структуры является возможность подключения к микропроцессорной системе новых модулей, например нескольких блоков ОЗУ и ПЗУ для получения требуемой емкости памяти.

Коммуникация, связь, радиоэлектроника и цифровые приборы

Микропроцессор МП это обрабатывающее и управляющее устройство способное под программным управлением выполнять обработку информации принятие решений ввод и вывод информации и выполненное в виде одной или нескольких БИС. используемое для временного хранения информации в процессе работы МП. В отличие от ПЗУ в ОЗУ возможно как считывание так и запись информации по сигналам Чт и Зап в ячейку адрес которой находится на ША. По сигналу Вв ввод на ШУ происходит передача информации от внешнего устройства на ШД а по сигналу Выв вывод...

Лекция 12

Микропроцессорная техника

1 Микропроцессоры и микропроцессорные комплекты

1.1 Определение микропроцессора

В начале 70-х годов успехи технологии в микроэлектронике привели к созданию новой элементной базы электроники - микроэлектронных больших интегральных схем (БИС) {модуль 1 глава 1.6.3}. По степени интеграции (количеству активных элементов: диодов и транзисторов) интегральные схемы (ИС) условно подразделяются на ИС малой степени интеграции - до 100 активных элементов, средней степени интеграции (СИС) - до 1000 активных элементов, БИС - свыше 1000 активных элементов, СБИС - свыше 10000 элементов. Выпуск новой БИС при современном уровне автоматизации проектирования - очень сложный и дорогой процесс из-за больших первоначальных затрат на разработку ее логической структуры и топологии, изготовления фотошаблонов и технологической подготовки производства. Это 0,5-1 год работы большого коллектива. Поэтому изготовление БИС экономически оправдано при их выпуске, исчисляемом десятками-сотнями тысяч штук в год. Выпускать специализированные БИС для каждого конкретного применения практически не реально. В результате поиска областей массового применения микросхем с высоким уровнем интеграции их разработчиками была предложена идея создания одной универсальной БИС или некоторого набора БИС, специализация которых для каждого конкретного случая применения достигается не схемно, а программно. Так появились стандартные универсальные элементы - микропроцессорные БИС со структурой, аналогичной структуре ЭВМ.

Микропроцессор (МП) – это обрабатывающее и управляющее устройство, способное под программным управлением выполнять обработку информации, принятие решений, ввод и вывод информации и выполненное в виде одной или нескольких БИС.

1.2 Технология изготовления МП БИС

Существуют два вида технологии изготовления БИС: биполярная - основанная на применении биполярных транзисторов и МОП (металл - окисел - полупроводник) - технология, основанная на использовании полевых транзисторов.

БИС, изготавливаемые по биполярной технологии, различаются по схематическим способам реализации. В основном применяется транзисторно-транзисторная логика с диодами Шоттки (ТТЛШ) и эмиттерно-связанная логика (ЭСЛ). В логике ТТЛШ используются биполярные n-p-n транзисторы, дополненные диодами Шоттки (ДШ). ДШ представляет собой выпрямительный контакт на границе металл-полупроводник Al-nSi. В металле и кремнии основные носители одного и того же типа - электроны, а неосновных носителей нет. ДШ открываются при U=0,1-0,3 В и имеют крутую вольт-амперную характеристику. Они подключаются параллельно коллекторному переходу n-p-n транзистора и образуют транзистор Шоттки, изготавливаемый в едином технологическом процессе. Применение ДШ значительно повышает быстродействие транзистора, так как устраняется насыщение коллекторного перехода и нет рассасывания зарядов в нем.

В МОП технологии {модуль 1 глава 1.5.5} можно выделить 3 схемотехнических способа реализации БИС: МОП с проводимостью канала р - или n -типа (р -МОП или n -МОП) и комплементарная МОП технология (КМОП). КМОП технология использует пары МОП транзисторов n -типа и р -типа, соединенные последовательно (рис.1-1). При любом сигнале на входе один из транзисторов открыт, другой - закрыт. Поэтому ток, протекающий по цепи, очень мал. КМОП БИС имеют наименьшую потребляемую мощность по сравнению с другими видами.

По МОП технологии первые МП БИС (р-МОП) были изготовлены в 1971 г. В них используется управление р -каналом, где основными носителями зарядов являются дырки. Поэтому быстродействие БИС сравнительно невелико. Позднее появились БИС типа n-МОП и КМОП, которые и сейчас широко применяются.

ЭСЛ логика основана на применении дифференциального усилителя на двух транзисторах с соединенными эмиттерами (рис.1-2.). Она обеспечивает самое большое быстродействие, но потребляет большую мощность.

Основные данные для некоторых МП БИС приведены в таблице.1

1.3 Структура микропроцессорных систем

Все многообразие МПС основано на применении МП двух типов:

а) однокристальных МП с фиксированной разрядностью слова и с фиксированной системой команд (с жестким управлением);

Б) многокристальных (секционных) МП с изменяемой разрядностью слова и с микропрограммным управлением.

Рассмотрим особенности их структуры.

1.3.1 Структура МПС на основе МП с жестким управлением

Рис.1-3

Связь отдельных элементов МПС между собой и с внешними устройствами осуществляется с помощью трех шин. Каждая шина представляет собой магистраль, состоящую из нескольких (8-16) линий.

ША - шина адреса, по которой передаются адреса ячеек памяти и внешних устройств;

ШД - шина данных, по которой информация вводится в МП или выводится из него;

ШУ - шина управления, по которой передаются управляющи сигналы, обеспечивающие нормальное функционирование МПС;

МП - центральный элемент, управляющий функционированием всех остальных элементов; обращается ко всем остальным элементам системы, выставляя на ША их адрес;

Г - генератор тактовых импульсов, синхронизирующий работу МП;

ПЗУ - постоянное запоминающее устройство {модуль 2 глава 9.1}, в котором записаны команды программы, выполняемой МП, и константы, необходимые для работы. По ША поступает адрес ячейки памяти, в которой храниться необходимая команда или константа, и по сигналу Чт (чтение) от МП на ШД появляется информация, хранимая в данной ячейке;

ОЗУ - оперативное запоминающее устройство {модуль 2 глава 9.2}, используемое для временного хранения информации в процессе работы МП. В отличие от ПЗУ, в ОЗУ возможно как считывание, так и запись информации (по сигналам Чт и Зап) в ячейку, адрес которой находится на ША. В простейших МПС ОЗУ может отсутствовать, и его роль выполняют внутренние регистры общего назначения (РОН) МП;

ИУ - интерфейсное устройство (устройство связи), согласующее работу МПС и внешних устройств с учетом различий в скоростях их работы и уровнях сигналов. По сигналу Вв (ввод) на ШУ происходит передача информации от внешнего устройства на ШД, а по сигналу Выв (вывод) - в обратном направлении. Шина данных общая для всех элементов МПС, но элементы системы не должны мешать друг другу. Поэтому выход каждого из них подключен к ШД через так называемую схему с 3-мя состояниями. Она может находиться не только в активных состояниях («0» или «1»), что необходимо для передачи информации, но и в третьем состоянии, в котором элемент практически отключается от общей шины. Перевод из третьего состояния в активное осуществляется управляющими сигналами МП. В каждый момент времени к общей ШД оказывается подключенным только один элемент, передающий информацию, и «конфликт» на ШД исключается. Принимать информацию с ШД могут, при необходимости, сразу несколько элементов. Такая организация МПС с помощью общей ШД является вынужденной и обусловлена тем, что число выводов корпусов БИС ограничено, и одни и те же выводы используются для нескольких целей.

1.3.2 Структура МПС на основе МП с микропрограммным управлением

МП с жестким управлением собирается из n отдельных БИС секций центрального процессорного элемента ЦПЭ, каждая из которых обрабатывает 2 (4, 8, 16) разрядов данных. При этим получается центральный процессор, имеющий 2n (или 4n, 8n, 16n) разрядов. ЦПЭ выполняет самые простые действия - микрооперации при подаче на управляющие входы приказов - микрокоманд (МК). Для выполнения команд, аналогичных командам МП с жестким управлением, требуется до 10-15 микроопераций и столько же микрокоманд. Организация команд из имеющихся микрокоманд предоставляется пользователю.

Основным преимуществом МП с микропрограммным управлением при их появлении была большая скорость обработки информации, что позволяло управлять и контролировать очень быстро протекающие процессы, например, ядерные реакции. В настоящее время их роль существенно снизилась, так как современные многоразрядные МП с жестким управлением и высокой тактовой частотой позволяют обрабатывать информацию еще быстрее.

2 Микропроцессор

2.1 Структура МП К580ВМ80

Рассматриваемая БИС является однокристальным МП, выполненным на основе n-МОП технологии. Предназначена для построения вычислительных устройств, контроллеров, микро-ЭВМ. Разрядность МП - 8 бит, тактовая частота 2 МГц, время выполнения команды 2-9 мкс, напряжение питания +12,+5 и -5 В, потребляемая мощность 0,75 Вт. На рисунке приведена его структурная схема.

2.1.1 Основные элементы МП

Обмен информацией осуществляется через восьмиразрядный буферный регистр {модуль 2 глава 7} БД, подключенный к внешней и внутренней ШД МП.РК - регистр команды. В него записывается код команды и хранится в течение времени ее выполнения.ДшК - дешифратор команды, выдает сигналы на устройство управления УУ и схему выбора регистров СВР.

СВР - схема выбора регистров. Содержит: 6 программно доступных регистров общего назначения (РОН) B, C, D, E, H, L (существуют команды, в которых они рассматриваются парами B- B,C; D - D,E; H - H,L);2 программно недоступных регистра W и Z, предназначенных для хранения второго и третьего байта команды (первый байт всегда храниться в РК);

М – мультиплексор {модуль 2 глава 5.2}, связывающий внутреннюю ШД с регистрами W, Z;

ПС - 16 разрядный программный счетчик, позволяющий МП выполнять программы, содержащие до 216 = 65536 слов;

УС - 16 разрядный указатель стека {глава 2.1.3};

СИД - схема инкремента-декремента (прибавления или вычитания 1);

БА - 16 разрядный буфер адреса;

А - регистр результата (аккумулятор);

АЛУ - арифметико-логическое устройство, выполняет арифметические операции сложения - вычитания, инкремент - декремент, логические операции конъюнкции, дизъюнкции, инверсии и другие. Оно связано через буферные регистры БР1 и БР2 с аккумулятором и внутренней шиной данных;

РП - регистр признаков, в котором в процессе выполнения команды появляются признаки результата (нулевой результат, положительный или отрицательный, четный или нечетный результат), используемые в последующих командах, например, условного перехода;

СДК - схема десятичной коррекции, используется в том случае, когда информация обрабатывается не в двоичном, а в двоично-десятичном коде {модуль 2 глава 3.2};

УУ - устройство управления, обеспечивает управление работой МП и внешних устройств. Рассмотрим его работу и состав шины управления.

2.1.2 Устройство управления

Устройство управления тактируется от внешнего генератора, вырабатывающего последовательность импульсов Ф1 и Ф2. Оно связано с остальной частью МП внутренними управляющими сигналами УС и сигналами признаков Pi. С внешней средой УУ связано шиной управления, содержащей 10 линий (4 сигнала поступают извне и 6 сигналов выдает МП).

Состав шины управления.

1. Начальная установка (сброс). При подаче «1» на этот вход ПС сбрасывается в 0 и начинается выполнение программы сначала.

2. Синхронизация. Сигнал «1» на этом выходе вырабатывается в начале каждого цикла работы МП (перед каждым обращением МП к любому внешнему элементу).

3. Чтение. Сигнал «1» указывает, что МП готов принять информацию по ШД извне. Этот сигнал обычно подключается ко входу «чтение» ЗУ и устройств ввода.

4. /Зп. Сигнал «0» указывает, что МП выставил на шину данных информацию, подлежащую записи в ОЗУ или выдаче на устройства вывода.

5. Готов. Сигнал «1» на этом входе указывает МП на окончание цикла чтения или записи. Он вырабатывается внешними устройствами по окончании цикла их работы. Если сигнал «1» не поступил, то МП входит в состояние ожидания, в течение которого МП удерживает адрес на ША, управляющий сигнал «чтение» или «запись» и сохраняет открытыми цепи передачи информации через БД. Состояние ожидания сохраняется до поступления «1» - «готов». В случае, когда все внешние элементы работают со скоростью МП или большей, на вход «готов» постоянно подключается «1».

6. Ожидание. Сигнал «1» на этом выходе указывает, что МП в состоянии ожидания. Этот сигнал помогает установить неисправный блок, из-за которого МП остановился.

7. З.Пр. - вход запроса на прерывание {глава 7.2.7}. Сигнал «1» поступает извне при необходимости прервать работу МП.

8. Р.Пр. - разрешение прерывания. Сигнал «1» на этом выходе указывает, что прерывания разрешены. Разрешение и запрещение прерывания производится специальными командами.

9. Захват. При поступлении сигнала «1» МП останавливает работу, БА и БД переводятся в третье состояние. При этом МП отключается от ША и ШД.

10. Подтверждение захвата. Сигнал «1» указывает, что МП находится в состоянии захвата.

2.1.3 Магазинная память - стек

При обращении к ячейкам памяти ОЗУ в МПС с процессором К580ВМ80 нужны длинные трехбайтные команды. В первом байте содержится сама команда обращения, а во втором и третьем указывается адрес ячейки памяти. Такая команда выполняется сравнительно долго и при частых обращениях к памяти работа МПС существенно замедляется. Для ускорения работы МПС применяется магазин памяти - стек. Он работает по принципу: первым читается число, записанное последним. Порядок обращения к стеку жесткий, но зато не нужно указывать адрес, и время обращения значительно уменьшается. Стек очень удобен для запоминания промежуточной информации в случае прерывания. Второе его назначение - обеспечение работы с программами. При переходе к подпрограмме содержание РОН пересылается в стек, после выполнения подпрограммы - вызывается из стека в РОН. Стек бывает автономный (встроенный в МП) и внешний (размещенный в ОЗУ). В МП К580ВМ80 используется внешний стек, а в кристалле размещается специальный регистр - указатель стека (УС), в котором хранится адрес первой свободной ячейки стека. Для стека обычно отводятся старшие ячейки памяти ОЗУ. Вначале устанавливается адрес 111 ... 1, при записи адрес декрементируется (А-1), при чтении - инкрементируется (А+1). При работе со стеком на ША выдается содержимое УС, при работе с основной памятью - содержимое РА. 2.2

2.2 Функционирование МП в составе МПС

2.2.1 Алгоритм выполнения команды

При выполнении любой команды цикл работы МП всегда начинается с выборки первого байта команды - кода операции (КОп) в регистр команд {глава 2.1.1}. При этом адрес команды из ПС через БА поступает на ША, УУ вырабатывает сигнал чтения, КОп поступает через БД в РК. ДшК анализирует КОп и, если требуется, МП выбирает 2-й и 3-й байты команды в регистры W и Z соответственно. Адрес последующего байта команды формируется в ПС увеличением его содержимого на 1 с помощью СИД. Затем происходит выполнение команды. В конце производится анализ наличия запросов на прерывание (сигнал ЗПр). Если такой запрос имеется - состояние ПС запоминается и происходит переход к программе обработки прерывания.

2.2.2 Временная диаграмма работы МП

Работа МП происходит под действием двух неперекрывающихся последовательностей тактовых импульсов Ф1и Ф2 (рис.2-2).

Большинство преобразований информации МП производит по Ф2. Временной интервал, в течение которого выполняется одна микрооперация, называется машинным тактом (обозначается Т1, Т2 и т.д.). Машинным циклом (МЦ) называется последовательность тактов, в течение которых осуществляется обмен информацией между МП и внешним по отношению к нему элементом (обозначается М1, М2 и т.д.). МЦ содержит 3-5 тактов. Выполнение команды происходит за 1-5 МЦ. На рисунке 2-3 условно показана последовательность выполнения трех команд, содержащих различное число МЦ. В цикле М1 всегда происходит выборка первого байта команды. Большинство МП являются тактируемыми цифровыми схемами, работающими под воздействием генератора тактовых импульсов (ГТИ). МП К580ВМ80тактируется ГТИ, вырабатывающим две последовательности не перекрывающихся импульсов Ф1 и Ф2 с периодом Ттакт = 0,5 - 2 мкс.

2.2.3 Слово состояния МП

ШД МП не используется в Т1 и начале Т2 для приема и выдачи основной информации. В МП предусмотрены схемы, обеспечивающие выдачу в это время на ШД восьмиразрядного слова состояния (СС). Эти 8 признаков могут использоваться внешними элементами и, в общем случае, позволяют упростить организацию МПС. Слово состояния выдается в начале каждого цикла в такте Т2 во время импульса Ф1 (рис.2-4). Признаки СС характеризуют только данный МЦ. СС выделяется с помощью регистра состояний РС (рис.2-5), в который записывается информация с ШД в момент t, в который одновременно имеются импульсы Ф1 и «Синхр.». МП К580ВМ80 имеет десять типов МЦ и, соответственно, 10 СС, идентифицирующих эти циклы. В таблице 2 приведены СС, соответствующие всем типам МЦ.

Рис.2-4

Рис.2-5

Таблица 2 Слова состояния МП К580ВМ80

Здесь:

MEMR - чтение из памяти;

INP - признак команды ввода (вырабатывается в МЦ3);

М1 - признак МЦ1 (идет выборка КОп, начало выполнения команды);

OUT - признак команды ввода, вырабатывается в МЦ3. Аналогичен сигналу /Зп МП, но появляется несколько раньше и держится в РС до конца цикла;

HLTA - подтверждение останова;

STACK - признак работы со стеком, вырабатывается при обращении к ЗУ по командам работы со стеком, что позволяет иметь 216 ячеек ОЗУ и 216 ячеек стека;

/WO - признак записи или вывода;

INTA - признак начала работы в режиме прерывания.

Например, в команде вывода в трех МЦ выдаются СС № 1,2,7. Использование СС позволяет лучше организовать управление МПС. Для работы с внешними устройствами МП имеет только 2 управляющих сигнала Чт и /Зп, в которых не различаются ПЗУ, ОЗУ и другие внешние устройства. Поэтому приходится использовать некоторые разряды ША для указания конкретного объекта. В СС сигнал MEMR позволяет отделить память от других устройств, что упрощает организацию взаимосвязи отдельных частей МПС.

3 Запоминающие устройства

Запоминающее устройство, или, сокращенно, память служит для хранения цифровой информации.

Память МПС подразделяется на:

программную память, предназначенную для хранения программ и реализованную обычно в виде постоянного запоминающего устройства (ПЗУ);

память данных, или оперативную память (ОЗУ) {модуль 2 глава 9};

внешнюю память для хранения больших массивов информации, обычно реализованную в виде накопителя на магнитном диске (винчестере).

Чаще всего в МПС применяются полупроводниковые ПЗУ и ОЗУ. Они обладают такими достоинствами, как высокое быстродействие, малое потребление энергии, высокая надежность, дешевизна, электрическая совместимость с другими компонентами МПС. Основной недостаток полупроводникового ОЗУ - его энергозависимость. Оно не сохраняет информацию при выключении питания. Когда это недопустимо ОЗУ имеет резервное питание от батарей или аккумуляторов, но это усложняет и удорожает систему.

В функциональном отношении память состоит из однотипных ячеек (регистров), рассчитанных на хранение одного слова. Каждой ячейке присвоен адрес, представленный двоичным кодом.

Емкость ИС памяти обычно выражается в битах или байтах- т, 1024 байта (или 1 Кбайт), 4 К бита и т.д. Информационная организация (или формат) памяти определяется произведением m (слов) х n (длина слова). Например, ИС с емкостью 1024 бит может иметь огранизацию 1024х1 (1Кх1), 256х4, 128х8. Длина слов памяти (nпам) обычно выбирается равной длине слова (разрядности) центрального процессора МПС nцп. Если nпам< nцп, то применяется несколько корпусов ИС. Например, с помощью 2-х ИС памяти 256х4 можно организовать ЗУ с форматом 256х8.

Память может выполнять две операции: ввод информации в адресуемую ячейку - запись (Зп); и вывод информации из адресуемой ячейки - считывание или чтение (Чт). Обе операции носят общее название обращения или, по-другому, доступа к памяти.

3.1 Постоянная память

Если в работающей системе память выполняет только операцию считывания, то ее называют постоянной памятью или ПЗУ. Запись информации в ПЗУ может осуществляться разными способами. В кристаллы ПЗУ, программируемых маской (ПЗУ-ПМ), запись производится только один раз в процессе изготовления с помощью специальной маски (фотошаблона). Изменить хранящуюся информацию невозможно. ПЗУ-ПМ имеют высокую надежность и быстродействие, большую плотность упаковки, энергонезависимость. Стоимость их при массовом производстве низка. Они применяются для хранения неизменяющихся программ и различных констант.

Если однократную запись в память производит пользователь с помощью специального устройства - программатора, а затем она работает только на считывание, то такую память называют ПЗУ, программируемое пользователем (ПЗУ-ПП). Они применяются при макетировании и отладке МПС, а также при производстве малыми сериями.

Применяются также перепрограммируемые ПЗУ (ППЗУ). Запись информации в них может производиться пользователем неоднократно с помощью программатора, но в работающей системе они выполняют только операцию считывания. Информацию в ППЗУ можно стереть, а затем записать в них новую информацию. Стирание производится с извлечением ИС из системы и выполняется либо электрическими импульсами амплитудой 30-50 В, либо с помощью ультрафиолетового излучения, ППЗУ дороже ПЗУ-ПМ и ПЗУ-ПП и имеют меньшую плотность упаковки.

Рассмотрим подробнее внутреннюю структуру ПЗУ ПП на примере простейшей ИС К155РЕ3 (рис.3-1), имеющей организацию 32х8. Для адресации 32-х слов имеются 5 адресных входов А0...А4 (т.к. 25=32). Хранимое слово из 8-ми бит образовано многоэмиттерным транзистором, в каждой эмиттерной цепи которого находится плавкая перемычка из нихрома толщиной 200 Ангстрем. Когда дешифратор адреса выбирает определенное слово, то открывается один из многоэмиттерных транзисторов. При наличии перемычки на соответствующей битовой линии устанавливается высокий уровень напряжения и выходной транзистор VT2 также открывается, и потенциал выхода 1 близок к нулю (логический «0»). Если перемычка расплавлена, то соответствующая битовая линия никуда не подключена («плавающая») и транзистор VT2 закрыт (логическая «1»). Выходы ПЗУ ПП представляют собой схемы с открытым коллектором.Для нормальной работы их надо подключить к источнику питания +Ек через резисторы Rн (на рисунке показано пунктиром).

В незапрагроммированной ИС все перемычки целые, транзисторы VT2 открыты во всех словах, на выходах уровни логического «0». Для программирования некоторого бита (состояние которого необходимо изменить с «0» на «1») на линии А0...А4 подаются сигналы нужного адреса и на базе выбранного многоэмиттерного транзистора появляется высокий уровень. Внешней схемой на выходе программируемого бита устанавливается напряжение около 8 В. Этого напряжения достаточно для включения стабилитрона VD1 с порогом около 7 В, что приводит к включению транзистора VT1, и первый вывод перемычки заземляется. Затем напряжение питания многоэмиттерных транзисторов увеличивается до 12 В, и тогда между выводами перемычки приложено напряжение около 5 В. Возникающий ток нагревает и расплавляет перемычку.

В ПЗУ ПП такого типа иногда возможны отказы из-за повторных замыканий разрушенных перемычек. Зазор очень узкий и иногда «заплывает». Для повышения надежности запрограммированные ПЗУ выдерживают в термостате 24 часа при температуре 100oС и повторно проверяют записанную информацию. Если обнаружено «заплывание» перемычек (некоторые записанные «1» превратились в «0»), то их прожигают повторно.

На практике широко применяются ППЗУ, стираемые ультрафиолетовым облучением. Они строятся на МОП-транзисторах, отличающихся от обычных тем, что между затвором и полупроводником (подложкой) помещают еще один «плавающий» затвор, полностью изолированный со всех сторон окислом кремния. Если при записи информации к затворам таких транзисторов приложить положительное напряжение около 25 В и длительностью в несколько десятков миллисекунд, то под его воздействием электроны, перемещаясь в сторону основного затвора, оседают на плавающем затворе. При считывании к затвору прикладывается положительное напряжение не более 5 В. Если на плавающем затворе нет электронов, то канал исток-сток становится проводящим, что соответствует хранению логической единицы. Если на плавающем затворе имеются электроны, то они своим зарядом экранируют затвор и промежуток исток-сток остается непроводящим, что соответствует хранению логического «0». Так как плавающий затвор окружен изолирующим слоем, электроны, попавшие в область плавающего затвора, не могут ее покинуть. В действительности же существует утечка электронов, что приводит к постепенной потере информации. По данным ряда фирм это время составляет не менее 10 лет.

Стирается информация ультрафиолетовым облучением в течение нескольких десятков минут во всех элементах сразу. При этом электроны возбуждаются излучением и стекают в подложку. В результате все плавающие затворы освобождаются от электронов, то есть во все элементы записывается логическая «1».

К таким ППЗУ относятся широко применяемые ИС К573РФ2 (РФ4,РФ5 и др.).

3.2 Оперативная память

Оперативная память или оперативное запоминающее устройство (ОЗУ) {модуль 2 глава 9.2} применяется для хранения оперативной информации, требующейся в процессе обработки. ОЗУ, в отличие от ПЗУ, позволяет: как вводить информацию в адресуемую ячейку (операция Зп), так и выводить (операция Чт) Так как обращение возможно к любой адресуемой ячейке в произвольном порядке, то такие ЗУ называют запоминающими устройствами с произвольной выборкой (ЗУПВ). Возможны различные способы обмена информацией между ОЗУ и МП. Чаще всего используются запоминающие устройства с произвольной выборкой, позволяющие обращаться по любому адресу в произвольном порядке. Различают статические и динамические ОЗУ.

Статическое ОЗУ реализуется на триггерах с непосредственной связью, которые при включенном питании могут хранить информацию неограниченно долго без дополнительных управляющих сигналов.

Большинство ЗУПВ изготовляются на основе МОП транзисторов и имеют так называемую матричную организацию. Функциональная схема ЗУПВ 256х1 с матричной организацией типа 16х16 приведена на рисунке (3-2). После дешифрирования младших битов адреса А0-А3 возникает сигнал Xi, подключающий i-ю строку матрицы. Столбец матрицы Yj выбирается дешифратором старших битов адреса А4-А7 и элемент памяти ЭПij подключается к схеме вывода или ввода информации в зависимости от значения сигнала Сч//Зп. При Сч//Зп=1 происходит считывание информации из памяти; при Сч//Зп=0 - запись в память. Разрешающий сигнал ВМ (выбор микросхемы) активизирует данную ИС. При запрещающем значении сигнала ВМ матрица изолирована от выходов дешифратора и шины ввода-вывода.

Статические ЗУПВ могут быть построены на полупроводниковых приборах различного типа. В настоящее время наиболее распространенными являются ИС статической памяти на МОП транзисторах. КМОП запоминающий элемент состоит из 5-ти транзисторов, четыре из которых (VT1-VT4) образуют триггер. Управление триггером для записи и считывания осуществляется с помощью ключа - транзистора VT5 (рис.3-3).

3.3 Подключение ЗУ к шине данных

Так как шина данных (ШД) является общей для многих устройств, то при их одновременной работе неизбежен «конфликт». Необходимо, чтобы в каждый момент времени к ШД было подключено только одно устройство - источник информации. приемников же информации может быть одновременно подключено несколько. Важно лишь, чтобы мощность выхода источника информационных сигналов была достаточной для подключения нескольких приемников. Оперативное подлючение и одключение выхода какого-либо устройства осуществляется с помощью схемы выхода, имеющей 3 возможных состояния: 1, 0 и «отключено». Выход любой ТТЛ ИС упрощенно можно представить в виде двух последовательно включенных транзисторов (см. рис.3-4).

Если транзистор VT1 открыт и закрыт VT2, то на выходе высокий уровень сигнала («1»). Если наоборот: VT2 открыт, VT1 закрыт, то на выходе низкий уровень («0»). Если одновременно закрыты оба транзистора, то выход ИС оказывается отключенным от источника питания и не оказывает никакого влияния на работу других устройств, подключенных к общей шине.

Рис.3-4 Выход с тремя состояниями

4. Интерфейсные устройства

Интерфейсные устройства (ИУ) служат для сопряжения внешних устройств с МПС. Они обычно реализуются в виде одной или нескольких СИС или БИС.

PAGE \* MERGEFORMAT 3


А также другие работы, которые могут Вас заинтересовать

45328. Референдум – понятие, виды правовое регулирование 25.75 KB
Форма прямого волеизъявления граждан РФ по наиболее важным вопросам государственного и местного значения в целях принятия решений осуществляемого посредством голосования граждан РФ обладающих правом на участие в референдуме. Виды референдума в зависимости от территории: 1 всероссийский референдум он проводится по вопросам общефедерального значения на основании решения Президента РФ; 2 референдум субъекта РФ он проводится по вопросам ведения соответствующего субъекта РФ или совместного ведения РФ и субъектов РФ если указанные вопросы не...
45329. Функции Президента Российской Федерации 21 KB
Назначение с согласия Государственной Думы Председателя Правительства РФ других членов Правительства РФ направление его политики и принятие решения об отставке Правительства РФ; 2 представление Государственной Думе кандидатуры на должность Председателя Центрального банка РФ постановление перед ней вопроса об освобождении от должности Председателя Центрального банка РФ; 3 представление Совету Федерации кандидатур для назначения на должности судей Конституционного Суда РФ...
45330. Порядок избрания и освобождения от должности Президента Российской Федерации 23.1 KB
Порядок избрания и освобождения от должности Президента Российской Федерации. Президент Российской Федерации избирается сроком на шесть лет гражданами Российской Федерации на основе всеобщего равного и прямого избирательного права при тайном голосовании. Президентом Российской Федерации может быть избран гражданин Российской Федерации не моложе 35 лет постоянно проживающий в Российской Федерации не менее 10 лет Одно и то же лицо не может занимать должность Президента Российской Федерации более двух сроков подряд. Порядок выборов Президента...
45331. 22.83 KB
ИНСТИТУТ УПОЛНОМОЧЕННОГО ПО ПРАВАМ ЧЕЛОВЕКА В РФ В РФ защитой прав и свобод граждан их соблюдения государственными органами власти органами местного самоуправления и должностными лицами занимается Уполномоченный по правам человека в РФ. В пределах своей компетенции Уполномоченный по правам человека в РФ: 1 рассматривает жалобы граждан РФ и находящихся на территории РФ иностранных граждан и лиц без гражданства; 2 рассматривает жалобы на решения или действия государственных органов органов местного самоуправления должностных лиц...
45332. Государственная Дума Российской Федерации - палата Федерального Собрания Российской Федерации 26.28 KB
Полномочия местного самоуправления это закрепленные федеральным законодательством а также нормативными правовыми актами субъектов Российской Федерации и правовыми актами органов местного самоуправления за населением соответствующих территорий выборными и иными органами местного самоуправления права и обязанности связанные с реализацией задач и функций местного самоуправления на соответствующей территории. Полномочия местного самоуправления реализуются как непосредственно населением городских и сельских поселений других территорий путем...
45333. Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы 25.69 KB
Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы определяется Конституцией РФ ст. О статусе члена Совета Федерации и депутата Государственной Думы Федерального Собрания Российской Федерации. Депутатом Государственной Думы является избранный представитель народа уполномоченный осуществлять в Государственной Думе законодательные и иные полномочия предусмотренные Конституцией РФ и федеральным законом. Срок полномочий...
45334. Система законодательных (представительных) и исполнительных органов государственной власти субъектов Российской Федерации 20.8 KB
Система законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации устанавливается ими самостоятельно в соответствии с основами конституционного строя Российской Федерации и ФЗ от 06. Об общих принципах организации законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации.Образование формирование деятельность законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации их...
45335. Законодательный процесс в РФ 25.93 KB
В составе городского поселения также могут находиться сельские населенные пункты не имеющие статуса сельских поселений в которых местное самоуправление осуществляется населением непосредственно и или через выборные и иные органы местного самоуправления. Городской округ городское поселение которое не входит в состав муниципального района и органы местного самоуправления которого осуществляют полномочия по решению установленных законом вопросов местного значения поселения и вопросов местного значения муниципального района а также могут...
45336. Подходы к построению систем искусственного интеллекта 33 KB
Структурный подход Под структурным подходом подразумевается попытки построить искусственный интеллект путём моделирования структуры человеческого мозга. Основной моделируемой структурной единицей в персептронах как и в большинстве других вариантов моделирования мозга является нейрон. Позднее возникли и другие модели которые обычно называют нейронные сети. Эти модели различаются по строению отдельных нейронов по топологии связей между ними и по алгоритмам обучения.

ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ

Конспект лекций

Москва 2013

ОРГАНИЗАЦИЯ МИКРОПРОЦЕССОРОВ И МИКРОПРОЦЕССОРНЫХ СИСТЕМ

МИКРОПРЦЕССОРНЫЕ СИСТЕМЫ НА ОСНОВЕ МИКРОПРОЦЕССОРНОГО КОМПЛЕКТА СЕРИИ К580

Состав микропроцессорного комплекта

МПК серии К580 содержит набор БИС для построения микропроцессорных систем невысокого быстродействия, работающих с тактовой частотой до 2,5 МГц. С использованием этого МПК строятся микропроцессорные системы (МПС), решающие задачи управления различными технологическими процессами.

Комплект имеет следующие особенности. В нем предусмотрена БИС центрального процессора, содержащая в одной микросхеме операционное и управляющее устройства, что существенно упрощает построение микропроцессорной системы. Кроме того, для облегчения программирования при управлении микросхемами МПК применяется фиксированный набор команд, что приводит к снижению быстродействия микропроцессорной системы. Это связано с тем, что предложенный набор команд может оказаться недостаточным для решения конкретной задачи.

Ряд микросхем, входящих в состав МПК, выполнены по n-МОП технологии, другие - по технологии ТТЛШ. Однако независимо от технологии изготовления все входные и выходные сигналы микросхем серии К580 соответствуют уровням логических схем ТТЛ – технологии, что упрощает согласование с микросхемами ТТЛ – технологии любых серий.

Все микросхемы МПК могут работать в диапазоне температур от -10° С до + 70° С. Микросхема К580ВМ80А требует трех источников напряжения:питания: +5 В, -5 В и +12 В, микросхема К580ГФ24 – двух источников: +5 В и +12 В, остальные микросхемы – одного источника: +5 В.

В таблице 2.1 приведен состав микропроцессорного комплекта серии К580.

Таблица 2.1 Состав микропроцессорного комплекта

Обозначение микросхемы Назначение Выполняемая функция
К580ВМ80А Параллельный центральный процессор Центральный процессор с фиксированной системой команд для обработки параллельной 8-разрядной информации
К580ВВ51А Универсальный синхронно/асинхронный приемопередатчик 8-разрядное универсальное синхронно/асинхронное приемо-передающее устройство последовательной связи
К580ВИ53 8 или 16-разрядный таймер Формирует программно-управляемые временные задержки для синхронизации управляемых объектов в реальном масштабе времени
К580ВВ55А 8-разрядный параллельный порт Программируемый ввод-вывод параллельной информации
К580ВТ57 8 или 16-разрядный контроллер прямого доступа к памяти Высокоскоростной обмен информацией между памятью МПС и периферийными устройствами
К580ВН59 Контроллер прерываний Обслуживает до восьми запросов на прерывания от внешних устройств
К580ВВ79 8-разрядный интерфейс клавиатуры и дисплея Контроллер ввода-вывода для клавиатуры и дисплея
К580ВГ75 8 или 16-разрядный интерфейс электронно-лучевой трубки Контроллер вывода информации из памяти МПС на экран электронно-лучевой трубки
К580ВК91А Интерфейс канала Устройство сопряжения микропроцессора с информационно-измерительной системой
К580ВА93 Приемопередатчик канала Приемопередатчик микропроцессор - канал общего пользования
К580ГФ24 Генератор тактовых импульсов Формирует две последовательности тактовых импульсов, необходимые для работы центрального процессора
К580ВК28 К580ВК38 Системный контроллер и шинный формирователь Формирует сигналы управления различными устройствами, входящими в МПС
К580ИР82 К580ИР83 Буферный регистр 8-разрядный буферный регистр с тремя состояниями
К580ВА86 К580ВА87 Шинный формирователь Двунаправленный 8-разрядный шинный формирователь с высокой нагрузочной способностью и тремя состояниями

Блок регистров

Микропроцессор К580 содержит программно-доступные 8-разрядные регистры общего назначения (РОН) и 16-разрядные специализированные регистры: счетчик команд и регистр-указатель стека. Кроме того, имеются непосредственно недоступные программе регистры: 8-разрядные регистры временного хранения W, Z и 16-разрядный регистр адреса.

Регистры общего назначения B, C, D, E, H, L используются для хранения операндов, промежуточных и конечных результатов, а также адресов и индексов при косвенной и индексной адресации. Для выполнения операций со словами двойной длины и операций формирования и пересылок двухбайтных адресов имеется возможность оперировать с содержимым пар регистров BC, DE, HL.

Особенность блока регистров МП является наличие в его составе схемы инкремента/декремента (INC/DEC), которая производит над содержимым счетчика команд (PC) и регистра-указателя стека (SP) операцию прибавления/вычитания 1 без привлечения АЛУ.

Счетчик команд (16-ти разрядный регистр) предназначен для хранения адреса команды; после выборки из оперативной памяти текущей команды содержимое счетчика увеличивается на единицу и таким образом формируется адрес очередной команды (при отсутствии безусловных и условных переходов).

Указатель стека (16-ти разрядный регистр) служит для адресации стековой памяти. В МП К580 используется «перевернутый» стек, т.е. при передаче в стек слова значение указателя стека (адрес вершины стека) уменьшается, а при извлечении слова из стека увеличивается.

Стековая адресация широко используется при работе с подпрограммами и в процедурах прерывания.

Для кратковременного хранения некоторых операндов и результатов выполнения операций служат регистры временного хранения данных W, Z. Использование регистров временного хранения позволяет МП за один цикл выполнения команды реализовать, например, такую операцию, как обмен содержимым двух регистров.

В состав блока регистров входит регистр адреса памяти (RA), предназначенный для хранения адреса ячейки памяти, в которой записана текущая команда. Регистр адреса недоступен программисту. Однако любая пара регистров (BC, DE, HL) может быть использована для задания адресов команд и данных в программе.

Буферные схемы

Двунаправленный буфер шины данных предназначен для логического и электрического разделения внутрипроцессорной шины данных и внешней, системной шины данных. Буфер состоит из регистра-защелки и выходной схемы с тремя состояниями, т.е. схемы обеспечивающей на выходе состояния 0, 1 и полное отключение от нагрузки (высокоимпедансное состояние).

В режиме ввода информации внутренняя шина данных подключается к регистру-защелке буфера, загрузку которого из внешней шины производит буферная схема под управлением команды.

В режиме вывода информации буферная схема передает в шину данных содержимое буферного регистра-защелки, на вход которого по внутренней шине с одного из регистров загружена информация, подлежащая выдаче.

Во время выполнения операций в МП, не связанных с процедурами обмена с внешними устройствами буферная схема отключается от шины данных.

Во время выполнения операций в МП не связанных с процедурами обмена с внешними по отношению к МП устройствами системы, буферная схема отключается от шины данных, т.е. переходит в высокоимпедансное состояние (не нуль, не один).

Буферная схема шины адреса – однонаправленная и обеспечивает передачу адресов команд и данных, а также номеров периферийных устройств от МП в систему. Выход буфера адреса, точно также как и буфера данных может переходить в отключенное состояние.

Управляющее устройство

Блок управления включает:

8-ми разрядный регистр команд (RK), предназначенный для приема и хранения кода операции;

Устройства управления и синхронизации (CU), формирующего управляющие сигналы для всех внутренних регистров и блоков МП, а также его выходные сигналы управления;

Управляющей памяти, выполненной на программируемой логической матрице, в которой хранятся микропрограммы отдельных операций. Пользователь не может изменить содержимого управляющей памяти, а, следовательно, и состава команд.

Команды пересылки данных

Команды пересылки данных обеспечивают выполнение операций размещения, обмена, загрузки и перемещения данных. Среди всех команд микропроцессора эти команды используются наиболее часто. Признаки условия не устанавливаются командами этой группы. В таблице 2.5 приведены команды пересылки данных.

Таблица 2.5 Команды пересылки данных

Мнемоника команды Код операции Количество байтов в команде Выполняемые действия
MOV R1, R2 01DDDSSS 1 1 (R1) (R2)
MOV R, M 01DDD110 1 2 (R) M(HL)
MOV M, R 01110SSS 1 2 M(HL) (R)
MVI R, data 00DDD110 2 2 (R) (байт2)
MVI M, data 00110110 2 3 M(HL) (байт2)
LXI RP, data 00RP0001 2 3 (RH) (байт3); (RL) (байт2).
LDA addr 00111010 3 4 (A) ((байт3)(байт2))
LHLD addr 00101010 3 5 L ((байт3)(байт2)); H ((байт3)(байт2)+1).
LDAX RP 00RP1010 1 2 (A) (M)
XCHG 11101011 1 1 (H) « (D); (L) « (E)
STA addr 00110010 3 4 ((байт3)(байт2)) (A)
SHLD addr 00110010 3 5 ((байт3)(байт2)) (L); ((байт3)(байт2)+1) (H)
STAX RP 00RP0010 1 2 M(RP) (A)

Команда пересылки с регистровой адресацией MOV A, D) осуществляет передачу содержимого регистра D в аккумулятор. Команда с непосредственной адресацией MVI D, 4Е 16 производит пересылку числа, приведенного во втором байте команды (в примере число 4Е 16), в регистр D, адрес которого указан в разрядах 5…3 первого байта команды. Команда с прямой адресацией LDA 0200 16 производит передачу содержимого ячейки памяти, адрес которой указан во втором и третьем байтах команды (0200 16), в аккумулятор. Команда LDAX BC загружается содержимое ячейки оперативной памяти, адресом которой служит содержимое пары регистров BC в аккумулятор.

Команды логических операций

Задачей этих команд является выполнение логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, сравнения, сдвига и инвертирования. Эти команды выполняют логические операции над данными в памяти или регистрах и признаках. В таблице 2.7 приведены команды логических операций.

Таблица 2.7 Команды логических операций

Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия
ANA R 10100SSS 1 1 (A) (A)Ù(R). Устанавливаются флаги – Z, S, P, AC.
ANA M 10100110 1 2 (A) (A)ÙM(HL). Устанавливаются флаги – Z, S, P, AC.
ANI data 10101SSS 2 2 (A) (A)Ù(байт2). Устанавливаются флаги – Z, S, P, AC.
XRA R 10101SSS 1 1 (A) (A)Å(R). Устанавливаются флаги – Z, S, P.
XRA M 10101110 1 2 (A) (A)ÅM(HL). Устанавливаются флаги – Z, S, P.
XRI data 11101110 2 2 (A) (A)Å(байт2). Устанавливаются флаги – Z, S, P.
ORA R 10110SS 1 1 (A) (A)Ú(R). Устанавливаются флаги – Z, S, P.
ORA M 10110110 1 2 (A) (A)ÚM(HL). Устанавливаются флаги – Z, S, P.
ORI data 11110110 2 2 (A) (A)Ú(байт2). Устанавливаются флаги – Z, S, P.
CMP R 10111SSS 1 1 (A)-(R). Флаги – Z=1, если (A)=(R), C=1, если (A)<(R).
CMP M 10111110 1 2 (A)-M(HL). Флаги – Z=1, если (A)=(M), C=1, если (A)<(M).
CPI data 11111110 2 2 (A)-(байт2). Флаги – Z=1, если (A)=(байт2), C=1, если (A)<(байт2).
RLC 00000111 1 1 Сдвиг влево (A) (2A). Устанавливается флаг C.
RRC 00001111 1 1 Сдвиг вправо. (A) (A/2). Устанавливается флаг C.
RAL 00010111 1 1 Циклический сдвиг влево. Устанавливается флаг C.
RAR 00011111 1 1 Циклический сдвиг вправо. Устанавливается флаг C.
CMA 00101111 1 1
CMC 00111111 1 1
STC 00110111 1 1 (C) 1.

Приемы программирования

Для программирования МП необходимо знать состав команд, быть хорошо знакомым с назначением и расположением регистров, т.е. знать архитектуру микропроцессора.

Этапы составления программы должны выполняться в следующей последовательности:

1. Определение и анализ задачи;

2. Составления блок схемы алгоритма решения в общем виде и машинного алгоритма;

3. Написание программы на языке Ассемблера;

4. Трансляция программы в машинные коды;

5. Отладка программы (поиск и устранение ошибок);

6. Документирование программы.

Сформулируем общие требования, предъявляемые к программам, составленным на языке Ассемблера.

В общем виде любая команда на языке Ассемблера записывается следующим образом:

Метка: Операция Данные; Комментарий

Метка используется для обозначения адреса ячейки памяти, в которой хранится данная команда. Она может состоять из шести символов, не должна включать знаков пунктуации и пробелов, причем первым символом должна быть буква. Метка всегда определяется двоеточием и является необязательным элементом команды. Она применяется только при необходимости.

Операция является обязательным элементом команды. Она представляет собой мнемоническую запись из двух – четырех букв, которые указывают на характер выполняемых действий, например:

HLT – мнемоническое обозначение команды останов МП К580.

Данные – часть команды, в которой может размещаться одно или два восьмиразрядных слова в зависимости от типа команды (адрес ячейки памяти, адрес порта ввода- вывода, непосредственные данные).

Целью настоящей книги является – научить читателя основам микропроцессорной техники. Предполагается некий начальный уровень знаний в радиотехнике. Я определяю этот уровень, как специалист или любитель, знакомый с радио и импульсной техникой. В задачи этой книги не входит объяснение, что такое резисторы, конденсаторы или транзисторы. Предполагается, что читатель знаком с этим и с схемотехникой аналоговых устройств, но стремится узнать, что такое микропроцессорные устройства и научиться самому конструировать их. В начале книги раскрываются общие принципы цифрового представления сигнала, раскрываются такие понятия, как логические элементы, цифровой сигнал, принципы хранения и обработки цифровой информации. А так же описывается принцип работы тех элементов цифровой техники, которые понадобятся нам в дальнейшем, когда мы будем учиться строить микропроцессорную систему. Описание всех этих элементов дается в книге лишь в той мере, в которой это нужно для быстрого понимания основных принципов построения микропроцессорных систем. Для более полного понимания работы каждого элемента рекомендую обратиться к моему сайту под названием «Цифровые микросхемы и микропроцессоры» http:// www.mirmk.ru .

В качестве примера микропроцессорного устройства в данной книге взята реальная конструкция, разработанная автором – позиционер спутниковой антенны. Позиционер предназначен для автоматизации управления поворотом бытовой спутниковой антенны. Он способен запомнить до 99 позиций (направлений на спутник), а затем автоматически устанавливать антенну в любую из этих позиций. Для этого необходимо лишь выбрать номер этой позиции при помощи пульта дистанционного управления, либо при помощи кнопок на передней панели прибора. Схема и программа позиционера были разработаны автором книги. Опытный образец был изготовлен и испытан с применением стандартного фирменного поворотного устройства (мотор, редуктор, геркон-датчик) иностранного производства. Контроллер выполнен на основе микроконтроллера AT 89C 2051 фирмы Atmel (www.atmel.com или www.atmel.ru ). В связи с этим изучение микропроцессоров так же будет проводиться на примере процессора AT 89C 2051. В настоящее время фирма Atmel перешла на более современные процессоры типа AVR . Однако построение микропроцессорных устройств на данном процессоре с моей точки зрения вполне оправдано, так как его параметры прекрасно подходят для этой задачи, а цена процессора AT 89C 2051 существенно ниже по сравнению с любым процессором из семейства AVR .

В книге подробно разбирается принципиальная схема позиционера, каждого его узла. Затем приводится структура управляющей программы. Полный текст программы дается в приложении (дискета). В последних главах описываются основные приемы программирования, на примере конкретных программных модулей.

Автор надеется, что эта книга будет полезна широкому кругу специалистов и радиолюбителей и будет благодарен за любые замечания и комментарии по книге. Все замечания прошу высылать по адресу Крым, г. Симферополь, ул. Русская, 194 или по E -mail : avbelov@ ukr.net . Нужно заметить, что публикуемый здесь текст - это самый первый черновой вариант книги. Со времени его написания книга была написана полностью, издана в 2004 году. Затем книга претерпела довольно значительные изменения, выдержала уже около десяти переизданий. Самое последнее издание книги вы можете заказать в бумажном варианте по льготной цене перейдя на этом сайте на соответствующую страницу

Ликбез для начинающих

Глава 1. Что же такое микропроцессор.

Что же такое микропроцессор. И чем он отличается от микроконтроллера?

Вообще то процессор – это одна из составных частей компьютера. До того, как изобрели микропроцессор (то есть процессор на одной микросхеме) существовали целые процессорные блоки. В больших компьютерах. Для прояснения вопроса нужно понимать, что же такое компьютер. Компьютер – это устройство для автоматической обработки информации. Причем информация в компьютере представляется в виде чисел. Любая компьютерная система состоит из следующих основных частей: Процессор, Блок памяти, Порты ввода вывода. В нашу задачу не входит изучение древних видов компьютеров. В дальнейшем речь пойдет о микропроцессорах и микроконтроллерах. Итак:

ü Память. Это набор ячеек, в каждой из которых хранится одно число. Причем это не совсем то число, с которым мы с вами привыкли иметь дело. Это упрощенное компьютерное число. Обычно каждая ячейка памяти может хранить число принимающее значения от нуля до 255. Подробнее об этом будет рассказано ниже.

ü Порты ввода/вывода. Это некие микросхемы, при помощи которых микропроцессорная система может общаться с внешним миром. Через порты ввода компьютерная система получает информацию из вне, а через порты вывода она выдает результаты своей работы и управляет внешними устройствами. Только благодаря этим самым портам ввода/вывода к компьютеру, подключаются такие устройства, как клавиатура, мышь, дисководы, CD -ROM и т.д. Те читатели, которые знакомы с компьютерами, возможно, слышали термины «параллельный порт» (LPT ) и «последовательный порт» (COM ). Так вот в данном случае речь идет совсем о другом понятии. Это просто схожие термины. Параллельный и тем более последовательный порты компьютера – это целые, достаточно сложные схемы, которые в свою очередь управляются как раз таки при помощи портов ввода/вывода. Не нужно так же думать, что клавиатура и мышь используют только порты ввода, а дисплей порт вывода. Для управления большинством устройств компьютера используются как порты ввода, так и порты вывода микропроцессорной системы. Возможно, вы удивлены, что я называю внешними устройствами и жесткий диск и флоппи дисковод. Там, внутри компьютера, скрыто еще много устройств, которые по отношению к микропроцессору являются внешними, хотя находятся зачастую не только внутри компьютера, но и непосредственно на материнской плате – главной плате компьютера.

ü Процессор. Процессор – это самая главная часть, сердце всей системы. Он предназначен для того, что бы выполнять различные последовательности действий с числами в памяти и с данными в портах ввода/вывода. И всего то!

Все три части вычислительной системы связаны между собой, так называемыми шинами данных. По этим шинам передаются цифровые сигналы от процессора к модулю памяти и портам ввода/вывода и обратно к процессору.

Рис. 1.

Что же может делать процессор с этими числами? Да то, что вообще с ними можно делать. Он может читать их из различных ячеек памяти, складывать, вычитать, сравнивать, затем записывать в те же или в другие ячейки памяти. Еще он может выполнять логические (Булевы) операции с числами (что это такое я подробно опишу ниже). Более мощные процессоры могут даже умножать и делить числа. Ну и кое, какие специальные операции, которые мы обязательно будем разбирать, когда будем подробнее изучать работу микропроцессора.

С портами ввода/вывода процессор делает гораздо меньше операций, чем с ячейками памяти. Ведь порты ввода – это устройства, на которые извне поступают какие либо электрические сигналы и процессор считывает их в виде все те же цифр. А порты вывода – это некие устройства, на которые процессор может подавать различные цифры. И эти цифры, превращаются в электрические сигналы, которые управляют, какими ни будь внешними устройствами.

Вот, в принципе и все, что может процессор. Но этого хватает, что бы выполнять все те чудеса, которые мы привыкли видеть от компьютеров. Оказывается все на свете можно описать цифрами. И текст, и изображение, и звуки, в том числе музыку. Хорошо поработали ученые – математики. Они сумели разработать математические модели всех этих процессов. Только считай по быстрее! А современные процессоры это могут! Конечно, современные процессоры имеют гораздо больший набор команд. Но, в основном, это специализированные групповые команды, заменяющие какой ни будь часто используемый набор более простейших. Наша книга не ставит перед собой задачи изучения современных микропроцессоров для персональных компьютеров. Наша задача – небольшие специализированные микропроцессорные устройства. Такие, как, например какой ни будь хитрый таймер, система управления стиральной машиной или блок управления спутниковой антенной. Они имеют общее название: микропроцессорные контроллеры. Вот на это и направим свой взор.

Ну, так что же это за такое чудесное устройство – микропроцессор. Он и читает и вычисляет и записывает и столько разных умных вещей делает! Как же он это все умеет. Видимо очень умная микросхема? На самом деле микропроцессор – это просто автомат, который выполняет, заложенные в нем операции по ПРОГРАММЕ. Программа – это последовательность команд для процессора, записана в той же самой памяти, то же в виде цифр. Иногда, правда память делится на две части: память программ и память данных. В процессоре заложен простой алгоритм. Сразу после включения или после прихода сигнала сброса (Reset ) процессор начинает читать из той области памяти, которая отведена для хранения программ, по очереди число за числом. Каждым таким числом закодирована команда. Команда – это одно из действий, которое может выполнить микропроцессор. Число, которым закодирована команда, называется код операции. Процессор читает код операции, выполняет эту операцию. Затем читает следующий код, опять выполняет. Так он последовательно читает эти коды и выполняет их. Это и есть процесс выполнения прграммы. А кто же записал эти коды в память? Программист! Программист сначала придумал программу. Затем записал ее в микросхему памяти. Вставил микросхему в микропроцессорную систему и включил питание. Система заработала. Вот вам и умная машина. Вульгарный автомат.

В микропроцессорных контроллерах для хранения программ используют так называемые постоянные запоминающие устройства (ПЗУ). По-английски это звучит как ROM (read only memory ). Они называются постоянными потому, что после записи туда информации она там не меняется. Запись – это специальный процесс, выполняемый при помощи специальных устройств – программаторов ПЗУ. Информация в них хранится за счет прожигания определенных областей микросхемы. Прошил раз и пользуешься этой информацией долгое время. Для хранения программы микропроцессорного контроллера это как раз очень подходит. Микропроцессор может только читать из такой памяти. Записать туда он ничего не сможет. Если же он попробует записать туда информацию, ничего страшного не произойдет. В памяти останется то, что там было до попытки записи. Кроме постоянного запоминающего устройства в системе должна быть обязательно память, выполненная на микросхемах оперативной памяти. То есть оперативное запоминающее устройство (ОЗУ). По-английски RAM . В эту память процессор может, записывать информацию, а затем читать ее. Ни одна программа не обходится без некоторого количества ячеек памяти для хранения множества промежуточных результатов и вспомогательных величин. Для этих целей и служит ОЗУ.

Ну а что же такое микроконтроллеры. Иногда мы читаем «Микроконтроллер AT 89C 2051». Микроконтроллер - это дитя дальнейшей интеграции, это целая микропроцессорная система на одном кристалле! Одна микросхема содержит в себе все составляющие микропроцессорной системы: память, порты ввода/вывода и собственно процессор. Кроме того, там часто располагаются некоторые внешние (по отношению к процессору) устройства (такие устройства часто называют «периферийными»): таймеры, устройства прерывания, компараторы и др. Значения этих, пока непонятных терминов вы узнаете из последующих глав. Вообще с понятиями «микропроцессор» и «микроконтроллер» существует некоторая путаница. То, что я сейчас назвал микроконтроллером, иногда тоже называют микропроцессором. Что бы понять - о чем идет речь, следите за контекстом подаваемой информации.

В продолжение темы:
Linux

Для того чтобы добавить новые характеристики номенклатуре 1С или вести учет по характеристикам на сайте интернет-магазина, необходимо: установить настройки в разделе...

Новые статьи
/
Популярные