- •Основні режими uart 3.4.Последовательный порт микроконтроллера 8051.
- •Команды функций пзу
- •Описание команд
- •Состояние старт и стоп
- •Подтверждение
- •Синхронизация
- •Адресация в шине I²c
- •Пример программного вызова прерывания int0 посредством сброса бита p3.2
- •Пример вызова прерывания int0 путем установки флага ie0
- •Микроконтроллер семейства 8051 имеют следующие аппаратные особенности:
Пример программного вызова прерывания int0 посредством сброса бита p3.2
cseg at 0
jmp start
int0Isr:
org 03h
cpl P1.7
reti
start:
mov SCON, #50h
clr RI
orl PCON, #80h
mov TH1, #0F3h
;скорость обмена 9600 бод при тактовой частоте кристалла 24.0 МГц
orl TMOD, #20h
setb TR1
setb EX0
setb EA
setb IT0
again:
jnb RI, $
mov A, SBUF
clr RI
cjne A, #0dh, skip
setb TCON.1
skip:
jmp again
end
Пример вызова прерывания int0 путем установки флага ie0
Описати особливості булевого процесора КР1816ВЕ51. На мові асемблера КР1816ВЕ51 обчислити булеву функцію Q=X+/Y+/Z&/(X+W), де змінні X,Y,Z,W подаються на лінії 0,1,2,3 порта P1, а результат Q необхідно вивести на лінію 7 порта P1.
Микроконтроллер семейства 8051 имеют следующие аппаратные особенности:
внутреннее ОЗУ объемом 128 байт;
четыре двунаправленных побитно настраиваемых восьмиразрядных порта ввода-вывода;
два 16-разрядных таймера-счетчика;
встроенный тактовый генератор;
адресация 64 КБайт памяти программ и 64 Кбайт памяти данных;
две линии запросов на прерывание от внешних устройств;
интерфейс для последовательного обмена информацией с другими микроконтроллерами или персональными компьютерами.
Микроконтроллер 8751 снабжен УФ ПЗУ объемом 4 Кбайт.
Микроконтроллер выполнен на основе высокоуровневой n-МОН технологии. Через четыре программируемых параллельных порта ввода/вывода и один последовательный порт микроконтроллер взаимодействует с внешними устройствами. Основу структурной схемы (рис. 1) образует внутренняя двунаправленная8-битная шина, которая связывает между собой основные узлы и устройства микроконтроллера: резидентную память программ (RPM), резидентную память данных (RDM), арифметико-логическое устройство (ALU), блок регистров специальных функций, устройство управления (CU) и порты ввода/вывода (P0-P3).
Example 4.
Simple Combinatorial Output Variables.
;SET P2.2
4
(12)(23)(34)( 45)( 56)
MOV C,12
ANL C,23
ANL C,34
ANL C, 45
ANL C, 56
MOV P2.2,C
Реалізація функціональних вузлів на процесорі КР1816ВЕ51. Реалізувати програмно підпрограму затримки на 8 мілісекунд імпульсів, що поступають на вхід Р1.0, і видати їх на Р1.1. (Частота кварцового генератора f =12МГц)
Mit:
mov A,P1.0
mov TH0, #HIGH(-8000) ;Загрузить старший байт таймера
mov TL0, #LOW(-8000) ;Загрузить младший байт таймера
OjidanTimer:
jnb TF0, OjidanTimer ;Подождать пока не переполнится таймер
mov P1.1,A
SJMP Mit
delay_ms:
mov R1, #25
lrex:
mov R2, #18
lrin:
djnz R2, lrin
djnz R1, lrex
ret
delay_4ms:
lcall delay_ms
lcall delay_ms
lcall delay_ms
lcall delay_ms
ret
delay_200ms:
ret
impuls:
setb P1.0
nop nop nop nop
ret
end
Реалізація функціональних вузлів на процесорі КР1816ВЕ51. Реалізувати програмно 4 - розрядний лічильник з модулем лічби 10. Входи виводи порту P0, виходи виводи порту P2. |
mov A,#0
SETB P0.0
Mit:
Mit0: jb P0.0, Mit0 ;Подождать начало импульса
Mit1: jnb P0.0, Mit1 ;Подождать конец импульса
INC A
MOV P2,A
CJNE A,#10,Mit
mov A,#0
SJMP Mit
Реалізація функціональних вузлів на процесорі КР1816ВЕ51. Реалізувати програму лічильника на n=127. Синхронізуючий сигнал поступає на вхід Р2.2, вхід установки нульового стану на Р2.3. Розрядні виходи Р2.0, Р2.1, Р2.4 і т.д. Значення n подано на входи порту P1. |
!!!!!!!!!!!!
mov A,#0
SETB P2.2
Mit:
Mit0: jb P2.2, Mit0 ;Подождать начало импульса
Mit1: jnb P2.2, Mit1 ;Подождать конец импульса
INC A
MOV P2,A
CJNE A,P1,Mit
mov A,#0
SJMP Mit
Реалізація функціональних вузлів на процесорі КР1816ВЕ51. Виміряти часовий інтервал між приходом двох імпульсів на входи Р2.2 і Р2.3 програмно. Результат в мікросекундах видати в порт P1. |
mov TMOD,#00001001b
mov TH0, #0 ;Обнулить старший байт таймера
mov TL0, #0 ;Обнулить младший байт таймера
TstLog0: jnb P2.2, TstLog0 ;Подождать начало импульса
setb TR0 ;Включить измеритель ширины импульса
TstLog1: jnb P2.3, TstLog1 ;Подождать конец импульса
Clr TR0 ;Отключить измеритель ширины импульса
mov P1,TL0
Реалізація функціональних вузлів на процесорі КР1816ВЕ51. Реалізувати за допомогою таймерів/лічильників періодичний сигнал (меандр) з періодом 1 с на виводі Р1.0.!!!!!!!!!!!!!! |
mov TMOD, #00000010b ;перевести таймер T0 во второй режим работы, а T1 - в нулевой
mov TMOD,#2 ;перевести таймер T0 во второй режим работы, а T1 - в нулевой
mov TH0, #HIGH(-500000) ;Загрузить старший байт таймера
mov TL0, #LOW(500000) ;Загрузить младший байт таймера
OjidanTimer:
jnb TF0, OjidanTimer ;Подождать пока не переполнится таймер
cpl P1.0
;Проинвертировать сигнал на шестой ножке второго порта и
sjmp OjidanTimer ;снова перейти к ожиданию окончания временного интервала
