Мегаобучалка Главная | О нас | Обратная связь


Описание алгоритма работы и программы



2020-02-03 182 Обсуждений (0)
Описание алгоритма работы и программы 0.00 из 5.00 0 оценок




 

Для более простой реализации нажатия кнопок «Сброс» и «Всего» будем использовать два счетчика: С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г.



2020-02-03 182 Обсуждений (0)
Описание алгоритма работы и программы 0.00 из 5.00 0 оценок









Обсуждение в статье: Описание алгоритма работы и программы

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (182)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)