Скачать

Подсчет и индикация деталей

1. Функциональная схема

2. Разработка принципиальной схемы системы

2.1 Микроконтроллер МК51

2.2 Дешифратор К514ИД1

2.3 Индикатор АЛС 324А

2.4 Элементы электрической схемы

3. Алгоритм работы программы

Список литературы


ВЕДЕНИЕ

Развитие микроэлектроники и широкое применение её изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами является в настоящее время одним из основных направлений научно-технического прогресса.

В микроэлектронике бурное развитие получило направление связанное с выпуском однокристальных микроконтроллеров, которые предназначены для интеллектуализации оборудования различного назначения. Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающая в себя все составные части голой микро ЭВМ: микропроцессор, память программ и память датчик, а также программируемые интерфейсные схемы для связи с внешней средой.

Использование микроконтроллеров в системах управления достижение исключительно высоких показателей эффективности при столь низкой стоимости, что микроконтроллером, видимо, нет разумной альтернативной элементной базы для построения управляющих и регулирующих систем. (1.стр3)


1. ФУНКЦИОНАЛЬНАЯ СХЕМА

Для реализации программы подсчета деталей, идущих по конвейеру составим следующею функциональную схему.

Рис.1 Функциональная схема

Когда деталь проходит место, где установлен фотодатчик (ФД), с него на вход микроконтроллера поступает сигнал высокого уровня. После прохождения детали сигнал опять становится низкого уровня. Эти импульсы считает однокристальная ЭВМ (ОМ ЭВМ), а результат выдается через свой порт на дешифратор (Д), с которого число поступает на индикатор.

В процессе подсчета и индикации деталей может быть нажата кнопка «ВСЕГО» - высвечивается полное количество деталей, прошедших с момента включения конвейера.

«Сброс»-идет подсчет деталей прошедших после нажатия кнопки.

Сигналы от них поступают на входы Р0.1 и Р0.0 порта Р0.


2.РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ СИСТЕМЫ

На рис.6 изображена принципиальная схема микропроцессорной системы, осуществляющая подсчет и индикацию деталей разного типа на конвейере. Она состоит из следующих элементов:

2.1 Микроконтроллер КМ1816ВЕ51

Конструктивно он выполнен в корпусе БИС с 40 внешними выводами. Все выводы электрически совместимы с элементами ТТЛ: входы представляют собой единичную нагрузку, а входы могут быть нагружены одной ТТЛ нагрузкой. Общий вид корпуса МК51 показан на рис.2.

Рис.2 Микроконтроллер КМ1816ВЕ51


VSS – потенциал земли, VCC- основное напряжение питания, EA/VPP-при подаче на него сигнала высокого уровня запрещает работу с внешней памятью, RST- вход сигнала общего сброса при запуске МК, Х1,Х2- входы для подключения выводов кварцевого резонатора.

ОСНОВНЫЕ ПАРАМЕТРЫ МИКРОКОНТРОЛЛЕРА КМ1816ВЕ51:

Память программы (ПЗУ или СППЗУ) имеет емкость 4Кбайта и предназначена для хранения команд, констант, управляющих слоев инициализации, таблиц перекодировки входных и выходных переменных и т.п.; РПП имеет 16- битную шину адреса, через которую обеспечивается доступ из счетчика команд или из регистра указателя данных; память ОЗУ предназначена для хранения переменных в процессе выполнения программ, адресуется одним байтом и имеет ёмкость 128 байт. Память программ, так же как и память данных может быть рассмотрена до 64 Кбайт путем подключения внешних БИС; двух байтный регистр указатель данных (РПД), обычно используется для фиксации 16- битного адреса в операциях, с обращением к ВП.

2.2 Дешифратор К514ИД1

Для вывода данных из портов микроконтроллера на индикатор используем дешифратор К514ИД1 для семисегментного полупроводникового цифрового индикатора с разъединенными анодами сегментов (рис.3).

Рис.3 Дешифратор К514ИД1

ПРЕДЕЛЬНО ДОПУСТИМЫЕ РЕЖИМЫ ЭКСПЛУАТАЦИИ:

Ток нагрузки на каждом выходе 22Ма, напряжение источника питание – не более 5,25В, входное напряжение – не более 55,25В.

2.3 Индикатор АЛС 324А

Для визуальной индикации количества и типа детали используем индикатор АЛС 324А – знаковый индикатор красного цвета в пластмассовом корпусе (рис.4).

Рис.4 Индикатор АЛС 324А

Различные комбинации элементов, обеспечиваемые внешней коммутацией, позволяют воспроизводить цифры от 0 до 9. Излучение света происходит при попадании прямого тока. У индикатора АЛС 324А элементы имеют общий катод (рис.4).

ЭЛЕКТРИЧЕСКИЕ И СВЕТОВЫЕ ПАРАМЕТРЫ:

- сила света при прямом токе 20мА через элементы, не менее 0.15мкд.

- постоянное прямое напряжение на каждом элементе при токе 20мА, не более 2.5 В.

ПРЕДЕЛЬНО ЭКСПЛУАТАЦИОННЫЕ ДАННЫЕ:

Обратное напряжение любой формы и периодичности при tос от -600 до

+350С – 5В; постоянный прямой ток через элемент при tос от -600 до

+350С – 25мА; температура окружающей среды от -600 до +700С.

2.4 Элементы электрической схемы

Устройство управления МК совместно с логической схемой переходов в каждом цикле команды формирует последовательность сигналов, управляющих функциями всех блоков МК и системой их взаимосвязи.

Рис.5 Кварцевый резонатор.

Опорную частоту синхронизации МК определяет кварцевый резонатор, подключаемый к выводам Х1 и Х2. Х1 является входом, а Х2 – выходом генератора, способного работать в диапазоне частот от 1 до 12 МГц. В состав генератора МК входят два счетчика с модулями пересчета 3 и 5. Первый используется для формирования сигнала системой синхронизации (0,5 мкс). Этот же сигнал поступает на счетчик машинных циклов, на входе которого через каждые пять сигналов синхронизации формируется сигнал САВП (2.5 мкс), идентифицирующий машинный цикл и используемый в расширенных МК системах для стробирования адреса внешней памяти.


3. АЛГОРИТМ РАБОТЫ ПРОГРАММЫ


Подпрограмма ожидания импульса

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

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