Поиск по сайту: |
|
По базе: |
|
Главная страница > Прменения > ЖКИ |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Подключение символьного ЖК-модуля к микроконтроллеру VERSA1Описание: Эта рекомендация по применению описывает интерфейс между VERSA1 и ЖК – дисплеем на базе контроллера HD44780. Эта рекомендация по применению объяснит основы создания интерфейса ЖК – дисплея на примере программы, где для управления ЖК – дисплеем используется SPI порт VERSA1. Обеспечение обширного разъяснения работы такого интерфейса ЖК – дисплея или глубокого объяснения физики работы ЖК - дисплея и работы контроллера HD44780 выходит за рамки данной рекомендации по применению. В интернете доступны FAQ, которые полностью разъясняют содержание этого документа. Мы рекомендуем вам получить копию описания контроллера Hitachi HD44780, доступного в интернете. Описание контроллера ЖК - дисплея Контроллер ЖК-дисплея обеспечивает интерфейс подобный интерфейсу процессора, который обеспечивает доступ к трем основным блокам памяти:
Он также обеспечивает выполнение команд, делающих возможным доступ к блокам памяти и управление различными видами дисплеев. На рисунке 1 приведена упрощенная блок-схема модуля контроллера ЖК-дисплея. CGROM содержит предопределенный набор символов для ЖК-дисплея. Коды букв и цифр сообщаются в их ASCII кодах. Другие доступные символы связываются с распределением символов для вашего ЖК-дисплея. Память DDRAM хранит символы, отображаемые на ЖК-дисплее. Емкость памяти DDRAM составляет 80 байт. Она приспособлена для отображения до 4 строк по 20 символов в каждом. Размер DDRAM не зависит от размера дисплея. Для меньших дисплеев доступно пространство в 80 байт DDRAM, но только часть ячеек DDRAM используется для работы дисплея фактически. Оставшиеся ячейки могут использоваться для хранения данных общего назначения. На рисунке 2 показана структура памяти DDRAM и ячейки DDRAM для дисплея 16х2. Важно отметить разрыв адресов DDRAM между строками ЖК-дисплея. Следует обратить внимание на выполнение операций сдвига строк, длина которых превышает размер строки дисплея. Заметим, что для дисплеев 40x2 строки 1-2 и 3-4 объединены. CGRAM – это область памяти, зарезервированная для хранения специальных знаков, определенных пользователем. Она может хранить до 8 знаков в формате 5х8 или 4 знака в формате 5х10. Доступ к памяти CGRAM и DDRAM осуществляется посредством двух промежуточных регистров, которые служат для обмена данных между основным процессором и контроллером ЖК-дисплея. Это регистр команд (IR), и регистр данных (DR). Регистр команд (IR) служит для приема команд, подлежащих обработке в контроллере ЖК-дисплея. Регистр данных (DR) служит буфером между ОЗУ данных дисплея (DDRAM), ОЗУ знакогенератора (CGRAM) и внешней шиной данных. Интерфейс с модулем ЖК-дисплея Интерфейс с ЖК-дисплеем типа HD44780 может быть сделан в 8-битном параллельном формате либо в 4-битном двухпосылочном формате на линиях D4-D7 шины данных. Этот способ позволяет оставить 4 канала ввода-вывода и упрощает разводку печатной платы. Недостатком 4-битного интерфейса является требование передачи данных в виде двух 4-битных посылок (старшая часть следует за младшей). Результатом является увеличенное время коммуникации. Обычно стандартный интерфейс с ЖК-дисплеем сделан при помощи набора 14 выводов, список которых приведен в следующей таблице. На некоторых ЖК-дисплеях выводы D0-D3 удалены и возможен только 4-битный интерфейс. Некоторые другие ЖК-дисплеи обеспечивают функцию подсветки, которая требует 2-х добавочных выводов, обычно добавленных как выводы 15 и 16 или непосредственно в дисплее.
Обычно ЖК-дисплей требует питание 5 В и потребляет от 2 мА до 5 мА питающего тока. Вывод VC служит для подачи рабочего напряжения ЖК-дисплея. Это напряжение приложено к выводу, позволяющему настроить контраст дисплея. Напряжение, приложенное к выводу VC, может быть от –7 В до +5 В, в зависимомти от типа ЖК-дисплея. Вход RS выбирает путь от внешней шины данных ЖК-дисплея до регистра IR либо DR. Вход R/W определяет направление потока данных между ЖК-дисплеем и управляющим микропроцессором. При использовании 4-битного интерфейса требуется 7 линий ввода-вывода для связи с дисплеем. Эта топология будет использована в примере программы. Временная диаграмма ЖК-дисплея При работе в 4-битном режиме данные, предназначенные для передачи в регистр IR передаются в ЖК-дисплей через линии Data4 – Data7 в две последовательные посылки. Первая посылка содержит старшие четыре байта и вторая посылка представляет младшие четыре байта. ЖК-дисплеи – медленные устройства. Максимальная скорость шины составляет 1 МГц. Команды требуют от 37 мкС до 1,5 мС для завершения. Во время выполнения команды ЖК-дисплей не может принять команды. По этой причине флаг занятости может быть прочитан, когда команда была послана в ЖК-дисплей. Это позволяет узнать, когда ЖК-дисплей готов принять следующую команду. Чтобы проверить флаг занятости, следует установить вход R/W в логическую 1, вход RS в логический 0 и выполнить два последовательных периода сигнала E. Флаг занятости будет представлен на выводе Data 7 в первый период “высокого“ сигнала E. Оставшиеся биты представляют величину счетчика адреса. На рисунке 3 показаны времена, требуемые для выполнения операций записи и проверки флага занятости (BF) ЖК-дисплея. Набор команд ЖК-дисплея Следующая таблица включает команды, поддерживаемые контроллером HD44780.
Условные обозначения битов
Последовательность инициализации ЖК-дисплея. ЖК-контроллер включает цепи автоинициализации ЖК-дисплея, если напряжение питания возрастает от 0 В до 4,5 В за время от 0,1 мС до 10 мС. Это очень медленное нарастание питающего напряжения. В большинстве применений напряжение питания нарастает за гораздо более короткий период и это необходимо для выполнения принудительной инициализации ЖК-дисплея при включении питания. Рисунок 4 иллюстрирует последовательность операций, которая должна быть выполнена для принудительной инициализации ЖК-дисплея при использовании 4-битного интерфейса. Запись символов в ЖК-дисплей. Чтобы записать символы в ЖК-дисплей, вы должны сперва установить указатель адреса DDRAM в отображаемую часть памяти DDRAM. Затем принимается команда записи по адресу DDRAM. Величина D0-D7 определяет номер отображаемого знака. После записи знака в DDRAM (и в CGRAM), указатель адреса автоматически инкрементируется. Это очень упрощает строку записи в ЖК-дисплей. Установка знаков пользователя LCD содержит память CGRAM, где пользователь может определить до восьми знаков в формате 5х8 точек или до четырех 5х10 точек. Точки этих знаков определены в виде битов в восьми последующих ячейках памяти, начиная с верхней линии точек, представляющих строку пикселей символа. Набор адресных команд CGRAM должен быть получен перед тем, как начать запись определения символа пользователя используя команду записи данных в CGRAM. Каждый раз, когда данные записаны в память CGRAM, указатель адреса CGRAM инкрементируется. В следующей таблице показан пример, где простой символ улыбающегося лица задается в CGRAM, для случая, когда шрифт определен в формате 5х8.
После окончания определения знака пользователя в памяти CGRAM, в ЖК-дисплей должна быть послана команда установки адреса DDRAM. Отображение символов пользователя Отображение символов, определенных пользователем происходит также, как отображение символов, заданных в CGROM. Эти символы кодируются в формате 5х8 (от 00h до 07h). Будучи оперативной памятью, CGRAM теряет данные при снятии питающего напряжения. Организация вывода с использованием регистра сдвига и интерфейса SPI VERSA1 Соединение SPI порта с 8 битным регистром сдвига с последовательным входом и параллельным выходом – это простейший способ организации интерфейса с ЖК-дисплеем. Недорогая компактная микросхема 74HC595 может быть использована для такого регистра сдвига. Интерфейс между VERSA1 и ЖК-дисплеем показан на рисунке 5. Использование микросхемы 74HC595 позволяет выполнять только операции записи в ЖК-дисплей с добавлением проверки флага BF. Это приемлемо для большинства приложений, использующих ЖК-дисплеи. Резисторы между регистром сдвига и ЖК-дисплеем служат для предотвращения выводов ЖК-дисплея D7-D4 от перегрузки при проверке флага BF. Сопротивление этих резисторов должно быть не менее 4,7 кОм. В примере программы LCDSP11.asm приведенной в конце этого документа, флаг BF проверяется с использованием SPI интерфейса. Флаг занятости появляется на Data7. Чтобы сохранить один порт ввода-вывода при выполнении операции чтения флага BF, мы использовали вместо него вход SDI. Чтобы считать уровень на входе SDI, следует установить SPI в режим мастера с адресом CS1 и записать ложный байт в регистр SPITX. При этом автоматически выполняется операция чтения. Значение входа SDI можно будет прочитать в каждом бите регистра SPIRX. Для применений, требующих использования порта SDI, флаг BF может быть проверен с использованием одного из портов ввода/вывода общего назначения. Также возможно включенеие ЖК-дисплея в режиме “open-loop”и замена проверки флага BF на задержку между командами, большую, чем время выполнения команды. В общем, такое включение в режиме “open-loop” дает хорошие результаты для нетребовательных применений. Однако, для применений, широко использующих такие функции ЖК-дисплея, как скроллирование или применения, часто обновляющие индикацию на ЖК-дисплее, лучше задействовать проверку флага занятости. Конфигурирование SPI для управления ЖК-дисплеем. Пример подключения 74HC595 в интерфейсе SPI VERSA1 приведен на рисунке 5. SPI должен быть сконфигурирован в режиме мастера с обратной полярностью синхроимпульсов, с использованием линии CS0 для защелкивания данных на выходах регистре сдвига. Следующая таблица показывает байт, который должен быть записан в управляющий регистр SPI.
Ниже приведена таблица истинности 74HC595. Затемненная областьпоказывает неиспользуемые режимы регистра сдвига.
Пример программы LCDSPI.asm Чтобы проиллюстрировать положения, приведенные в этой рекомендации по применению, следующий пример программы покажет как:
Вы можете использовать эту программу или ее функции как основу для разработки ваших приложений с использованием VERSA1 Исходный ассемблерный файл и откомпилированный hex-файл могут быть загружены с веб-сайта Goal Semiconductor www.goalsemi.com. Исходный ассемблерный код ;* ИМЯ ФАЙЛА: LCDSPI2.asm * ;* * ;* ОПИСАНИЕ: ЭТОТ КОД ДЕМОНСТРИРУЕТ ИНТЕРФЕЙС* ;* СИМВОЛЬНОГО LCD НА ОСНОВЕ HD44780 С VERSA1 * ;* С ИСПОЛЬЗОВАНИЕМ SPI ИНТЕРФЕЙСА И РЕГИСТРА СДВИГА 74HC595* ;* ЭТОТ КОД ИСПОЛЬЗУЕТ ОТСЛЕЖИВАНИЕ ФЛАГА ЗАНЯТОСТИ* ;* ИСПОЛЬЗУЕТ ВХОД SDI ИНТЕРФЕЙСА SPI. ТАКЖЕ ВОЗМОЖНА * ;* ЗАМЕНА ПРОВЕРКИ ФЛАГА ЗАНЯТОСТИ ВВЕДЕНИЕМ * ;* ДОСТАТОЧНО БОЛЬШОЙ ЗАДЕРЖКИ МЕЖДУ * ;* КОМАНДАМИ LCD. * ;* * ;*ЭТОТ КОД ДОЛЖЕН ХОРОШО РАБОТАТЬ С БОЛЬШИНСТВОМ LCD. * ;* НО ДЛЯ НЕКОТОРЫХ LCD ВОЗМОЖНО ПОТРЕБУЮТСЯ НЕБОЛЬШИЕ * ;* ИЗМЕНЕНИЯ. * ;* * ;*КОНФИГУРАЦИЯ: SPI СОЕДИНЕН С РЕГИСТРОМ СДВИГА 74HC595* ;* С ПОСЛЕДОВАТЕЛЬНЫМ ВХОДОМ ПАРАЛЛЕЛЬНЫМ ВЫХОДОМ * ;* * ;* ВЫВОДЫ ПИТАНИЯ И УПРАВЛЕНИЯ 74HC595 * ;* ============================= * ;* | VCC | PIN 16 | СОЕДИНЕН С VCC * ;* | GND | PIN 7 | СОЕДИНЕН С GND * ;* | !OE | PIN 13 | СОЕДИНЕН С GND * ;* | !SRCLR | PIN 10 | СОЕДИНЕН С VCC * ;* | RCLK | PIN 12 | СОЕДИНЕН С SPI CS0- * ;* | SER | PIN 14 | СОЕДИНЕН С SPI SDO * ;* | SRCK | PIN 11 | СОЕДИНЕН С SPI SCK * ;* * ;* ВЫХОДЫ 74HC595 * ;* =================== * ;* | QA(LSB)| PIN 15 | НЕ СОЕДИНЕН* ;* | QB | PIN 1 | LCD RS * ;* | QC | PIN 2 | LCD R/!W * ;* | QD | PIN 3 | LCD E * ;* | QE | PIN 4 | LCD DATA4 * ;* | QF | PIN 5 | LCD DATA5 * ;* | QG | PIN 6 | LCD DATA6 * ;* | QH(MSB)| PIN 7 | LCD DATA7 * ;* | QH' | PIN 9 | НЕ СОЕДИНЕН * ;* * ;*ЧТОБЫ ИСПОЛЬЗОВАТЬ ПРОВЕРКУ ФЛАГА BF: (ПО УМОЛЧАНИЮ) * ;* ======================= * ;* РАЗМЕСТИТЬ РЕЗИСТОР 4.7кОм МЕЖДУ QC, QD, QE И QF * ;* И ВЫВОДАМИ LCD DATA4 -7 * ;* СОЕДИНИТЬ DATA7 LCD СО ВХОДОМ SPI SDI * ;* * ;************************************************************************ ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************************ ;************************************************************ ;* V003 ОБЪЯВЛЕНИЕ РЕГИСТРОВ СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ* ;************************************************************ ;********************************** ;* ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ* ;********************************** CPTR EQU 040h ;ПЕРЕМЕННАЯ ДЛЯ СЧЕТА LCDDATA EQU 041h ;ДАННЫЕ И КОМАНДА ДЛЯ ПЕРЕСЫЛКИ В LCD SPITXMOT EQU 041h ;ЗНАК ДЛЯ ПЕРЕСЫЛКИ ПО SPI LCDCAR EQU 042h ;ЗНАК ДЛЯ ПЕРЕСЫЛКИ В LCD LCDCMD EQU 043h ; КОМАНДА ДЛЯ ПЕРЕСЫЛКИ LCD USWAIT EQU 044h ;ЗАДЕРЖКА В мкС CGCPTR EQU 045h ;CGRAM СЧЕТЧИК ФУНКЦИИ ИНИЦИАЛИЗАЦИИ ;*************************** ;* ОПРЕДЕЛЕНИЕ РЕГИСТРОВ SPI* ;*************************** SPIINTSTAT EQU 0BCh ;РЕГИСТР ПРЕРЫВАНИЙ SPI SPIRXOVERRUN EQU 0BDh ;SPI RX РЕГИСТР ПЕРЕПОЛНЕНИЯ SPICTRL EQU 0B4h ;УПРАВЛЯЮЩИЙ РЕГИСТР SPI SPIRX EQU 0B5h ;SPI RX РЕГИСТР SPITX EQU 0B6h ;SPI TX РЕГИСТР SPIIRQMASK EQU 0B7h ;РЕГИСТР МАСКИ ПРЕРЫВАНИЯ SPI IOCTRL EQU 0BAh ;УПРАВЛЯЮЩИЙ РЕГИСТР ВВОДА-ВЫВОДА ;************************** ;* КОНСТАНТЫ КОМАНД LCD * ;************************** LCD_L1C1 EQU 080h ;СТРОКА1 СТОЛБЕЦ1 LCD LCD_L2C1 EQU 0C0h ;СТРОКА2 СТОЛБЕЦ1 LCD LCD_CLEAR EQU 001h ;ОЧИСТКА ДИСПЛЕЯ, ВОЗВРАТ КУРСОРА ;К НАЧАЛУ СТРОКИ LCD_HOME EQU 002h ; ВОЗВРАТ КУРСОРА К НАЧАЛУ СТРОКИ ;********************************* ;* ТАБЛИЦА ПЕРЕХОДОВ ПО ПРЕРЫВАНИЮ* ;********************************* ORG 0000h LJMP INISYSTEM ;ПЕРЕХОД СБРОСА ;************************** ;*НАЧАЛО ОСНОВНОЙ ПРОГРАММЫ * ;************************** ORG 0100h INISYSTEM: CLR DPS ;УСТАНОВКА DATA POINTER 0 MOV SP,#0C0H ;ОПРЕДЕЛЕНИЕ ПОЛОЖЕНИЯ УКАЗАТЕЛЯ СТЕКА ;***ИНИЦИАЛИЗАЦИЯ SPI В РЕЖИМЕ МАСТЕРА MOV SPICTRL,#00000111B ;[5:4] CS0 ;[3:2] DIVIDER 8: ТАКТОВАЯ ЧАСТОТА 1MHz ;[1] ОБРАТНАЯ ПОЛЯРНОСТЬ ;[0] РЕЖИМ МАСТЕРА MOV SPIIRQMASK,#00h ;МАСКА IRQ SPI LCALL INITSPILCD ;ИНИЦИАЛИЗАЦИЯ СОЕДИНЕНИЯ С LCD ;ЧЕРЕЗ 74HC595 LCALL INILCDCGRAM ;КОПИРОВАНИЕ СПЕЦ. СИМВОЛОВ ; В ПАМЯТЬ LCD CGRAM MESSAGELOOP: MOV LCDCMD,#LCD_CLEAR ;ОЧИСТКА LSD LCALL SPILCDCMD MOV A,#250 ;ПАУЗА 250мС LCALL DELAY1MS MOV DPTR,#LCDMSG1 ;ПОСЛАТЬ 'VERSA1 ' НА ПЕРВУЮ СТРОКУ LCALL SPILCDSTR MOV LCDCMD,#08AH ;УСТАНОВКА DDRAM ADRS = LINE=1, COL=10 LCALL SPILCDCMD MOV LCDCAR,#00 ;ОТОБРАЖЕНИЕ СПЕЦ. СИМВОЛА #1 СКОПИРОВАННОГО В CGRAM LCALL SPILCDCAR MOV A,#250 ;ПАУЗА 250мС LCALL DELAY1MS MOV LCDCMD,#LCD_L2C1 ;УСТАНОВКА КУРСОРА LCD НА ВТОРУЮ СТРОКУ LCALL SPILCDCMD MOV DPTR,#LCDMSG2 ;ПОСЛАТЬ 'LCD INTERF ' НА ВТОРУЮ СТРОКУ LCALL SPILCDSTR MOV A,#250 LCALL DELAY1MS MOV A,#250 LCALL DELAY1MS MOV A,#250 LCALL DELAY1MS MOV IOCTRL,#0BH LJMP MESSAGELOOP ;БЕСКОНЕЧНЫЙ ЦИКЛ ;********************************************************************* ;********* ФУНКЦИИ ДАННОЙ ПРОГРАММЫ* ************ ;********************************************************************* ;****************************************************** ;********* ФУНКЦИИ SPI LCD ***************** ;************************************************ ****** ;************************************************************************ ;* ИМЯ ФАЙЛА: INITSPILCD.asm * ;* * ;* ОПИСАНИЕ: ИНИЦИАЛИЗАЦИЯ LCD СОЕДИНЕННОГО С SPIBUS ЧЕРЕЗ * ;* РЕГИСТР СДВИГА 74HC595* ;* * ;*КОНФИГУРАЦИЯ: SPI СОЕДИНЕН С РЕГИСТРОМ СДВИГА 74HC595* ;* С ПОСЛЕДОВАТЕЛЬНЫМ ВХОДОМ ПАРАЛЛЕЛЬНЫМ ВЫХОДОМ * ;* * ;* ВЫВОДЫ ПИТАНИЯ И УПРАВЛЕНИЯ 74HC595 * ;* ============================= * ;* | VCC | PIN 16 | СОЕДИНЕН С VCC * ;* | GND | PIN 7 | СОЕДИНЕН С GND * ;* | !OE | PIN 13 | СОЕДИНЕН С GND * ;* | !SRCLR | PIN 10 | СОЕДИНЕН С VCC * ;* | RCLK | PIN 12 | СОЕДИНЕН С SPI CS0- * ;* | SER | PIN 14 | СОЕДИНЕН С SPI SDO * ;* | SRCK | PIN 11 | СОЕДИНЕН С SPI SCK * ;* * ;* ВЫХОДЫ 74HC595 * ;* =================== * ;* | QA(LSB)| PIN 15 | НЕ СОЕДИНЕН* ;* | QB | PIN 1 | LCD RS * ;* | QC | PIN 2 | LCD R/!W * ;* | QD | PIN 3 | LCD E * ;* | QE | PIN 4 | LCD DATA4 * ;* | QF | PIN 5 | LCD DATA5 * ;* | QG | PIN 6 | LCD DATA6 * ;* | QH(MSB)| PIN 7 | LCD DATA7 * ;* | QH' | PIN 9 | НЕ СОЕДИНЕН * ;* * ;* ИСПОЛЬЗУЕМЫЕ ФУНКЦИИ: SPITXMIT: ПОСЫЛКА 8 БИТНОЙ ВЕЛИЧИНЫ ЧЕРЕЗ SPI * ;* SPILCDEPULSE: ПОСЛАТЬ 1 ИМПУЛЬС НА ВЫВОД E LCD* ;* DELAY1MS: ЗАДЕРЖКА 1 МС* ;* DELAY50US: ЗАДЕРЖКА 50МКС* ;* * ;********************************************************************* *** ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394-0661 * ;* Web: www.goalsemi.com * ;* * ;********************************************************* *************** INITSPILCD: MOV A,#20 ;ЗАДЕРЖКА 20MС LCALL DELAY1MS MOV LCDDATA,#00110000B ; ПОСЛЕДОВАТЕЛЬНОСТЬ ИНИЦИАЛИЗАЦИИ ПО ;УМОЛЧАНИЮ ;LCD В 8 БИТНОМ РЕЖИМЕ ;D7 D6 D5 D4 E R/W RS NC ;| | | | | | | | ;0 0 1 1 0 0 0 0 ;(ЭТА ПОСЛЕДОВАТЕЛЬНОСТЬ SEQ UENCE БУДЕТ ПОСЛАНА 3 РАЗА) LCALL SPITXMIT LCALL SPILCDEPULSE ;E= L ->H THEN H->L ;ЗАЩЕЛКНУТЬ ДАННЫЕ / КОММАНДУ LCD MOV A,#6 ;DELAY 4.1MS + (5mS USED) LCALL DELAY1MS LCALL SPILCDEPULSE ;SECOND TIME. E= L ->H THEN H->L ; ЗАЩЕЛКНУТЬ ДАННЫЕ / КОММАНДУ LCD MOV A,#2 ;DELAY 100uS+ (1mS USED) LCALL DELAY1MS LCALL SPILCDEPULSE ;THIRD TIME. E= L ->H THEN H->L ; ЗАЩЕЛКНУТЬ ДАННЫЕ / КОММАНДУ LCD MOV A,#6 ;DELAY 4.1mS+ (5mS USED ) LCALL DELAY1MS MOV LCDDATA,#00100000b ;SET 4BITS OPERATION LCALL SPITXMIT ;D7 D6 D5 D4 E R/W RS NC LCALL SPILCDEPULSE ;| | | | | | | | ;0 0 1 0 0 0 0 0 MOV A,#80 LCALL DELAYUS ;DELAY 40uS+ ;** ЗДЕСЬ МЫ МОЖЕМ ПРОВЕРИТЬ ФЛАГ BUSY ;** НО МЫ СОХРАНЯЕМ ЗАДЕРЖКУ ;** НАБОР ФУНКЦИЙ: 4БИТНЫЙ РЕЖИМ, 2 СТРОКИ, ШРИФТ 5X8 . MOV LCDDATA,#00100000b ;УСТАНОВКА 4 БИТНЫЙ РЕЖИМА СКВАЖНОСТЬ 1/16 LCALL SPITXMIT ;D7 D6 D5 D4 E R/W RS NC LCALL SPILCDEPULSE ;| | | | | | | | ;0 0 1 0 0 0 0 0 MOV LCDDATA,#10000000b ;D7 D6 D5 D4 E R/W RS NC LCALL SPITXMIT ;| | | | | | | | LCALL SPILCDEPULSE ;N F 0 0 0 0 0 0 ;N=0 -> 1 LINE, N=1 -> 2 LINES ;F=0 -> 5x8 FONT, F=1 -> 5x10 FONT MOV A,#200 LCALL DELAYUS ;ЗАДЕРЖКА 40МКС ;** ДИСПЛЕЙ ВКЛЮЧЕН, КУРСОР ОТКЛЮЧЕН, МИГАНИЯ НЕТ MOV LCDDATA,#00000000b ; ДИСПЛЕЙ ОТКЛЮЧЕН, КУРСОРА НЕТ, МИГАНИЯ НЕТ LCALL SPITXMIT ;D7 D 6 D5 D4 E R/W RS NC LCALL SPILCDEPULSE ;| | | | | | | | ;0 0 0 0 0 0 0 0 MOV LCDDATA,#11000000B ;D7 D6 D5 D4 E R/W RS NC LCALL SPILCDEPULSE ;| | | | | | | | LCALL SPITXMIT ;1 D C B 0 0 0 0 LCALL SPILCDEPULSE ;D=1 -> ДИСПЛЕЙ ВКЛ, D=0 -> ДИСПЛЕЙ ВЫКЛ MOV A,#80 ;C=1 -> КУРСОР ВКЛ, C=0 -> КУРСОР ВЫКЛ LCALL DELAYUS ;B=1 -> МИГАНИЕ ВКЛ, B=0 -> МИГАНИЕ ВЫКЛ ;** ;ENTRY MODE SET INCREMENT, NO SHIFT MOV LCDDATA,#00000000b ;ENTRY MODE SET INCREMENT, NO SHIFT LCALL SPITXMIT ;D7 D6 D5 D4 E R/W RS NC LCALL SPILCDEPULSE ;| | | | | | | | ;0 0 0 1 0 0 0 0 MOV LCDDATA,#01000000B ;D7 D6 D5 D4 E R/W RS NC LCALL SPILCDEPULSE ;| | | | | | | | LCALL SPITXMIT ;S R x x 0 0 0 0 LCALL SPILCDEPULSE ;S=1 -> СКРОЛЛИНГ ;S=0 -> ДВИГАТЬ КУРСОР MOV A,#80 ;R=1 -> НАПРАВО ;R=0 -> НАЛЕВО LCALL DELAYUS RET ;************************************************************************ ;* ИМЯ ФАЙЛА: INITSPILCD.asm * ;* * ;* ОПИСАНИЕ: ИНИЦИАЛИЗАЦИЯ 8 ЗНАКОВ ПОЛЬЗОВАТЕЛЯ НА ВХОДЕ LCD* ;* ПАМЯТЬ CGRAM LCD СОЕДИНЕНА С SPI * ;* * ;* НАБОР ШРИФТОВ LCD * ;* В ФОРМАТЕ 5X8. * ;* * ;* ПОСЛЕ ЗАПИСИ В ПАМЯТЬ CGRAM ЭТИ СИМВОЛЫ * ;* ДОЛЖНЫ НАХОДИТСЯ В ПЕРВЫХ 8 АДРЕСАХ * ;* CGROM ГДЕ ОНИ МОГУТ БЫТЬ ВЫЗВАНЫ КАК ОБЫЧНЫЕ* ;************************************************************************ ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goal semi.com * ;* * ;************************************************************************ INILCDCGRAM: MOV LCDCMD,#040H ; ИНИЦИАЛИЗАЦИЯ CGRAM В 0000H LCALL SPILCDCMD MOV DPTR,#LCDCHAR1 MOV CGCPTR,#64 CHARCOPY: MOV A,#00 ; КОПИРОВАНИЕ ЗНАКОВ ПОЛЬЗОВАТЕЛЯ ;В CGRAM LCD MOVC A,@A+DPTR MOV LCDCAR,A ACALL SPILCDCAR INC DPTR DJNZ CGCPTR,CHARCOPY MOV LCDCMD,#080h ;СБРОС УКАЗАТЕЛЯ В ПОЗИЦИЮ 00H DDRAM LCALL SPILCDCMD RET ;*** ОПРЕДЕЛЕНИЕ 8 СИМВОЛОВ ПОЛЬЗОВАТЕЛЯ ;*** ИЗМЕНИТЕ ИХ ПОД ВАШИ НУЖДЫ LCDCHAR1: DB 00000000b ;MAPPING OF THE USER LCD DB 00010101b ;СИМВОЛ #1 DB 00000100b ;ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00000100b DB 00000100b DB 00010001b DB 00001110b DB 00000000b LCDCHAR2: DB 00000000b ;MAPPING OF THE USER LCD DB 00000000b ; СИМВОЛ #2 DB 00000000b ; ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00011111b DB 00000000b DB 00000000b DB 00000000b DB 00000000b LCDCHAR3: DB 00000000b ;MAPPING OF THE USER LCD DB 00000000b ;СИМВОЛ #3 DB 00000000b ; ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00000000b DB 00011110b DB 00000000b DB 00000000b DB 00000000b LCDCHAR4: DB 00000000b ;MAPPING OF THE USER LCD DB 00000000b ;СИМВОЛ #4 DB 00000000b ; ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00001100b DB 00000000b DB 00000000b DB 00000000b DB 00000000b LCDCHAR5: DB 00000000b ;MAPPING OF THE USER LCD DB 00000000b ;СИМВОЛ #5 DB 00011111b ; ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00001110b DB 00000100b DB 00001110b DB 00011111b DB 00000000b LCDCHAR6: DB 00000000b ;MAPPING OF THE USER LCD DB 00000000b ;СИМВОЛ #6 DB 00000000b ; ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00000000b DB 00000000b DB 00000000b DB 00000000b DB 00000000b LCDCHAR7: DB 00000000b ;MAPPING OF THE USER LCD DB 00000000b ;СИМВОЛ #7 DB 00000000b ; ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00000000b DB 00000000b DB 00000000b DB 00000000b DB 00000000b LCDCHAR8: DB 00000000b ;MAPPING OF THE USER LCD DB 00000000b ;СИМВОЛ #8 DB 00000000b ; ДЛЯ КОПИРОВАНИЯ В LCD CGRAM DB 00000000b DB 00000000b DB 00000000b DB 00000000b DB 00000000b MOV 1,1 ;ARTEFACT FOR ASSEMBLER ;************************************************************************ ;* ИЯМ ФАЙЛА: SPILCDCAR.asm * ;* * ;*ОПИСАНИЕ: ПЕРЕСЫЛКА ОДНОГО ЗНАКА В LCD С ИСПОЛЬЗОВАНИЕМ SPI * ;* И РЕГИСТРА СДВИГА * ;* * ;* ВХОДНОЙ ПАРАМЕТР: ЗНАК ДЛЯ ОТОБРАЖЕНИЯ * ;* * ;*ИСПОЛЬЗУЕМЫЕ ФУНКЦИИ: SPITXMIT: ПЕРЕДАЧА ДАННЫХ/КОМАНД В LCD * ;* SPILCDEPULSE: ПОСЛАТЬ ОДИН ИМПУЛЬС НА ВЫВОД Е LCD* ;* SPILCDBUSY: ЖДАТЬ ОКОНЧАНИЯ ВЫПОЛНЕНИЯ КОМАНДЫ LCD* ;************************************************************************ ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394-0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************ ************ SPILCDCAR: MOV A,LCDCAR ;GET MSQ OF CARACT VALUE TO SEND ANL A,#0F0H ;ISOLATE MSQ SETB ACC.1 ;SET LCD RS BIT MOV LCDDATA,A ;SEN D TO LCD LCALL SPITXMIT LCALL SPILCDEPULSE MOV A,LCDCAR ;GET LSQ OF CARACT TO SEND SWAP A ;PUT LSQ IN MSQ POSITION ANL A,#0F0H ;ISOLATE LSQ TO SEND SETB ACC.1 ;SET LCD RS BIT MOV LCDDATA,A ;SEND TO LCD LCALL SPITXMIT LCALL SPILCDEPULSE LCALL SPILCDBUSY RET ;********************** ;* FONCTION SPILCDCMD * ;************************************************************************ ;* ИМЯ ФАЙЛА: SPILCDCMD.asm * ;* * ;* ОПИСАНИЕ: ПОСЫЛАЕТ LCD С ИСПОЛЬЗОВАНИЕМ SPI * ;* И РЕГИСТРА СДВИГА * ;* * ;* ВХОДНЫЕ ПАРАМЕТРЫ: КОМАНДА ДЛЯ ПЕРЕДАЧИ – СМОТРИ КОНСТАНТЫ* ;*КОМАНД * ;* * ;* ИСПОЛЬЗУЕМЫЕ ФУНКЦИИ: SPITXMIT: ПЕРЕДАЧА ДАННЫХ/КОМАНД В LCD * ;* SPILCDEPULSE: ПОСЛАТЬ ОДИН ИМПУЛЬС НА ВЫВОД Е LCD* ;* SPILCDBUSY: ЖДАТЬ ОКОНЧАНИЯ ВЫПОЛНЕНИЯ КОМАНДЫ LCD* ;************************************************************************ ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************************ SPILCDCMD: MOV A,LCDCMD ; ANL A,#0F0H MOV LCDDATA,A ;ПОСЛАТЬ MSQ КОМАНДЫ LCD LCALL SPITXMIT LCALL SPILCDEPULSE MOV A,LCDCMD SWAP A ANL A,#0F0H MOV LCDDATA,A ;ПОСЛАТЬ LSQ КОМАНДЫ LCD ACALL SPITXMIT ACALL SPILCDEPULSE ACALL SPILCDBUSY RET ;*************************************************** ********************* ;* ИМЯ ФАЙЛА: SPILCDSTR.asm * ;* * ;*ОПИСАНИЕ: ПОСЫЛАЕТ СТРОКУ СИМВОЛОВ НА LCD С СОЕДИНЕНИЕМ * ;* С SPI С ИСПОЛЬЗОВАНИЕМ РЕГИСТРА СДВИГА. * ;* СТРОКА НАЧИНАЕТСЯ СО ЗНАЧЕНИЯ, УКАЗАННОГО DPTR. * ;* НУЛЕВОЙ СИМВОЛ ПОКАЗЫВАЕТ КОНЕЦ СТРОКИ * ;* * ;* ВХОДНОЙ ПАРАМЕТР: РАСПОЛОЖЕНИЕ НАЧАЛА СТРОКИ РАЗМЕЩЕННЫЙ В DPTR * ;* ВЫЗОВ ФУНКЦИИ. * ;* * ;* ИСПОЛЬЗУЕМЫЕ ФУЕКЦИИ: SPILCDCAR : ПЕРЕДАЧА СИМВОЛОВ В LCD * ;* * ;************************************************************************ ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H 3B-1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************************ SPILCDSTR: MOV A,#0 ;ПОДГОТОВКА К ПОЛУЧЕНИЮ ЗНАКА MOVC A,@A+DPTR ;ИЗ РАСПОЛОЖЕНИЯ УКАЗАННОГО DPTR JZ FINSPILCDSTR ;ЕСЛИ СИМВОЛ == NULL (0) ; -> КОНЕЦ СТРОКИ MOV LCDCAR,A ;СИМВОЛ != NULL -> ПОСЛАТЬ НА LCD LCALL SPILCDCAR INC DPTR ;УКАЗАТЕЛЬ НА СЛЕДУЮЩИЙ СИМВОЛ AJMP SPILCDSTR ;ЦИКЛ ДО ПЕРЕСЫЛКИ ВСЕХ СИМВОЛОВ ;СТРОКИ В LCD FINSPILCDSTR: RET ;************************************************************************ ;* ИМЯ ФАЙЛА: SPILCDEPULSE.asm * ;* * ;* ОПИСАНИЕ: ПОСЫЛАЕТ ИМПУЛЬС НА ВХОД Е LCD ЧЕРЕЗ SPI БЕЗ * ;* ИСПОЛЬЗОВАНИЯ ДРУГИХ ЛИНИЙ. * ;* * ;* ВХОДНОЙ ПАРАМЕТР: ВЕЛИЧИНА СОХРАНЕННАЯ В LCDDATA * ;* * ;* ИСПОЛЬЗУЕМЫЕ ФУНКЦИИ: SPITXMIT :ПЕРЕДАЧА ПОСЛЕДОВАТЕЛЬНОСТИ* ;*ДАННЫХ В LCD * ;* * ;************************************************************************ ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************************ SPILCDEPULSE: MOV A,LCDDATA ORL A,#00001000B ;УСТАНОВИТЬ E В 1 MOV LCDDATA,A ;СОХРАНИТЬ НОВОЕ ЗНАЧЕНИЕ LCDDATA LCALL SPITXMIT ;ПОСЛАТЬ В LCD NOP ;ЗАДЕРЖКА НЕ МЕНЕЕ 1 МКС NOP NOP NOP NOP MOV A,LCDDATA ;ЗАБРАТЬ LCDDATA ANL A,#11110111B ;УСТАНОВИТЬ E = 0 MOV LCDDATA,A LCALL SPITXMIT ;ПОСЛАТЬ В LCD NOP NOP NOP NOP NOP RET ;************************************************************************ ;* ИМЯ ФАЙЛА: SPIBUSY.asm * ;* * ;* ОПИСАНИЕ: ПРОВЕРКА ФЛАГА ЗАНЯТОСТИ LCD * ;* * ;* * ;************************************************************************ ;* DATE: DECEMBER, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871-2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************************ SPILCDBUSY: MOV SPITX,#00000100B ;ПОСЛАТЬ D7 -D4= 1. E=0, RW=1, RS=0 NOP NOP NOP NOP NOP NOP NOTRDY: MOV SPITX,#00001100B ; E= 0 ->1 NOP NOP NOP NOP NOP NOP NOP MOV SPICTRL,#00000111B ;ВЫБОР ИНТЕРФЕЙСА SPI ДЛЯ CS1 ;ОБЕСПЕЧЕНИЕ ЧТЕНИЯ ФЛАГА BUSY НА SDI ;[5:4] CS1 ;[3:2] ДЕЛИТЕЛЬ 8: ТАКТОВАЯ ЧАСТОТА 1MHz ;[1] ОБРАТНАЯ ПОЛЯРНОСТЬ ;[0] РЕЖИМ МАСТЕРА MOV SPIIRQMASK,#00000010B ;ДОСТУПНО ИСПОЛЬЗОВАНИЕ ДАННЫХ IRQ NOP NOP NOP MOV A,SPIRX ;ФИКТИВНОЕ ЧТЕНИЕ ДЛЯ ОЧИСТКИ НЕЗАВЕРШЕНЫХ INTERRUPTS MOV SPITX,#00H ;ПОСЫЛКА ФИКТИВНОГО БАЙТА ДЛЯ ЧТЕНИЯ NOP NOP WAITREADBU: MOV A,SPIINTSTAT ;ПРОВЕРКА ПРИЕМА ANL A,#00000010B ;ПРОВЕРКА ФЛАГА RXDATAAVAILL JZ WAITREADBU MOV SPICTRL,#00000111B ;ВЫБОР ИНТЕРФЕЙСА SPI ДЛЯ CS0 ;[5:4] CS1 ;[3:2] ДЕЛИТЕЛЬ 8: ТАКТОВАЯ ЧАСТОТА 1МГц ;[1] ОБРАТНАЯ ПОЛЯРНОСТЬ ;[0] РЕЖИМ МАСТЕРА MOV SPITX,#00000100B ;ПОСЛАТЬ D7-D4=1, E=0, RW=1, RS=0 NOP NOP NOP NOP NOP NOP MOV SPITX,#00001100B ;ПОСЛАТЬ D7 -D4=1, E=1 RW=1, RS=0 NOP NOP NOP NOP NOP MOV SPITX,#00000100B ;ПОСЛАТЬ D7 -D4=1, E=0, RW=1, RS=0 NOP NOP MOV A,SPIRX ;ВЗЯТЬ ВЕЛИЧИНУ RX JNZ NOTRDY ;ЕСЛИ BUSY = 1 ПОВТОРИТЬ ОБРАБОТКУ ФЛАГА BUSY. NOP NOP RET ;******************************************************** ;************* ФУНКЦИИ ИНТЕРФЕЙСА SPI *********** ******* ;******************************************************** ;************************************************************************ ;* ИМЯ ФАЙЛА: SPITXMIT.asm * ;* * ;* ОПИСАНИЕ: ПОСЫЛАЕТ ОДИН СИМВОЛ В SPI ДЛЯ ПЕРЕДАЧИ * ;* И ЖДЕТ ЕЕ ОКОНЧАНИЯ* ;* * ;* ВХОДНОЙ ПАРАМЕТР: SPITXMOT (STD RAM ADDRESS) * ;* * ;************************************************************************ ;* DATE: July, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon / Gilles Rust * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebec * ;* Canada, H3B-1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************************ SPITXMIT: MOV A,SPIINTSTAT JNB ACC.0,SPITXMIT ;ЖДЕТ ОКОНЧАНИЯ ПОСЛЕДНЕЙ ПЕРЕДАЧИ MOV SPITX,SPITXMOT ;ПОМЕЩАЕТ СИМВОЛ В БУФЕР TX SPI WAITTXENDSPI: MOV A,SPIINTSTAT ;ЖДЕТ ОКОНЧАНИЯ ПЕРЕДАЧИ JNB ACC.0,WAITTXENDSPI RET ;************************************************************************ ;* ИМЯ ФАЙЛА: DELAY1MS.asm * ;* * ;* ОПИСАНИЕ:МНОЖЕСТВЕННАЯ ЗАДЕРЖКА ОКОЛО 1МС. * ;* ПАРАМЕТР СОДЕРЖИТ ЧИСЛО МИЛЛИСЕКУНД* ;* ДЛЯ ОЖИДАНИЯ* ;* * ;* ВХОДНОЙ ПАРАМЕТР: ACC = ЧИСЛО МИЛЛИСЕКУНД ДЛЯ ОЖИДАНИЯ* ;* * ;************************************************ ************************ ;* DATE: July 6, 2001 * ;* VERSION: 2.0 * ;* * ;* AUTHOR(s): Francois Turgeon * ;* Goal Semiconductor inc. * ;* Montreal Quebec * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;* REVISIONS: 2.0 Adjusted for 16.257MHz Oscillator * ;* * ;************************************************************************ DELAY1MS: MOV CPTR,A ;СОХРАНИТЬ ACC = МНОЖЕСТВЕННАЯ ЗАДЕРЖКА В 1МС MOV A,TMOD ANL A,#0F0H ;ОЧИСТИТЬ БИТ TIMER0 ORL A,#01H ;TIMER0 = MODE 1, СИСТЕМНЫЕ СИНХРОИМПУЛЬСЫ CONTROL BY TR0 MOV TMOD,A ;УСТАНОВКА НОВОЙ КОНФИГУРАЦИИ РЕГИСТРА TMOD LOOPT01MS: CLR TR0 ;ОСТАНОВКА TIMER0 MOV TH0,#0FDH ;ИНИЦИАЛИЗАЦИЯ TIMER0 MOV TL0,#5EH ;= 1МС ПРИ 16.257МГц - 12 ПЕРИОДОВ ;ДЛЯ ЦИКЛА = 674 ПЕРИОДОВ ТАЙМЕРА ;ЗНАЧЕНИЕ ТАЙМЕРА = 65536 - 674 ;= 63515 ПЕРИОДОВ (FD5Eh) CLR TF0 ;ОЧИСТКА T0 ПО ПЕРЕПОЛНЕНИЮ SETB TR0 ;ЗАПУСК ТАЙМЕРА ACKWTOVRT0: JNB TF0,ACKWTOVRT0 ;ЖДАТЬ БИТА ПЕРЕПОЛНЕНИЯ DJNZ CPTR,LOOPT01MS ;ЦИКЛ ПОКА ЧИСЛО ПЕРИОДОВ НЕ ИСЧЕРПАНО RET ;************************************************************************ ;* ИМЯ ФАЙЛА: DELAY1MS.asm * ;* * ;* ОПИСАНИЕ: МНОЖЕСТВЕННАЯ ЗАДЕРЖКА В 1МКС * ;* ЗАГРУЖАЕТ ВЕЛИЧИНУ ЗАГРУЗКИ В РЕГИСТР US * ;* US = (DELAY / 2) - 2 * ;* ЭТА ФУНКЦИЯ ОТКАЛИБРОВАНА ДЛЯ 16МГЦ * ;* * ;* ВХОДНОЙ ПАРАМЕТР: A = ЗАДЕРЖКА В МКС* ;* * ;******************************************* ***************************** ;* DATE: August, 2001 * ;* VERSION: 1.0 * ;* * ;* AUTHOR(s): Francois Turgeon / Gilles Rust * ;* Goal Semiconductor inc. * ;* 1134 Ste-Catherine West Suite 900 * ;* Montreal Quebe c * ;* Canada, H3B -1H4 * ;* * ;* Tel: (514) 871 -2447 * ;* Fax: (514) 394 -0661 * ;* Web: www.goalsemi.com * ;* * ;************************************************************************ DELAYUS: MOV USWAIT,A DELAYUS1: DJNZ USWAIT,DELAYUS1 RET ;*********************************************** ;* LCD STRING DEFINITION FOR 20X2 CARACTER LCD * ;*********************************************** ORG 1000H LCDMSG1: DB 'VERSA1',0 LCDMSG2: DB 'LCD INTERFACE. ',0 END Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|