Программирование 8255 через 16f84a - PullRequest
0 голосов
/ 10 декабря 2011

Я пытаюсь записать управляющий байт 8255 ppi (программируемый периферийный интерфейс) через 16f84a. Все нормально с Proteus, но я не могу написать что-нибудь 8255 на моей схеме. Входы выходят из 16f84a (PORTB) и подключаются к шине данных 8255. Некоторые говорят, что должна быть задержка для записи 8255. Я пытался, но не работал. Вот тестовая программа, которую я написал, чтобы получить вывод через 8255. Все порты настроены на вывод (A, B, C). Но это не работает. ссылка на снимок экрана протея http://i.stack.imgur.com/UQbfG.jpg

bsf     PORTA,3                 ; activate 8255's reset pin
            call jDelay

            bcf     PORTA,3                 ; deactivate 8255's reset pin

            movlw   b'00000001'                 ; Control byte for 8255 (B0->D7....B7->D0) /reverse of 10000000 (all set to output)
            movwf   PORTB
            movlw   b'00000011'                 ; mode 11 to write control register and also PortA.3-> 8255.WR (activate with 0 ,WR pin active-low)
            movf PORTA                          ;portA.0->8255.A0&& portA.1->8255.A1

            call    jDelay                      ; Delay to write control byte

            bsf     PORTA,2                     ; Deactive Write pin of 8255 (Active-low , 1 deactivates)

main


    movlw      B'10110110'       ; Digit value for 5
    movwf       PORTB
        movlw b'00000000'       ; mode 00 and activate WR pin
        movwf PORTA             ; write to portA so -> 8255
        call jDelay             ; Delay to write  byte
        bsf     PORTA,2         ; Deactivate 8255's WR pin(active-low)

        Delay                   ;endless loop
        goto Delay

        jDelay                   ; Delay loop
        Loop3               decfsz              COUNT1,1
                        goto Loop3
                            decfsz              COUNT3,1
                        goto Loop3

    return
end

1 Ответ

4 голосов
/ 10 декабря 2011

Скорее всего, вы взорвали 8255. Ваша схема эффективно закорачивает выходы 8255 на землю.Вы не даете точный номер детали 8255, который вы используете, но они, как правило, имеют максимальный выходной ток около 4 мА всего для всех бит на одном порту.На листе данных также должно быть примечание, что no ограничение тока предусмотрено и должно предоставляться внешней схемой.У вас нет ограничения по току.

Светодиод достаточно близок к замыканию на землю.8255 просто не может управлять им.

Отключите светодиод и посмотрите, работают ли выходы 8255.Если нет, замените 8255 и используйте подходящий драйвер вывода или резистор не менее 330 Ом между каждым выходом порта и светодиодом.

...