Автор работы: Пользователь скрыл имя, 10 Декабря 2011 в 20:13, курсовая работа
Необходимо разработать два варианта формирователя аналогового напряжения сложной формы, используя аппаратный и программный способы реализации устройства. Первый вариант базируется на использовании так называемой “жесткой логики”, т.е. устройства на интегральных логических элементах малого уровня интеграции, второй - на использовании микропроцессорной системы.
Код задания:
Техническое задание.......................................................................................3
Аппаратный способ реализации...................................................................4
Структурная схема устройства................................................................4
Синтез основных узлов устройства........................................................4
Расчёт схемы сброса.......................................................................4
Расчёт цифровых последовательностей.......................................6
Минимизация структурных формул.............................................6
Схема преобразователя кода……………………………………8
Расчёт числа корпусов микросхем и потребляемой мощности............................................................................................10
Программный способ реализации.............................................................11
Структурная схема микропроцессорной системы...............................11
Инициализация микропроцессорной системы................................11
Схема алгоритма функционирования основных узлов устройства…………………………………………………………….13
Расчёт временных соотношений и констант……………………….15
Составление программ и подпрограмм процесса вычисления…..15
Листинг программы.........................................................................18
Список использованной литературы.............................................
Распределение памяти и регистров.
|
Программа формирователя.
№
блока алгори тма |
Адрес ячейки ЗУ (1бразр.код) | Мнемокод команды и операнды {16-разр.код) | Выполняемая операция | Рез-т
выполнения операции (16-р. или двоичн. код) |
Число тактов |
0 |
|
LXI Н
С7 83 |
(HL)← <B3xB2> | (HL)=83C7 | 10 |
|
SPHL | (УС) ← (HL) | (УС)=83С7 | 6 | |
05 |
MVI А
81 |
(A)< ← (B2) | (А)=81 | 7 | |
|
OUT
EF |
(РУС) ← (А) | (РУС)=B8 | 10 | |
1 |
|
MVI D 00 | (C) ←<B2> | (C)=Q0=00 | 7 |
2 |
ов ОС |
CALL
60 80 |
(CK) ← <B3><B2> | (СК)=8060
(СП)=800D |
17 |
3 |
ОЕ OF |
CALL
80 80 |
(CK) ←<B3><B2> | (СК)=8080 (СП)=8010 | 17 |
4 |
|
IN
EE |
(A) ← (портEE) | (A)=00000X2X10 | 10 |
5 |
|
MOV E,A | (E) ← (A) | (E)=00000Х2Х10 | 5 |
6 |
14 |
ANI 02 | (A) ← (А) * <В2> | (А)=000000Х10 | 7 |
у |
|
JZ 08
80 |
Еспи(А)=0 то(СК) ←<B3xB2> иначе(СК) <-(СК)+3 | Если X i=0, то
(СК)=8008иначе (СК)=8018 |
10 |
8 |
|
MOV A,E | (А) ← (E) | (A)=00000X2X10 | 5 |
|
ANI 04 | (А) ← (А)*<В2> | (А)=00000Х200 | 7 | |
9 |
|
JZ 0A 80 | Если(А)=0, то(СК) ←<ВЗ><В2> иначе (СК)<г (СК)+3 | Если Х2=0,
то
(СК)=800А иначе(СК)=801Е |
10 |
10 |
|
INR D | (C) ← (C)+1 | (C)=Qn+l=l,2...K | 5 |
11 |
|
MOV A,D | (А) ← (D) | (А)=1,2 К | 5 |
|
Подпрограмма преобразователя кода.
№ блока алгоритма | Адрес яч. ЗУ(16-
разр.код) |
Мнемокод команды и операнды (16-разр.код) | Выполняемая
Операция |
Результат выполнения операции (16-разр. или двоими, код) | Число тактов |
|
61 62 |
LXI H 40
80 |
(HL) ← <B3xB2> | (HL)=8040 | 10 |
2 |
|
MOV A,D | (A) ← (D) | (А)=00,01...C | 5 |
65 |
ADD L MOV L,A | (A) ←
(A)+(L)
(L) ← (A) |
(A)=90...99 (L)=90...99 | 4 5 | |
33 |
|
MOV A,M | (A) ← [(HL)] | (A)=Y°,Y1..Y12 | 7 |
|
|
OUT
ED |
(порт F5) ← (A) | (Порт
F5)=Y°,Y1...,Y12 |
10 |
|
|
RET | Возврат в основную программу | (CK)=800D | 10 |
состояние счетчика | адрес ячейки ЗУ | содержимое ячейки ЗУ | ||||||||
Yn | Y8 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | ||
0 | 8040 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
1 | 8041 | 35 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
2 | 8042 | 4E | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
3 | 8043 | 67 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
4 | 8044 | 80 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 8045 | 99 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
6 | 8046 | B2 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
7 | 8047 | 99 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
8 | 8048 | B2 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
9 | 8049 | E4 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
10 | 804A | FD | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
11 | 804B | CB | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
12 | 804C | 80 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Подпрограмма временной задержки.
№ Блока алгоритма | Адрес ячейки ЗУ ( 16-р код) | Мнемокод команды и операнды ( 16-р код) | Выполняемая операция | Рез. Выполнение операции ( 16-р. или двоичный код ) | Число тактов |
1 | 8080 | PUSH D | Сохранение (DE) в СП | В СП сохранение Qn | 12 |
81
82 83 |
LXI D
CD E6 |
(DE) ←<B3><B2> | (DE)=V=E6CD | 10 | |
2 | 84 | DCX D | (DE) ←<B3><B2> | (DE)=V-1,V-2,.....1,0 | 5 |
3 | 85 | MOV A,D | (A) ←(D) | (A)=(D) | 5 |
86 | ORA D | (A) ←(A)*(D) | 4 | ||
4 | 87 | NOP | - | - | 4 |
88 | NOP | - | - | 4 | |
89 | NOP | - | - | 4 | |
8A | NOP | - | - | 4 | |
8B | NOP | - | - | 4 | |
5 | 8C
8D 8E |
JNZ
64 80 |
Если (A) не равно 0 то (СК) ←<B3><B2>, иначе (СК) ←(СК)+3 | (СК)=8064,..,8071 | 10 |
6 | 8F | POP D | Восст. (DE) | (D)=Qn | 12 |
90 | RET | Возврат в основную программу | (СК)=8010 | 10 |
6.Листинг программы.
inport equ 1
outport equ 2
DEL equ 0220h
k equ 0Eh
include init.asm
begin
mvi d,00h
m1 call pk
call delay
in inport
mov E,A
ani 02h
jz begin
m2 mov A,E
ani 04h
jz m1
inr D
mov A,D
sui k
jz begin
jmp m1
pk
lxi H,NAT
mov A,D
add L
mov L,A
mov A,M
out outport
ret
delay
push D
lxi D,DEL
m3 dcx D
mov A,D
ora D
nop
nop
nop
nop
nop
jnz m3
pop D
ret
NAT: db 03h,035h,04Eh,067h,
include stack.asm
end