PIC16F628A
Помогите разобраться, пжл.
Устройство (на PIC16F628A с внутренним генератором) следит за 8-ю кнопками. При появлении нажатия, на пульте должен зажеться номер кнопки и включаться зумер.Программа отлажена на Протеусе, нормально работает, но реально ведёт себя странно.
Вот проблемная часть программы (В неё заходим если найдена нажата кнопка.Если раньше она нажата не была - включаем зумер):
INTCON.7 = 0, в конфигурации всё выключено
1)А=(А Or B)______B = номер нажатой кнопки, А = номера всех нажатых кнопок -
2)IF А › C then____Не была ли нажата ещё какая либо кнопка
3)___portА = A_______Да, была - зажгём и её
4)___C = А___________Запоминаем нажатые в данный момент
5)___Zumer ON
6)else
Между показаннымы строками я включял моргалку, чтоб проследить что где когда. Так вот, после второй строки, программа всегда шагает на 'else'. Далее (по времени) лампа нажатой кнопки зажыгается, хотя больше нигде нет команды что либо записывать или менять в А. Выходит что как бы команда выполняется, но с опозданием и, скажем, зумеру, суждено всегда остаться немым. После 'else', аналогично написано для portB и поведение анологичное. Какие могут быть причины такого поведения?
Спасибо.
__________________
Не унывайте - лучше может и не быть.
|