Разделы
Публикации
Популярные
Новые
|
Главная » Классические однокристальные микроконтроллеры 1 ... 14 15 16 17 18 19 20 занную точку останова мы не попадаем. Похоже, что отрезок времени Tbusy от записи информации в контроллеры индикатора до считывания бита готовности достаточно большой, и все процессы внутри контроллеров индикатора успевают завершиться. Попробуем уменьшить Tbusy, увеличив для этого тактовую частоту микроконтроллера. Сделать это очень просто, поскольку эмулятор PICE-51 имеет синтезатор частоты. Изменение частоты тактирования проводится из диалога Конфигурация аппаратуры (см. рис. 11). Так вот, вплоть до максимальной частоты 33 МГц останов на RDB: NOP не происходит. Отсюда следует сделать вывод о том, что анализ бита готовности при работе с индикатором не нужен. Надо понимать, что речь идет о нашем, частном случае подключения индикатора к микроконтроллеру семейства MCS-5I. Для микроконтроллеров семейства MCS-51 с укороченным циклом команд следует провести отдельное тестирование. POD Р0!>Ы-6 Проиегар: Опции Г*Рапршить fjirunntST с ппчты пользователя г* Программа полеэоватвпя иамгагэувтДОТ. , ., I Р9-чрр1иить чтение йуфвса тоьсилр^адии влОм/ й Токтавь1й генератор' й в'Наамулоторв.частота l.riOS кГи s ** Внешний платы попьзоватйла) Измвренивя частота 12С31 кГц В 11воа 6 №полоЗуется кв* Управляющий сигна ои >й(не ш г Нож1саввопа/оыоош1 вьшвго назвочения B BQriP3?HCnorta3V9TcatfaK (5-Упраелярщий сигналомEeed f Ножка ввола/вывойа о5шего назначения J X Отмена I 9 Справка Рис. 11. Диалог Конфигурация аппаратуры эмулятора ВРЕМЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ Время выполнения программы SED с подпрограммой анализа бита готовности RDBUSY составляет 20128 мкс. Без этой подпрограммы время выполнения 8446 мкс. Тестирование проводилось при тактовой частоте 12 МГц. Время выполнения фиксируется в одноименном окне эмулятора (см. рис 12). Ш Время выполнения про... RasBt I Freq Time Last Freq 8,439.30 us 8,439.30 us 12001 kHz Рис. 12. Окно Время выполнения программы В предыдугцем разделе мы говорили об отрезке времени Tbusy между процессом записи информации в контроллеры индикатора и чтением бита готовности. Такой временной отрезок легко посчитать, зная тактовую частоту микроконтроллера и количество тактов, затрачиваемых на каждую команду. Но можно сэкономить время, если воспользоваться окном эмулятора Время выполнения программы . Для этого поставим безусловную точку останова на любую команду SETB SWR. Данная команда встречается в тексте программы три раза: запись номера страницы, запись номера столбца и запись байта данных. Всегда сразу перед следующей процедурой обращения к контроллерам индикатора после окончания сигнала записи по команде SETB SWR, следует вызов подпрограммы RDBUSY. В этой подпрограмме тоже поставим безусловную точку останова на команду SETB SRD. После сброса процессора запустим программу на непрерывное выполнение. Практически незамедлительно произойдет останов на первой безусловной точке останова, при этом команда SETB SWR выполнена не будет. Цвет выделения данной строки изменится с красного на желтый. Последующий запуск программы до второй безусловной точки останова обеспечит выполнение интересующего нас участка программы от окончания сигнала записи по команде SETB SWR до чтения статусного регистра MOV A,P D. В строке Last окна Время выполнения программы указывается время выполнения программы после последнего останова, и это время составляет 6 мкс при тактовой частоте 12 МГц. При тактовой частоте 33 МГц Tbusy = 2,2 мкс. Трассировка внешних сигналов и временные диаграммы Программа SED, управляющая работой ЖК-индикатора PG12232 на основе контроллеров SED1520/1521, по сути формирует на линиях микроконтроллера сигналы CS1, CS2, WR. Проконтролировать данные сигналы можно с помощью осциллографа, запустив программу на непрерывное выполнение. Современный эмулятор PICE-51, с помощью которого проводилась отладка программы, способен предоставить пользователю сервис и в области анализа внешних, по отношению к эмулируемому микроконтроллеру, цифровых сигналов. Помимо выводов эмулируемого микроконтроллера эмулятор имеет восемь цифровых входов, каждый из которых может быть распаян в нужное место схемы. Состояние восьми внешних сигналов фиксируется в аппаратном буфере трассировщика внутрисхемного эмулятора. Под словом трассировщик скрывается серьезный механизм, содержащий аппаратную и программную часть, основная задача которого сводится к сохранению истории состояний шин адреса, данных, некоторых сигналов аппаратуры эмулятора в привязке к циклам выполнения команд микроконтроллером. Аппаратный буфер, реализованный на основе ОЗУ эмулятора (256 кбайт), хранит состояния сигналов в некотором внутреннем формате эмулятора. Одна запись, называемая фреймом, имеет разрядность в 128 бит и сохраняется на каждом цикле микроконтроллера. Объем буфера позволяет иметь под рукой информацию о 16000 фреймов. Выполняя отлаживаемую программу в реальном времени до точек останова, всегда можно заглянуть в буфер трассировщика, для этого есть специальное окно Трассировщик (рис. 13), и досконально сравнить состояние реальных сигналов на исследуемый момент времени с теоретическим представлением о том, как должна функционировать система. При вьшолнении программы в режиме реального времени фреймы записываются последовательно в память трассировочного буфера. При переполнении буфера новый фрейм записывается на место самого старого фрейма. Окно Трассировщик отображает содержимое буфера аппаратного трассировщика. Информация по одному фрейму отображается в одной строке посредством набора полей. Каждое поле имеет свое имя и свой уникальный способ отображения информации. Одноименные поля в окне трассировщика располагаются друг под другом и образуют колонки. В верхней части окна располагаются заголовки колонок, одновременно являющиеся сокращенными именами соответствующих полей. ЕхЮ. Активизация CS1 Ext1. Активизация CS2 Ext2. Окончание SWR Иногда у пользователей наблюдается некоторое недоумение по поводу восьми внешнцх сигналов ЕХТ 7..О . Оно связано с тем, что эмулятор, помимо выводов, так или иначе связанных с портами микроконтроллера, работает еще с восемью внешними сигналами, что непривычно, но очень удобно. Такую возможность надо рассматривать как наличие встроенного логического анализатора. Восемь цифровых сигналов с любых линий отлаживаемой платы зачастую способны пролить свет на схемотехнические ошибки, временные неувязки и проблемы в монтаже. Таким образом, ввод и сохранение в трассировочном буфере внешних логических состояний обеспечивает дополнительный сервис при работе с эмулятором. Подсоединим линию ExtO эмулятора к порту Р1.1 микроконтроллера-это сигнал CS1 дляSED1520. ЕХТ1 подключимк Р1.2 (CS2), и к ЕХТ2 подсоединим сигнал записи SWR, обеспечиваемый портом Р1.4. После вьшолнения некоторой части программы по шагам или до точки останова заглянем в аппаратный буфер трассировщика с помощью окна Трассировщик . В окне легко найти, например по мнемоникам команд, то место, где активизируются оба сигнала CS и происходит запись команды во внутренние контроллеры индикатора с целью его включения (рис. 13). Столбец Ext 7..О окна трассировщика показывает состояние интересующих нас сигналов. Более наглядное представление о формируемых программой SED временных диаграммах можно получить с помощью окна Временные диаграммы (рис. 14). Это окно предназначено для графического отображения уровней сигнала на внешних входах трассировщика. Информация для отображения берется из трассировочного буфера (буфер трассировки отображается в окне трассировщика). Окно разделено на три части. В левой части отображаются имена сигналов. Вы можете изменить имя для любого сигнала с помощью команды локального меню Изменить имя сигнала . В двух других частях окна отображаются собственно диаграммы. Масштаб сжатия можно устанавливать отдельно для правой и левой Рис. 13. Окно Трассировщик 328 Рис. 14. Временные диаграммы сигналов управления панелей отображения. Вертикальная красная полоса обозначает текущий фрейм. К этому фрейму привязана остальная информация окна, Текущий фрейм всегда виден в обоих панелях окна, а правая панель всегда отображает участок диаграммы вокруг текущего фрейма. В левой панели этот участок выделен вертикальными пунктирными линиями. Таким образом, в левой панели Вы можете просматривать буфер с большим сжатием по времени, а правая панель может работать как лупа , показывая участок диаграммы возле текущего фрейма. Пример 2. Сопряжение виртуальной модели индикатора с логической моделью процессора Программный отладчик-симулятор PDS-51 фирмы Фитон умеет выполнять так называемые файлы сценария (ФС). Основная цель использования ФС - создание моделей внешней по отношению к процессору среды. С гюмощью ФС можно, например, моделировать напряжение на входе АЦП, сигналы на цифровых входах и т. п., а также моделировать устройства ввода и отображения информации, например, графический ЖК-индикатор PG12232. В комплекте PDS-51 поставляются несколько примеров ФС, которые вы можете легко модифицировать для собственной задачи. Чтобы освоить моделирование внешней среды, вам придется приложить определенные усилия - по крайней мере, прочитать соответствующий материал в электронном справочнике симулятора PDS-51, Если вы знаете язык Си, то это сильно упростит задачу. Отлаженную с помощью эмулятора программу SED далее легко использовать с PDS-51. Программа небольшая, и ее запросто можно применять в приложениях с объемом кода до 2К. Такие приложения живут даже в демо-версии симулятора PDS-51. Текст модели индикатора для PDS-51 Модель ЖК-индикатора не поддерживает режим чтение-модификация-запись, и в ней нет статусного регистра с битом готовности, не нужна тактовая частота. Модель индикатора PG 122*32 состоит из трех файлов: Sedl520.cmd; Lcd pl.cmd; Lcd defs.h - выполнение программы SED совместно с файлами сценария СЕШХЕВЕЗШШШШШШШШШЬЛЗ обеспечивает вывод названия фир- мы Фитон на виртуальный инди-ЫТ(©)Н катор(рис.15). г1 i Ч;>П SED1520.cmd-этот файл сце- --- пария содержит функции, выполня- Рис. 15. Виртуальный индикатор ющие Отображение индикатора в специальном окне отладчика, а также часть модели индикатора, ответственную за сигналы конфигурации внутренних контроллеров индикатора. / SED1520 LCD Indicator ttinclude <system.h> ttinclude <lcd defs.h> uchar LeftHalf[244]; uchar RightHalf[244]; ulong WindowHandle; uint CurPage; uint CurColumn; /.+ DrawColumn ° */ void DrawColumn(uint half number, uint page, uint column) uint byte index = page * COLUMNS IN-PAGE + column; uchar byte = LeftHalf[byte index]; if (half number == 1) byte = RlghtHalf[byte index]; uint X = (half number * COLUMNS lN PAGE + column) * SCALE; uint у = page * 8 * SCALE; uint i; uchar mask = 0x80; for (i = 0; i < 8; i++) { ulong color = BACKGROUND COLOR; if (byte & mask) color = PIXEL COLOR; SelectBrush(WindowHandle, color); Fi IIRect(WindowHandle, x, y, x + SCALE, y + SCALE); mask = 1; у += SCALE; DrawPage void DrawPage(uint half number, uint page) uint column; for (column = 0; column < COLUMNS.IN PAGE; column++) DrawColumn(half number, page, column); /.+ DrawHalf void DrawHaIf(uint half.number) uint page; for (page = 0; page < NUM PAGES; page++) DrawPage(half number, page); /.+ DrawLCD void DrawLCDO DrawHalf(O); DrawHalf(l); UpdateWi ndow(Wi ndowHandle); /*+ InitLCDWindow void lnitLCDWindow(char title[]) { WindowHandle = OpenUserWindow(title); SetBkCoIor(W1ndowHandIe, BACKGROUND COLOR); uint width = COLUMNS,IN-PAGE * 2 * SCALE; uint height = NUM PAGES * 8 * SCALE; SetWindowSize(WindowHandle, width, height); void mainO { TerminateAlIScri pts(); ExecScri pt( LC0 P1-.); lnitLCDWindow(.<SED1520 LCD Indicator ); DrawLCDO; uint P1 addr = AddrExpr( P1>.); uint P2 addr = AddrExpr( P4 ); whi le (1) { WaitMemoryAccess(P2 addr, AS DATA, 1, MA WRITE); ucnarControl = GetByte(P1 addr, AS DATA); uchar Data = GetByte(P2 addr, AS DATA); if ((Control & AO) == 0) { Conf i gurat i on if ((Data & OxFC) == 0xB8) Set page address CurPage = NUMPAGES - (Data & 3) - 1; if ((Data & 0x80) == 0) Set column address CurColumn = COLUMNS IN PAGE - Data - 1; Lcd p1.cmd Этот файл сценария отслеживает запись программой данных в видеопамять индикатора и вызывает функцию отображения столбца: #include <system.h> #include <lcd defs.h> void mainO { uint P1 addr = AddrExpr( RAM P1 ); uint P2 addr = AddrExpr( RAM P4 ); uint P1 addr = AddrExpr( P1>); uint P2 addr = AddrExpr( P4 ); uchar Last WR; whi le (1) ( WaitMemoryAccess(P1 addr, AS DATA, 1, MA I/JRITE); uchar Control = GetByte(P1 addr, AS DATA); uchar Data = GetByte(P2 addr, AS DATA); if ((Control & AO) != 0) if (Last WR == 0 && (Control & WR) != 0) WR Front printf( Write data: %02X , Data); uint byte index = CurPage * COLUMNS IN PAGE + if ((Control & CSl) == 0) RightHalf[byteindex] = Data; DrawColumn(1, CurPage, CurColumn); if ((Control & CS2) == D) { LeftHalf[byte index] = Data; DrawColumn(0, CurPage, CurColumn); Last WR = Control & WR; Lcd defs.h Объявления констант, переменных и функций, необходимые обоим файлам сценария для реализации модели индикатора: #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define AO ObOOOOOOOl #define CSl ObOOOOOOlO #define CS2 ObOOOOOlOO #define WR ObOOOIOOOO define NUM PAGES 4 #define COLUMNS.IN PAGE 61 #define SCALE 4 ffdefine BACKGRDUND COLOR OxEFEFAF define PIXEL COLOR OxIFlFIF extern uchar LeftHalf[]; extern uchar RightHalf[]; extern u i nt CurPage; extern ui nt CurColumn; void DrawLCDO; void DrawColumn(uint half number, uint page, uint column); Для создания и редактирования текстов моделей внешних устройств можно использовать встроенный редактор симулятора PDS-51, либо любой другой, внешний по отношению к пакету Project-51 редактор. Файлы моделей внешней среды нужно отлаживать примерно также, как прикладные программы с помощью окон Исходный текст и Переменные , т. е. выполнять модели по шагам и до курсора , ставить точки останова, просматривать значения переменных и т.п. Для отладки по исходному тексту предназначено окно Исходного Текст файла сценария. Это окно открывается автоматически, если при запуске модели через меню главного окна в диалоге запуска файла установить опцию Отлаживать ., Рассматриваемая программа поддержки ЖК матрицы совместно с файлами модели индикатора функционирует без ограничений на демонстрационной версии симулятора PDS-51 из пакета Project-51. Скачать такую версию можно с сайта фирмы Фитон : http: www.phyton.ru Файлы модели индикатора (Sedl520.cmd, Lcd pl.cmd, Lcd defs.h) следует поместить в системную директорию PDS-51. Тогда в меню Пользователь симулятора появится строка SED 1520 LCD indicator . Выбор этой строки приведет к запуску модели индикатора. Пример работы с симулятором Модель индикатора, текст которой приведен в предыдущем разделе, на данном этапе позволит эффективно работать с PG12232 без использования внутрисхемного эмулятора. Но надо помнить о том, что модель индикатора существует и работает в виртуальном мире отладчика-симулятора, где время течет по-другому. Быстрота смены изображения на экране индикатора в нашем случае определяется производительностью персонального компьютера, на котором функционирует симулятор PDS-51. Попробуем анимировать надпись Фитон , выводимую программой SED, на модель индикатора. А именно, заставим вращаться против часовой стрелки фирменную спираль, которая используется в слове Фитон вместо буквы о . Проводить математические изыскания и реализовывать программно алгоритм пересчета координат выводимых точек мы не будем. Используем более простые методы. в кодовой памяти создадим четыре таблицы, в каждую из которых поместим образ спирали повернутой на 90, 180, 270 и 360°: R 270: ; PAGED ; Образ спи В 90: ; PAGE0 .DCB .DCB .ОСВ ; PAGE1 .DCB .DCB .DCB ;PAGE2 .DCB -DCB .DCB ;PAGE3: .DCB .DCB .DCB рали повернутой на 90 градусов 00Н,00Н,00Н,00Н,00Н,00Н 80Н,80Н,80Н,80Н,80Н,80Н ООН,ООН,ООН,ООН,ООН,ООН 0С0Н,0Р0Н,ЗСН,06Н,0СЗН,71Н 19Н,8СН,0ССН,0ССН,8СН, 19Н 31Н,63Н,0С6Н,0СН,ЗСН,0Е0Н 03Н,0РН,ЗСН,70Н,63Н,0С6Н 8CH,99H,99H,98H,8DH,0C7H 60H,78H,0FH,03H,00H,00H ООН,ООН,ООН,ООН,ООН,ООН 00Н,01Н,01Н,01Н,00Н,00Н ООН,ООН,ООН,ООН,ООН,ООН ;Образ спирали, повернутой на 180° В 180: ;PAGEO ;PAGE1 ;PAGE2 ;PAGE3 .DCB ООН, ООН, ООН,ООН,ООН,ООН ,DCB 80Н,80Н,80Н,00Н,00Н,00Н .DCB ООН, ООН, ООН,ООН,ООН,ООН .DCB 0Е0Н,38Н,0СН,0С7Н,0ЕЗН,31Н ,DCB 19Н,8СН,0С4Н,66Н,26Н,64Н .DCB 0ССН,88Н,18Н,38Н,0Е0Н,80Н ,0СВ 07Н,1СН,ЗОН,63Н,47Н,осей .DCB 0С8Н,99Н,93Н,93Н,98Н,0ССН ,DCB 0C7H,63H,70H,38H,0FH,03H ,DCB ООН, ООН, ООН,ООН,ООН,ООН .DCB 00Н,01Н,01Н,01Н,01Н,00Н .DCB ООН,ООН,ООН,ООН,ООН,ООН ;Образ спирали, повернутой на 270° ;PAGE1 ; PAGE2 ; PAGE3 .DCB ООН, ООН, ООН.ООН,ООН,ООН .ОСВ ООН, ООН, ЗОН, 80Н,ЗОН,ООН ,DCB ООН, ООН, ООН, ООН, ООН. ООН .DCS ООН, ООН, ОСОН, OFOH, 1ЕН,06Н .ОСВ 0ЕЗН,0В1Н, 19Н,99Н,99Н,31Н .DCB 63Н,0С6Н,0ЕН,ЗСН, OFOH, ОСОН .DCB 07Н,ЗСН,30Н,63Н,0С6Н,8СН .DCB 98Н,31Н,ЗЗН,ЗЗН,31Н,98Н .DCB 8ЕН,0СЗН,60Н,ЗСН,0ЕН,03Н .DCB ООН, ООН,ООН,ООН,ООН,ООН .DCB 01Н,01Н,01Н,01Н,01Н,01Н ,ОСВ ООН, ООН,ООН,ООН,ООН,ООН ;образ спирали, повернутой на 360° R 360: ;PAGEO .DCB ООН,ООН,ООН, ООН, ООН, ООН .DCB 00Н,80Н,80Н,80Н,80Н,00Н .DCB ООН,ООН,ООН,ООН,ООН,ООН ,DCB ОСОН, OFOH, 1СН,0ЕН,0С6Н,0ЕЗН ,DCB ЗЗН,19H,0C9H,0C9H,99H,13Н ,DCB ЗЗН,0Е2Н,0С6Н,0СН,38Н,0Е0Н .DCB 01Н,07Н, 1СН, 18Н, 11Н,ЗЗН .DCB 26Н,64Н,66Н,23Н,31Н,98Н .DCB 8СН,0С7Н,0ЕЗН,30Н, 1СН,07Н .DCB ООН, ООН, ООН, ООН, ООН, ООН .DCB 00Н,00Н,00Н,01Н,01Н,01Н .DCB ООН,ООН,ООН,ООН,ООН,ООН Осталось дополнить код программы SED некоторым количеством команд, которые обеспечат последовательный вывод повернутых образов спирали в отведенное ей место на экране PG12232. Эти строки надо вписать вместо команды RET, которая позволяла использовать программу SED как подпрограмму (первая команда RET в тексте программы SED). ;PAGE1 ;PAGE2 ;PAGE3 ; Вывод спирали, повернутой на 90° MOV А,#22Н ; Адрес столбца MOV ADR COLUMN,A MOV А,#12Н MOV NCOL,А ; Количество столбцов. MOV DPTR,#R 90 CLR CSl CALL SED1520 SETB CSl спирали, повернутой на 1£ MOV DPTR,#R 180 CLR CSl CALL SED1520 SETB CSl ; Вывод спирали, повернутой на 270° MOV DPTR,#R270 CLR CSl CALL SED1520 SETB CSl ; Вывод спирали, повернутой на 360° MOV DPTR,#R 360 CLR CSl CALL SED1520 SETB CSl ;Адрес начала таблицы данных R 90. ;Адрес начала таблицы данных R 180. ;Адрес начала таблицы данных R 270. ;Адрес начала таблицы данных R 360. SJMP LL ;Бесконечный цикл. Интерфейс, предоставляемый симулятором, визуально мало отличается от программной оболочки внутрисхемного эмулятора. Все действия, связанные с открытием проекта и отладкой, аналогичны приведенным ранее в одном из разделов посвященных внутрисхемному эмулятору. Запущенная на непрерывное выполнение в PDS-51, программа выводит надпись Фитон и вращающуюся спираль вместо буквы о . Скорость вращения, как отмечалось ранее, определяется компьютером, и здесь она равна примерно одному повороту на 90° спирали за полсекунды. В нашем компьютере установлен процессор Pentium-Ill с тастовой частотой 450 МГц. Приведенный пример будет работать на внутрисхемном эмуляторе с подключенным к нему индикатором настолько быстро, что спираль сольется в три окружности помещенные одна в другую. Поэтому для закручивания спирали на реальном индикаторе подход должен быть несколько иной. Результаты трансляции программы SED Окно Дисассемблер интегрированного пакета Project позволяет увидеть результат компиляции исходного текста программы (см. рис 16). Исходный текст программы SED, описание необходимых директив ассемблера и приведенный ниже листинг позволяют вам самостоятельно разобраться с результатами компиляции, тем более, что все предельно просто и прозрачно. 0GS7 980258 MOU DPTR,S02S9 OOSfi C291 CLR cm (П0.1) 805C 120383 LCflLL SED1520 005F D23t SETB CTlI (П0.1) 0061 338281 мои DPTR,S02B1 В06Ч С2Э1 CLR CTl I (ftO.l) GGSS 120389 LCflLL SEDt520 00S9 D291 SETB CTII (П8.1) 006B 9902F9 M8U DPTR,tl02F9 006E C291 CLR CTII (П0.1) 0070 1203S9 LCflLL SED1520 0073 0291 SETB CTII (flO.t) 0075 980341 HOU DPTR.IIS34I 0078 C2S1 CLR CTII (П0.1) 007Й 120389 LCflLL SED1S20 007D D291 SETB CTII (П0.1) 007F SaOS SJMP LL Рис. 16. Окно Дизассемблер # MCS-51 MACRO ASSEMBLER Version 1.02.020121 # Copyriglnt (C) 1996-2001 Phyton, Inc., MicroCOSM Ltd. # # 2002/03/01 14:34:12 sed1520.asm sed1520.asm sed1520.asm sed1520.asm sed1520.asm sed1520,asm sed1520.asm sed1520.asm столбцов. sed1520.asm Страниц. sed1520.asm Столбца. 4 00000000 5 6 00000000 7 00000001 8 00000002 9 00000003 10 00000004 .ASEG IRAN,DATA .ORG OH ADRCOLUMN .DSB 1 ; Номер колонки. ADR PAGE .DSB 1 ;Номер страницы. NCOL .DSB 1 ; Кол-во обновляемых NPAGE .DSB 1 ;Кол-во обновляемых TNCOL .DSB 1 ;Текущее значение адреса
sed1520.asm 90 sed1520.asm 91 sed1520.asm 92 00000059 903002 таблицы данных Pixel2. sed1520.asm 93 0000005C C291 sed1520.asm 94 0000005E 120000 sed1520.asm 95 00000061 D291 sed1520.asm ; Вывод спирали повернутой на 180 градусов MOV DPTR,#R 180 ;Адрес начала CLR CSl CALL SED1520 SETB CSl sed1520.asm 97 sed1520.asm 98 sed1520.asm 99 00000063 907802 таблицы данных Pixel2. sed1520,asm 100 00000066 C291 sed1520.asm 10100000068 120000 sed1520.asm 102 0000006B D291 sed1520.asm ; Вывод спирали повернутой на 270 градусов MOV DPTR, R 270 ;Адрес начала CLR CSl CALL SED1520 SETB CSl sed1520.asm 104 sed1520.asm 105 sed1520.asm 106 0000006D 90C002 таблицы данных Pixel2. sed1520.asm 107 00000070 C291 sed1520.asm sed1520.asm sed 1520. asm sed1520.asm sed1520.asm 108 00000072 120000 109 00000075 D291 110 111 00000077 80D6 ; Вывод спирали повернутой на 360 градусов MOV DPTR,eR 360 ; Адрес начала CLR CSl CALL SED1520 SETB CSl SJMP LL
SED, CODE )та с SED1520/1 AOR PAGE NPAGE A, NCOL TNCOL,A A,ADR COLUMN TADR,A D страницы. A,ADRPAGE P D, A SWR sed1520, asm sed1520.asm sed1520. asm sed1520.asm sed1520.asm sed1520. asm sed1520. asm sed1520.asm sed1520.asm sed1520.asm sed1520.asm sed1520.asm налево. sed1520.asm sed1520.asm sed1520.asm sed1520.asm 128 00000012 D294 129 130 00000014 131 00000014 E505 132 00000016 F5C0 133 00000018 C294 134 0000001A D294 SETB SWR COLUMN: ; Выбор столбца. MOV A,TADR MOV P D,A CLR SWR SETB SWR sed1520.asm 135 sed1520.asm sed1520.asm sed1520.asm sed 1520. asm sed1520.asm sed1520. asm sed1520.asm sed1520.asm окончен. sed1520.asm sed 1520. asm sed1520. asm sed1520.asm столбцам. sed1520.asm sed1520.asm страницам. sed1520. asm sed1520. asm sed1520. asm sed1520.asm sed1520.asm sed1520.asm sed1520.asm 136 0000001C 137 0000001C D290 138 OOOOOOIE E4 139 0000001F 93 140 00000020 A3 141 00000021 F5C0 142 00000023 C294 143 00000025 D294 144 00000027 C290 145 146 00000029 0505 147 0000002B D504E6 148 0000002E 0501 149 00000030 D503D1 151 00000033 D003 152 00000035 D001 153 154 00000037 22 155 WR D: ; Запись байта данных. SETB AO CLR A MOVC A,@A+DPTR I NC DPTR MOV P D,A CLR SWR SETB SWR CLR AO ;A0 = 1 ;WR = 0 ;Сигнал записи ;A0 = 0 INC TADR DJNZ TNCOL, COLUMN ;Цикл no i NC ADRPAGE DJNZ NPAGE, LL1 ;Цикл no POP NPAGE POP ADR.PAGE 157 158 159 00000000 .RSEG DATE,CODE PIXEL1: ; Образ экрана SED1520. ;Правая половина индикатора PG12232A. ;Адреса столбцов увеличиваются справа 162 163 164 00000000 00000000 00000004 0000 165 00000006 00000000 ; PAGEO, 8 строк в нижней части индикатора. .DCB ООН,ООН,ООН,ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ООН,ООН sed1520.asm sed1520. asm sed1520.asm sed 1520. asm sed 1520. asm sed1520.asm sed1520. asm sed1520.asm sed 1520. asm sed1520.asm sed 1520. asm sed1520.asm sed1520.asm sed1520.asm sed 1520. asm sed1520. asm sed1520.asm sed1520.asm sedl520.asm sedl520. asm sed1520.asm sed1520. asm sed1520.asm sed1520.asm OOOOOOOA 0000 166 OOOOOOOC 00000000 00000010 0000 167 00000012 80808000 00000016 0000 168 00000018 00000000 0000001C 8080 169 0000001E 80000000 00000022 0000 170 00000024 00000000 00000028 0080 171 0000002A 80808000 0000002E 0000 172 00000030 00000000 00000034 0000 173 00000036 00000000 0000003A 0080 174 0000003C 80 175 176 0000003D 00000000 00000041 0000 177 00000043 00000000 00000047 0000 178 00000049 00000000 0000004D 0000 179 0000004F FFFFFFCO 00000053 COCO 18000000055COCOCOCO 00000059 FFFF 181 0000005B FFOOOOOO 0000005F COFO 182-00000061 1C0EC6E3 00000065 3319 183 00000067 C9C99913 0000006B 33E2 184 0000006D C60C38E0 00000071 0000 185 00000073 00000000 00000077 OOFF 186 00000079 FF 187 188 0000007A 00000000 0000007E 0000 189 00000080 00000000 00000084 0000 .DCB ООН,ООН,ООН,ООН,ООН,ООН .DCB ЗОН,ЗОН,ЗОН,ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ЗОН,ЗОН .DCB зон,ООН,ООН,ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ООН,зон .DCB 80Н,зон,зон, ООН,ООН, ООН .DCB ООН, ООН, ООН, ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ООН,зон .ОСВ 80Н ;PAGE1 .DCB ООН, ООН,ООН, ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ООН,ООН .ОСВ OFFH,OFFH,OFFH,ОСОН,ОСОН,ОСОН .ОСВ ОСОН,ОСОН,ОСОН, ОСОН, OFFH, OFFH .DCB OFFH, ООН, ООН, ООН,ОСОН,OFOH ,DCB 1СН,0ЕН,0С6Н,0ЕЗН,ЗЗН,19Н .DCB 0С9Н,ОС9Н,99Н,13Н,ЗЗН,ОЕ2Н .DCB 0С6Н,0СН,38Н,0ЕОН,О0Н,ООН .DCB ООН,ООН,ООН,ООН,ООН,OFFH .DCB OFFH ;PAGE2 .DCB ООН,ООН,ООН,ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ООН,ООН sed1520.asm sed1520.asm sed1520.asm sed1520.asm sed1520,asm sed1520.asm sed1520. asm sed1520.asm sed1520.asm sed 1520. asm sed1520. asm sedl520. asm sed1520. asm sed1520. asm sed1520. asm sed1520.asm sedl520.asm sed1520.asm sed 1520. asm sed 1520. asm sed 1520. asm sed1520. asm sed1520. asm sed1520.asm sed1520.asm налево. sed 1520. asm .DCB ООН, ООН, ООН, ООН, ООН, ООН .DCB OFFH, OFFH, OFFH, ОЗН, ОЗН, ОЗН .DCB ОЗН,ОЗН,ОЗН,ОЗН,OFFH,OFFH .DCB OFFH,ООН,ООН,ООН,01Н,07Н .DCB 1СН,18Н,11Н,ЗЗН,26Н,64Н .ОСВ 66Н,23Н,31Н,98Н,8СН,0С7Н .DCB 0ЕЗН,30Н, 1СН,07Н,00Н,0ОН .ОСВ OFOH,OFOH,ОСОН,ОСОН,ОСОН,OFFH 190 00000086 00000000 ООООООЗА 0000 191 0000008С FFFFFF03 00000090 0303 192 00000092 03030303 00000096 FFFF 193 00000098 FFOOOOOO OOOOOOOC 0107 194 OOOOOOOE 1С181133 000000А2 2664 195 000000А4 66233198 ООООООАЗ 8СС7 196 ООООООАА Е3301С07 ООООООАЕ 0000 197 ООООООВО F0F0C0C0 0ОО0О0В4 COFF 198 000000В6 ЕЕ .ОСВ OFFH 199 ; PAGE3, 8 строк в верхней части индикатора. 200 000000В7 00000000 . ОСВ ООН, ООН, ООН,ООН,ООН,ООН ООООООВВ 0000 201 ООООООВО 00000000 000000С1 0000 202 ООООООСЗ 00000000 ООО0ООС7 0000 203 ooooooco 01010100 ooooooco 0000 204 OOOOOOCF 00000000 00000003 0101 205 000000D5 01000000 0O0O0OD9 0000 206 OOOOOODB 00000000 OOOOOOOE 0000 207 000000E1 00010101 000000E5 0000 208 000000E7 00000000 OOOOOOEB 0000 209 OOOOOOED 01010101 000000F1 0101 210 000000F3 01 211 212 0O0O0OF4 213 214 .DCB ООН,ООН,ООН,ООН,ООН,ООН .ОСВ ООН,ООН,ООН,ООН,ООН,ООН ОСВ 01Н,01Н,01Н,ООН,ООН,ООН ОСВ 0ОН,0ОН,00Н,00Н,01Н,О1Н .DCB 01Н,ООН,ООН,ООН,ООН,ООН .DCB ООН,ООН,ООН,ООН,ООН,ООН .DCB 00Н,01Н,01Н,01Н,О0Н,00Н .DCB ООН,ООН,ООН,ООН,ООН, ООН .DCB 01Н,01Н,01Н,01Н,01Н,01Н .ОСВ .01Н PIXEL2; ; Образ экрана SED1521. ;Левая половина индикатора PG12232A. ;Адреса столбцов увеличиваются справа 1 ... 14 15 16 17 18 19 20 |
© 2004-2024 AVTK.RU. Поддержка сайта: +7 495 7950139 в тональном режиме 271761
Копирование материалов разрешено при условии активной ссылки. |