RAM-диск на SDRAM памяти под управлением микроконтроллера
СОДЕРЖАНИЕ
Введение2
1.Техническое задание3
2.Разработка структурной схемы контроллера4
3.Разработка принципиальной схемы контроллера6
3.1Выбор микропроцессора6
3.2Выбор типа памяти10
3.3Выбор модуля памяти18
3.4Выбор ЖКИ21
4. Разработка программного обеспечения23
4.1Выбор языка программирования23
4.2Разработка алгоритма ПО25
Выводы29
Приложение А Текст программы30
Приложение В Таблица символьной кодировки35
Приложение С Принципиальная схема устройства36
Введение
Темой курсового проекта является «RAM-диск на SDRAM памяти под управлением микроконтроллера».
Данное устройство предназначается для получения дополнительного объема оперативной памяти подключаемых к нему устройств, используя модули SDRAM-памяти и обеспечивая доступ к ним посредством управляющей программы микроконтроллера.
Так как RAM-диск должен быть выполнен на основе именно SDRAM-памяти, в курсовом проекте приводится подробный обзор видов динамической памяти с указанием особенностей организации обмена информации.
Особое внимание уделено выбору микропроцессора, представляющего собой ключевой элемент всей схемы устройства, от которого зависит, как аппаратное обеспечение устройства, так и программное.
Разработаны структурная и принципиальные схемы RAM-диска, а так же алгоритмы и текст программного обеспечения.
1.Техническое задание
В рамках курсового проект нужно разработать устройство записи, чтения и хранения информации, использующее в качестве носителя информации модуль динамической памяти типа SDRAM.
Устройство должно отвечать следующим требованиям:
2.Разработка структурной схемы контроллера
Из существующих схемных решений наиболее перспективным вариантом является схема с шинной архитектурой, поэтому для обеспечения реализации требований, предъявляемых к разрабатываемому устройству, будем использовать структуру микроконтроллера, показанную на рис.2.1.
Рисунок 2.1 Структурная схема
Блок микроконтроллера, в который входят микропроцессор и элементы так называемой схемы обвязки микропроцессора, посредством шины адреса (ША) и шины данных (ШД) взаимодействует с блоком клавиатуры, блоком индикации (блок ЖКИ) и блоком памяти, в состав которого входят контроллер SDRAM и, непосредственно, модуль SDRAM. Так же блок микроконтроллера обеспечивает взаимодействие с внешним устройством посредством стандартного интерфейса RS-232.
Данная структуру отличают простота реализации, а также открытый тип архитектуры, позволяющий подключать дополнительные устройства, повышая тем самым функциональность устройства.
3.Разработка принципиальной схемы контроллера
3.1Выбор микропроцессора
Выбор микропроцессора определяет элементную базу всей схемы, именно поэтому необходимо наиболее тщательно подходить к этому вопросу: необходимо сопоставить те задачи, которые должно решать разрабатываемое устройство с функциональными возможностями микропроцессора как на аппаратном, так и на программном уровнях.
За последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для "интеллектуализации" оборудования различного назначения. Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все основные составные части микроЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. Использование ОМК в системах управления обеспечивает достижение исключительно высоких показателей эффективности при столь низкой стоимости (во многих применениях система может состоять только из одной БИС микроконтроллера), что микроконтроллерам, видимо, нет разумной альтернативной элементной базы для построения управляющих и/или регулирующих систем. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно однокристальные микроконтроллеры.
Незначительная емкость памяти, физическое и логическое разделение памяти программ и памяти данных, упрощенная и ориентированная на задачи управления система команд, несложные методы адресации команд и данных, а также специфическая организация ввода/вывода информации предопределяют область использования ОМК в качестве специализированных вычислителей, включенных в контур управления объектом или процессом. Структурная организация, набор команд и аппаратно-программные средства ввода/вывода информации микроконтроллеров лучше всего приспособлены для решения задач управления и регулирования в приборах, устройствах и системах автоматики, а не для решения задач обработки данных. Многие микроконтроллеры не являются машинами классического "фон-неймановского" типа, так как физическая и логическая разделенность памяти программ и памяти данных исключает возможность модификации и/или замены (перегрузки) прикладных программ микроконтроллеров во время работы.
У истоков производства микроконтроллеров стоит фирма Intel с семействами восьмиразрядных микроконтроллеров 8048 и 8051. Архитектура MCS-51 получила свое название от первого представителя этого семейства - микроконтроллера 8051, выпущенного в 1980 году на базе технологии МОП. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер 8051 являлся для своего времени очень сложным изделием - в кристалле было использовано 128 тыс. транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре 8086.
Затем был выпущен ОМК 80С52, который отличался увеличенным объемом памяти программ и данных на кристалле (8Кбайт и 256 байт соответственно). Кроме того, в него был введен третий таймер с функциями выборки и сравнения и соответственно расширен контроллер прерывания.
Следующим принципиальным шагом в развитии MCS-51 стал перевод технологии изготовления на КМОП. Это позволило реализовать режимы холостого хода (Idle) и пониженного энергопотребления (Power Down), позволившие резко снизить энергопотребление кристалла и открывшие дорогу к применению микроконтроллера в энергозависимых приложениях, например, в автономных приборах с батарейным питанием.
Таким образом, выбираем однокристальный микропроцессор фирмы Atmel AT89C2051. Выбор именно этого производителя обусловлен сравнительно низким ценовым диапазоном и достаточно высоким качеством микросхем.
Основными элементами базовой архитектуры AT89C2051 являются:
P0…P3 - порты ввода-вывода. Линии порта P3 могут использоваться для выполнения альтернативных функций, список которых приведен в таблице 3.1.
Таблица 3.1 Альтернативные функции порта P3
ИмяПоз.НазначениеRDP3.7Чтение. Активный сигнал низкого уровня формируется аппаратно при обращении к ВПДWRP3.6Запись. Активный сигнал низкого уровня формируется аппаратно при обращении к ВПДT1P3.5Вход таймера/счетчика 1 или тест -входT0P3.4Вход таймера/счетчика 0 или тест-входINT1P3.3Вход запроса прерывания 1. Воспринимается сигнал низкого уровня или срезINT0P3.2Вход запроса прерывания 0. Воспринимается сигнал низкого уровня или срезTXDP3.1Выход передатчика последовательного порта в режиме УАПП. Выход синхронизации в режиме сдвигающего регистраRXDP3.0Вход приемника последовательного порта в режиме УАПП. Ввод/вывод данных в режиме сдвигающего регистра- вход аппаратного сброса ОМК. Сброс ОМК осуществляется путем подачи на вход RST сигнала с уровнем лог. «1». Для уверенного сброса ОМК этот сигнал должен быть удержан на входе RST по меньшей мере в течение двух машинных циклов (24 периода резонатора). Под воздействием сигнала RST сбрасывается содержимое регистров: PC, АСС, В, PSW, DPTR, TMOD, TCON, Т/С0, Т/C1, IE, IP и SCON, в регистре PCON сбрасывается только старший бит, в регистр-указатель стека SP загружается код 07Н, а в порты Р0…РЗ - коды 0FFH. Состояние регистра SBUF неопределенное. Сигнал RST не воздействует на содержимое ячеек РПД. Когда включается питание ОМК, содержимое РПД неопределенно, за исключением операции возврата из режима пониженного энергопотребления.- запрет доступа к ВПП, расположенной в младших адресах. Если DEMA=1, то в диапазоне адресов 0…ХХХХ используется РПП, а в диапазоне (ХХХХ+1)…0FFFFh - ВПП. Если же DEMA=0, то во всем адресном пространстве ПП (0…0FFFFh) используется ВПП. Значение ХХХХ определяется объемом РПП и различно для разных типов ОМК.- разрешение ВПП. Выполняет функции сигнала «Чтение» при обращении к ВПП.- разрешение фиксации адреса. Сигналом ALE сопровождается вывод младшего байта адреса в порт P0 при обращении к внешней памяти.
3.2Выбор типа памяти
Для осуществления корректного выбора типа динамической памяти, необходимо ознакомиться с принципами ее работы и, в частности, с принципами работы синхронной динамической памяти, а также рассмотреть организацию и алгоритмы обращения к модулю SDRAM.
Динамическая память - DRAM (Dynamic RAM) - получила свое название от принципа действия ее запоминающих ячеек, которые выполнены в виде конденсаторов, образованных элементами полупроводниковых микросхем. С некоторым упрощением описания физических процессов можно сказать, что при записи логической единицы в ячейку конденсатор заряжается, при записи нуля - разряжается. Схема считывания разряжает через себя этот конденсатор, и, если заряд был ненулевым, выставляет на своем выходе единичное значение, и подзаряжает конденсатор до прежнего значения. При отсутствии обращения к ячейке со временем за счет токов утечки конденсатор разряжается и информация теряется, поэтому такая память требует постоянного периодического подзарядка конденсаторов (обращения к каждой ячейке) - память может работать только в динамическом режиме. Этим она принципиально отличается от статической памяти, реализуемой на триггерных ячейках и хранящей информацию без обращений к ней сколь угодно долго (при включенном питании). Благодаря относительной простоте ячейки динамической памяти на одном кристалле удается размещать миллионы ячеек и получать самую дешевую полупроводниковую память достаточно высокого быстродействия с умеренным энергопотреблением, используемую в качестве основной памяти компьютера. Расплатой за низкую пену являются некоторые сложности в управлении динамической памятью, которые будут рассмотрены ниже.
Запоминающие ячейки микросхем DRAM организованы в виде двумерной матрицы. Адрес строки и столбца передается по мультиплексированной шине адреса MA (Multiplexed Address) и стробируется по спаду импульсов RAS# (Row Access Strobe) и CAS# (Column Access Strobe). Временная диаграмма «классических» циклов записи и чтения приведена на рис. 3.1. Поскольку обращения (запись или чтение) к различным ячейкам памяти обычно происходят в случайном порядке, то для поддержания сохранности данных применяется регенерация (Memory Refresh - «освежение» памяти) - регулярный циклический перебор ее ячеек (обращение к ним) с холостыми циклами. Регенерация в микросхеме происходит одновременно по всей строке матрицы при обращении к любой из ее ячеек. Максимальный период обращения к каждой строке tRF (refresh time) для гарантированного сохранения информации у современной памяти лежит в пределах 8-64 мс. В зависимости от объема и организации матрицы для однократной регенерации всего объема требуется 512, 1024, 2048 или 4096 циклов обращений. При распределенной регенерации (distributed refresh) одиночные циклы регенерации выполняются равномерно с периодом tRF (рис.3.2), который для стандартной памяти принимается равным 15,6 мкс. Период этих циклов называют «refresh rate», хотя такое название больше подошло бы к обратной величине - частоте циклов . Для памяти с расширенной регенерацией (extended refresh) допустим период циклов до 125 мкс. Возможен также и вариант пакетной регенерации (burst refresh), когда все циклы регенерации собираются в пакет, во время которого обращение к памяти по чтению и записи блокируется. При количестве циклов 1024 эти пакеты будут периодически занимать шину памяти примерно на 130 мкс, что далеко не всегда допустимо. По этой причине практически всегда выполняется распределенная регенерация, хотя возможен и промежуточный вариант - пакетами по нескольку (например, 4) циклов.
Рисунок 3.1 Временные диаграммы чтения и записи динамической памяти
Рисунок 3.2 Методы регенерации динамической памяти
Циклы регенерации могут организовываться разными способами Классическим является цикл без импульса CAS# (рис. 3.3, а), сокращенно именуемый ROR (RAS Only Refresh - регенерация только импульсом RAS#). В этом случае адрес очередной регенерируемой строки выставляется контроллером памяти до спада RAS# очередного цикла регенерации, порядок перебора регенерируемых строк не важен.
Другой вариант - цикл CBR (GAS Before RAS), поддерживаемый практически всеми современными микросхемами памяти (рис. 3.3, б). В этом цикле регенерации спад импульса RAS# осуществляется при низком уровне сигнала CAS# (в обычном цикле обращения такой ситуации не возникает). В этом случае микросхема выполняет регенерацию строки, адрес которой находится во внутреннем счетчике микросхемы, и в задачу контроллера входит только периодическое формирование таких циклов. Во время спада RAS# сигнал WE# должен находиться в состоянии высокого уровня. Дополнительным преимуществом данного цикла является экономия потребляемой мощности за счет неактивности внутренних адресных буферов.
Рисунок 3.3 Цикл регенерации динамической памяти
Микросхемы синхронной динамической памяти выполняют циклы CBR по команде Auto Refresh. А по команде Self Refresh или Sleep Mode они выполняют автономную регенерацию в энергосберегающем режиме. Такой возможностью обладают некоторые современные микросхемы, имеющие внутренний генератор. Вход в режим осуществляется как в цикл CBR, но сигнал RAS# должен быть активен более 100 мкс. Информация в таком состоянии будет храниться сколь угодно долго при наличии питающего напряжения. Выход из этого «спящего» состояния осуществляется по подъему сигналов RAS# и CAS#.
Цикл скрытой регенерации (hidden refresh) является разновидностью цикла CBR: здесь в конце полезного цикла чтения или записи сигнал CAS# удерживается на низком уровне, а RAS# поднимается и снова опускается, что и является указанием микросхеме на выполнение цикла регенерации по внутреннему счетчику (рис. 3.4). При этом слово «скрытость» не всегда означает экономию времени (затраты на регенерацию остаются теми же, что и в обычном CBR, хотя в принципе возможно предельное укорочение активной части импульса CAS# при чтении). Во время скрытой регенерации после цикла чтения выходные буферы сохраняют только что считанные данные (в обычном CBR выходные буферы находятся в высокоимпедансном состоянии).
Регенерация основной памяти в PC/XT осуществлялась каналом DMA-0. Сигнал Refr, вырабатываемый каждые 15,6 мкс по сигналу от первого канала таймера-счетчика 8253/9254 (порт 04lh), вызывает холостой цикл обращения к памяти для регенерации очередной строки. В PC/AT контроллер регенерации усложнен. В современных компьютерах регенерацию основной памяти берет на себя чипсет, и его задача - по возможности использовать для регенерации циклы шины, не занятые ее абонентами (процессорами и активными контроллерами).
Рисунок 3.4 Диаграмма скрытой регенерации
Из всех типов динамической памяти (FPM, EDO, BEDO, SDRAM) наиболее перспективна SDRAM (Synchronous DRAM) - быстродействующая синхронная динамическая память, работающая на частоте системной шины без тактов ожидания внутри пакетного цикла, и обеспечивающая цикл чтения 5-1-1-1 на частотах до 100 МГц От обычной (асинхронной) динамической памяти, у которой все внутренние процессы инициируются только сигналами RAS#, CAS# и WE#, память SDRAM отличается использованием постоянно-присутствующего сигнала тактовой частоты системной шины. Это позволяет создавать внутри микросхемы высокопроизводительный конвейер на основе ячеек динамической памяти со вполне обычным временем доступа (50-70 нс). Синхронный интерфейс обеспечивает трехкратный выигрыш в производительности по сравнению с традиционными микросхемами DRAM, имеющими запоминающие ячейки с тем же быстродействием. Микросхемы SDRAM являются устройствами с программируемыми параметрами, со своим набором команд и внутренней организацией чередования банков. Кроме команд записи и чтения с программируемыми параметрами пакетного цикла имеются команды автоматической регенерации и перевода в режим хранения данных с пониженным энергопотреблением. Длина пакетного цикла чтения и записи (burst length) может программироваться (1, 2, 4, 8 или 256 элементов), цикл может быть прерван специальной командой (без потери данных) Задержка данных (количество тактов) относительно команды чтения (read latency) программируется для оптимального согласования быстродействия памяти с частотой системной шины. Конвейерная адресация позволяет инициировать очередной цикл обращения до завершения предыдущего. Автоматическая регенерация (цикл CBR) выполняется по командам «Auto Refresh» (REFR), для сохранения информации требуется выполнение команд REFR с периодом 15,6 мкс (стандартная регенерация, 4096 команд за 64 мс) Существуют и модификации с пониженной частотой регенерации (extended refresh) По команде «Self Refresh» (SLFR) память переходит в режим саморегенерации, которой не требуется никаких внешних обращений. В этом режиме операции чтения и записи запрещены. Возможен также и перевод в режим хранения с пониженным потреблением, при котором отключается питание внешних буферов. На рис. 3.5 приведены временные диаграммы пакетных циклов записи и чтения синхронной памяти. Все входные сигналы считаются действительными во время положительного перепада тактового сигнала CLK. Текущая команда определяется комбинацией сигналов на управляющих входах RAS#, CAS#, WE#, A11 и А10 при низком уровне CS#. Набор команд включает следующие:
Рисунок 3.5 Временные диаграммы пакетных циклов SDRAM: А и В - данные для записи по адресу R0/C0 и R0/C0+1, С и D - данные, считанные по адресу R0/C1 и R0/C1 +1
Внутренний счетчик адреса работает по модулю, равному запрограммированной длине пакетного цикла (например, при burst length = 4 он не позволяет перейти границу обычного четырехэлементного пакетного цикла).
По причине существенного отличия интерфейса микросхемы SDRAM не могут быть установлены в модули SIMM, они применяются в DIMM или устанавливаются прямо на системную (или графическую) плату.
3.3Выбор модуля памяти
Современные модули памяти имеют шину данных разрядностью 1, 4 или 8 байт Кроме основных информационных бит, модули могут иметь дополнительные контрольные биты с различной организацией:
Рисунок 3.6 Модули DIMM: a - вид модуля, б- ключи для модулей первого поколения, в - ключи для модулей второго поколения
Синхронизация осуществляется для всех банков через сигнал II. Перевод банков памяти в режим саморегенерации осуществляется через регистры управления контроллера. Соответствие сигналов шины данных сигналам модуля SDRAM приведено в таблице 3.2.
Таблица 3.2 Соответствия сигналов шины данных сигналам SDRAM
Сигнал SDRAMБиты регистраПримечаниеCASA6Сигнал использует отдельную линию контроллераRASA7Сигнал использует отдельную линию контроллераWEA3 0DQMB[0:7]A3 [1:3]Биты преобразуются из двоичного кода в десятичныйS[0:3]A3 [4:5]Биты преобразуются из двоичного кода в десятичныйA[0:ll]A4[0:7] A5[O:3]CKE[O:1]A5 [4:5]При низком уровне переводит банки в режим саморегенерацииB[0:l]A5 [6:7]
3.4Выбор ЖКИ
В качестве жидкокристаллического модуля выберем MT-16S2D, который состоит из БИС контроллера управления и ЖК панели. Контроллер управления аналогичен HD44780 фирмы HITACHI и KS0066 фирмы SAMSUNG. Модуль выпускаются в двух вариантах: со светодиодной подсветкой и без нее. Символы отображаются в матрице 5x8 точек. Модуль позволяет отображать 2 строки по 16 символов в каждой. Между символами имеются интервалы шириной в одну отображаемую точку. Каждому отображаемому на ЖКИ символу соответствует его код в ячейке ОЗУ модуля. Модуль содержит два вида памяти - кодов отображаемых символов и пользовательского знакогенератора, а также логику для управления ЖК панелью.
Модуль позволяет:
Модуль содержит ОЗУ для хранения данных (DDRAM), выводимых на ЖКИ. Адреса отображаемых на ЖКИ символов распределены в соответствии с рис. 3.7
Рисунок 3.7 Распределение ОЗУ выводимых на индикатор данных
4. Разработка программного обеспечения
4.1Выбор языка программирования
Разрабатываемое программное обеспечение (ПО) предназначено для выполнения алгоритма управления и реализации функций устройства RAM-диска. В принципе, выбор языка программирования для уже выбранного микропроцессора серии MCS51 заключается в определении необходимости использования для этого непосредственно команд процессора, т.е. язык Ассемблер, или одного из языков высоко уровня, специально разработанных для микропроцессоров этой серии.
Громоздкость, неудобочитаемость и высокая вероятность наличия ошибок в коде программы при использовании языка Ассемблер очевидны. Выбор этого языка имеет актуальность в случае экстренной необходимости оптимизации кода программы с максимизацией по быстродействию. В остальных случаях удобнее всего использовать язык высокого уровня.
Одним из таких языков является язык высокого уровня PL/M-51 для программирования разрабатываемых контроллеров на базе интеловской серии MCS-51, который удовлетворяет требованиям программного обеспечения компьютеров в широком ряду систем. Компилятор PL/M-51 - это программное средство, которое транслирует исходные коды PL/M-51 в перемещаемые объектные модули. Эти модули затем могут объединяться с другими модулями, написанными на PL/M или на ассемблере. Компилятор выводит на экран дисплея листинги, сообщения об ошибках и вспомогательную информацию, которая может быть использована при отладке и дальнейшей разработке программ.
Компилятор PL/M-51 может быть установлен на IBM или ее эквивалентах в системе DOS 3.Х и использоваться для получения объектных кодов, работающих на микропроцессорах семейства MCS-51.
Компилятор PL/M автоматически обеспечивает такие возможности целевого процессора, как распределение регистров или назначение собственных байтов для каждой единицы данных.
Фразы и ключевые слова PL/M близки к естественному английскому и многие операции (включая арифметические и булевские операции) могут объединятся в выражения. Эта особенность позволяет выполнить ряд операций с одним программным предложением. Типы данных и структуры данных сходны современным разработкам.
Например, программы на PL/M могут быть написаны в терминах булевских выражений, символов и структур данных в дополнение к байтам, словам и переменным.
Кодирование программ на языке высокого уровня, а не на языке ассемблер включает в себя возможности, позволяющие планирование полной системной разработки. Ниже приводятся преимущества использования PL/M и те применения, для которых PL/M наиболее соответствует:
4.2Разработка алгоритма ПО
Шаги разработок программного обеспечения следующие:
Таблица 4.1Значения байта статуса
Значение байта statusЗначение события01Чтение байта из SDRAM. Адрес читаемого байта хранится в специальной переменной Adr_Read02Чтение блока байт из SDRAM. Адрес читаемого первого байта хранится в специальной переменной Adr_Read_From, адрес читаемого последнего байта хранится в специальной переменной Adr_Read_To03Запись байта в SDRAM. Адрес записываемого байта хранится в специальной переменной Adr_Write04Запись блока байт в SDRAM. Адрес первого записываемого байта хранится в специальной переменной Adr_Write_From, адрес последнего записываемого байта хранится в специальной переменной Adr_Write_To
На рисунках 4.1 и 4.2 приведены блок-схемы алгоритмов основной программы и прерывания от внешнего устройства RI соответственно.
Рисунок 4.1 Алгоритм основной программы
Рисунок 4.2 Алгоритм прерывания RI
Выводы
В рамках курсового проекта было разработано устройство RAM-диск, позволяющее считывать, записывать и хранить информацию в модулях динамической памяти типа SDRAM под управлением микроконтроллера.
Разработаны структурная и принципиальная схемы устройства.
Выполнен обоснованный выбор элементной базы.
Разработано программное обеспечение.
Приложение А Текст программы
компьютерное устройство диск память
GKI: PROCEDURE (V_ADR,V_END) BYTE;I BYTE;I=0 TO V_END;=V_ADR;TIME (30);=01H;_ADR=V_ADR+1;;GKI;_STATUS: PROCEDURE;ADR_REC=01H THEN ;=01H;_READ=ADR_REC-1;;ADR_REC=02H THEN ;=02H;_READ_FROM=ADR_REC-1;_READ_TO=ADR_REC-2;_READ=ADR_READ_FROM;;ADR_REC=03H THEN ;=03H;_WRITE=ADR_REC-1;_WRITE=ADR_REC-2;;ADR_REC=04H THEN ;=04H;_WRITE_FROM=ADR_REC-1;_WRITE_TO=ADR_REC-2;_WRITE=ADR_WRITE_FROM;;SET_STATUS;_INT: PROCEDURE;I BYTE;V BYTE;_REC=SBUF;SBUF=FFH THEN CALL SET_STATUS;ADR_REC=ADR_REC+1;RECEIVE_INT;_INTV:PROCEDURE INTERRUPT 5;RECEIVE_INT;KEY_INTV;_GKI: PROCEDURE;I BYTE;TIME (150);/* DELAY OF TIMER 15MS*/=0CH;/*SET PARAM*/TIME (100);=0CH;TIME (30);=08H;I=1 TO 10;TIME (100);;=20H;I=1 TO 10;TIME (100);;=20H;I=1 TO 10;TIME (100);;=04H;TIME (40);=18H;INIT_GKI;_01 PROCEDURE;GKI (90H,94H);=ADR_READ;STATUS_01;_02 PROCEDURE;I BYTE;GKI (90H,94H);I=ADR_READ_FROM TO ADR_READ_TO;=ADR_READ;_READ=ADR_READ+1;;STATUS_02;_03 PROCEDURE;GKI(95H,98H);_WRITE=V_WRITE;STATUS_03;_04 PROCEDURE;I BYTE;GKI(95H,98H);I=ADR_WRITE_FROM TO ADR_WRITE_TO;_WRITE=V_WRITE;_WRITE=ADR_WRITE+1;;STATUS_03;_PROG:DO;STATUS BYTE PUBLIC;V_TMOD BYTE AT (89H) MAIN PUBLIC;V_TCON BYTE AT (88H) MAIN PUBLIC;V_TH0 BYTE AT (8CH) MAIN PUBLIC;V_TL0 BYTE AT (8AH) MAIN PUBLIC;V_TH1 BYTE AT (8DH) MAIN PUBLIC;V_TL1 BYTE AT (8BH) MAIN PUBLIC;ADR_READ BYTE PUBLIC;ADR_WRITE BYTE PUBLIC;ADR_READ_FROM BYTE PUBLIC;ADR_READ_TO BYTE PUBLIC;ADR_WRITE_FROM BYTE PUBLIC;ADR_WRITE_TO BYTE PUBLIC;V_WRITE BYTE PUBLIC;MSG(9) BYTE AT (90H) MAIN;(0)=25H;/*R*/(1)=54H;/*E*/(2)=14H;/*A*/(3)=44H;/*D*/(4)=75H;/*W*/(5)=25H;/*R*/(6)=94H;/*I*/(7)=45H;/*T*/(8)=54H;/*E*/=00H;INIT_GKI;;_STATUS:DO WHILE STATUS<10H;STATUS=00H THEN CALL STATUS_00;STATUS=01H THEN CALL STATUS_01;STATUS=02H THEN CALL STATUS_02;STATUS=03H THEN CALL STATUS_03;CHECK_STATUS; MAIN_PROG;
Приложение В Таблица символьной кодировки
Приложение С Принципиальная схема устройства
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Курсовая работа (т)
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ