Разработка программы для устройства управления системой очистки лобового стекла автомобиля

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

2. Программа на языке ассемблера

porta       equ   80h         ;адреса портов

portb       equ   81h         ;

portc       equ   82h

porcrl      equ   83h

pov         equ   34077       ;постоянная времени на одну секунду

povdr       equ   254         ;постоянная времени дребезга

kod         equ   00001010b   ;код режима через две секунды или через пять   секунд  (клавиши "1" и "3")

kod1        equ   00001011b   ;код обоих режимов и останова (клавиши "0", "1", "3")

mask        equ   01101100b   ;маска индикации

            org   800h        ;инициализация

            lxi   sp,900h

            mvi   a,89h

            out   porcrl

begin:      mvi   a,01100000b

            out   portb       ;инициализация регистров микропроцессора

            mov   d,a        

reset:      mvi   c,povdr     ;ожидание нажатия

;защита от дребезга при нажатии

vvod:       in    portc

            ani   kod  

            jz    reset

            dcr   c

            jnz   vvod

            in    portc

;запоминание нажатой клавиши

            lxi   h,klav

            mov   m,a

;защита от дребезга при отпускании

rept:       mvi   c,povdr

out:        in    portc

            ana   a

            jnz   rept

            dcr   c

            jnz   out

;конец защиты от дребезга

creg:       call  reg         ;вызов подпрограммы режим

            mov   a,m         ;при выполнения подпрограммы режим flag устанавливается в 0 или 1 (flag - специально организованный флаг, сигнализирующий нажатие клавиши 0 - останов, если нажата клавиша 0, то flag устанавливается в 0)

;в данный момент в паре h находится адрес ячейки памяти flag

            ana   a           ;проверка флага

            jz    begin       ;флаг = 0, переход на начало

rstr:       mov   a,d         ;флаг = 1,выполняется следующий шаг программы - пересылка текущего (начального) состояния индикатора из регистра в аккумулятор

            out   portb       ;вывод на индикацию

            xri   mask        ;смена состояния индикатора на противоположное*

            mov   d,a         ;пересылка из a в d

            mov   b,e         ;пересылка из e в b эталона количества секунд

crcl:       call  zader       ;* вызов подпрограммы задержки на 1 секунду

            dcr   b           ;уменьшение количества секунд на единицу

            jnz   crcl        ;отработана задержка на заданное количество секунд?,нет, продолжаем отработку задержки

            mvi   a,0         ;

            out   portb       ;погашенные индикаторы

            call  zader

            call  zader

            jmp   rstr  (зацикливание)

;***подпрограммы***

;подпрограмма режим()

reg:        lxi   h,klav      ;определение нажатой клавиши

            mov   a,m         ;

            ani   01b         ;нажата кл. 0 ?

            jnz   off         ;да, переход на метку off

            mov   a,m         ;пересылка кода нажатой клавиши из памяти в аккумулятор

            lxi   h,flag      ;загрузка в пару h адреса ячейки flag

            mvi   m,1         ;установка флага в 1

            ani   010b        ;нажата кл. 1?

            jnz   fast        ;да, переход на метку fast

            mvi   e,5         ;нет, значит загружаем в эталон количества секунд 5

            jmp   return      ;выход

fast:       mvi   e,2         ;нажата клавиша 1, эталон количества секунд - 2

            jmp   return      ;выход

off:        lxi   h,flag      ;

            mvi   m,0         ;установка флага в 0

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.