Інститут менеджменту та економіки "Галицька Академія" Кафедра комп'ютерних та телекомунікаційних систем
Тема - Проектування програмного та апаратного забезпечення для обчислювального пристрою приймання, обробки та передавання даних на базі персонального комп'ютера.
В курсовому проекті проаналізований алгоритм приймання, обробки та передавання даних. Розроблена асемблер-програмама та описана принципово електрична схема блоку передавання.
Summary
In a course project there is the analysed algorithm of acceptance, treatment and data communication . asembler-programama is developed that described electric chart of principle of block of transmission.
ЗМІСТ
1. Опис блок – схеми……………………………………………………5 . 2. Розробка блок-схеми алгоритму........................................................7
3. Розробка Assembler- програми...........................................................9
4. Опис принципової електричної схеми блоку приймання.............14
1. Опис блок-схеми.
Оператор 1 – Початок програми.
Оператор 2 – Настроювання регістру DS на сегмент даних.
Оператор 3 – Настроювання СОМ порту на: швидкість передачі
даних 2400 біт/сек, із параметрами : перевірка
непарності, 2 стоп-біти, 8 біт даних.
Оператор 4 – Ініціалізація циклу.
Оператор 5 – Очікування прийняття 1 байта з СОМ порту.
Оператор 6 – Якщо байт не прийнято, то повторення очікування.
Оператор 7 – Запису байта даних до і-тої комірки масиву.
Оператор 8 – Обнулення регістрів SI i DI, занесення до регістру
СХ кількості очікуваних байт.
Оператор 9 – Ініціалізація циклу обробки даних.
Оператор 10 – 256 байт даних починаючи з нульової адреси
зсувом вліво і додаємо до них 256 байт даних
починаючи з 256 адреси зсунутих вправо.
Оператор 11– Запис байта даних до і-тої комірки масиву.
Оператор 12– Утворення нових адрес масивів.
Оператор 13 – Створення і відкриття файлу f1.
Оператор 14 – Запису даних з комірки масиву А починаючи
з 0 адреси в файл f1.
Оператор 15 – Створення і відкриття файлу f2.
Оператор 16 – Запису даних з комірки масиву А починаючи
з 256 адреси в файл f2.
Оператор 17 – Створення і відкриття файлу f3.
Оператор 18 – Запису даних з комірки масиву А починаючи
з 512 адреси в файл f3.
Оператор 19 – В регістр DX занесення адреси комірки пам’яті
куди будуть записані дані.
Оператор 20 – Обнулення регістру ВХ , а в регістр СХ
занесення кількості байт
Оператор 21 – Ініціалізація циклу.
Оператор 22 – В регістр АL занесення даних з масиву А
починаючи з 512 адреси.
Оператор 23 – запису даних з регістру А L до 16-розрядного
регістру зовнішніх пристрої , які адресуються
регістром DX.
Оператор 24 – Збільшення регістру ВХ на одиницю.
Оператор 25 – Закриття файлів.
Оператор 26 – кінець програми.
2.Розробка блок – схеми алгоритму.
3. Розробка Assembler – прграми.
DOSSEG
.model small
.stack 100h
.data
f1 db 'c:\f1.txt',0 ; вказування шляху до файлу 1
f2 db 'c:\f2.txt',0 ; вказування шляху до файлу 2
f3 db 'c:\f3.txt',0 ; вказування шляху до файлу 3
a db 1024 dup(0) ; оголошення масиву вхідних елементів - а
var1 dw 0 ; ідентифікатор файлу f1
var2 dw 0 ; ідентифікатор файлу f2
var3 dw 0 ; ідентифікатор файлу f3
.code
.startup
mov ax,@data
mov ds,ax ; настройка регістру ds на сегмент даних
;настройка COM1
mov ah,0h ; ініціалізація СОМ порту
mov al,1010111b ; в регістр al занесення режиму роботи СОМ порту .
; ( швидкість передачі даних 2400 біт/сек.,
2 стоп біта, 8 байт)
mov dx,0 ; в регістр dx занесення 0 ( настройка СОМ1)
int 14h ; виклик переривання int 14h BIOS
;Приймання даних у масив
mov cx,512 ; в регістр СХ занесення 512 байт
mov bx,0 ; обнулення регістру bx
m1:
mov ah,02h ; функція приймання 1-го байту даних
mov dx,0 ; в регістр dx занесення 0 ( настройка СОМ1)
int 14h ;виклик переривання BIOS
cmp ah,0 ; формування затримки ( перевірка на те, чи
; прийшов байт)
jne m1 ;якщо байт не прийшов, то повернення на m1
mov ah,02h ; функція виводу на екран
mov dl,al ; в регістр dl занесення прийнятого байта
з регістру al
int 21h ; виклик переривання DOS
mov a.[bx],al ; зберігання прийнятих даних в масиві а
inc bx ; збільшення регістру bx на 1
loop m1 ; цикл поки не прийнято 512 байт
;формування даних для запису в 3-й файл
mov cx,512 ; в регістр СХ занесення 512 байт
mov si,0 ; обнулення регістру si
mov di,0 ;обнулення регістру dx
m3:
xor ax,ax ; обнулення регістру ax
xor bx,bx ; обнулення регістру bx
mov al,a.[si] ; в регістр al занесення даних з комірки масиву а
; починаючи з адреси 0
sub al,30h ; переведення даних в десяткові числа з ASCII коду
shl ax,1 ; зсув регістру ax вліво
mov bl,a.[256+si] ; в регістр bl занесення даних з комірки масиву a
; починаючи з адреси 256
sub bl,30h ;переведення даних в десяткові числа з ASCII коду
shr bx,1 ; зсув регістру bx вправо
add ax,bx ; вміст регістру bx додаємо до регістру ax
add ax,30h ; переведення даних в ASCII код
mov word ptr a.[512+di],ax ; занесення даних з регістру ах в комірку
; масиву а починаючи з адреси 512
add di,2 ; до регістру di додаємо 2
inc si ; збільшення регістру si на 1
loop m3 ; цикл поки не прийнято 512 байт
;відкриття файлів
mov ah,3ch ; функція відкриття файлу
mov cx,00h ; в регістр СХ занесення атрибутів файлу
; (00 h – звичайний файл )
mov dx,offset f1 ; в регістр dx занесення адрес рядка, що містить
; шлях