Курсовая работа: Разработка микропроцессорной системы контроля
В блоке 6 производится проверка, нажата ли клавиша «2». При выполнении этого условия программа переходит к блоку 7, где устанавливается regim2, в противном случае – к блоку 3.
В блоке 8 производится проверка, является ли regim2 текущим режимом. При невыполнении этого условия программа переходит к блоку 18.
В блоке 9 выполняется подпрограмма индикации С(х).
В блоке 10 производится открытие электромагнитного клапана и присваивается начальное значение переменной time=0.
В блоке 12 производится проверка, нажата ли клавиша «1». При выполнении этого условия программа переходит к блоку 13, где устанавливается regim 1.
В блоке 14 выполняется проверка превышения концентрации при regim 2. При невыполнении этого условия программа переходит к блоку 8.
В блоке 15 производится включение сигнализирующей лампочки L1.
В блоке 16 выполняется проверка превышения заданного времени. При не выполнении этого условия программа переходит к блоку 14, в противном случае – к блоку 17, где устанавливается regim 3.
В блоке 18 производится проверка, является ли regim3 текущим режимом. При невыполнении этого условия программа переходит к блоку 3.
В блоке 19 производится закрытие электромагнитного клапана и выполняется подпрограмма индикации С(х).
В блоке 20 производится проверка превышения предельного значения концентрации. При выполнении этого условия программа переходит к блоку 21, в котором включает сигнализирующие лампочки L1 и L2, иначе – к блоку 22, где включает сигнализирующую лампочку L2 и выключает L1.
В блоке 23 производится проверка нажатия клавиш "1" + "*" при допустимом значении концентрации. При невыполнении этого условия программа переходит к блоку 18, иначе – к блоку 24, в котором устанавливается regim 2 .
На рисунке 2 представлена блок-схема алгоритма опроса клавиатуры.
В блоке 1 инициализируется переменная scan для опроса первого столбца клавиатуры.
В блоке 2 производится проверка окончания сканирования последнего столбца. Если условие выполняется, то программа переходит к блоку 4, где осуществляется выход из подпрограммы.. Если нет, то программа переходит к блоку 3.
В блоке 3 производится вывод значения переменной scan в порт P4 для сканирования клавиатуры.
В блоке 5 осуществляется ввод с порта P4 и присвоение этого значения переменной key.
В блоке 6 выполняется проверка факта нажатия кнопки в опрашиваемом столбце.
При обнаружении нажатой кнопки выполняется блок 7, в котором производится возвращение в основную программу значения переменной key, в противном случае – блок 8.
Блок 8 осуществляет модификацию переменной scan путем сдвига влево для сканирования следующего столбца.
В блоке 9 производится инкрементация переменной scan. Далее программа переходит к блоку 2.
На рисунке 3 представлена блок-схема алгоритма индикации С(х).
В блоке 1 инициализируется переменная chan.
В блоке 2 производится проверка равенства бита ADCS=1 регистра ADCON. Если условие выполняется, то АЦП не готов к выполнению новых преобразований и программа возвращается к блоку 2. Если нет, то программа переходит к блоку 3.
В блоке 3 устанавливаются биты ADR0-ADR2 для выбора канала АЦП.
В блоке 4 производится проверка равенства бита ADCI=1 регистра ADCON. Если условие не выполняется, то программа переходит к блоку 6, где осуществляется установление бита ADCSв 0, с последующим переходом к блоку 11. Если да, то программа переходит к блоку 5.
В блоке 5 выполняется присвоение переменной nxфакта нажатия кнопки в опрашиваемом столбце.
В блоке 7 осуществляется расчет напряжения Ux.
В блоке 8 осуществляется расчет текущего значения концентрации Сх.