Страница 1 из 1

проблема с PORTA PIC16f877

Добавлено: Сб янв 15, 2011 03:08:52
-Light-
При написании программы для опроса матричной клавиатуры 3х3 возникло проблема с портом а точнее с регистром PORTA. Настраиваю 0-2 контакт на выходы и 3-5 на входы, даю 1 на один из трех столбцов и проверяю состояние 3-5 бита.
В качестве симулятора использовал Proteus7 Professional. С 3-6 битами проблем нет проблема с 3-5. При подачи на них 1 в регистре PORTA не наблюдалось никаких изменений но когда я переписываю состояние битов в другой регистр то в нем отображаются все биты на которые я подаю 1.
Так и должно быть или это протэус глючит.

сам код программы

processor pic16f877
#include<p16f877.inc>
errorlevel -302

AW equ 0x21

org 0x00
clrf STATUS
movlw 0x00
movwf PCLATH
goto Begin

Begin
bcf STATUS, RP1
bcf STATUS, RP0
movlw b'00000111'
movwf OPTION_REG
bsf STATUS,RP0
movlw 0x06
movwf ADCON1
movlw b'11111000'
movwf TRISA
bcf STATUS,RP0
clrf PORTA
bsf PORTA, 0x00
Start
movf PORTA,W
movwf AW
andlw b'00111000'

goto Start

END

Re: проблема с PORTA PIC16f877

Добавлено: Сб янв 15, 2011 11:40:53
Аlex
проблема с 3-5. При подачи на них 1 в регистре PORTA не наблюдалось никаких изменений
Они же настроены на вход.

Код: Выделить всё

movlw b'11111000'
movwf TRISA

Re: проблема с PORTA PIC16f877

Добавлено: Вс янв 16, 2011 00:02:54
-Light-
я неправильно выразился
я подою напряжение на контакты 3-5 порта А, в регистре PORTA это не отображается но при копировании содержимого регистра PORTA в AW, значение в регистре AW соответствует состоянию контактов порта A

Re: проблема с PORTA PIC16f877

Добавлено: Вс янв 16, 2011 04:52:59
Аlex
Ну а что тогда Вас смущает ? То что не видно содержимое PORTA в протеусе ? В аккумулятор сохраняет, значит всё нормально.

Re: проблема с PORTA PIC16f877

Добавлено: Пн янв 17, 2011 02:50:39
-Light-
Просто я пытался отладить программу в протэусе, но в свези с данным и рядом других глюков придется это делать в mplab

Re: проблема с PORTA PIC16f877

Добавлено: Пн янв 17, 2011 14:06:59
Dmitry Dubrovenko
-Light- писал(а):придется это делать в mplab
А надо делать в связке МПЛАБ-Протеус.