Проектирование микропроцессорного модуля автоматизированной информационной системы
Разработка структурной схемы и алгоритма функционирования микропроцессорного модуля программного обеспечения автоматизированной информатизационно-измерительной системы. Характеристика принципиальной схемы модуля, распределения памяти и задание портов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.08.2012 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
27 xor ax, ax ; обнулить аккумулятор
28 mov bx,ffffh ; заполнить bx единицами
29 mov es, ax ; инициализировать сегмент es
30 mov di, 010h ; 10h = 4*4 - прерывание INT O (по переполнению) -
31 init_int: ; последнее из обязательных системных прерываний
32 mov es:[di], bx ; инициализировать вектор прерывания значениями
33 mov es:[di+2], ax ; адреса стартовой ячейки памяти
34 sub di,2 ; перейти к следующему вектору
35 jnz init_int
36 mov es:[014h], cs ; 5*4=20=14h. прерывание №5 - от принтера
37 mov es:[016h], offset output ; переход на программу вывода
38 mov es:[018h], cs ; прерывание №6 - от клавиатуры
39 mov es:[01Ah], offset input ; переход на программу ввода
40 mov ax, 1Ch ; установка сегментов данных
41 mov es, ax ; сразу после таблицы векторов прерываний
42 mov ds, ax
43 mov ax, 1000h ; базовый адрес стека - 10000h
44 mov ss, ax
45 mov sp, 0fffeh ; начало стека - с конца ОЗУ
46 mov al, PPIW ; загрузка упр. слова для ППИ
47 out PPIR, al
48 mov al, 00001101b ; сигнал сброса принтера
49 out PPIC, al ; загрузить в порт С - порт УС принтера
50 mov al, PICW ; загрузка упр. слова для ПКП
51 out PICR1, al ; адрес ПКП при A0=0
52 mov al, PKDIW ; загрузка упр. слова для ПККИ
53 out PKDIR, al
54 mov al,00001111b ; снятие сигнала сброса принтера
55 out PPIC, al
56 xor ax,ax ; обнулить аккумулятор
57 mov si,ax ; указать на последний введенный элемент
58 sti ; разрешить прерывания по входу INTR
59 hlt ; перевести МП в режим «останов»
60 init ENDP
61 test PROC NEAR ; подпрограмма тестирования работы процессора
62 mov ax, 5 ; проверка сумматора
63 mov bx, ax
64 mov cx, ax
65 mov dx, ax
66 add ax, ax
67 cmp ax, 10
68 jne error_cpu
69 add bx, bx
70 cmp bx, ax
71 jne error_cpu
72 add cx, cx
73 cmp cx, ax
74 jne error_cpu
75 add dx, dx
76 cmp dx, ax
77 jne error_cpu
78 mov ah, 11111111b ; проверка сдвигателя
79 mov cx, 8
80 shift:
81 shr ah, 1
82 jnc error_cpu
83 loop shift
84 ret
85 error_cpu:
86 mov si,1 ; указать на смещение в области вывода
87 mov ds:[si],FFFFh ; поместить в обл. вывода значение кода ошибки
88 int 32 ; вызов п/программы вывода
89 jmp error_cpu
90 test ENDP
91 test_rom PROC NEAR ; подпрограмма тестирования пзу
92 mov ax, ROM ; начальный адрес пзу - F4000h
93 mov es, ax
94 mov si, 0 ; тест с ячейки 2
95 xor ax, ax ; обнулить аккумулятор
96 mov cx, BFFFh; счетчик цикла теста (48Кбайт -1)
97 count:
98 add ax, es:[si] ; добавить к сумме содержимое текущей ячейки
99 inc si ; передвинуть указатель на следующую
100 loop count ; повторять в цикле
101 cmp al, controlsum ; сравнить полученную сумму с эталонной
102 je end_tst ; если совпадают - конец теста
103 error_rom:
104 mov si,1
105 mov ds:[si],FFFEh ; поместить в область вывода знач. кода ошибки
106 int 32 ; вызов п/программы вывода
107 jmp error_rom
108 end_tst: ret
109 test_rom endp
110 test_ram PROC NEAR ; подпрограмма тестирования озу
111 mov cx,1000h ; вначале - тест старшего банка ОЗУ
112 test_bank:
113 mov ds, cx
114 mov di, 0ffffh ; счетчик повторений
115 test_cell: mov ax, СONST1
116 mov [di],ax ; записать в память
117 mov bx,[di] ; считать из памяти
118 cmp ax,bx ; сравнить записанное и считанное
119 jne error_ram ; перейти на обработчик ошибок
120 mov ax, СONST2; продолжить тест с другой константой
121 mov [di],ax ; записать в память
122 mov bx,[di] ; считать из памяти
123 cmp ax,bx ; сравнить записанное и считанное
124 jne error_ram ; перейти на обработчик ошибок
125 dec di ; перейти к следующему адресу
126 jnz test_cell
127 test cx,0 ; младший банк протестирован?
128 jz end_test_ram
129 mov cx,0 ; переход к тестированию младшего банка ОЗУ
130 jmp test_bank
131 error_ram:
132 mov si,1
133 mov ds:[si],FFFDh ; поместить в обл. вывода значение кода ошибки
134 int 32 ; вызов п/программы вывода
135 jmp error_ram
136 end_test_ram: ret
137 test_ram ENDP
138 input PROC NEAR ; обработчик прерывания от клавиатуры
139 in al, PKDID ; считать номер клавиши из ПККИ
140 test al,64 ; анализировать его значение
141 jz need_output ; нажата клавиша печати
142 test al,63
143 jz need_comp ; нажата клавиша обработки
144 cli ; запретить прерывания
145 inc si
146 mov ds:[si],al ; иначе сохраним ее код в области вывода
147 sti ; разрешить прерывания
148 jmp end_input
149 need_comp:
150 call computing
151 need_output:
152 int 32 ; вызов п/программы вывода
153 end_input:
154 mov al,64h ; очистка регистра текущих прерываний ПКП
155 out PICR1, al
156 iret
157 input ENDP
158 output PROC NEAR ; обработчик прерывания от принтера
159 and si,si ; установить флаг z
160 jz end_out ; если si=0, данные к выводу не готовы
161 ready:
162 in al, PPIB ; считать слово состояния принтера (порт В ППИ)
163 or al,00011111b ; выделить значащие биты
164 test al,19h ; 11001b -слово состояния принтера, готового к приему
165 jnz ready ; дожидаться готовности принтера
166 cli ; запретить прерывания
167 mov al, ds:[si] ; получить очередной байт из памяти
168 dec si ; перевести указатель на следующий элемент
169 sti ; разрешить прерывания
170 out PPIA,al ; вывести текущий байт на принтер (порт А ППИ)
171 mov al,LPTW1 ; управляющее слово для принтера - установить строб
172 out PPIC,al
173 mov al, LPTW2 ; снять строб
174 out PPIC,al
175 mov al,64h ; очистка регистра текущих прерываний ПКП
176 out PICR1, al
177 iret
178 output ENDP
179 computing PROC NEAR ; подпрограмма обработки данных
180 test si,0 ; данных нет - выход
181 jz comp_end
182 mov di,si ; начать с конца массива данных
183 mov al, ds:[di] ; загрузить первый элемент
184 mov ch,al ; сh - максимальный элемент
185 mov cl,ax ; cl - минимальный элемент
186 min_max:
187 mov al, ds:[di] ; загрузить очередной элемент
188 cmp al,ch ; сравнить полученный байт с максимальным значением
189 jns next_1 ; новое значение меньше предыдущего
190 mov ch,al ; иначе - обновить максимальное значение
191 next_1:
192 cmp cl,al ; сравнить полученный байт с миним. значением
193 jns next_2 ; новое значение больше пердыдущего
194 mov cl,al ; иначе - обновить минимум
195 next_2:
196 dec di ; перейти к след. байту
197 jnz min_max ; больше нет введенных данных
198 cli ; запретить прерывания
199 inc si ; указать на следующий (пустой) элемент массива данных
200 mov ds:[si],cx ; сохранить в массив макс. и мин. значения
201 inc si ; сдвинуть указатель в массиве на последний элемент
202 add ch,cl ; получить сумму мин. и макс. эл-ов
203 ror ch,1 ; разделить ее пополам
204 inc si ;
205 mov ds:[si],ch ; сохранить полученное значение в массив
206 sti ; разрешить прерывания
207 comp_end: ret
208 computing ENDP
209 codesg ends
Размещено на Allbest.ru
Подобные документы
Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.
курсовая работа [215,3 K], добавлен 01.09.2010Разработка структурной диаграммы программного модуля. Представление схемы для основных расчетов выбранного приложения для создания прямоугольной матрицы. Особенности создания пользовательского интерфейса. Тестирование и отладка спроектированного модуля.
курсовая работа [648,4 K], добавлен 27.05.2015Расчет статического модуля оперативной памяти и накопителя. Построение принципиальной схемы и временной диаграммы модуля оперативного запоминающего устройства. Проектирование арифметико-логического устройства для деления чисел с фиксированной точкой.
курсовая работа [3,2 M], добавлен 13.06.2015Разработка функциональной и структурной схемы программного средства. Реализация основного модуля программы. Реализация модуля печати и модуля обновлений. Изучение взаимодействия информационных технологий, методов их интеграции и обмена данными.
дипломная работа [3,2 M], добавлен 27.10.2017Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014Анализ функциональных возможностей автоматизированной информационной системы АРМ "Нарядчик". Разработка базы данных и web-интерфейса модуля по учёту графиков труда и отдыха локомотивных бригад эксплуатационного локомотивного депо АИС АРМ "Нарядчик".
дипломная работа [1,8 M], добавлен 06.07.2015Моделирование предметной области. Состав программного модуля. Разработка логической структуры единой базы данных банковской информационной системы "БИС". Создание экранных форм для ввода и корректировки информации. Разработка интерфейса пользователя.
курсовая работа [1,8 M], добавлен 17.05.2016Характеристика учебно-методического модуля по проектированию автоматизированных систем в TRACE MODE 6. Интегрированная среда разработки TraceMode 6.05. Разработка автоматизированной системы управления. Социально-экономическая эффективность проекта.
дипломная работа [2,9 M], добавлен 30.09.2013Несколько определений ERP системы. Происхождение, развитие, признаки. Что дает внедрение. Особенности разработки программ на Java. Проектирование и реализация модуля ERP системы. Экономическая схема торговой деятельности. Пример реализации схемы.
курсовая работа [1,1 M], добавлен 10.09.2008Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014