Главная Рефераты по рекламе Рефераты по физике Рефераты по философии Рефераты по финансам Рефераты по химии Рефераты по хозяйственному праву Рефераты по цифровым устройствам Рефераты по экологическому праву Рефераты по экономико-математическому моделированию Рефераты по экономической географии Рефераты по экономической теории Рефераты по этике Рефераты по юриспруденции Рефераты по языковедению Рефераты по юридическим наукам Рефераты по истории Рефераты по компьютерным наукам Рефераты по медицинским наукам Рефераты по финансовым наукам Рефераты по управленческим наукам Психология и педагогика Промышленность производство Биология и химия Языкознание филология Издательское дело и полиграфия Рефераты по краеведению и этнографии Рефераты по религии и мифологии Рефераты по медицине Рефераты по сексологии Рефераты по информатике программированию Краткое содержание произведений |
Реферат: Программатор ПЗУ (программный интерфейс)Реферат: Программатор ПЗУ (программный интерфейс)СОДЕРЖАНИЕ ОСНОВНЫЕ НАПРАВЛЕНИЯ ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ В УЧЕБНОМ ПРОЦЕССЕ 4 1. ОБЩИЙ РАЗДЕЛ 11 1.1. Характеристики аппартных средств вычислительной техники 11 1.2. Характеристики программных средств вычислительной техники 19 1.3. Постановка задачи 20 2. СПЕЦИАЛЬНЫЙ РАЗДЕЛ 22 2.1. Разработка алгоритма программного обеспечения 22 2.2. Разработка универсальной управляющей программы 23 2.3. Разработка программного интерфейса 27 2.4. Описание процесса отладки 28 2.5. Разработка эксплуатационно-методической документации 29 2.6. Результаты испытаний 30 3. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЙ РАЗДЕЛ 32 3.1. Оценка издержек на разработку программного интерфейса для программатора ПЗУ 32 3.2. Анализ эффективности внедрения разработанной программы в учебный процесс 34 4. МЕРОПРИЯТИЯ ПО ОХРАНЕ ТРУДА. БЕЗОПАСНОСТЬ ТРУДА ПРИ ОБСЛУЖИВАНИИ ПРОГРАММАТОРА 37 4.1 Требования безопасности к техническим средствам ПЭВМ 37 4.2. Требования безопасности к микроклимату в учебных лабораториях 38 4.3. Меры безопасности при сервисном обслуживании программатора. 40 ОСНОВНЫЕ НАПРАВЛЕНИЯ ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ В УЧЕБНОМ ПРОЦЕССЕСтремительное внедрение в сферу материального производства новой информационной технологии, широкая электронизация всех машин и оборудования требует сегодня от многомиллионной армии специалистов знания микропроцессорных средств и систем, владения компьютерной техникой. В настоящий период время внедрения научных открытий, освоение новых технологий в ведущих отраслях промышленности становится соизмеримым с продолжительностью учебы в вузе, техникуме. Это требует поиска таких методов и средств обучения, которые сократили бы расстояние между достижениями науки, производственной практикой и содержанием образования. Изменяются в значительной степени и цели обучения. Сегодня профессионально важным для специалиста является умение самостоятельно и непрерывно пополнять, обновлять знания, вести творческий поиск, способность ответственно принимать оригинальные решения. Новые задачи образования требуют современной технической базы, и, в первую очередь, широкого внедрения компьютеров в учебном процессе. Реализация учебного процесса, обеспечивающего высокую образовательную активность учащихся, самостоятельность их работы, индивидуализацию обучения в настоящее время невозможна без широкого применения вычислительной техники и дидактических материалов, обеспечивающих реальность такого использования. Успехи в деле компьютеризации учебного процесса определяются тремя существенными факторами: наличием вычислительной техники; производством и распределением программного обеспечения; готовностью преподавателей методически грамотно использовать вычислительную технику. Определенный опыт освоения и использования электронной вычислительной техники в учебно-воспитательном процессе накоплен в Винницком техникуме электронных приборов [7]. Начало освоения электронно-вычислительных машин (ЭВМ) относится к 1977-78 году, когда вычислительный центр техникума, оснащенный машинами «Электроника-1004», занимался статистической обработкой результатов успеваемости и посещаемости. Это позволило руководителям техникума ежедневно получать оперативную информацию о состоянии дел в каждом учебной группе. В 1980-1981 году были сделаны первые шаги по использованию ЭВМ для решения творческих задач в период курсового и дипломного проектирования. Начало этой работы поставило перед педагогическим коллективом техникума ряд проблем: необходимость психологической подготовки преподавателей к внедрению вычислительной техники; необходимость разработки методик инженерных расчетов, ориентированных на применение ЭВМ; пересмотр методики проведения занятий; отсутствие информационно-методического и программного обеспечения вычислительной техники. Возникшие проблемы решались в техникуме постепенно, сначала работой по внедрению вычислительной техники занялись преподаватели специальных дисциплин, хорошо владеющие методикой обучения, с одной стороны, и знающие основы вычислительной техники с другой. Это позволило уже в 1980-81 году разработать и внедрить в учебный процесс пакет программ «Расчет элементов интегральных микросхем». Выполненная учащимися двух учебных групп расчетная часть курсового проекта показала высокую эффективность применения техники в курсовом проектировании. Проведенные в том же году открытые уроки позволили на практике показать большинству членов коллектива возможность и эффективность использования вычислительной техники в учебном процессе. Был преодолен психологический барьер. В работу по внедрению вычислительной техники стали подключаться все новые и новые преподаватели. С 1983-84 года на ЭВМ проводятся расчеты функциональных узлов по предмету «Радиоприемные устройства», трудоемкие расчеты надежности РЭА, экономические расчеты и др. Только за 4 года более 200 учащихся выполнили курсовые проекты с расчетами на ЭВМ. Высокая точность расчетов, производительность позволили высвободить у них время на творческую, содержательную часть проекта. Общие методические принципы проведения занятий при помощи ЭВМ, сформулированные в техникуме на основе четырехлетнего опыта, были перенесены на другие предметы общеобразовательного, общетехнического и специального цикла. Этому способствовал организованный в 1985 году постоянно действующий семинар для преподавателей по программированию и применению вычислительной техники в учебном процессе. Для учащихся был введен факультативный курс «Применение микропроцессорных средств и микро-ЭВМ». 1984-85 год стал годом массового освоения программируемых микрокалькуляторов, которые широко использовались при выполнении лабораторных и практических работ по ТОЭ, физике, математике, общетехнических и специальных дисциплин. Создание прикладных расчетных программ для программируемых микрокалькуляторов - неотъемлемая часть научно-методической работы в техникуме. Более 30% преподавателей прошли переподготовку на факультетах повышения квалификации при ведущих учебных заведенях минвуза СССР и отраслевого министерства [7]. Внедрение вычислительной техники в нашем учебном заведении - это планомерный, постоянно развивающийся процесс. Опыт подтвердил известное положение о том, что совершенствованию методики и программ нет предела. В 1982 году положено начало использованию вычислительной техники в научно-техническом творчестве. Так при выполнении хоз. договорных экспериментально-конструктивных работ учащиеся готовят программы трассировки печатных плат для систем автоматического проектирования (САПР), разрабатывают и отлаживают программы сверловки плат для станков с числовым программным управлением (ЧПУ), проводят типовые расчеты, учет материальных ценностей, документооборот по ЭКВ ведется с 1987 года при помощи автоматизированной информационной системы, созданной на базе СУБД-микро для ДВК. Постоянная работа учащихся с ЭКБ с вычислительной техникой приносит свои плоды, сегодняшние старшекурсники, работающие в ЭКВ, свободно владеют микрокомпьютерами на уровне пользователя. Можно предположить, что результаты подготовки по вычислительной технике значительно возрастут при организации непрерывного процесса формирования профессионально важных качеств пользователя ЭВМ у каждого учащегося, начиная с изучения основ информатики и вычислительной техники в общетехнических и специальных дисциплинах и заканчивая использованием ее в различных учебных формах научно-технического творчества. Программирование - один из интересных видов творческой деятельности. Важная организационная форма научно-технического творчества - кружок программирования. Занятия в нем привлекают многих учащихся и дают практические знания по программированию и пользованию ЭВМ. Он становится базой для подготовки и отладке многих прикладных программ. Автоматизация процесса обработки информации - одна из сфер эффективного применения вычислительной техники. Рациональная организация информационных ресурсов в техникуме - задача, которая стоит перед коллективом. С этой целью в ЭКБ техникума ведутся работы по созданию автоматизированных информационно-поисковых систем на основе микрокомпьютеров. В 1987 году фрагмент информационно-поисковой системы «Банк передового педагогического опыта» внедрен в опытную эксплуатацию совместно с кафедрой педагогики московского областного пединститута им Н.К. Крупской. Пакет программ информационно - поисковой системы внедряется при изучении темы «Информационное обеспечение профессиональной деятельности специалиста» в курсе «основы научно - технического творчества». Работа учащихся с информационными фондами на машинах носителях - важный этап формирования культуры информационной деятельности как преподавателей, так и учащихся [7]. В 1988 году в техникуме создана хорошая учебно-материальная база: класс диалоговых вычислительных комплексов; 2 класса компьютеров; более 300 программируемых калькуляторов Широкое применение элементов микропроцессорной техники в научно-техническом творчестве позволяет производить разработки по совершенствованию научно-технических средств вычислительной техники, созданию учебно-лабораторного оборудования для изучения работы микро-ЭВМ и программного управления технологическим оборудованием. Так в 1985 году был создан тренажер учебной микро-ЭВМ «Электроника-ВТЭП микро». На тематической выставке «Инженерно тематическое оборудование» ВДНХ СССР в 1986 году учебная микро-ЭВМ отмечена серебряной медалью. Десять таких тренажеров внедрены в учебный процесс в 1986 году [7]. В 1986 году в техникуме создана локальная сеть диалоговых вычислительных машин. Ее внедрение существенно расширило диалектические возможности применения ДВК-1 в условиях группового обучения. В 1987 году ЭКБ техникума создает локальные сети по заказу ряда техникумов отрасли. Призером выставки «Итоги 11-го всесоюзного смотра-конкурса на лучшую экспериментально-конструктивную работу учащихся ССУЗ», проводимой в феврале-марте 1987 года на ВДНХ СССР, стал специализированный микрокомпьютер «Спектр», созданный в ЭКБ для управления технологическим оборудованием. Медалями ВДНХ отмечены пакеты программ «Расчет элементов интегральных схем» и «Определение профессиональной надежности личности». Три преподавателя техникума являются членами методической комиссии минвуза СССР по вычислительной технике и научно-техническому творчеству. Опытом работы техникум делится на всесоюзных, республиканских и областных совещаниях, семинарах, проводимых минвузом СССР. Масштабность задач, связанных с внедрением вычислительной техники, выдвигает на повестку дня вопрос о целесообразности создания на базе ведущих техникумов ряда лабораторий, занимающихся разработкой информационно-методического и программного обеспечения по каждому из направлений с последующим внедрением во все учебные заведения отрасли и системы среднего специального образования. Это может стать одним из направлений экспериментально-конструкторской работы, проводимой по хоздоговорам при условии укрепления ЭКБ специалистами по системотехнике и системному программированию. 1. ОБЩИЙ РАЗДЕЛ1.1. Характеристики аппартных средств вычислительной техникиКогда произносят слова «персональный компьютер», обычно подразумевается не что иное, как компьютер типа IBM PC. Именно американская компания IBM в августе 1981 года объявила о выпуске самого первого компьютера, получившего название Personal Computer, или просто PC. [6] Впрочем, еще до создания IBM PC множеством разных фирм выпускались компьютеры, которые было бы вполне уместно называть персональными. Даже весьма далекая от электроники фирма Coca - Cola пыталась выпускать собственную модель персонального компьютера! Несовместимость многочисленных моделей компьютеров была главным препятствием для создания совершенных программ универсального применения. Когда IBM вышла на рынок настольных компьютеров, казавшийся сомнительным и рискованным, разнобой среди персональных компьютеров довольно быстро пошел на убыль. Маленький персональный компьютер IBM PC на процессоре 8088 фирмы Intel оказался тем долгожданным стандартом, который с радостью поддержали многочисленные программисты и фирмы - изготовители прикладного программного обеспечения: наконец-то появился компьютер солидной фирмы, для которого можно было разрабатывать и успешно продавать большими тиражами достаточно сложные, совершенные и универсальные программы. По сути дела, компьютер IBM PC создал не только стабильный и обширный рынок персональных компьютеров, но и огромный рынок прикладного программного обеспечения, на котором за последние полтора десятилетия разбогатело множество венчурных фирм [6]. Вот яркий тому пример. Компьютер IBM PC почти с самого начала работал под управлением дисковой операционной системы DOS, которую разработала для IBM маленькая и никому тогда не известная фирма Microsoft. Сегодня Microsoft - бесспорный флагман индустрии программного обеспечения, одна из богатейших фирм мира, выпускающая не только операционные средства MS-DOS и Windows для управления компьютерами, но и различные прикладные пакеты. А основатель и руководитель Microsoft Билл Гейтс, несмотря на молодость, один из самых богатых людей. Разумеется, персоналка IBM PC оказалась только первым шагом в верном направлении. Затем фирма IBM выпустила множество моделей персональных компьютеров XT, AT, PC/1 и PC/2 на различных процессорах Intel 8086, 80286, 80386, 80486. Все эти компьютеры предназначены для работы под управлением операционной системы DOS или в графической среде Windows. Множество других фирм немедленно принялись подражать IBM и развивать ее успех, выпуская свои собственные модели персоналок, полностью совместимые с IBM PC, либо выпуская различное периферийное дополнительное оборудование для IBM PC. Ведь одной из замечательных особенностей персоналки IBM PC была так называемая «открытая архитектура», позволявшая даже неспециалистам легко и просто изменять устройство и технические возможности своего компьютера. Для этого часто достаточно было воспользоваться разъемами последовательного или параллельного портов, добавить на пустующих панельках несколько микросхем памяти, вставить в плату сопроцессор, переставить в другое положение DIP-переключатели, поменять с помощью отвертки блоки, воткнуть или вынуть плату расширения из слота системной шины. В результате буквально за несколько минут всякий мог, не располагая сколько - нибудь глубокими знаниями и сложным инструментом, построить из готовых компонентов совершенно новую персональную компьютерную систему с необходимыми техническими параметрами [6]. 1.1.1. Основные части компьютераВообще-то, самый первый персональный компьютер создали инженеры американской фирмы Xerox. Именно той самой фирмы, которая подарила миру копировальный аппарат, известный у нас под именем «ксерокс». Это, оставшееся почти незамеченным, историческое событие произошло в исследовательском центре фирмы Xerox PARC (Palo - Alto Research Center) в Пало-Альто, в Калифорнии. Уже на первых персоналках Xerox двадцать лет назад применялся графический интерфейс, очень похожий на современную графическую среду Windows [6]. С тех пор прошло немало времени, и сейчас диапазон конструктивных решений персональных компьютеров очень широк. Но несмотря на конструктивные внешние различия (от напольных башен до карманных моделей), все персоналки очень похожи друг на друга. Другими словами, если «анатомия» компьютеров различна, то их «физиология» практически идентична. Современный персональный компьютер включает следующие устройства [1]:
1.1.2. Оперативная память Объем доступной оперативной памяти - один из важнейших параметров любого компьютера. Оперативная память или оперативное запоминающее устройство (ОЗУ или RAM) представляет собой совокупность микросхем на системной плате, способных накапливать и временно хранить программы и обрабатываемые данные. Эта информация по мере надобности может быстро считываться из оперативной памяти процессором и записываться туда вновь. При отключении питания содержимое оперативной памяти полностью стирается и утрачивается. Поэтому после включения компьютера программы и данные всякий раз необходимо заново загружать в оперативную память из источников долговременного хранения информации. Для долговременного хранения информации чаще всего применяются магнитные и оптические диски или иные накопители цифровой информации [2]. В современных компьютерах применяется главным образом динамическая оперативная память или DRAM (Dynamic Random Access Memory). Она строится на микросхемах, требующих во избежание потерь периодического обновления информации. Этот процесс получил название «регенерация памяти». Он реализуется специальным контроллером, установленным на материнской плате. На периодическую регенерацию данных в микросхемах динамической оперативной памяти расходуется некоторое время. Поэтому сбои в памяти нередко оказываются одной из распространенных проблем в работе недорогих персональных компьютеров «желтой» или «черной» сборки, даже если в них используются совершенно исправные микросхемы динамической оперативной памяти. Объем любой компьютерной памяти, в том числе и оперативной памяти, измеряется в килобайтах и мегабайтах. Наименьшей единицей измерения информационной емкости и наименьшей единицей деления памяти компьютера является байт. Собственно байт - это, в свою очередь, совокупность восьми мельчайших единиц информации, которые называют битами. Разница между простейшими стационарными двоичными состояниями, например, «включено»/«выключено» или между 0 и 1 составляет всего один бит. Байтовая (или 8 - битовая) структура измерения выбрана из - за двоичной организации вычислительной техники. Для передачи или сохранения одного любого символа - буквы, цифры или знака - требуется минимум один байт. 1 килобайт равен 1024 байтам, 1 мегабайт - 1024 килобайтам, 1 гигабайт - 1024 мегабайтам.
1.1.3. Дисковая операционная система (DOS) Дисковая операционная система - это программа, которая загружается при включении компьютера. Она производит диалог с пользователем, посредством команд (каждая команда означает действие, которое DOS должна выполнить) осуществляет управление компьютером, его ресурсами (оперативной памятью, местом на дисках и т. д.), выводит информацию на видеомонитор, запускает другие (прикладные) программы на выполнение. Операционная система обеспечивает пользователю и прикладным программам удобный способ общения (интерфейс) с устройствами компьютера. Она выполняет также различные вспомогательные действия, например копирование или печать файлов (файл -- это поименованный набор информации на диске или другом машинном носителе). Все функции по обслуживанию таблиц размещения файлов, поиску информации в них, выделению места для файлов на дискетах выполняются операционной системой. Главным достоинством DOS является ее способность управлять устройствами памяти на магнитных дисках (именно поэтому она названа - дисковая операционная система) [7]. Операционная система осуществляет загрузку в оперативную память всех программ, передает им управление в начале их работы, выполняет различные действия по запросу выполняемых программ и освобождает занимаемую программами оперативную память при их завершении. 1.2. Характеристики программных средств вычислительной техникиСистема программирования Турбо Паскаль (Turbo Pascal), разработанная американской корпорацией Борланд (Borland), остается одной из самых популярных систем программирования в мире. Этому способствуют, с одной стороны, простота, лежащая в основе языка программирования Паскаль, а с другой - труд и талант сотрудников корпорации Борланд во главе с идеологом и создателем Турбо Паскаля Андерсом Хейлсбергом. [3] Придуманный швейцарским ученым Никласом Виртом как средство для обучения студентов программированию, язык Паскаль стараниями А. Хейлсберга превратился в мощную современную профессиональную систему программирования, которой по плечу любые задачи - от создания простых программ, до разработки сложнейших реляционных систем управления базами данных. [4] Турбо Паскаль - это строго типизированный язык. Развитая система типов позволяет легко разрабатывать адекватные представления для структур данных любой решаемой задачи. В то же время существующие в Турбо Паскале средства преобразования типов дают возможность гибко манипулировать различными данными. Основные операторы языка являются хорошей иллюстрацией базовых управляющих конструкций структурного программирования. Их использование позволяет записывать сложные алгоритмы обработки данных в компактной форме. Гармоничное включение в структуру языка средств объектно-ориентированного программирования делает переход от традиционных технологий программирования к объектно-ориентированному для тех, кто программирует на Турбо Паскале, достаточно безболезненным. Система программирования Турбо Паскаль поддерживает модульный принцип программирования, который лежит в основе всех современных технологий разработок программ. Программа, написанная на Турбо Паскале, обычно разбивается на модули, а те, в свою очередь, состоят из подпрограмм. [4] 1.3. Постановка задачиЦелью задачи является разработка программного интерфейса (ПИ), который должен связывать персональный компьютер и лабораторный макет «Программатор ПЗУ». ПИ должен обеспечивать подачу входных воздействий на все контакты ИМС (шину адреса, шину данных, управляющие сигналы), осуществлять считывание и запись данных, используя стандартный порт ввода-вывода LPT (параллельный). Требования к интерфейсу: ПИ должен обеспечивать формирование и подачу адреса, содержащего шесть информационных и четыре управляющих бита данных на соответствующие контакты программируемой ПЗУ, обеспечить стробирование чтения/записи информации. ПИ должен обеспечить удобный вывод текстовой информации на экран для упрощения работы пользователя с программой. 2. СПЕЦИАЛЬНЫЙ РАЗДЕЛ2.1. Разработка алгоритма программного обеспеченияСтруктура программного интерфейса была построена на основе иерархической системы экранного меню. Эта система позволяет обеспечить для пользователя удобный переход и взаимодействие различных уровней иерархии данного алгоритма структуры меню. При разработке алгоритма программного обеспечения были использованы следующие программные модули: модуль главного меню; модуль настройки программы; модуль чтения ПЗУ; модуль записи ПЗУ; модуль просмотра настроенной программы. Модуль главного меню обеспечивает отображение на экране всех пунктов меню, и, соответственно, осуществляет передачу управления программы по этим пунктам с предварительным сохранением информационных переменных и массивов. Модуль настройки программы осуществляет определение пользователем всех входных и выходных параметров, которые необходимы для дальнейшей работы модулей чтения и записи ПЗУ, а также тестирования программатора. Модули чтения и записи ПЗУ, обеспечивает связь программного интерфейса с аппаратной частью лабораторного макета, и осуществляет основную связь по работе с ПЗУ. Модуль просмотра настроенной программы осуществляет выдачу на экран текста настроенной универсальной программы. 2.2. Разработка универсальной управляющей программыУправляющая программа построена в режиме меню для обеспечения наибольшей простоты ее использования. Программа была реализована на экране с разрешающей способностью в текстовом режиме 80x60. Для упрощения программного алгоритма были разработаны процедуры, которые позволили выводить меню, управлять курсором, работать с файловой системой DOS.
Таблица 2.1 Переменные используемые в процедуре Color
Таблица 2.2 Переменные используемые в процедуре Loc
2.2.4. Процедура Wchar - печать символа 2.2.5. Процедура Shade- создание тени для окна. 2.2.6 Процедура Wrt - вывод текста на экран. 2.2.7. Процедура Map - выводим созданный виртуальной эран на дисплей. 2.2.8. Процедура Cls - очистка экрана. 2.2.9. Процедура ScanKey - выдает ASCII код нажатой клавиши. 2.2.10. Процедура SkipTime - пропускает время (таймер процессора). 2.2.11. Процедура MoveMan - анимация человека и стрелки. 2.2.12. Процедура MakeMan - создание человека. 2.2.13. Процедура LoadFont - загрузка моего шрифта. 2.2.14. Процедура WaitKey - ожидание нажатия любой клавиши.
Таблица 2.3 Переменные используемые в процедуре Window
Таблица 2.4 Переменные используемые в процедуре Morph
Продолжение таблицы 2.4
Таблица 2.5 Переменные используемые в процедуре MorphL
2.2.18. Процедура WindowL - создание окна с последними координатами.
Таблица 2.6 Переменные используемые в процедуре Menu
2.2.20. Процедура HexL2Str - представление символа в ввиде шестнадцатиричного кода. 2.2.21. Процедура HexB2Str - представление символа в ввиде восьмеричного кода. 2.2.22. Процедура MemEd - редактор текста. 2.2.23. Процедура Ffile - работа с файлами, запись, создание и чтение. 2.2.24. Процедура ReadROM - работа с программатором, чтение и запись данных ПЗУ, тестировнаие устройства. 2.3. Разработка программного интерфейсаПрограммный интерфейс был разработан с учетом всех его эксплуатационных характеристик. Он должен отвечать следующим требованиям: полнота и краткость отображаемой информации; удобное расположение информации на экране; оперативность работы. Интерфейс программного обеспечения был построен по иерархической структуре.
Рис. 2.1. Интерфейс программного обеспечения Вся программа построена на основе типизированных меню, которые позволят легко и интуитивно работать, и не потребуют дополнительного времени от учащихся на изучение интерфейса программы. Фон, окна меню, и текст отвечают всем требованиям предъявляемым к цветовому оформлению; цветовая палитра подобрана так, чтобы глаза учащихся как можно меньше уставали при работе с программатором. Также был разработан новый шрифт, что позволило обеспечить крупные символы букв, и русифицированный программный интерфейс. Кадровые окна основного меню и все подпункты меню на каждом уровне иерархии выполнены в виде окон с соответствием каждого окна его информационному назначению. Межоконный переход осуществляется выбором соответствующего пункта перемещением по экрану маркера, в виде стрелки, позиция которого указывает на выбранный пункт меню. Обратный переход в иерархическом меню осуществляться выбором последнего пункта меню - «НАЗАД», или нажатием функциональной клавиши «ESC». Работа с пунктом меню «Работа с ПЗУ» возможна только после выбора типа ПЗУ в пункте меню «Выбор ПЗУ», это связанно с особенностью работы аппаратной части лабораторного макета «Программатор ПЗУ». 2.4. Описание процесса отладкиПри отладке программного интерфейса лабораторного макета был использован пошаговый режим пяти основных программных модуля: модуль меню, модуль чтения ПЗУ, модуль записи ПЗУ, модуль тестирования программатора, модуль файловых операций. В процессе отладки были использована промежуточная печать для определения некоторых промежуточных вычислений и кода вводимых с клавиатуры символов и клавиш. Была произведена отладка программы на выявление орфографических, синтаксических, логических и графических ошибок в экранных частях программы. Осуществлена отладка программного интерфейса совместно с его аппаратной частью. Были внесены некоторые изменения в программу, связанные с обеспечением синхронизации работы программного интерфейса лабораторного макета с его аппаратной частью. 2.5. Разработка эксплуатационно-методической документацииПри эксплуатации лабораторного макета “Програматор ПЗУ” по проведению лабораторных работ необходимо:
Для ознакомления с устройством и работой программатора ПЗУ пользователю предоставлена документация. 2.6. Результаты испытанийВ процессе дипломного проектирования были получены следующие результаты: Был разработан программный интерфейс лабораторного макета «Программатор ПЗУ», который обеспечивает связь аппаратного интерфейса лабораторного макета с последовательным портом (LPT) персонального компьютера IBM PC, позволяет считывать и записывать информацию на микросхемы ПЗУ. Также программный интерфейс создает удобный режим общения пользователя с программой по принципу экранных меню. Вся программа реализована на персональном компьютере IBM PC 486 с монитором разрешающей способностью в текстовом режиме 80x60, при палитры 16 цветов. В ходу отладки программного интерфейса экспериментным путем были установлены минимальные требования к персональному компьютеру: IBM совместимы персональный компьютер; процессор 286; цветной дисплей; видеоадаптер EGA; операционная оболочка DOS 3.0 или старше; объем оперативной памяти 416 Kb; свободное пространство на жестком диске из расчета: программа (20Kb) + 64Kb*кол. прошивок ПЗУ. Техническая характеристика программы:
3. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЙ РАЗДЕЛ3.1. Оценка издержек на разработку программного интерфейса для программатора ПЗУ3.1.1 Статья I. Материальные ресурсы Статья I включает стоимость всех видов сырья и материалов, расходуемых на изготовление продукции, а также транспортно-заготовительные расходы. Расчет сырья и материалов приведен в таблице 3.1.
Расчет сырья и материалов
ТЗР=912000.00*1%/100%=9120.00 руб.
Ст.I=912000.00+9120.00=921120.00 руб. 3.1.2. Статья II. Оплата труда Статья II включает заработную плату основных производственных рабочих, в которые непосредственно на рабочих местах выполняют операции, по обработке продукции. Определение норм времени на операции приведено в таблице 3.2.
Нормы времени
Ст.2=975000.00 руб. 3.1.3 Статья III. Отчисления во внебюджетные фонды Статья III включает в себя отчисления в пенсионный фонд (28 %), фонд занятости (1.5 %), медицинское страхование (3.6 %), социальное страхование (5.4 %), в фонд образования (1 %) и транспортный налог (1 %). Всего 40,5 % от начисленной заработной платы.
Ст.3== 394875.00 руб. 3.1.4. Статья IV. Расходы на содержание и обслуживание оборудования Статья IV включает в себя расходы на зарплату вспомогательным рабочим, наладчикам, механикам, стоимость запасных частей, вспомогательных средств и амортизацию. Начальная стоимость персонального компьютера IBM PC/AT 386 - 2425920.00 руб., норма амортизации - 4% (КОМ), расходы составили 97036.80 руб. Во время разработки и отладки программного обеспечения было потрачена 89 кВт (ЭНЕР) электроэнергии: 1 кВт - 512.00 руб., 89 кВт - 45568.00 руб.
Ст.4= 97036.80+45568.00=142604.80 руб. 3.1.5. Полная себестоимость
Пол.Себ.=921120.00+975000.00+394875.00+142604.80=2433559.80 руб. 3.2. Анализ эффективности внедрения разработанной программы в учебный процессЭффективность внедрения программы заключается в том, что лабораторный макет, для которого написана программа, позволяет наглядно продемонстрировать чтение и запись ПЗУ в производственных условиях. Лабораторный макет и программное обеспечение обслуживающие макет, позволит улучшить качество обучающего процесса по предмету «Импульсная техника», потому, что позволит учащимся непосредственно на практике изучить метод чтения и записи микросхем. Программа для лабораторного макета проста и интуитивна понятна в обращении; Сам макет, также прост, что позволяет сразу преступить к выполнению лабораторной работы, необходимо всего лишь только подключиться макет в сеть, подсоединить разъем к параллельному порту персонального компьютера (порт LPT), вставить прошиваемую микросхему ПЗУ в панель и запустить программное обеспечение на персональном компьютере. Эта простота в обращении позволит не затрачивать много времени на обучение учащихся пользованию макетом. Лабораторный макет имеет хорошие показатели повторяемости, не требует сложного оборудования для отладки, что позволяет легко внедрить макет в производство или собирать его непосредственно в радиомастерских учебных заведений или в домашних условиях. К достоинству макета относятся и низкая себестоимость, так как использованы широкодоступные детали и материалы; малый ток потребления; малые габаритные размеры; интуитивно понятный программный интерфейс. Все выше перечисленные факторы позволят снизить розничную цену макета и программного обеспечения для него, а также уменьшить затраты на эксплуатацию, что в условиях рыночной экономики позволяет повсеместно внедрить лабораторный макет по программированию ПЗУ в учебный процесс. Сам как таковой лабораторный стенд без программного обеспечения не имеет смысла рассматривать, так как без программы, это просто груда металла, так же как и программа без металла, это просто бессмысленный набор команд. Поэтому дальше под словом макет будет рассматривать совокупность лабораторного стенда и программного обеспечения для него. Так как разработка макета носит социально-направленный характер (для проведения лабораторных работ в учебных заведениях по курсу «Импульсная техника») и в стоимостном выражении не оценивается. 4. МЕРОПРИЯТИЯ ПО ОХРАНЕ ТРУДА. БЕЗОПАСНОСТЬ ТРУДА ПРИ ОБСЛУЖИВАНИИ ПРОГРАММАТОРА4.1 Требования безопасности к техническим средствам ПЭВМТехнические и периферийные средства ПЭВМ должны отвечать требованиям безопасности при их эксплуатации, монтаже, ремонте и обслуживании отдельных комплексов и систем в целом. Устройства управления ПЭВМ, устройства ввода-вывода и подготовки данных в процессе эксплуатации должны быть пожаробезопасными и соответствовать требованиям безопасности в течение всего срока службы. Органы управления техническими средствами ПЭВМ, устройства ввода-вывода, средства диагностики и контроля работы должны включать накопление статического электричества в опасных количествах. Отдельные блоки ЭВМ допускается эксплуатировать с устройствами снятия электрического заряда. Для предотвращения образования и защиты студентов от статического электричества в помещениях учебно-вычислительного центра (УВЦ) необходимо использовать нейтрализаторы и увлажнители воздуха, а полы должны иметь антистатическое покрытие. Допустимый уровень напряженности электрического поля в помещениях УВЦ не должен превышать 20 кВ/м. Конструктивно отдельные модули и блоки технических средств ПЭВМ должны иметь местное освещение для обслуживания, диагностики и контроля работы, при этом должна исключаться возможность соприкосновение с токоведущими частями электрооборудования. Устройства управления техническими и периферийными средствами ПЭВМ, обеспечивающие взаимодействие составных частей ПЭВМ, должны быть выполнены так, чтобы не могла возникнуть опасность в процессе совместного действия отдельных систем и комплекса в целом. Видео терминальное устройство отображения информации должно отвечать основным требованиям безопасности: яркость экрана дисплея не менее 100 кд/м2, высота символов на экране не менее 3.8 мм, расстояние от глаз до экрана не менее 400 мм, размер экрана по диагонали не менее 310 мм, количество точек на одной строке не менее 640, минимальный размер светящейся точки не более 0.4 мм, для монохромного дисплея и 0.6 мм для цветного. 4.2. Требования безопасности к микроклимату в учебных лабораториях
4.3. Меры безопасности при сервисном обслуживании программатора.В лабораторном макете присутствует опасное для жизни напряжение 220 вольт 50 герц. Это напряжение питает трансформаторный блок. В остальных блоках лабораторного макета напряжения не превышают 27 вольт, что не является опасным. В блоке стабилизатора и блоке нагрузки происходит тепловыделение. Температура частей этих блоков не превышает 50оС, что не представляет опасности для человека. Корпус блока трансформатора выполнен из диэлектрического материала. Шасси выполнено из дюралюминия. Клемма заземления шасси должна быть выведена на корпус. К этой клемме должно быть подключено заземление. Шнур питания и вилка должны соответствовать ТУ на них, и не иметь изломов и нарушений в изоляции. Сетевой тумблер типа ПТ2-2 (напряжение 600 вольт, ток до 2 ампер) отвечает требованиям электробезопасности. Должны быть использованы сетевые предохранители в стандартных держателях. Напряжения и температуры в остальных блоках лабораторного макета не представляют опасности и не требуют особых мер предосторожности. Так как программатор взаимодействует при работе с ПЭВМ, а ПЭВМ является электроустановкой, то к ней предъявляются требования соблюдения всех параметров электробезопасности согласно ТУ на ПЭВМ. Вредными факторами для человека являются:
СПИСОК ЛИТЕРАТУРЫ
Uses DOS; Type TNT = Array[0..65534]Of Byte; Filearray = Array[1..5000]Of String[12]; Const U0 = Char(200); U1 = Char(201); U2 = Char(202); U3 = Char(199); U4 = Char(198); U5 = Char(203); U6 = Char(193); U7 = Char(192); Up = Char(194)+Char(195); Uf = Char(196)+Char(185); Us = Char(197)+Char(186); Speed = 3; Hex : Array[0..15]Of Char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); Var Buffer : ^TNT; Filx : ^filearray; Dirx : ^filearray; Fake : ^TNT; ScanCode: Byte; Key : Char; Screen : Array[0..50*90] of byte; Segscr : Word; Ofsscr : Word; px,py : Byte; Clr : Byte; MenuP : Byte; F : File; RomSize : Longint; Curd : String; RomName : String; lxul,lyul,lxdr,lydr : byte; Procedure WaitRt; assembler; Asm mov dx,$3da @wa1: in al,dx test al,8 je @wa1 @wa2: in al,dx test al,8 jne @wa2 End; Procedure Color(c1,c2 : byte); Begin clr:=c1+16*c2; End; Procedure Loc(x,y: byte); Begin px:=x; py:=y; End; Procedure WChar(c : char); Begin screen[py*160+px+px]:=byte(c); screen[py*160+px+px+1]:=clr; inc(px); If px=80 Then Begin px:=0; inc(py); If py>25 Then py:=25; End; End; Procedure Shade(x : byte); Var m : byte; Begin For m:=1 To x Do Begin Screen[py*160+px+px+1]:=screen[py*160+px+px+1] And $7; inc(px); If px=80 Then Begin px:=0; inc(py); If py>25 Then py:=25; End; End; End; Procedure Wrt(s : string); Var x: word; Begin For x:=1 To length(s) Do WChar(s[x]); End; Procedure WrtLn(s : string); Var x: word; Begin For x:=1 To length(s) Do WChar(s[x]); px:=0; inc(py); If py>25 Then py:=25; End; Procedure Map; Begin Move(screen,mem[$b800:0],80*50); End; Procedure Cls; Begin FillChar(screen,80*50,0); End; Procedure ReadKey; assembler; Asm xor ax,ax int 16h End; Function ScanKey : char; Var x : byte; Begin x:=255; Asm mov ah,01 int 16h jz @nokey mov x,al mov ScanCode,ah @nokey: End; If x<>255 Then ReadKey; ScanKey:=char(x); End; Procedure SkipTime; Var h,m,s,c : word; lh,lm,ls,lc : longint; abstime1,abstime2: longint; Begin GetTime(h,m,s,c); lh:=h; lm:=m; ls:=s; lc:=c; abstime1:=lc+(ls*100)+(lm*60*100)+(lh*60*60*100); Repeat GetTime(h,m,s,c); lh:=h; lm:=m; ls:=s; lc:=c; abstime2:=lc+(ls*100)+(lm*60*100)+(lh*60*60*100); Until (abstime2<>abstime1); End; Procedure MoveMan; Var addr : word; a : byte; x : word; Begin addr:=0; For x:=0 To 80*25-1 Do Begin a:=screen[addr]; If (a>207)And(a inc(a); If a=217 Then a:=208; If a=205 Then a:=204 Else If a=204 Then a:=205; screen[addr]:=a; inc(addr,2); End; End; Procedure MakeMans; Var x: word; Begin For x:=0 To 80*25-1 Do Begin screen[x+x] :=177; screen[x+x+1]:=16+7; End; End; Procedure LoadFont; Var f: file; Begin Assign(f,curd+'axefont.fnt'); Reset(f,1); Blockread(f,screen,50*80); Close(f); Asm push bp mov ax,segscr mov es,ax mov bp,ofsscr mov bx,1000h xor dx,dx mov cx,256 mov ax,1100h int 10h pop bp mov ah,1 mov cx,1000h int 10h End; Cls; End; Procedure WaitKey; Begin WaitRt; Map; Repeat Key:=ScanKey; If Key=char(255) Then Begin Map; MoveMan; SkipTime; End; Until Key<>char(255); End; Procedure Window(xul,yul,xdr,ydr : byte; name : string); Var x,y : word; Begin Loc(xul,yul); Wrt(up); For x:=xul+2 To xdr Do Wrt('-'); For y:=yul+1 To ydr-1 Do Begin Loc(xul,y); Wrt(u0); For x:=xul+1 To xdr-1 Do Wrt(' '); Wrt(u1); Shade(2); End; Loc(xul,y); Wrt(u4); For x:=xul+1 To xdr-1 Do Wrt(u7); Wrt(u5); Loc(xul+2,ydr); Shade(xdr-xul+1); x:=length(name) shr 1; y:=(xdr-xul)shr 1+xul; y:=y-x; Loc(y+1,yul); y:=clr; x:=(clr and $F0)shr 4; color(x,clr and $0F); Wrt(name); clr:=y; lxul:=xul; lyul:=yul; lxdr:=xdr; lydr:=ydr; End; Procedure Morph(xf1,yf1,xf2,yf2,xt1,yt1,xt2,yt2 : byte); Var x : word; Begin Window(xf1,yf1,xf2,yf2,''); Repeat MakeMans; If xf1>xt1 Then dec(xf1,((xf1-xt1)Shr speed)+1); If xf1 If yf1>yt1 Then dec(yf1,((yf1-yt1)Shr speed)+1); If yf1 If xf2>xt2 Then dec(xf2,((xf2-xt2)Shr speed)+1); If xf2 If yf2>yt2 Then dec(yf2,((yf2-yt2)Shr speed)+1); If yf2 Window(xf1,yf1,xf2,yf2,''); Map; WaitRt; Until (xf1=xt1)And(xf2=xt2)And(yf1=yt1)And(yf2=yt2); End; Procedure MorphL(xt1,yt1,xt2,yt2 : byte); Var x : word; xf1,xf2,yf1,yf2 : byte; Begin xf1:=lxul; xf2:=lxdr; yf1:=lyul; yf2:=lydr; MorPh(xf1,yf1,xf2,yf2,xt1,yt1,xt2,yt2); End; Procedure WindowL(name : string); Var xf1,xf2,yf1,yf2 : byte; Begin xf1:=lxul; xf2:=lxdr; yf1:=lyul; yf2:=lydr; Window(xf1,yf1,xf2,yf2,name); End; Procedure Menu(x1,y1,stepy,all,col : byte; s1,s2,s3,s4,s5 : string;lenx : byte); Var x : byte; yt : byte; yp : byte; Begin yt:=y1; For x:=1 To all Do Begin Loc(x1,yt); Case x oF 1: Wrt(s1); 2: Wrt(s2); 3: Wrt(s3); 4: Wrt(s4); 5: Wrt(s5); End; yt:=yt+stepy; End; yp:=0; yt:=clr; clr:=col; Repeat Repeat {??} Loc(x1-2,y1+(stepy*yp)); Wrt(char(204)); WaitKey; Until (Key=chr(13))or(ScanCode=byte('H'))or(ScanCode=byte('P'))or(Key=chr(27)); Loc(x1-2,y1+(stepy*yp)); Wrt(' '); If Key=chr(27) Then yp:=all-1; If ScanCode=byte('P') Then If yp If ScanCode=byte('H') Then If yp>0 Then dec(yp); Until (Key=chr(13))or(Key=chr(27)); x:=x1-2; Repeat Loc(x,y1+(stepy*yp)); Wrt(' '+chr(205)); WaitRt; Map; inc(x,1); Until x>=x1+lenx; clr:=yt; MenuP:=yp; End; Procedure HexL2Str(l : longint; var s : string); Begin s:=hex[(l shr (4*7))and 15]; s:=s+hex[(l shr (4*6))and 15]; s:=s+hex[(l shr (4*5))and 15]; s:=s+hex[(l shr (4*4))and 15]; s:=s+hex[(l shr (4*3))and 15]; s:=s+hex[(l shr (4*2))and 15]; s:=s+hex[(l shr (4*1))and 15]; s:=s+hex[(l)and 15]; End; Procedure HexB2Str(l : byte; var s : string); Begin s:=hex[(l shr 4)and 15]; s:=s+hex[(l)and 15]; End; Procedure MemEd(name: string); Var x,y : word; l,l1,p,lpos : longint; s,st : string; stc : byte; size : longint; readsize : longint; bank : word; b1,b2 : byte; flag : boolean; i : searchrec; Label Repaint, TryAgain; Begin TryAgain: FindFirst(name,AnyFile,i); If i.Attr And ReadOnly = ReadOnly Then Begin stc:=clr; color(7,4); MorPhL(20,7,56,15); WindowL('File has ReadOnly Attribute!'); Menu(30,9,2,3,$4b,'Remove it','Reselect file','Exit','xxx4','xxx5',6); If MenuP=1 Then Begin MenuP:=8; exit; End; If MenuP=2 Then Begin MenuP:=0; exit; End; clr:=stc; assign(f,name); SetFattr(f,(i.Attr xor ReadOnly)); MorPhL(0,0,77,24); Color(7,6); WindowL('Memory Editor'); goto TryAgain; End; Assign(f,name); reset(f,1); size:=FilesiZe(f); l1:=0; p:=0; lpos:=0; bank:=0; flag:=false; If size>35000 Then readsize:=35000 Else readsize:=size; blockread(f,buffer^,readsize); RePaint: If l1 Div 32767 <> bank Then Begin If flag Then Begin color(7,4); MorPhL(24,7,50,14); WindowL('Save Changed Data?'); Menu(36,9,3,2,$4b,'YES','NO','xxx3','xxx4','xxx5',6); If MenuP=0 Then Begin Seek(f,lpos); blockwrite(f,buffer^,readsize); End; MorPhL(0,0,77,24); Color(7,6); WindowL('Memory Editor'); End; lpos:=(l1 div 32767)*32767+(l1 div 32767); Seek(f,lpos); If size-l1>35000 Then readsize:=35000 Else readsize:=size-l1; blockread(f,buffer^,readsize); bank:=l1 div 32767; flag:=false; end; l:=l1 and 32767; Loc(2,1); Wrt('address 0 1 2 3 4 5 6 7 8 9 A B C D E F ASCII'); For x:=2 To 22 Do Begin Loc(2,x); HexL2Str(l+(l1 and (32767 xor $FFFFFFFF)),s); Wrt(s+': '); For y:=1 to 16 do Begin HexB2Str(buffer^[l],s); Wrt(s+' '); inc(l); End; For y:=16 Downto 1 Do Begin Wrt(char(buffer^[l-y])); End; End; l:=l1 and 32767; Repeat Repeat stc:=clr; color(6,7); HexB2Str(buffer^[l+p],s); Loc((((p) and 15)*3)+13,(p) shr 4+2); Wrt(s); Loc((((p) and 15))+61,(p) shr 4+2); Wrt(char(buffer^[l+p])); clr:=stc; WaitKey; Until (Key=chr(13))or(ScanCode=$49)or(ScanCode=$51)or(ScanCode=$48) or(ScanCode=$4D)or(ScanCode=$4B)or(ScanCode=$50)or(Key=chr(27)) or((Key>='0')and(Key='A')and(Upcase(Key) If (ScanCode=$48)or(ScanCode=$4d)or(ScanCode=$4b)or(ScanCode=$50) Then Begin HexB2Str(buffer^[l+p],s); Loc((((p) and 15)*3)+13,(p) shr 4+2); Wrt(s); Loc((((p) and 15))+61,(p) shr 4+2); Wrt(char(buffer^[l+p])); End; If ((Key>='0')And(Key='A')And(Upcase(Key) Begin stc:=clr; Key:=upcase(Key); If (Key>='0')And(Key color(6,7); Loc((((p) and 15)*3)+13,(p) shr 4+2); Wrt(Key+'?'); Loc((((p) and 15))+61,(p) shr 4+2); Wrt('?'); Repeat WaitKey; Until ((Key>='0')and(Key='A')and(Upcase(Key) Key:=upcase(Key); If (Key>='0')And(Key If ((Key>='0')And(Key='A')And(Upcase(Key) Begin buffer^[l+p]:=b1*16+b2; flag:=true; end; clr:=stc; end; Case ScanCode of $50: if l1+p+16320+15 then begin inc(l1,16); p:=320+(p and 15); goto RePaINt; end; end; $48: begin if (p>15)or(l1<>0)then dec(p,16); if p $4D: if l1+p+1320+15 then begin inc(l1,16); p:=320; goto RePaINt; end; end; $4B: begin if (p>0)or(l1<>0)then dec(p); if p $49: begin if (l1>319) then begin dec(l1,320) end else l1:=0; goto RePaint; end; $51: begin inc(l1,320); if l1>size-336 then l1:=size-336; goto RePaint; end; end; Until (key=chr(13))or(Key=chr(27)); If flag Then Begin color(7,4); MorPhL(24,7,50,14); WindowL('Save Changed Data?'); Menu(36,9,3,2,$4b,'YES','NO','','','',6); If MenuP=0 Then Begin Seek(f,lpos); blockwrite(f,buffer^,readsize); End; End; close(f); End; Function LowCase(s : string) : string; Var x : integer; Begin LowCase:=s; For x:=1 To length(s) Do Begin If (s[x]>='A')And(s[x] End; End; Procedure FFile(var s : string); Var i : searchrec; name : string; x,y,z: integer; curp : integer; curps: integer; maxp : integer; mask : string; zs : string; fz,dz: integer; f : file of byte; pos : longint; Label Repaint; Begin s:=''; RePaint: For y:=1 To 17 Do Begin Loc(23,3+y); Wrt(' '); End; z :=0; fz :=0; dz :=1; curp :=1; curps:=1; mask :='*.*'; FindFirst(mask,Directory,i); Repeat If (i.attr)And(Directory)=Directory Then Begin filx^[dz]:=i.name; If i.name<>'.' Then inc(dz); End Else Begin dirx^[fz+1]:=LowCase(i.name); inc(fz); End; FindNext(i); Until DOSERROR<>0; z:=dz+fz; x:=1; For y:=dz To z Do Begin filx^[y]:=dirx^[x]; inc(x); End; Repeat maxp:=curp+17; If maxp>(z-1) Then maxp:=(z-1); For y:=curp To maxp Do Begin Loc(23,3+y-curp); name:=filx^[curp+(y-curp)]; For x:=17 DownTo length(filx^[curp+(y-curp)]) Do name:=name+' '; If curps=(y-curp+1) Then color(1,2) Else color(7,1); Wrt(' '+name); End; Repeat WaitKey; Until (Key=chr(13))or(ScanCode=$48)or(ScanCode=$50)or(Key=chr(27))or(ScanCode=82); Case ScanCode Of $50: inc(curps); $48: dec(curps); 82: Begin MOrPhL(10,10,40,15); WindowL('Input File Name .ROM'); y :=1; zs:=' '; Loc(22,12); Wrt('-'); Repeat WaitKey; Loc(21+y,12); If (Key<>chr(13))And(Key<>chr(27)) Then If (Key<>chr(08)) Then Begin If y<>9 Then Begin zs[y]:=Key; Wrt(key+'-'); inc(y); End; End Else If y<>1 Then Begin dec(y); Loc(21+y,12); zs[y]:=' '; Wrt('- '); End; Until (Key=Chr(13))or(Key=chr(27)); MorPhL(20,8,50,12); Color(7,4); WindowL('!!!!!!!!!!!!'); Loc(30,10); Wrt('Жди давай!'+chr(208)); Map; Assign(f,zs+'.ROM'); Rewrite(f); y:=$FF; For pos:=1 To romsize Do Write(f,byte(y)); close(f); Key:=chr(255); ScanCode:=0; color(7,1); MorPhL(20,2,50,22); WindowL('Выберите файл'); s:=''; Goto RePaint; End; End; If curps>(z-1) Then curps:=(z-1); If (curps>18) Then Begin curps:=18; If curp End; If (curps Begin curps:=1; If curp>1 Then dec(curp); End; Until (Key=chr(13))or(Key=chr(27)); Color(7,1); If Key=chr(13) Then Begin FindFirst(filx^[curp+curps-1],00,i); If DOSERROR<>0 Then Begin chdir(filx^[curp+curps-1]); Goto RePaint; End; s:=filx^[curp+curps-1]; End; End; Procedure ReadROM(addr : longint); Var x : word; y : byte; Begin x:=addr; port[$378]:=x and 65535; port[$379]:=x shr 16; y:=port[$380]; fake^[x and 65535]:=y; End; Var x : byte; s : string; l : LONGINT; y : longint; zs : string; rsz : longint; fi,fo : file; Label OpenF; Begin New(buffer); New(filx); New(dirx); New(fake); ofsscr:=ofs(screen); segscr:=seg(screen); LoadFont; MakeMans; GetDir(0,curd); romsize:=0; color(7,5); Window(1,1,26,12,'Главное меню'); Repeat MorPhL(1,1,26,12); Color(7,5); WindowL('Main Menu'); Menu(4,3,2,4,$5b,'Выбор ПЗУ','Работа с ПЗУ','О программе','Вы'+char(208)+'ход','',20); case MenuP of 0: Begin Repeat MorPhL(20,10,50,18); color(7,1); WindowL('Выбор типа ПЗУ'); Menu(23,12,2,3,$1b,'УФ ПЗУ','ПЗУ с плавкими перемычками','Назад','','',26); case MenuP of 0: Begin MorPhL(10,10,29,18); color(7,5); WindowL('УФ ПЗУ'); Menu(13,12,2,3,$5b,'2176','573РФ','Назад','','',16); If MenuP<>2 Then Begin romsize:=8*1024; romname:=curd+'\amibio'; End; If MenuP<>2 Then MenuP:=2 Else MenuP:=0; End; 1: Begin MorPhL(40,8,70,16); Color(7,5); WindowL('ПЗУ с плавкими перемычками'); Menu(43,10,2,3,$5b,'155РЕ3','556РТ6','Назад','','',16); If MenuP<>2 Then Begin romsize:=16*1024; romname:=curd+'\amibio1'; end; If MenuP<>2 Then MenuP:=2 Else MenuP:=0; end; end; Until MenuP=2; MenuP:=5; end; 1: Begin If romsize=0 Then Begin MorPhL(21,6,49,10); Color(7,4); WindowL('Варнинг!!!'); Loc (25,8); Wrt ('Пипл!!! Выбери ПЗУ!!!!'); WaitKey; End Else Repeat MorPhL(40,5,60,15); Color(7,1); WindowL('Работа с ПЗУ'); Menu(44,7,2,4,$1b,'Чтение','Запись','Тестирование','Назад','Num5',12); Case MenuP Of 0: Begin MorPhl(22,7,50,11); color(7,1); WindowL('Чтение ПЗУ'); Loc(24,9); Wrt('-------------------------'); For l:=0 To romsize Do Begin Loc(24+(l*24 div romsize),9); Wrt ('-'+chr(208)); Color (3,1); Map; ReadROM(l); End; Color(7,1); MorPhL(0,0,77,24); Color(7,6); WindowL('Просмотр прошивки'); MemEd(romname); Color(7,4); MorPhL(24,7,60,14); WindowL('Сохранить прочитанные данные?'); Menu(40,9,3,2,$4b,'YES','NO','','','',6); Case MenuP of 0: Begin MOrPhL(10,10,50,15); WindowL('Имя сохраняемого образа .ROM'); y:=1; zs:=' '; Loc(26,12); Wrt('-'); Repeat WaitKey; Loc(25+y,12); If (Key<>chr(13))And(Key<>chr(27)) Then If (Key<>chr(08)) Then Begin If y<>9 Then Begin zs[y]:=Key; Wrt(key+'-'); inc(y); End; End Else If y<>1 Then Begin dec(y); Loc(25+y,12); zs[y]:=' '; Wrt('- '); End; Until (Key=Chr(13))or(Key=chr(27)); If key=chr(13) Then Begin MorPhL(20,8,50,12); Color(7,4); WindowL('!!!!!!!!!!!!'); Loc(30,10); Wrt('Жди давай!'+chr(208)); Map; Assign(fo,zs+'.ROM'); Rewrite(fo,1); Assign(fi,romname); Reset(fi,1); rsz:=FileSize(fi); Repeat y:=rsz; If y>65535 Then y:=65535; BlockRead(fi,buffer^,y); BlockWrite(fo,buffer^,y); rsz:=rsz-y; Until rsz=0; Close(fi); Close(fo); End; End; End; MenuP:=5; End; 1: Begin Repeat MenuP:=1; MorPhL(20,2,50,22); color(7,1); WindowL('Выберите файл'); FFile(s); If s<>'' Then Begin MorPhL(0,0,77,24); Color(7,6); WindowL('Редактировение прошивки'); MemEd(s); Color(7,4); MorPhL(24,7,60,14); WindowL('Прошить ПЗУ?'); Menu(40,9,3,2,$4b,'YES','NO','xxx3','xxx4','xxx5',6); If MenuP=0 Then Begin MorPhl(22,7,50,11); Color(7,1); WindowL('Прошиваем ПЗУ'); Loc(24,9); Wrt('-------------------------'); For l:=0 To romsize Do Begin Loc(24+(l*24 div romsize),9); Wrt ('-'+chr(208)); Color (3,1); Map; ReadROM(l); End; End; End; Until MenuP<>8; end; 2: Begin MorPhl(22,7,50,11); color(7,1); WindowL('Тестируем программатор'); Loc(24,9); Wrt('-------------------------'); For l:=0 To 1000 Do Begin Loc(24+(l*24 div 1000),9); Wrt ('-'+chr(208)); Color (3,1); Map; End; Loc(23,9); Wrt(chr(209)+' Все в порядке, аднака '); waitkey; End; end; Until MenuP=3; MenuP:=5; end; 2: Begin MorPhL(9,2,70,23); color(7,0); WindowL('О программе'); Loc(10,10); For x:=1 To 60 Do Wrt(chr(210)); Loc(12,4); Wrt('Дипломный проект "Лабораторный макет программатора ПЗУ"'); Loc(11,6); Wrt('Это программка была написана в среде Borland Pascal v7.0'); Loc(13,8); Wrt('Программа расчита на роботу с 2 типами микросхем ПЗУ'); Loc(36,12); Wrt('Авторы:'); Loc(11,14); Wrt('Идея и текст программы:'); Loc(25,15); Wrt('Дмитрий В. Румянцев'); Loc(11,17); Wrt('Помощь в написание программы:'); Loc(25,18); Wrt('Dead Emotion //HellraiseR Group'); Loc(11,20); Wrt('Тестирование программы:'); Loc(25,21); Wrt('Алексек А. Иванов'); WaitKey; MenuP:=5; end; end until MenuP=3; MorPhL(13,7,13,7); asm mov ax,3 int 10h end; end.
-76-
МОСКОВСКИЙ КОЛЛЕДЖ ЭЛЕКТРОННОЙ ТЕХНИКИ ДИПЛОМНАЯ РАБОТА “Программатор ПЗУ (программная часть)” Работу выполнил студент: Румянцев Д.В. Научный руководитель: Гуськов Б.Г. Москва, 1997 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|