Подсчет и индикация деталей
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г.
Вместе с этим смотрят:
IP-телефония. Особенности цифровой офисной связи