Требуется помощь в написание алгоритам для микроконтроллера PIC16F84. Вот схемка: http://s59.radikal.ru/i166/0905/be/0518249d1148.jpg её логику нужно сделать в виде программы. Смысл работы в том, что приходящие 6-ти разрядное слово, проверяется путем сложений в лог. элементах. На выходе схемы появляется сигнал 1 - нет ошибок, а 0 соотв. сигнал ошибки. Тоесть схема выдает сигнал ошибки на все варианты 6ти разрядного слова в котором больше 1 еденицы и на 000000. Безошибочные варианты слова: 000001 000010 000100 001000 010000 100000 Схема эл. принципиальная с пиком уже: http://s52.radikal.ru/i137/0905/80/6889d11375e8.jpg Хочу выслушать ваши предложения. Как лучше реализовать алгоритм. Спасибо.
Код (Text): movf PORTB,W andlw B'00111111' movwf Temp1 bcf STATUS,C L1 rrf Temp1,F movf STATUS,W andlw B'00000101' ; mask for C & Z GotoIf On,STATUS,Z,L1 movwf Temp2 rrf Temp2,F rrf Temp2,F andwf Temp2,W andlw B'00000001' movwf PORTA Правильно ли?
UPD Код (Text): movf PORTB,W andlw B'00111111' movwf Temp1 bcf STATUS,C L1 rrf Temp1,F movf STATUS,W andlw B'00000101' ; mask for C & Z btfsc STATUS,Z goto L1 movwf Temp2 rrf Temp2,F rrf Temp2,F andwf Temp2,W andlw B'00000001' movwf PORTA
Если мне не изменяет память то в пике есть флаш четности "P" .Можно ведь просто проверять его состояние и проверять состояние флага нуля Z.
PS:Схемка то не совсем верная. Не понятно как МК узнает что кодовая комбинация пришла. Да нет никакой защиты от наводок. В протеусе заработает но в реале врядли будет работать корректно.
Если тебе не важна практика то и теория подавна не нужна. То ,что в этой модели МК нет флага четности тебе не повезло. Было б намного легче. А так тебе нужно проверять на равенство шести твоим комбенациям. ЗЫ: Выучи сначала основны ассемблера.