
Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002
.pdfГЛАВА 1. РАЗРАБОТКА СИСТЕМ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
49 |
||
GRFON |
.OUTPUT; |
-- сигнал команды на включение высокого напряжения при съемке |
|
) |
|
|
|
VARIABLE |
|
-- триггеры |
|
TR_grfon |
DFFE |
-- триггер для формирования сигнала RADON |
|
TR_sub |
DFFE |
-- триггер для формирования сигнала SUB |
|
TR_imrr |
DFFE |
-- триггер для формирования сигнала IMRR |
|
TRJmrl |
DFFE |
-- триггер для формирования сигнала IMRL |
|
TRJmrev |
DFFE |
-- триггер для формирования сигнала IDSRH0 |
|
TR_flim |
DFFE |
-- триггер для формирования сигнала IDFLIT |
|
TR_fluo |
DFFE |
-- триггер для формирования сигнала COFL |
|
TR_clal |
DFFE |
-- триггер для формирования сигнала CLAL |
|
TR_copy |
DFFE |
-- триггер для формирования сигнала COPY |
|
TR_600hz |
DFFE |
-- триггер для формирования сигнала CLAL |
|
EnaB |
DFFE |
-- триггер, работающий no ILDOUT |
|
Count_sec[6..0] |
DFFE; |
-- триггеры 0.5 и 2 секунд для сигнала COPY |
||
Count_5sec[7..0] :DFFE; |
-- счетчик для форирования сигнала ошибки TIMAL |
|||
Count_600hz[5..0] :DFFE; |
-- счетчик для формирования сигнала ошибки CLAL-H |
|||
Reg_out[15..0] |
:DFFE; -- регистр вывода данных в ПЛИС из микроконтроллера |
|||
-- временные переменные, сигналы ошибок |
||||
TIMAL |
NODE |
|
-- сигнал ошибки: авария no времени съемки |
|
CLAL |
NODE |
|
-- сигнал ошибки: авария синхронизации |
|
CLALtemp |
NODE |
|
-- временная переменная CLAL |
|
COPYtemp |
NODE |
|
-- временная переменная COPY |
|
COPY L |
NODE |
|
-- временная переменная COPY |
|
FLUO L |
NODE |
|
-- временная переменная COFL |
|
IMREV L |
NODE |
|
-- временная переменная IDSRH0 |
|
IMRR L |
NODE |
|
-- временная переменная IMRR |
|
IMRL L |
NODE |
|
- |
временная переменная IMRL |
FLIM H |
NODE |
|
-- временная переменная IDFLIT |
|
SUB L |
NODE |
|
-- временная переменная SUB |
|
CERR |
NODE |
|
-- временная переменная CERR |
|
VIDERR |
NODE |
|
-- временная переменная VIDERR |
|
TPAL |
NODE |
|
-- временная переменная TPAL |
|
nSAL |
NODE |
|
-- временная переменная SAL |
|
BEGIN |
|
|
- |
начало программы |
DEFAULTS |
|
|
-- значения, присвоенные по умолчанию |
|
SUB_L=VCC; |
|
-- временная переменная SUB |
||
FLIM_H=GND; |
|
-- временная переменная IDFLIT |
||
COPY_L=VCC; |
|
-• временная переменная COPY |
||
CLUO_L=VCC; |
|
-- временная переменная COFL |
||
IMREV_L=VCC; |
|
-- временная переменная IDSRH0 |
||
IMRR_L=VCC; |
|
-- временная переменная IMRR |
||
IMRL_L=VCC; |
|
-- временная переменная IMRL |
||
CLAL=GND; |
|
|
-- сигнал ошибки: авария синхронизации |
|
END DEFAULTS; |
|
|
|
|
-- формирование сигналов GRFON, SUB, FLIM, FLUO, IMREV, IMRR, IMRL-- |
||||
TR_grfon.D=EXP_H; |
-- вход триггера, есть сигнал RADON |
|||
TR_grfon.clk=GCK1; |
-- вход тактовых импульсов, 32,768 кГц |
|||
GRFON=TR_grfon.Q; |
-- сигнал RADON - активный уровень |
|||
TR_sub.D=SUB_L; |
-- вход триггера, временная переменная SUB |
50
TR_sub.clk=GCK1; nSUB=TR_sub.Q;
TR flim.D=FLIM_H; TRlflim.clk=GCK1; FLIM=TR_flim;
TR_fluo.D= FLUO_L;
TR_fluo.clk=GCK1;
nFLUO=TR_fluo;
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ
--вход тактовых импульсов, 32,768 кГц
--сигнал вычитания кадров
--вход триггера, временная переменная IDFLIT
--вход тактовых импульсов, 32,768 кГц
--сигнал импульсного просвечивания
--вход триггера, временная переменная FLUO
--вход тактовых импульсов, 32,768 кГц
- сигнал управление видеопроцессором
TR_imrev.D=IMREV_L;--BXOfl триггера, временная переменная IMREV
TR_imrev.clk=GCK1; |
вход тактовых импульсов, 32,768 кГц |
nlMREV=TR_imrev; |
-- сигнал инверсии изображения |
TR_imrr.D=IMRR_L; TR_imrr.clk=GCK1; nlMRR=TR_imrr;
TR_imr1.D=IMRL_L;
TR_imrl.clk=GCK1;
nlMRL=TR_imrl;
--вход триггера, временная переменная IMRR
--вход тактовых импульсов, 32,768 кГц
--сигнал вращения изображения вправо
--вход триггера, временная переменная IMRL
--вход тактовых импульсов, 32,768 кГц
--сигнал вращения изображения влево
формирование сигнала COPYtemp длительностью 0.5 секунды, активный низкий уро
вень ---- |
|
|
|
|
IF (COPY_L==GND)&(Count_sec[].Q<25) THEN |
-- длительность им |
|||
|
|
|
|
пульса COPY < 0 . 5 секунды |
Count_sec[].ena=VCC; |
|
-- сигнал разрешения |
||
COPYtemp=GND |
|
-- временная переменная COPY, активный уровень |
||
ELSIF (COPY_L==GND)&(Count_sec[].Q>25) THEN |
- длительность |
|||
|
|
|
|
пульса COPY > 0 . 5 секунды |
COPYtemp=VCC; |
|
-- временная переменная COPY, начальный уровень |
||
Count_sec[].ena=GND; |
|
-- сигнал, запрещающий работу |
||
ELSE |
|
-- если сигнал COPY=VCC |
||
COPYtemp=VCC; |
|
- временная переменная COPY,начальный уровень |
||
END IF; |
|
|
|
|
счетчик для сигнала COPY......... |
|
|
|
|
Count_sec[].clrn=nLDOUT; |
|
-- сигнал, обнуляющий счетчик |
||
Count_sec[].clk=MNSYNC; |
|
-- вход тактовых импульсов |
||
Count_sec[].d=(Count_sec[].Q+1)& nLDOUT; -- счетчик,который на |
||||
|
|
|
чинает работать при ILDOUT |
|
...................формирование сигналаCOPY.............. |
|
|
||
TR_copy.d=COPYtemp; |
-- вход триггера |
|
|
|
TR_copy.clk=GCK1; |
-- вход тактовых импульсов |
|||
nCOPY=TR_copy.Q; |
-- выход триггера, сигнал COPY |
|||
формирование сигнала ошибки TIMAL, 5сек. продолжительность сигнала GRFON,--- |
||||
IF (Count_5sec[].Q<250)&(EXP_H==VCC) THEN |
- длительность сигната GRFON < 5 сек |
|||
Count_5sec[].clk= MNSYNC; |
|
- |
вход тактовых импульсов |
|
Count_5sec[].d=Count_5sec[].Q+1; |
|
-- счетчик тактовых импульсов |
||
TIMAL= GND; |
|
|
|
- нет сигнала ошибки |
ELSIF (EXP_H==GND) THEN |
|
|
-- нет сигнала GRFON |
|
TIMAL= GND; |
|
|
|
-- нет сигнала ошибки |
ГЛАВА 1. РАЗРАБОТКА СИСТЕМ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
51 |
||
ELSE |
-- длительность сигнала GRFON > 5 секунд |
|
|
TIMAL= VCC; |
|
-- есть сигнал ошибки |
|
END IF; |
|
|
|
формирование сигнала ошибки CLAL, на вход 600HZ подается <500 Гц или >700 Гц |
|
||
TR_600hz.d=600HZ; |
|
-- вход триггера, 600 Гц |
|
TR_600hz.clk= GCK1; |
|
-- вход тактовых импульсов |
|
IF (TR_600hz.Q==1) THEN |
-- 1/2 периода импульса 600 Гц |
|
|
Count_600hz[].clk = GCK1; |
-- вход тактовых импульсов |
|
|
Count_600hz[].d=Count_600hz[].Q+1; |
-- счетчик такт, импульсов |
|
|
Count_600hz[] .clrn=TR_600hz; |
-- очистка счетчика |
|
|
END IF; |
|
|
|
IF (Count_600hz[]>=33)#(Count_600hz[]<23) THEN -- если число импульсов >=33 или <23 |
|
||
CLALtemp=VCC; |
|
-- есть ошибка |
|
ELSE |
|
-- если число импульсов <33 или >=23 |
|
CLALtemp=GND; |
|
-- нет ошибки |
|
END IF; |
|
|
|
TR_clal.d=CLALtemp; |
|
|
|
TR_clal.clc=!600HZ; |
|
|
|
CLAL=TR_clal.Q; |
|
-- сигнал ошибки CLAL |
|
ввод данных в ПЛИС из микроконтроллера........ |
|
|
|
Reg_out[].clc = CLK; |
|
-- вход тактовых импульсов |
|
Reg_out[j.ena = InLDOUT; |
-- сигнал разрешения |
|
|
Reg_out[j.d = (Reg_out[14..0].Q,MOSI); |
-- сдвиговый регистр |
|
|
выработка внешних сигналов........ |
|
|
|
EnaB.clk= nLDOUT; |
|
-- вспомогательный триггер |
|
EnaB.d= VCC; |
|
|
|
EnaB.elm=nLDOUT; |
|
|
|
IF EnaB.Q==VCC THEN - если выход триггера=УСС, |
т.е. сдвиговый регистр не работает |
|
|
IMRL_L=Reg_in[15]; |
--временная переменная nIMRL |
|
|
IMRR_L=Reg_in[l4]; |
--временная переменная nIMRR |
|
|
IMREV_L=Reg_in[13]; |
--временная переменная nIMRV |
|
|
COPY_L=Reg_in[12]; |
- временная переменная nCOPY |
|
|
SUB_L=Reg_in[10]; |
|
--временная переменная nSUB |
|
FLUO_L=Reg_in[9]; |
|
--временная переменная nFLUO |
|
FLIM_H=Reg_in[8]; |
|
--временная переменная FLIM |
|
CERR=Reg_in[6]; |
|
- сигнал ошибки: нет ответа CMXRSC |
|
VIDERR=Reg_in[5]; -- сигнал ошибки: нет стабилизации при автомат, просвечивании |
|
||
TPAL=Reg_in[4]; |
-- сигнал ошибки: недопустимая температура блока РИ |
|
|
nSUL=Reg_in[3]; |
-- сигнал ошибки SUL-L: источник питания не готов |
|
|
END IF; |
|
|
|
END; -- конец/программы
Синтаксические конструкции языка AHDL описаны в главе 5. Там же приведены примеры реализации программируемого счетчика/таймера и регистрового АЛУ RISC микроконтроллера, тексты которых, кроме ком ментариев, снабжены дополнительными комментариями.
ГЛАВА 2
АРХИТЕКТУРА MCS-51
2 .1 . Особенности архитектуры MCS-51
Архитектура MCS-51 фирмы Intel была в свое время определена на столько удачно, что является сегодня, по существу, одним из стандартов «де-факто» на мировом рынке 8-разрядных микроконтроллеров. Эту архи тектуру воспроизводит в том или ином виде в своих изделиях ряд фирм. По совокупному объему производства этих фирм микроконтроллеры MCS-51 занимают первое место.
Понятие «архитектура» микроконтроллеров далее трактуется как со вокупность внутренних и внешних программно доступных ресурсов, сис темы команд, системы прерываний, функций ввода/вывода и протоколов обмена по магистрали. Архитектура воплощается производителем в виде набора связанных функционально-топологических модулей. Конкретный микроконтроллер представляет собой определенную комбинацию этих мо дулей, основой которой является операционное ядро («соге» у фирмы
Intel).
Исходная архитектура MCS-51 характеризуется следующими особен ностями;
•архитектура «гарвардская», т.е. память программ и данных разделе ны;
•операционное ядро имеет «аккумуляторную» организацию, т.е. ре зультат операции, как правило, помещается в регистр-аккумулятор;
•8-разрядное АЛУ с аппаратным умножителем обрабатывает целочис ленные операнды;
ЛАВА 2. АРХИТЕКТУРА MCS-51 |
53 |
|
•имеются внутренние память программ (4Кбайт) и ОЗУ данных (128 байт);
•имеются четыре универсальных программируемых параллельных 8- разрядных порта ввода/вывода с возможностью реализации опреде ленных альтернативных функций;
•набор блоков ввода/вывода включает два 16-разрядных программи руемых счетчика/таймера и дуплексный последовательный порт;
•все регистры управления блоков ввода/вывода сведены в группу ре гистров спецфункций, которая имеет свой диапазон адресов в пространстве внутренней памяти данных.
Первая линия (product line) микроконтроллеров с исходной архитек турой MCS-51 была разработана на основе nMOS технологии (HMOS). Эта линия включала микросхемы 8051АН/8751ВН/8031АН с постоянной памятью программ, с перезаписываемой памятью программ (стираемой ультрафиолетом) и без внутренней памяти программ. Отечественной про мышленностью до сих пор выпускается аналог микросхемы 8031АН - микроконтроллер К1816ВЕ31. Мощность, потребляемая микроконтролле рами этой группы, довольно велика.
Современные версии микроконтроллеров с исходной архитектурой MCS-51 выполнены с использованием комплементарной МОП технологии (CHMOS). Они имеют маркировку 80С51/31 и выпускаются несколькими фирмами, поскольку дешевы и позволяют решать многие задачи. Техноло гия CHMOS позволила уменьшить рассеиваемую мощность при обычной работе и ввести особые режимы, дополнительные снижающие энергопо требление. Отечественным аналогом микросхемы 80С31 является микро контроллер К1830ВЕ31.
В последние годы бурно развивается технология перезаписываемой flash-памяти программ, которая в значительной степени вытеснила память, стираемую ультрафиолетом. Это объясняется дороговизной металлокера мического корпуса с кварцевым стеклом, необходимого для УФмикросхем. Микроконтроллеры с исходной архитектурой MCS-51 и flashпамятью выпускаются фирмами Atmel, Philips и другими под маркировкой 89С51. Микроконтроллеры с УФ-памятью остались, в основном, в виде однократно программируемых (ОТР) версий в пластмассовом корпусе без окна. Они имеют маркировку 87С5ЮТР.
Усовершенствование технологии, рост степени интеграции позволил в рамках архитектуры MCS-51 расширить набор внутренних интерфейсных блоков, увеличить внутреннюю память программ и данных. Таким образом появились микроконтроллеры типа 80С 52/54/58 и микроконтроллеры типа 80L52/54/58 с пониженным напряжением питания. Модернизиро ванная архитектура MCS-51 характеризуется увеличенным до 256 байт внутренним ОЗУ данных, внутренней памятью программ 8 /1 6 /3 2 Кбайт,
54 СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ
наличием сторожевого таймера (watchdog timer). Расширение набора внутренних блоков привело к увеличению числа регистров спецфункций, несколько изменилась система прерываний. Наиболее широко используе мыми микроконтроллерами с модернизированной MCS-51 архитектурой можно, в настоящее время, считать микросхемы типа 87С52/89С52/80С32, которые выпускаются большинством производите лей, поддерживающих архитектуру MCS-51.
Такие фирмы, как Intel, Philips, Siemens, Dallas Semiconductor, At mel, Winbond и ряд других, производят семейства микроконтроллеров с архитектурой MCS-51. В целях повышения производительности некоторые из них используют такие отличия, как расширенная система команд, сжа тый цикл обмена по магистрали, увеличенное количество портов вво да/вывода.
В таблице указаны характеристики некоторых представителей се мейств микроконтроллеров с архитектурой MCS-51.
2.2 . Структура микроконтроллеров MCS-51
На рис. 2.1 приведена внутренняя структура микроконтроллера Intel 8051, соответствующая исходной архитектуре MCS-51.
Она включает следующий набор функциональных модулей:
•8-разрядное АЛУ с аппаратной реализацией операций типа умноже ние;
•внутренние память программ (4Кбайт) и ОЗУ данных (128 байт);
• четыре универсальных параллельных 8-разрядных порта вво д а / вывода с возможностью реализации определенных альтернативных функций;
•два 16-разрядных программируемых счетчика/таймера;
•дуплексный последовательный порт.
Этот набор аппаратных средств и совокупность реализуемых функций делают микроконтроллеры семейства 8051 эффективным средством сбора, предобработки информации и управления объектами.
Внешний вид микросхем MCS-51 в 40-выводном корпусе и функции выводов представлены на рис. 2.2.
Функции выводов микроконтроллеров MCS-51 следующие.
Port 0. Двунаправленный программируемый 8-разрядный параллель ный порт ввода/вывода с возможностью установки в высокоимпедансное состояние. При работе в качестве выходов каждая линия обеспечивает на грузочную способность, равную 8 входам маломощной серии LS TTL.
ГЛАВА 2. АРХИТЕКТУРА MCS-51 |
55 |
Микроконтроллеры с архитектурой MCS-51
Микро |
Память |
RAM |
Таймеры |
АЦП/ |
Fosc |
Особенности |
контроллер |
программ |
|
|
ЦАП |
(МГц) |
|
(производитель) |
|
|
|
|
|
|
8031АН |
|
128 |
2 |
|
12 |
Исходная |
Intel |
|
|
|
|
|
архитектура, |
(снят с произ |
|
|
|
|
|
нМОП |
водства) |
|
128 |
|
|
|
|
К1816ВЕ31 |
|
2 |
" |
12 |
нМОП |
|
Россия |
|
|
|
|
|
|
80С31 |
|
128 |
2 |
- |
12 |
КМОП |
Intel |
|
128 |
|
|
|
|
К1830ВЕ31 |
|
2 |
|
12 |
КМОП |
|
Россия |
|
|
|
|
|
|
87С51 |
4K EPROM |
128 |
2 |
|
12,16, |
3 бита |
Intel |
OTP |
|
|
|
24,33 |
защиты |
AT87F51 |
4K Rash |
|
|
|
|
|
Atmel |
|
|
|
|
|
Rash с пере |
АТ89С51 |
|
|
|
|
|
записью |
Atmel |
|
|
|
|
|
|
80С32 |
- |
256 |
3 |
- |
12,16, |
КМОП |
Intel |
|
|
|
|
24,33 |
|
87C52 |
8K EPROM |
256 |
3 |
- |
12,16, |
КМОП |
Intel |
OTP |
|
|
|
24,33 |
|
AT89C52 |
8K Rash |
256 |
3 |
|
12,16, |
КМОП |
Atmel |
|
|
|
|
24,33 |
|
80C52 |
8K ROM |
256 |
3 |
- |
12,16, |
КМОП |
Intel |
|
|
|
|
20,24 |
|
87C54 |
16K EPROM |
256 |
3 |
|
12,16, |
КМОП |
Intel |
OTP |
|
|
|
20,24 |
|
80C54 |
16K ROM |
256 |
3 |
• |
12,16, |
КМОП |
Intel |
|
|
|
|
24,33 |
|
87C58 |
32K EPROM |
256 |
3 |
' |
12,16, |
КМОП |
Intel |
OTP |
|
|
|
24,33 |
|
80C58 |
32K |
256 |
3 |
|
12,16, |
КМОП |
Intel |
ROM |
|
|
|
24,33 |
|
87L52/54/58 |
8/16/32K |
256 |
3 |
|
12,16, |
Низковольтная |
Intel |
OTP |
|
|
|
20 |
серия (Vcc=3B), |
80L52/54/58 |
8/16/3 2K |
256 |
3 |
|
12,16,20 |
КМОП |
Intel |
ROM |
|
|
|
|
|
AduC812 |
8K Rash |
256 |
3 |
1/2 |
16 |
12-разрядные |
Analog Devices |
|
|
|
|
|
ЦАП и 2 АЦП, |
|
|
|
|
|
|
Vcc=(3,0-5,0)B |
5 6 |
СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ |
. Внутренняя магистраль
; |
а л у |
|
|
; |
1 |
|
|
|
1 |
Акумулятор |
А |
|
1 |
|
Регистр В |
|
|
1 |
|
Регистр состояния PSW |
|
1 |
||
|
1 |
|||
1 |
|
|
|
1 |
1 |
|
|
|
* |
Счетчик команд |
|
« |
||
|
( |
|||
|
PC |
|
|
|
Регистр указателя |
|
1----- |
||
адреса данных |
|
1 |
||
|
DPTR |
|
|
1 |
1 |
|
|
|
1 |
1 |
|
|
|
1 |
Память программ |
|
|
||
! |
4К х 8 |
|
|
,-------- |
| |
|
|
|
1 |
Память данных |
|
1 |
||
ОЗУ 128x8 |
|
|||
|
1 |
|||
Указатель стека SP |
|
1-------- |
||
t |
|
|
|
1 |
1 |
|
|
|
1 |
|
Блок |
|
|
1 |
таймвроя/счетчииоя |
|
|||
|
|
|
|
1 |
|
|
|
|
1 |
Таймер/счетчик 0 |
|
1 |
||
|
1 |
|||
Регистр ТНО |
|
|||
Регистр TLO |
|
( |
||
1 |
|
|
|
1 |
Таймер/счетчик 1 |
1 |
! |
||
Регистр ТН1 |
|
1 |
||
Регистр TL1 |
|
1 |
||
1 |
|
|
|
1 |
Регистр управления |
|
1 |
||
|
1 |
|||
|
TCON |
|
|
1 |
|
|
|
1 |
|
Регистр режима |
|
|||
|
ТМОО |
|
|
1 |
Блок |
прорываний |
|
|
|
и последовательного |
|
|
||
; |
порта |
|
|
; |
1 |
|
|
|
1 |
Регистр разрешения |
|
1 |
||
прерываний |
IE |
|
1 |
|
Регистр приоритетов |
|
1 |
||
прерываний |
IP |
|
1 |
|
> |
|
|
|
1 |
Приемник/передатчик |
|
1 |
||
|
1 |
|||
последовательного |
|
|||
|
порта |
|
|
1 |
Буфер передатчика sbuf |
|
1 |
||
|
1 |
|||
Буфер приемника |
SBUF |
|
||
Регистр управления |
|
1 |
||
1 |
SOON |
|
|
» |
|
|
|
1 |
ПОРТО |
|
Регистр |
Буфер |
РО |
РО |
ПОРТ 1 |
|
Регистр |
Буфер |
Р1 |
Р1 |
|
ПОРТ 2 |
|
----- |
Регистр |
Буфер |
|
Р2 |
Р2 |
ПОРТ 3 |
|
Регистр |
Буфер |
РЗ |
РЗ |
Блок управления |
|
Регистр |
Логика |
команд |
ввода/ |
|
вывода |
Логика
управления микро Формирователь
контроллером временных интервалов
1 |
32 |
|
1 |
||
33 |
||
1 |
34 |
|
1 |
35 |
|
36 |
||
1 |
||
37 |
||
1 |
38 |
|
1 |
39 |
|
|
||
1 |
|
|
1 |
|
|
1 |
1 |
|
t |
2 |
|
3 |
||
1 |
4 |
|
1 |
5 |
|
1 |
||
6 |
||
1 |
7 |
|
1 |
8 |
|
|
||
1 |
|
1
121
22
23
124
25
26
27
28
1
1
1
1 10
111
112
13
114
115
16
1 17
1 |
|
1 |
|
1 |
9 |
> |
29 |
1 |
30 |
|
131
18
19
Рис. 2.1. Структура микроконтроллеров MCS-51
ГЛАВА 2 АРХИТЕКТУРА MCS-51 |
57 |
При обращении микроконтроллера к внешней памяти программ или данных порт работает в режиме мультиплексирования младшего байта ад реса и 8-разрядной шины данных.
При записи в разряд регистра порта РО логической «1» соответствую щая линия порта переходит в режим высокоимпедансного входа. Для ра боты в режиме порта ввода/вывода необходимо внешнее подтягивание каждой линии порта к уровню логической «1».
Port 1. |
Двунаправленный 8-разрядный параллельный порт вво |
да/вывода. |
При работе в качестве выходов каждая линия обеспечивает |
нагрузочную способность, равную 4 входам маломощной серии LS TTL. При записи в разряд регистра порта Р1 логической «1» соответствующая линия порта переходит в режим высокоимпедансного входа со слабым подтягиванием сигнала к уровню логической «1».
Альтернативная
функция
P1.0
P1.1
пPI.2
о |
P1.3 |
р |
|
т |
|
1PI.4
PI.5
P1.0
PI.7 RST
|
RxD |
P3.0 |
|
ТхО |
P3.1 |
п |
INTO# |
P3.2 |
о |
INTI# |
P3.3 |
р |
||
т |
TO |
P3.4 |
3 |
||
|
Т1 |
P3.5 |
|
WR# |
P3.0 |
|
RD# |
P3.7 |
XTAL2
XTALI
Vss
С |
1 |
|
40 |
□ |
с |
2 |
|
|
□ |
с |
3 |
|
38 |
□ |
с |
4 |
|
37 |
□ |
с |
5 |
|
36 |
□ |
с |
0 |
|
35 |
□ |
1= |
7 |
|
34 |
□ |
с |
0 |
|
33 |
□ |
с |
0 |
6051 |
32 |
□ |
1= |
10 |
|
31 |
□ |
с |
11 |
|
30 |
□ |
с |
12 |
|
20 |
□ |
с |
13 |
|
26 |
□ |
с |
14 |
|
27 |
□ |
с |
15 |
|
26 |
□ |
1= |
16 |
|
25 |
□ |
□ |
17 |
|
24 |
□ |
с |
18 |
|
23 |
□ |
1= |
10 |
|
22 |
□ |
1= |
20 |
|
21 |
□ |
Альтернативная функция
Vcc |
|
|
|
РО.О |
ADO |
|
|
Р0.1 |
ADI |
|
|
Р0.2 |
AD2 |
П |
|
РО.З |
AD3 |
||
О |
|||
Р0.4 |
AD4 |
Р |
|
Т |
|||
Р0.5 |
AD5 |
|
|
Р0.6 |
AD6 |
|
|
Р0.7 |
AD7 |
|
|
EA# |
|
|
|
ALE |
|
|
|
PSEN# |
|
|
|
Р2.7 |
А15 |
|
|
Р2.6 |
А14 |
|
|
Р2.5 |
А13 |
|
|
Р2.4 |
А12 |
п |
|
|
|
о |
|
Р2.3 |
A l l |
р |
|
|
|
т |
|
Р2.2 |
A10 |
2 |
|
Р2.1 |
АО |
|
|
Р2.0 |
A8 |
|
Рис. 2.2. Микроконтроллер MCS-51 в 40-выводном корпусе и функции выводов
58 СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ
Port 2. Двунаправленный 8-разрядный параллельный порт вво да/вывода. При работе в качестве выходов каждая линия обеспечивает нагрузочную способность, равную 4 входам маломощной серии LS TTL. При записи в разряд регистра порта Р2 логической «1» соответствующая линия порта переходит в режим высокоимпедансного входа со слабым подтягиванием сигнала к уровню логической «1».
При обращении микроконтроллера к внешней памяти программ или дан ных с использованием 16-разрядного адреса (команды MOVX @DPTR) через порт Р2 выдается старший байт адреса. При обращении микрокон троллера к внешней памяти данных с использованием 8-разрядного адреса (команды MOVX @Ri) на выводы порта Р2 выдается содержимое регист ра специальных функций Р2.
Port 3. Двунаправленный 8-разрядный параллельный порт вво да/вывода. При работе в качестве выходов каждая линия обеспечивает нагрузочную способность, равную 4 входам маломощной серии LS TTL. При записи в разряд регистра порта РЗ логической «1» соответствующая линия порта переходит в режим высокоимпедансного входа со слабым подтягиванием сигнала к уровню логической «1».
Выводы порта РЗ могут выполнять альтернативные функции в соот ветствии со следующей таблицей.
Вывод
РЗ.О.
Р3.1. Р3.2.
РЗ.З.
Р3.4. Р3.5. Р3.6. Р3.7.
Альтернативная функция
RxD - вход приемника последовательного порта TxD - выход передатчика последовательного порта INTO - вход внешнего прерывания 0
INT1 - вход внешнего прерывания 1 ТО - внешний вход таймера/счетчика 0 Т 1 - внешний вход таймера/счетчика 1
W R# - сигнал разрешения записи во внешнюю память данных RD# - сигнал разрешения чтения из внешней памяти данных
RST. Вход инициализации. Высокий уровень на этом входе в течении двух машинных тактов запускает процесс инициализации микроконтрол лера.
ALE. Активное значение сигнала на этом выходе разрешает фиксацию младшего байта адреса при обращениях к внешней памяти.
У микроконтроллеров типа 8751 с внутренней памятью программ это вывод имеет альтернативную функцию PROG#. При программировании внутренней памяти на него подается стробирующий сигнал.
PSEN#. Активное значение сигнала на этом выходе разрешает чтение из внешней памяти программ.
ЕА#. Сигнал на этом входе переключает источник кода при обраще нии к младшим 4 Кбайтам памяти программ. При ЕА = 0 и диапазоне ад ресов 0000Н - FFFFH микроконтроллер 8051 выполняет цикл обращения