Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лабораторна робота № 6

Читайте также:
  1. III. Лабораторная диагностика гепатита С
  2. IV. Лабораторная диагностика гепатита В
  3. V. Практична робота.
  4. V. Практична робота.
  5. VI. Практична робота.
  6. АУДИТОРНА РОБОТА (90 хв.)
  7. Етапи трудового навчання у допоміжній школі.Профорієнтаційна робота з учнями допоміжної школи.
  8. Індивідуальна робота студента
  9. Індивідуальна робота студентів
  10. Індивідуальні завдання. Самостійна робота студентів

 

на тему:

 

 

 

Виконала:

ст. групи ТК-32

Мартинишин Галина

 

Перевірив:

Думич С. С.

 

 

Львів 2013


Мета: Освоїти методи передачі інформачії чарез послідовний канал зв'язку.

Теоретичні відомості.

Мікроконтролери сімейст-

ва 80С51 містять апаратно реалізований УАПП (універсаль-

ний асинхронний приймач передавач). Більшість його режимів роботи сумісна з стандартом RS232. В УАПП “1” передається папругою +5В, а “0” напругою 0В. Тобто рівнями TTL.

В стандарті RS232 “1” передається папругою-2,4...-24В, а “0” напругою +2,4...+24В. Тому в макеті викаристаний перетворювач рівнів ІМС НС232.

 

Передавати дані можна трьома способами:

1. По одному байту, записавши його у вигляді символа або шіснадцяткового числа, і натиснувши відповідну кнопку: “Відправити байт (CHAR)” або “Відправити (HEX)”.

2. У вигляді послідовності байт записаних у вигляді символів, і натиснувши кнопку “Відправити рядок”. В мікроконтролері їх можна розпізнавати командою cjne a, #’x’, m1

3. Цілий файл, записавши його ім’я у відповідному місці і натиснувши кнопку “Відправити файл” (не рекомендується відправляти дуже великі файли).

 

Приймати дані можна двома способами:

1. На екран, встановивши “галочку” “Виводити на екран”.

2. Або зберігати поступаючі дані в файл записавши його ім’я у відповідне вікно і натиснувши кнопку “Виводити”. Якщо кнопка при натисканні змінила свою назву на “Завершити вивід”, то програма готова зберігати поступаючі дані.

Код програми:

;------------------------------- Визначання констант -------------------------

bank0 EQU 00000000B; Коди банків пам’яті

bank1 EQU 00001000B

bank2 EQU 00010000B

bank3 EQU 00011000B

exe1 EQU 00h; оголошення констант

exe2 EQU 01h

exe3 EQU 02h

exe4 Equ 03h

randh equ 30h

randl equ 31h

cnt equ r5

;#########################################################

;## Сегмент даних ##

;#########################################################

;------------------------- Резервування пам’яті --------------------------------

DSEG

ORG 20H; Бітовий простір

ORG 30h

ORG 60H; Початок стеку

Stack: DS 20H; Глибина стеку

;##########################################################

;## Сегмент команд ##

;##########################################################

CSEG

ORG 0000H; Починаємо програму з нульового адресу

jmp start; Отсюда стартует программа после включения/сброса

ORG 0003H

reti; Заглушка на вектор зовнішнього переривання INT0

ORG 000BH

reti; Заглушка на вектор переривання від таймера 0

ORG 0013H

reti; Заглушка на вектор зовнішнього переривання INT1

ORG 001BH

reti; Заглушка на вектор переривання від таймера 0

ORG 0023H

reti; Заглушка на вектор переривання від UART

; ----------------------------------- Ініціалізація ---------------------------------

ORG 0030H

Start:

mov sp, #(stack-1); Встановлення вершини стеку

mov p0,#11111111B; встановлення портів

mov p1,#11111111B

mov p2,#11111111B

mov p3,#11111111B

mov TMOD, #00100000b; ініціалізація

mov IE, #00000000b

mov TH0, #0feh; встановлення швидкості (9600)

mov TH1, #0feh

mov A, SBUF

mov SCON, #01010000b

 

setb TR1

mov cnt,#00

mov DPTR,#0A006h

clr exe1; очистка exe1(початковий стан)

clr exe2

clr exe3

;##########################################################

;## Основний цикл прграми ##

;##########################################################

main:

jnb RI, exec ;якщо не встановлено RI то переходимо на exec

clr RI ;очищаємо RI

mov A, SBUF

 

cjne A, #'1', next1; перевіряємо чи не введено символ «1»

setb exe1; встановлємо біт в exe1

clr exe2; занулюємо exe2 та exe3

clr exe3

mov A,#05; заносимо 5 в А (дві лампочки)

jmp exec; перехід на exec

next1:

cjne A, #'2', next2; перевіряємо чи не введено «2»

clr exe1; занулюємо exe1 та exe3

setb exe2; встановлємо біт в exe1

clr exe3

mov A, #01; записуємо 1 в А (одна лампочка)

jmp exec; перехід на exec

 

next2:

cjne A, #'3', next3; перевіряємо чи не введено «3» і в разі не

виконання умови – перехід на мітку next3

clr exe1; занулюємо exe1 та exe2

clr exe2

setb exe3; встановлємо біт в exe1

mov A, #01

jmp exec; перехід на exec

 

next3:

cjne A,#'4', next4; перевіряємо чи не введено «4»

clr exe1; занулюємо exe1, exe2 та exe3

clr exe2

clr exe3

clr A; очищаємо акумулятор

movx @DPTR, A; заносимо дані з А по адресу @DPTR

jmp main; перехід на main

 

next4:

mov a,#'?'; якщо не введено символу 1 – 4 то

виводимо «?»

call write; виклик підпрограми write

jmp main; перехід на main

exec:

jnb exe1, enext1; якщо exe1 не встановлено то

переходимо далі на мітку enext1

rr A; зсуваємо вміст А вправо (для імітації

руху лампочок)

movx @DPTR,A; заносимо дані з А по адресу @DPTR call delay; викликаємо підпрограмку затримки




Дата добавления: 2015-09-10; просмотров: 90 | Поможем написать вашу работу | Нарушение авторских прав

Примечание | Отношение ассоциации | Примечание | Отношение расширения | Отношение обобщения | Отношение включения | Примечание | Описание актантов |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.011 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав