Гл3_06 (1031649), страница 6
Текст из файла (страница 6)
В зоне SFR доступна только прямая адресация.В резидентном ОЗУ размещен и стек МК. По умолчанию после сброса указательстека принимает значение 07h и программно может быть установлен на любую зонумладших 128 байт (0…07Fh).Особый интерес представляет зона резидентной памяти данных из шестнадцатиячеек (байт) от 20h до 2Fh. Это зона так называемого битового процессора. Содержащиеся здесь 128 бит допускают отдельную адресацию. В системе команд МК предусмотрены специальные команды битового процессора. Они позволяют устанавливать исбрасывать отдельные биты, проверять различные условия и делать переходы (см.3.2.Ж). Это очень удобно при написании управляющих программ.В верхних 128 байтах расположены регистры специальных функций RSF, управляющие ресурсами МК.
Они были кратко рассмотрены в предыдущем разделе (см. табл.3.2) и будут по мере надобности рассматриваться более подробно далее. Отдельные регистры этой группы также имеют побитную адресацию, что позволяет эффективноуправлять ресурсами.Значения адресов битов резидентной памяти данных приведены в таблице 3.7.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru116Таблица 3.7.Адресбайта2Fh2Еh2Dh2Сh2Вh2Аh29h28h27h26h25h24h23h22h21h20h1Fh18h17h10h0Fh08h07h00hстаршийбит D77F7Е77766F6Е67665F5Е57564F4Е47463FЗЕ37362F2Е2726IFIE17160F0Е07067D756D655D554D453D352D25ID150D057С746С645С544С44ЗС342С241С140С047В736В635В534В43ЗВ332В231В130В037А726А625А524А42ЗА322А221А120А02младшийбит D07978717069686160595851504948414039383130292821201918111009080100БАНК_3БАНК_2БАНК_1БАНК_0Значения адресов адресуемых битов зоны регистров специальных функций RSFприведены в таблице 3.8.Таблица 3.8.Адресбайтастаршийбит D70F0H0Е0НF7E70D0H0B8Н0B0H0A8H0A0Н098Н090Н088H080НCYмладшийбит D0F6E6F5E5AC F0F4E4F3E3F2E2F1E1F0E0RS1 RS0OV-PD7D6D5D4D2D1D0--PT2PSPT1 PX1PT0PX0B7B6BDB5BCB4BBB3B9B1B8B0EA-47A746A6D3BAB2-ESET1 EX1 ET0 EX045A544A443A342A241A140A0SM0 SM1 SM2 REN TB8RB8TIRI9F979Е969С949В939А9299919890TF1TR1 TE0 TR0IE1IT1IE0IT01787168613831282118110809D9515851484РегистрBACCPSWIPP3IEP2SCONP1TCONP0Резидентная память программ размещена на кристалле, имеет объем 4 кБ ипредназначена для хранения кодов программ.
Она может быть запрограммирована приизготовлении (масочное ПЗУ), у пользователя (РПЗУ с ультрафиолетовым стиранием)или совсем отсутствовать в зависимости от исполнения МК. Следует отметить, что объем резидентной памяти программ у современных МК достигает десятков килобайт, память с УФ стиранием все шире вытесняется флешпамятью.Начинается память программ с нулевой ячейки. После сброса микроконтроллераРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э.
Баумана, V_Ryabov@mail.ru117в счетчике команд устанавливается нуль и он считывает код нулевой ячейки, по ней определяет длину команды, считывает ее и выполняет предписанную инструкцию. Обычно здесь располагается команда безусловного перехода на начало исполняемой программы LJMP <Адрес программы>.Начиная с ячейки 3h до 23h, расположены векторы прерываний. На каждый вектор отведено 8 байт. В них располагают команды перехода в подпрограмму обработкисоответствующего прерывания. Источники прерываний по каждому из векторов приведены в таблице 3.9.Таблица 3.9.Источник прерыванияВнешнее прерывание INT0Таймер/счетчик Т/С 0Внешнее прерывание INT1Таймер/счетчик Т/С 1Последовательный портВектор0003h000Bh0013 h001Вh0023hНа рис.
3.5 представлен цикл работы с резидентной памятью программ и резидентной памяти данных при проведении операций, в которых нет обращения к внешнейпамяти данных, например, арифметико-логических, передачи управления или записи впорт или чтения с выводов, либо защелок порта.BQS1P1 P2S2Машинный циклP1 P2S3P1 P2S4P1 P2S5P1 P2S6P1 P2S1P1 P2S2P1 P2S3P1 P2S4P1 P2S5P1 P2S6P1 P2S1P1 P2S2P1 P2ALEPMEР0,Р1,Р2,Р3.DinСтарые данные на выводеDinНовые данные на выводеКоманда MOV Порт, ИсточникРис.
3.5. Работа с внутренней памятью программ и внутренней памятью данныхСчитывание свыводовпорта.Записьв портМашинный цикл выполнения команды состоит из шести шагов, а каждый шагвключает два такта внутреннего генератора. Если подключен кварцевый резонатор наноминальную частоту в 12 МГц, то машинный цикл длится одну микросекунду. В каждом цикле дважды активизируются выводы ALE и PME, хотя для выполнения перечисленных ранее команд (инструкций) нужды в этом нет. Считывание информации с вывода порта или защелки осуществляется во второй половине шестого шага, команда считывания длится один машинный цикл. Команда записи в порт длится два машинныхцикла, новые данные на выводах появляются в начале второго цикла команды.Внешняя память программ имеет адресное пространство до 64 кбайт.
Она также предназначена для хранения программ и в процессе работы МК доступна только длячтения. Обращение к внешней памяти программ осуществляется, если на вывод ЕА`(External Address) подан ноль, или, если содержимое счетчика программ превышает адрес в 4кБ (0FFFh, см. рис. 3.4). Здесь, по тем же адресам, что и у резидентной памятирасположены векторы прерываний (см. табл. 3.9). Пользователь может комбинироватьвнешнюю и резидентную память программ в зоне до 4кБ, управляя выводом ЕА` черезодин из выводов первого порта микроконтроллера, поскольку нулевой и второй портыиспользуются при чтении инструкций из внешней памяти программ.Аппаратная организация внешней шины МК для подключения памяти программи памяти данных, о которой будет рассказано позже, приведено на рис.
3.6.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru118Шина данныхШина адресовR1C1C2BQINT0INT1WRRD+5B или 0ВP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7PMEALEP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7D0D1D2D3D4D5D6D7Di0Di1Di2Di3Di4Di5Di6Di7STBOERGDI0DI1DI2DI3DI4DI5DI6DI7А0 ШинаА1 управленияА2А3C1, C2 - 30pFА4C3 - 10mkFА5А6R1 - 8,2KА7А8А9А10А11А12А13А14А15PME+5B C3P1.0 MCP1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTBQ2BQ1EAP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7D0D1D2D3D4D5D6D7Рис. 3.6. Организация внешней шины.PROMЧастота работы МК определяется кварцевым резонатором BQ, подключенным квыводам BQ1 и BQ2. Конденсатор С3 с резистором R1 обеспечивают автоматическийсброс МК при включении питания. Поскольку исходно конденсатор не заряжен, привключении питания на вывод RST подается сигнал логической единицы, спадающий донуля при заряде конденсатора через резистор R1.
Постоянная времени RС –цепочкивыбрана так, чтобы обеспечить надежный сброс МК. К соответствующим выводам порта Р3 подключена линия управления, передающая сигналы чтения и записи во внешнюю память данных RD`и WR`, сигнал выборки из внешней памяти программ РМЕ` идва внешних прерывания INT0`, INT1`. Шина адресов формируется портами Р0 иР2. Младшая часть адреса передается через порт Р0 и фиксируется в регистре защелкеRG c помощью сигнала фиксации младшей части адреса, передаваемого выводом ALE.Для этих целей подойдет любой статический регистр, например, рассмотренный намиранее ИР22. Старшая часть адреса передается через специализированный под эту операцию порт Р2. Данные передаются и читаются из МК через порт Р0.На рис.
3.7. представлено подключение к внешней шине схеAOD0AOD0мыРПЗУ.Никакой дополнительной логики для этого не требуется.A1D1A1D1A2D2Вывод CS микросхемы подключается или к земле, если микросхемаA2D2A3D3A3D3A4D4РПЗУ одна. В противном случае нужно использовать дешифраторA4D4A5D5A5D5адреса ДША, выбирающий нужную микросхему из массива памяти.A6D6A6D6A7D7A7Позже мы познакомимся с разработкой таких устройств.D7A8A8A9Цикл обращения к внешней памяти программ при чтении изA9A10A10нееуправляющихинструкций без обращения к внешней памяти данA11A12 A11A12ных приведен на рис. 3.8. В первом шаге каждого машинного циклаPMEOEпо порту Р0 считывается инструкция (inC) и затем на него выстав+5BUprляется младшая часть адреса следующей (PCL). При этом становитCSся активным сигнал ALE и по его спаду фиксируется в регистре зак ДШАщелке (рис.