Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Приложение 1. Листинг программы
Главная программа
ORG 0000H ;
MOV SP, #70H ; Определение вершины стека
JMP MAIN ; Переход на подпрограмму MAIN
ORG 03H ; Вектор прерывания по входу INT0
JMP RS ; (запрос INT0)
MAIN: MOV R0, # 20H
CALL VZVESH; подпрограмма взвешивания
MOV R0, # 20H
MOV R1, # 21H
CALL YM100; умножение на 100
CALL DIV2; деление на 273
MOV A, R2
MOV R1, #20H
MOVX @R1, A
INC R1
MOV A, R3
MOV A, R2
MOV R0, #20H
MOVX @R0, A
CALL BDC; вычисление двоично-десятичного кода
MOV A, R6
MOV R1, # 22H
MOVX @R1, A
MOV A, R7
INC R1
MOVX @R1, A
SETB P1.6 ; подключить регистр индикации грамм и килограмм
MOVX @R1, A
MOV A, # 1000000B; отключить регистр индикации грамм и килограмм и подключить регистр индикации десятков и сотен килограмм
MOV P1, A
MOV A, R6
MOVX @R1, A
MOV A, # 00000100B; отключить регистр индикации десятков и сотен килограмм и подключить регистр светодиодов
MOV P1, A
MOV A, # 00000001B
MOVX @R1, A; зажечь светодиод «Вес тары»
MOV A, # 00100000B
MOV P1, A; отключить регистр светодиодов и подключить регистр управления
; ожидание запуска конвейера
M1: MOVX A, @R1
RLC A
JNC M1
; взвешивание тары с грузом
VZVESTAR: MOV A, # 00000100B
MOV P1, A ;подключить регистр светодиодов и отключить регистр управления
MOV A, # 00000010
MOVX @R1, A ; зажечь светодиод «Тара с грузом»
CLR P1.0
MOV R0, # 30H
CALL VZVESH; подпрограмма взвешивания
MOV R0, # 30H
MOV R1, # 31H
CALL YM100; умножение на 100
CALL DIV2; деление на 273
MOV A, R2
MOV R0, # 20H
MOV @R0, A
MOV A, R3
MOV R1, # 21H
MOV @R1, A
CALL BCD; вычисление двоично-десятичного кода
SETB P1.6B; подключить регистр индикации грамм и килограмм
MOV A, R6
MOVX @R1, A
CLR P1.7; отключить регистр индикации грамм и килограмм и подключить регистр индикации десятков и сотен килограмм
MOV A, R7
MOVX @R1, A
CLR P1.0
; вычисление чистого веса
MOV R0, # 20H
MOV A, @R0
MOV R7, A
MOV R1, # 21H
MOV A, @R1
MOV R6, A
MOVX A, @R1
CPA A
ADD A, # 01H
MOV R5, A
MOVX A, @R0
CPA A
JNC M2
ADD A, # 01H
M2: MOV R4, A
MOV A, R7
ADD A, R4
MOV @R0, A
MOV A, R6
JC M3
DEC A
M3: ADD A, R5
MOV @R1, A
CALL BCD; вычисление двоично-десятичного кода
; запись в память чистого веса
MOV R0, # 00H
MOV R1, # 02H
MOV R2, # 08H
M4: MOVX A, @R1
MOVX @R0, A
INC R0
INC R1
MOV A, R2
ADD A, 0FFH
MOV R2, A
JNZ M4
MOV A, R7
MOVX @R0, A
MOV A, R6
MOVX @R1, A
; ожидание 2 минуты с проверкой запроса прерывания и нажатия кнопки
«Тест»
SETB EA ; разрешение прерывания
MOV R1, # 01H
MOV R2, # D4H
MOV R3, # C0H
M6: MOV R4, # 03H
MOV R5, # E8H
CLR P1.5
MOVX A, @R1
RRC
RRC
RRC
JC TECT; нажата кнопка «Тест»
M5: DJNZ R5, M5
MOV R5, # FFH
DJNZ R4, M5
DJNZ R3, M6
MOV R3, # FFH
DJNZ R2, M6
MOV R2, # FFH
DJNZ R1, M6
DIS I
CLR P1.0
JMP VZVESTAR;
; Подпрограмма обработки нажатия клавиши «Тест»
TEST: SETB P1.2
MOV A, # 01H
MOVX @R1, A; зажечь светодиод «Вес тары»
CLR P1.0
MOV R0, # 22H
MOV R1, # 23H
MOVX A, @R0
MOV R2, A
MOVX A, @R0
SETB P1.6; подключить регистр индикации грамм и килограмм
MOVX @R0, A
MOV A, # 10000000B
MOV P1, A; ; отключить регистр индикации грамм и килограмм и подключить регистр индикации десятков и сотен килограмм
MOV A, R2
MOVX @R0, A
MOV A, # 00100000B
MOV P1,A; отключить регистр индикации десятков и сотен килограмм и подключить регистр управления
MOV R0, # 00H
MOV R2, # 05H
M1: MOVX A, @R0
RRL
RRL
JNC M1
MOV A, # 00000100B
MOV P1, A; зажечь светодиод «Чистый вес»
CLR P1.0
MOVX A, @R0
MOV R3, A
INC R0
MOVX A, @R0
INC R0
SETB P1.7; подключить регистр индикации десятков и сотен килограмм
MOVX @R0, A
MOV A, # 01000000B
MOV P1,A; отключить регистр индикации десятков и сотен килограмм и подключить регистр индикации грамм и килограмм
MOV A, R3
MOVX @R0, A
MOV A, # 00100000B
MOV P1,A; отключить регистр индикации грамм и килограмм и подключить регистр управления
DJNZ R2, M1
M2: MOVX A, @R0
RRL
RRL
JNC M2
JMP MAIN;
; Подпрограмма обработки прерывания
EQU 30H ; начальный адрес
EQU 6 ; число байт
MOV R7,#N ; счётчик
MOV R0,# DATA ; начальный адрес
MOVX A@R0
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.