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

З А Д А Н И Е № 13 на курсовую работу по дисциплине «Основы микропроцессорной техники»
Разработать принципиальную схему и программу функционирования микропроцессорной системы, выполненной на базе однокристального микроконтроллера серии МК51, осуществляющего подсчет и индикацию количества деталей разного размера на конвейере. Наличие деталей определяется тремя фотодатчиками, определяющими наличие и размер деталей. Индикация производится на четырехразрядном индикаторе. 1- разряд тип детали, 3 разряда – количество.
Преподаватель
СОДЕРЖАНИЕ
Введение
1. Функциональная схема
2. Разработка принципиальной схемы системы
2.1 Микроконтроллер МК51
2.2 Дешифратор К514ИД1
2.3 Индикатор АЛС 324А
2.4 Элементы электрической схемы
3. Алгоритм работы программы
Список литературы
ВЕДЕНИЕ
Развитие микроэлектроники и широкое применение её изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами является в настоящее время одним из основных направлений научно-технического прогресса.
В микроэлектронике бурное развитие получило направление связанное с выпуском однокристальных микроконтроллеров, которые предназначены для интеллектуализации оборудования различного назначения. Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающая в себя все составные части голой микро ЭВМ: микропроцессор, память программ и память датчик, а также программируемые интерфейсные схемы для связи с внешней средой.
Использование микроконтроллеров в системах управления достижение исключительно высоких показателей эффективности при столь низкой стоимости, что микроконтроллером, видимо, нет разумной альтернативной элементной базы для построения управляющих и регулирующих систем. [1.стр3]
ФУНКЦИОНАЛЬНАЯ СХЕМА
Для реализации программы подсчета деталей, идущих по конвейеру составим следующею функциональную схему.
/>/>/>
/>Рис.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 Описание алгоритма работы и программы–PAGE_BREAK–
Для более простой реализации нажатия кнопок «Сброс» и «Всего» будем использовать два счетчика: С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; если «Всего» нажата, то выводим на индикатор    продолжение
–PAGE_BREAK–
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     продолжение
–PAGE_BREAK–
; вывод на индикацыю
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
СПИСОКИСПОЛЬЗУЕМОЙЛИТЕРАТУРЫ
Сташин В.В. «Проектирование цифровых устройств на однокристальных микроконтроллерах»: М.: Энергоатомиздат, 1990г.
«Полупроводниковые приборы. Диоды выпрямительные, стабилитроны, тиристоры.» Справочник: под редакцией Голошедова А.В.: М.: Радио и связь, 1989г.