Гл3_06 (1031649), страница 5
Текст из файла (страница 5)
Благодаря такомумощному АЛУ набор инструкций микроконтроллеры семейства MCS51 одинаково хорошо подходит как для применений управления в реальном масштабе времени, так и для алгоритмов с большим объемом данных.Схемотехническое изображение микроконтроллера представлено на рис. 3.2. В базовом варианте он упакован в 40-выводной DIP корпус. Рассмотрим назначение выводов.Начнем с выводов питания «0 В» и «5 В», по которым он получает основное питание. Ток потребления приведен в табл. 3.1.Вывод «RST» - сброс микроконтроллера. При подаче на этот вывод активного высокого уровня запускается режим общего сброса и МК производит следующие действия:- устанавливает счетчик команд PC и все регистры специальных функций, кромезащелок портов Р0—РЗ, указателя стека SP и регистра SBUF, в ноль;Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н.
Э. Баумана, V_Ryabov@mail.ru112- указатель стека принимает значение равное 07Н;- запрещает все источники прерываний, работу таймеров-счетчиков и последовательногопорта;- выбирает БАНК 0 ОЗУ, подготавливает порты Р0—РЗ для приема данных и определяет выводы ALE и РМЕ как входы для внешней синхронизации;- в регистрах специальных функций PCON, IP и IE резервные биты принимают случайные значения, а все остальные биты сбрасываются в ноль;- в регистре SBUF устанавливаются случайные значения.- устанавливает фиксаторы-защелки портов Р0—РЗ в "1".Состояния регистров микроконтроллера после сброса приведены в таблице 3.5.Таблица 3.5.РегистрPCАССВPSWSPDPTRP0-P3IPIETMODTCONTH0TL0TH1TL1SCONSBUFPCONИнформация0000H00H00H00H07H0000H0FFHХЮС00000В0XX00000B00H00H00H00H00H00H00HНеопределенная0ХХХ0000В для k-MOП 0XXXXXXXB для n-МОПВывод RST имеет и альтернативную функцию. Через него подается резервное питаниядля сохранения неизменным содержимого ОЗУ микроконтроллера при снятии основного.Выводы BQ1, BQ2 – предназначены для подключения кварцевого резонатора, определяющего тактовую частоту работы МК.Вывод ЕА` (External Adress – внешний адрес) - предназначен для активизации режима чтения управляющих кодов из внешней памяти программ, при подаче на этот выводактивного низкого уровня.
Вывод имеет и альтернативное назначение (функцию). На негоподается напряжение программирования РПЗУ в режиме программирования.Вывод PME (Program Memory Enable – разрешение памяти программ) - предназначен для управления циклом чтения из памяти программ и автоматически активизируется МК в каждом машинном цикле.Вывод ALE (Adress Length Enable – разрешение младшего адреса) стробирует вывод младшей части адреса по порту Р0.
Вывод используется и при программированииРПЗУ, при этом на него подается стробирующий процесс программирования импульс.МК содержит четыре группы портов: Р0, Р1, Р2, и Р3. Это оставшиеся из 40-а выводовмикроконтроллера. Эти порты могут служить для побитного ввода – вывода информации, нопомимо этого каждый из них имеет свою специализацию.
Обобщенная функциональная схема порта представлена на рис. 3.3. Порт содержит выходные ключи на полевых транзисторах,подключенные к выводу, переключатель функций, защелку на D-триггере и логику управления. В защелку по внутренней шине МК может быть записана единица или ноль. Эта информация через переключатель функций поступает на выходные ключи и вывод МК.
В состоянии единицы оба транзистора N и N1 закрыты, но открыт N2. В состоянии нуля N открываетРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru113ся, а N2 закрывается. В момент, когда порт выполняет альтернативную функцию, на которуюон специализирован, состояние защелки с вывода снимается. Микроконтроллер отдельно может считать состояние защелки порта и состояние его вывода, установленное внешним сигналом. Для этого в ассемблере МК имеются специальные команды, активизирующие соответствующие линии. Для чтения состояния вывода в защелку соответствующего порта должнабыть предварительно записанаединица.
При активизацииПереключательфункцийлинии «чтение защелки» наVcc ВыходныеУправлениевыходе ячейки «И», к которойключиЗащелкаподключена эта линия появляОт внутренN1N2D Qется состояние защелки, поней шины МКВывод порта ступающее на внутреннююЗапись вC Qзащелкушину МК, при активизации«чтение вывода» - состояниеNвнешнего вывода порта.ЧтениеПорт Р0 – универсальзащелкиный двунаправленный портЧтениеввода-вывода. За этим портомGNDвыводазакреплена функция организации внешних шин адресов иРис. 3.3. Функциональная схема порта микроконтроллераданных для расширения памяти программ и памяти данныхмикроконтроллера. Когда идет обращение к внешней памяти программ или выполняется команда обращения к внешней памяти данных, на выводах порта устанавливается младшая частьадреса (А0…А7), которая стробируется высоким уровнем на выводе ALE. Затем, при записи впамять данных, записываемая информация с внутренней шины МК поступает на выводы портаР0.
В операциях чтения, наоборот, информация с выводов порта поступает на внутреннюю шину. Особенностью порта Р0 является отсутствие «подтягивающего» транзистора N2, обеспечивающего подачу питания на вывод. При записи в защелку порта единицы он просто переводится в высокоимпедансное состояние, что необходимо для нормальной работы шины данных.При необходимости запитывать через вывод какие либо внешние устройства, следует предусматривать внешние резисторы от цепей питания на вывод порта.Порт Р1 – универсальный двунаправленный порт ввода-вывода без альтернативных функций.Порт Р2 – универсальный двунаправленный порт ввода-вывода, в качестве альтернативной функции осуществляющий выдачу старшей части адреса (А8…А15) при обращении к внешней памяти.Порт Р3 – универсальный двунаправленный порт ввода-вывода, каждый бит которого предусматривает выполнение различных альтернативных функций.
При этом альтернативные функции реализуются только в том случае, если в защелки выводов порта записаны единицы, в противном случае выполнение альтернативных функций блокируется.Перечислим их раздельно для каждого бита:Р3.0 – RxD (Read eXternal Date, читать внешние данные) – вход встроенного последовательного приемо-передатчика.Р3.1 – ТxD (Type eXternal Date, передавать внешние данные) – выход встроенногопоследовательного приемо-передатчика.Р3.2 – INT0` (INTerrupt, прерывание) – вход внешнего прерывания 0.Р3.3 – INT1` – вход внешнего прерывания 1.Р3.4 – С/T0 – вход нулевого встроенного таймера/счетчика.Р3.5 – С/T1 – вход первого встроенного таймера/счетчика.Р3.6 – WR` (Write, писать) – вывод управления циклом записи в памяти данных.Р3.7 – RD` (Read, читать) – вывод управления циклом чтения из памяти данных.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru114Выводы порта Р1, Р2 и Р3 способны в единице выдавать ток около 0.2мА и принимать внуле ток 3 мА, выводы порта Р0 мощнее и способны в единице выдавать ток около 0.8мА и принимать в нуле ток 5 мА. Краткая информация о назначении выводов микроконтроллера приведена в таблице 3.6.Таблица 3.6.ТипN вывода Обозначение Назначение вывода1-8Р1.0-Р1.78-разрядныи двунаправленный порт Р1. Входвход/ выходадреса А0-А7 при проверке внутреннего ПЗУ(РПЗУ)9RSTСигнал общего сброса.
Вывод резервного питавходния ОЗУ от внешнего источника (для 1816)10-17Р3.0-Р3.78-разрядный двунаправленный порт P3 с допол- вход/ выходнительными функциямиР3.0Последовательные данные приемника - RхDвходР3.1Последовательные данные передатчика - ТхDвыходР3.2Вход внешнего прерывания 0- INТ0`входРЗ.ЗВход внешнего прерывания 1-INT1`входР3.4Вход таймера/счетчика 0: - Т0входРЗ.ЗВход таймера/счетчика 1: - Т1входР3.6Выход стробирующего сигнала при записи вовыходвнешнюю память данных: - WR`Р3.7Выход стробирующего сигнала при чтении извыходвнешней памяти данных – RD`18BQ2Выводы для подключения кварцевого резонато- выход вход19ВQ1ра.200ВОбщий вывод21-28Р2.0-Р2.78-разрядный двунаправленный порт Р2.
Выходвход/ выходадреса А8-А15 в режиме работы с внешней памятью. В режиме проверки внутреннего ПЗУвыводы Р2.0 - Р2.6 используются как вход адресаА8-А14. Вывод Р2.7 - разрешение чтения ПЗУ.29РМЕ`Разрешение программной памятивыход30АLЕВыходной сигнал разрешения фиксации адреса.вход/ выходПри программировании РПЗУ сигнал: PROG31ЕА`Блокировка работы с внутренней памятью. Привход/ выходпрограммировании РПЗУ подается сигнал UРR32-39Р0.7-Р0.08-разрядный двунаправленный порт Р0. Шинавход/ выходадреса/данных г работе с внешней памятью. Выход данных D7-D0 в режиме проверки внутреннего ПЗУ (РПЗУ).40UссВывод питания от источника напряжения +5ВРябов Владимир Тимофеевич.
Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru115Б. Организация памяти микроконтроллераМикроконтроллер максимально в своем составе имеет четыре зоны памяти (рис. 3.4):- резидентную память проFFFFhFFFFhграмм объемом 4кБ;- резидентную памятьPC>FFFhданных объемом 256 байт, изкоторых младшие 128 байт0FFFh0FFFhдоступны пользователю какоперанды, в старших адресахрезидентного ОЗУ располоПо всей зонежены регистры специальныхMOVXA,@DPTR100hFFh MOVX @DPTR,AFFhфункций, управляющие ресурсами МК (см.
табл. 3.2);EA=1EA=0- внешнюю память проSFRдо FFHграмм объемом до 64кБ;MOVX A,@R0- внешнюю память данMOVX A,@R180hВекторыВекторыных объемом до 64кБ.7FhMOVX @R0,Aпрерыв.прерыв.Резидентная операРезидентная23h T1+R1 23h T1+R1MOVX @R1,Aпамятьтивная память. Составляет1Bh TF11Bh TF1данных256 байт и делится на двеРПД13h IE113h IE1равные по объему зоны: па0Bh TF00Bh TF0мять пользователя или рези03h IE003h IE0дентная память данных сРезидентнаяВнешняяРезидентнаяВнешняяоперативнаяпамятьпамятьпамятьадресами от нуля до 7Fh ипамятьданныхпрограммпрограммзону регистров специальныхРОПВПДРППВППфункций (SFR), обзор котоРис.
3.4. Организация памятирых приведен в табл. 3.2 –3.5. В первых 32-х байтах резидентной памяти данных расположены 4-е банка регистров общего назначения по восемь регистров R0…R7 в каждом. Выбор того или иногобанка осуществляется установкой специальных битов в регистре PSW (см. табл. 3.4).В резидентной памяти данных доступны различные комбинации подразумеваемой (MOV R2,A; переслать из аккумулятора в Rn), непосредственной (MOV A,#data;переслать константу #data аккумулятор) , прямой (MOV adr1,adr2; переслать из ячейкиadr1 в adr2)и косвенной адресации через регистры R0 и R1 (MOV @R0,A; переслать изаккумулятора в ячейку, адрес которой в R0). Подробно различные способы адресацииприведенны в разделе 3.2.Ж.