Смекни!
smekni.com

Подсчет и индикация деталей (стр. 2 из 2)

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

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: JNBP0.5,L1 ;ожидание появления сигнала высокого уровня

L2: JBP0.5,L2 ;ожидание появления сигнала низкого уровня

;увеличиваем содержимое счетчика

;R5-младший разряд, R6-старший разряд

INCr5

MOVA,r5

DAA;десятичная коррекция аккумулятора

MOV r5,A

MOV A,0h

ADDC A,r6 ;если r5 переполнен

DAA

MOVr6,A

;проверка нажатия кнопки "К3"

L1: JBP0.4,L3 ;если "К3" отжата,то переход на метку L3

MOVA,r6 ;если "К3" нажата,то выводим на индикатор

MOVr6,A

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

L3: JNBP0.6,L5 ;ожидание появления сигнала высокого уровня

L4: JBP0.6,L4 ;ожидание появления сигнала низкого уровня

;увеличиваем содержимое счетчика

;R5-младший разряд, R6-старший разряд

INCr7

MOVA,r7

DAA;десятичная коррекция аккумулятора

MOV r7,A

MOV A,0h

ADDC A,r8 ;если r7 переполнен

DAA

MOVr8,A

;проверка нажатия кнопки "К2"

L5: JBP0.3,L3 ;если "К2" отжата,то переход на метку L6

MOVA,r8 ;если "К2" нажата,то выводим на индикатор

MOVr8,A

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

L6: JNBP0.7,L8 ;ожидание появления сигнала высокого уровня

L7: JBP0.7,L7 ;ожидание появления сигнала низкого уровня

;увеличиваем содержимое счетчика

;R9-младший разряд, R10-старший разряд

INCr9

MOVA,r9

DAA;десятичная коррекция аккумулятора

MOV r9,A

MOV A,0h

ADDC A,r10 ;если r9 переполнен

DAA

MOVr10,A

;проверка нажатия кнопки "К1"

L8: JBP0.4,L0 ;если "К1" отжата,то переход на метку L0

MOVA,r10 ;если "К1" нажата,то выводим на индикатор

MOVr10,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: MOVr6,#0h

6 0002 75 00 00 MOV r8,#0h

7 0005 75 00 00 MOV r10,#0h

8 0008

9 0008 30 85 0CL0: JNBP0.5,L1 ;ожидание появления сигнала высокого уровня

10 000B20 85 FDL2: JBP0.5,L2 ;ожидание появления сигнала низкого уровня

11 ;увеличиваем содержимое счетчика

12 ;R5-младший разряд, R6-старший разряд

13 000E 0D INC r5

14 000F ED MOV A,r5

15 0010 D4 DAA;десятичная коррекция аккумулятора

16 0011 FD MOV r5,A

17 0012 E5 00 MOV A,0h

18 0014 3EADDCA,r6 ;если r5 переполнен

19 0015 D4 DA A

20 0016 FE MOV r6,A

21 ;проверка нажатия кнопки "К3"

22 0017 20 84 02 L1: JBP0.4,L3 ;если "К3" отжата,то переход на метку L3

23 001AEEMOVA,r6 ;если "К3" нажата,то выводим на индикатор

24 001BFEMOVr6,A

25 ;вывод на индикацыю

26 001C30 86 0EL3: JNBP0.6,L5 ;ожидание появления сигнала высокого уровня

27 001F20 86 FDL4: JBP0.6,L4 ;ожидание появления сигнала низкого уровня

28 ;увеличиваем содержимое счетчика

29 ;R5-младший разряд, R6-старший разряд

30 0022 0F INC r7

31 0023 EF MOV A,r7

32 0024 D4 DAA;десятичная коррекция аккумулятора

33 0025 FF MOV r7,A

34 0026 E5 00 MOV A,0h

35 0028 35 00 ADDCA,r8 ;если r7 переполнен

36 002A D4 DA A

37 002B F5 00 MOV r8,A

38 ;проверка нажатия кнопки "К2"

39 002D20 83 ECL5: JBP0.3,L3 ;если "К2" отжата,то переход на метку L6

40 0030 E5 00 MOVA,r8 ;если "К2" нажата,то выводим на индикатор

41 0032 F5 00 MOVr8,A

42 ;вывод на индикацыю

43 0034 30 87 11 L6: JNBP0.7,L8 ;ожидание появления сигнала высокого уровня

44 0037 20 87 FDL7: JBP0.7,L7 ;ожидание появления сигнала низкого уровня

45 ;увеличиваем содержимое счетчика

46 ;R9-младший разряд, R10-старший разряд

47 003A 05 00 INC r9

48 003C E5 00 MOV A,r9

49 003ED4 DAA;десятичная коррекция аккумулятора

50 003F F5 00 MOV r9,A

51 0041 E5 00 MOV A,0h

52 0043 35 00 ADDCA,r10 ;если r9 переполнен

53 0045 D4 DAA

54 0046 F5 00 MOVr10,A

55 ;проверка нажатия кнопки "К1"

56 0048 20 84 BDL8: JBP0.4,L0 ;если "К1" отжата,то переход на метку L0

57 004BE5 00 MOVA,r10 ;если "К1" нажата,то выводим на индикатор

58 004DF5 00 MOVr10,A

59 ;вывод на индикацыю

60 004F

61 004F

62 004F

Lines Assembled : 62 Assembly Errors : 0


СПИСОКИСПОЛЬЗУЕМОЙЛИТЕРАТУРЫ

1. Сташин В.В. «Проектирование цифровых устройств на однокристальных микроконтроллерах»: М.: Энергоатомиздат, 1990г.

2. «Полупроводниковые приборы. Диоды выпрямительные, стабилитроны, тиристоры.» Справочник: под редакцией Голошедова А.В.: М.: Радио и связь, 1989г.