Описание алгоритма работы и программы
Для более простой реализации нажатия кнопок «Сброс» и «Всего» будем использовать два счетчика: С1 и С. С1 счётчик, который будет считать все детали пройденные после включения конвейера; С счётчик, который считает после очередного нажатия кнопки «Сброс». ОПИСАНИЕ АЛГОРИТМА РАБОТЫ: а) инициализация обнуляет счетчики количества деталей (регистры R0, R1, R2, R3); б) предустановки. Очищает содержимое регистров R0, R1, R2, R3; в) ожидает появления на вход Р0.7 импульса высокого уровня (прохождение детали), если импульс пришел, то ожидается появление импульса низкого уровня (деталь прошла); г) после этого увеличивается содержимое счетчика на 1; д) проводим проверку кнопки «Сброс» и «Всего»; е) выводим на индикатор содержимое счетчика; ж) осуществляем проверку счетчика С1. Программа функционирования микропроцессорной системы осуществляющей подсчет и индикацию деталей на конвейере. ;инициализация INIT: MOV R1,#0h MOV R3,#0h JNB P0.7,L1 ;ожидание появления сигнала высокого уровня L2: JB P0.7,L2 ;ожидание появления сигнала низкого уровня ;увеличиваем содержимое абсолютного счетчика ;R0-младший разряд, R1-старший разряд INC R0 MOV A,R0 DA A ;десятичная коррекция аккумулятора MOV R0,A MOV A,0h ADDC A,R1 ;если R0 переполнен DA A MOV R1,A ;Аналогично ведется подсчет деталей и в относительном режиме ;проверка нажатия кнопки "Сброс" L1: JB P0.0,L3 ;если "Сброс" отжата (высокий уровень), то переход на метку L3 MOV R2,#0h ;если "Сброс" нажата,то обнуляем счетчик С MOV R3,#0h ;проверка нажатия кнопки "Всего" L3: JB P0.1,L4 ;если "Всего" отжата (высокий уровень), то переход на метку L4 MOV A,R0 ;если "Всего" нажата,то выводим на индикатор MOV R2,A ;содержимое абсолютного счетчика MOV A,R1 MOV R3,A ;вывод на индикацыю L4: MOV A,R2 MOV P1,A MOV A,R3 MOV P2,A ;проверка абсолютного счетчика на переполнение MOV A,#99h XRL A,R1 JNZ L1 MOV A,#99h XRL A,R0 JNZ L1 JMP INIT ;возврат на инициализацию, если счетчик переполнен Mon May 17 2004 00:03 2500 A.D. 8051 Macro Assembler - Version 4.02a ------------------------------------------------
Input Filename : TEXT.asm Output Filename : TEXT.obj
1 ;Программа функционирования микропроцессорной системы осуществляющей 2 ;подсчет и индикацию деталей на конвейере. 3 4 5 ;инициализация 6 0000 79 00 INIT: MOV R1,#0h 7 0002 7B 00 MOV R3,#0h 8 0004 30 82 0C JNB P0.2,L1 ;ожидание появления сигнала высокого уровня 9 0007 20 82 FD L2: JB P0.2,L2 ;ожидание появления сигнала низкого уровня 10 ;увеличиваем содержимое абсолютного счетчика 11 ;R0-младший разряд, R1-старший разряд 12 000A 08 INC R0 13 000B E8 MOV A,R0 14 000C D4 DA A ;десятичная коррекция аккумулятора 15 000D F8 MOV R0,A 16 000E E5 00 MOV A,0h 17 0010 39 ADDC A,R1 ;если R0 переполнен 18 0011 D4 DA A 19 0012 F9 MOV R1,A 20 ;Аналогично ведется подсчет деталей и в относительном режиме 21 ;проверка нажатия кнопки "Сброс" 22 0013 20 80 04 L1: JB P0.0,L3 ;если "Сброс" отжата (высокий уровень), то переход на метку L3 23 0016 7A 00 MOV R2,#0h ;если "Сброс" нажата,то обнуляем счетчик С 24 0018 7B 00 MOV R3,#0h 25 ;проверка нажатия кнопки "Всего" 26 001A 20 81 04 L3: JB P0.1,L4 ;если "Всего" отжата (высокий уровень), то переход на метку L4 27 001D E8 MOV A,R0 ;если "Всего" нажата,то выводим на индикатор 28 001E FA MOV R2,A ;содержимое абсолютного счетчика 29 001F E9 MOV A,R1 30 0020 FB MOV R3,A 31 ;вывод на индикацыю 32 0021 EA L4: MOV A,R2 33 0022 F5 90 MOV P1,A 34 0024 EB MOV A,R3 35 0025 F5 A0 MOV P2,A 36 ;проверка абсолютного счетчика на переполнение 37 0027 74 99 MOV A,#99h 38 0029 69 XRL A,R1 39 002A 70 E7 JNZ L1 40 002C 74 99 MOV A,#99h 41 002E 68 XRL A,R0 42 002F 70 E2 JNZ L1 43 0031 01 00 JMP INIT ;возврат на инициализацию, если счетчик переполнен 44 0033 Lines Assembled : 44 Assembly Errors : 0 Программа ожидания импульса. ;инициализация INIT: MOV r6,#0h MOV r8,#0h MOV r10,#0h
L0: JNB P0.5,L1 ;ожидание появления сигнала высокого уровня L2: JB P0.5,L2 ;ожидание появления сигнала низкого уровня ;увеличиваем содержимое счетчика ;R5-младший разряд, R6-старший разряд INC r5 MOV A,r5 DA A ;десятичная коррекция аккумулятора MOV r5,A MOV A,0h ADDC A,r6 ;если r5 переполнен DA A MOV r6,A ;проверка нажатия кнопки "К3" L1: JB P0.4,L3 ;если "К3" отжата,то переход на метку L3 MOV A,r6 ;если "К3" нажата,то выводим на индикатор MOV r6,A ;вывод на индикацыю L3: JNB P0.6,L5 ;ожидание появления сигнала высокого уровня L4: JB P0.6,L4 ;ожидание появления сигнала низкого уровня ;увеличиваем содержимое счетчика ;R5-младший разряд, R6-старший разряд INC r7 MOV A,r7 DA A ;десятичная коррекция аккумулятора MOV r7,A MOV A,0h ADDC A,r8 ;если r7 переполнен DA A MOV r8,A ;проверка нажатия кнопки "К2" L5: JB P0.3,L3 ;если "К2" отжата,то переход на метку L6 MOV A,r8 ;если "К2" нажата,то выводим на индикатор MOV r8,A ;вывод на индикацыю L6: JNB P0.7,L8 ;ожидание появления сигнала высокого уровня L7: JB P0.7,L7 ;ожидание появления сигнала низкого уровня ;увеличиваем содержимое счетчика ;R9-младший разряд, R10-старший разряд INC r9 MOV A,r9 DA A ;десятичная коррекция аккумулятора MOV r9,A MOV A,0h ADDC A,r10 ;если r9 переполнен DA A MOV r10,A ;проверка нажатия кнопки "К1" L8: JB P0.4,L0 ;если "К1" отжата,то переход на метку L0 MOV A,r10 ;если "К1" нажата,то выводим на индикатор MOV r10,A ;вывод на индикацыю Mon May 17 2004 00:46 2500 A.D. 8051 Macro Assembler - Version 4.02a ------------------------------------------------ Input Filename : text1.asm Output Filename : text1.obj 1 ;Программа ожидания импульса. 2 0000 3 4 ;инициализация 5 0000 7E 00 INIT: MOV r6,#0h 6 0002 75 00 00 MOV r8,#0h 7 0005 75 00 00 MOV r10,#0h 8 0008 9 0008 30 85 0C L0: JNB P0.5,L1 ;ожидание появления сигнала высокого уровня 10 000B 20 85 FD L2: JB P0.5,L2 ;ожидание появления сигнала низкого уровня 11 ;увеличиваем содержимое счетчика 12 ;R5-младший разряд, R6-старший разряд 13 000E 0D INC r5 14 000F ED MOV A,r5 15 0010 D4 DA A ;десятичная коррекция аккумулятора 16 0011 FD MOV r5,A 17 0012 E5 00 MOV A,0h 18 0014 3E ADDC A,r6 ;если r5 переполнен 19 0015 D4 DA A 20 0016 FE MOV r6,A 21 ;проверка нажатия кнопки "К3" 22 0017 20 84 02 L1: JB P0.4,L3 ;если "К3" отжата,то переход на метку L3 23 001A EE MOV A,r6 ;если "К3" нажата,то выводим на индикатор 24 001B FE MOV r6,A 25 ;вывод на индикацыю 26 001C 30 86 0E L3: JNB P0.6,L5 ;ожидание появления сигнала высокого уровня 27 001F 20 86 FD L4: JB P0.6,L4 ;ожидание появления сигнала низкого уровня 28 ;увеличиваем содержимое счетчика 29 ;R5-младший разряд, R6-старший разряд 30 0022 0F INC r7 31 0023 EF MOV A,r7 32 0024 D4 DA A ;десятичная коррекция аккумулятора 33 0025 FF MOV r7,A 34 0026 E5 00 MOV A,0h 35 0028 35 00 ADDC A,r8 ;если r7 переполнен 36 002A D4 DA A 37 002B F5 00 MOV r8,A 38 ;проверка нажатия кнопки "К2" 39 002D 20 83 EC L5: JB P0.3,L3 ;если "К2" отжата,то переход на метку L6 40 0030 E5 00 MOV A,r8 ;если "К2" нажата,то выводим на индикатор 41 0032 F5 00 MOV r8,A 42 ;вывод на индикацыю 43 0034 30 87 11 L6: JNB P0.7,L8 ;ожидание появления сигнала высокого уровня 44 0037 20 87 FD L7: JB P0.7,L7 ;ожидание появления сигнала низкого уровня 45 ;увеличиваем содержимое счетчика 46 ;R9-младший разряд, R10-старший разряд 47 003A 05 00 INC r9 48 003C E5 00 MOV A,r9 49 003E D4 DA A ;десятичная коррекция аккумулятора 50 003F F5 00 MOV r9,A 51 0041 E5 00 MOV A,0h 52 0043 35 00 ADDC A,r10 ;если r9 переполнен 53 0045 D4 DA A 54 0046 F5 00 MOV r10,A 55 ;проверка нажатия кнопки "К1" 56 0048 20 84 BD L8: JB P0.4,L0 ;если "К1" отжата,то переход на метку L0 57 004B E5 00 MOV A,r10 ;если "К1" нажата,то выводим на индикатор 58 004D F5 00 MOV r10,A 59 ;вывод на индикацыю 60 004F 61 004F 62 004F Lines Assembled : 62 Assembly Errors : 0 СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Сташин В.В. «Проектирование цифровых устройств на однокристальных микроконтроллерах»: М.: Энергоатомиздат, 1990г. 2. «Полупроводниковые приборы. Диоды выпрямительные, стабилитроны, тиристоры.» Справочник: под редакцией Голошедова А.В.: М.: Радио и связь, 1989г.
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (182)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |