Отговори на тема  [ 11 мнения ] 
проблем s PORTD I PORTE na PIC16F877A 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 12:55 am
Мнения: 8
Мнение проблем s PORTD I PORTE na PIC16F877A
целта е PORTA, PORTB, PORTE и PORTD цифрови входове
спред PDF-a ADCON1 ->0x06, TRISE,4->0
bankata e
bcf STATUS,RP1
bsf STATUS,RP0
vsichki portove sa predvaritelno b'00000000'
clrf CVRCON
movlw 0x03
movwf CMCON
movlw 0x06
movwf ADCON1
bcf ADCON0,0 ;ADC - off
bcf TRISE,0x04 ; PORTD DIRECT i/o
movlw 0x07
movfw TRISE
movlw 0xFF
movfw TRISD


inak RS-a vari ama 4eta PORTD TRISD PORTE I TRISE vinagi nuli
i vazmojnoli e registrite : LPORTD TRISD PORTE I TRISE da nesa dostupni za indirektna adresacia
IRP NA STATUS registara go clirva predi vsiako zarejdane na FSR


podskajete malko

pls


Вто Юли 10, 2007 6:15 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пет Апр 13, 2007 10:50 am
Мнения: 105
Местоположение: Перник
Мнение 
Изключи paralel slave порта. май беше в TRISE 3-7

movlw 0x07
movfw TRISE movWf ?
movlw 0xFF
movfw TRISD movWf ?


Сря Юли 11, 2007 9:55 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 12:55 am
Мнения: 8
Мнение 
nabrahgo i sam gi mapisal movfw
inak sa movwf
etogo sorsa

#include <p16f877a.inc>

etx EQU 0x38
stx EQU 0x39
IICflags EQU 0xA0
slvadr EQU 0xA1
iicrcdp EQU 0xA2
iicrcdsa EQU 0xA3
RXBUFA EQU 0x41
RXBUFD EQU 0x40
RXTMP EQU 0x42
cmda EQU 0x43
cmdd EQU 0x44

ORG H'0000'
GOTO init

ORG H'0004'
GOTO IntR

init
bcf STATUS,RP0
bcf STATUS,RP1
clrf RCSTA
bsf STATUS,RP0
bcf STATUS,RP1
movlw B'00000111'
movfw CMCON
movlw 0x00
movfw CVRCON
BCF STATUS, RP0
BCF STATUS, RP1 ; Bank0
clrf ADCON0
CLRF PORTA
BSF STATUS, RP0
BCF STATUS, RP1 ; Bank1
movlw b'00000110'
movwf ADCON1
movlw b'00111111'
movwf TRISA
BCF STATUS, RP0
BCF STATUS, RP0 ; Bank0
CLRF PORTE
BSF STATUS, RP0
BCF STATUS, RP1 ; Bank1
bcf 0x89,4
bsf 0x89,2
bsf 0x89,1
bsf 0x89,0
movlw 0x87
movwf OPTION_REG
clrf INTCON
clrf PIE1
clrf PIE2
BCF STATUS, RP0
BCF STATUS, RP1 ; Bank0
CLRF PORTB
BSF STATUS, RP0
BCF STATUS, RP1 ; Bank1
movlw b'11111111'
movwf TRISB
BCF STATUS, RP0
BCF STATUS, RP1 ; Bank0
CLRF PORTD
BSF STATUS, RP0
BCF STATUS, RP1 ; Bank1
movlw b'11111111'
movfw TRISD
BCF STATUS, RP0
BCF STATUS, RP1 ; Bank0
CLRF PORTC
BSF STATUS, RP0
BCF STATUS, RP1 ; Bank1
movlw b'11111111'
movwf TRISC
clrf TXSTA
movlw .25
movwf SPBRG
bcf STATUS,RP0
bcf STATUS,RP1
movlw 0x90
movwf RCSTA
bsf STATUS,RP0
bcf STATUS,RP1
movlw 0x24
movwf TXSTA
bcf STATUS,RP0
bcf STATUS,RP1
bsf INTCON,0x05
bsf INTCON,0x07
GOTO Main


;-----------



IntR
bcf INTCON,7




btfss INTCON,2
goto ENDI

bcf STATUS,RP0
bcf STATUS,RP1
btfss PIR1,0x04
goto rx
btfss 0x37,0x05
goto tx1
bcf 0x37,0x05
goto ENDIT
tx1
movfw stx
movwf FSR
movfw FSR
bcf STATUS,C
subwf etx,0
btfss STATUS,C
goto endbuf
movfw INDF
movwf TXREG
incf stx,1
endbuf
bsf 0x37,7

rx
bcf STATUS,RP0
bcf STATUS,RP1
bcf STATUS,IRP
BTFSS PIR1,5
GOTO ENDIT
btfsc RCSTA,OERR ;if overrun error occurred
goto ErrSerialOverr ; then go handle error
btfsc RCSTA,FERR ;if framing error occurred
goto ErrSerialFrame ; then go handle error
movfw RCREG
movwf FSR
nop
movfw INDF
movwf TXREG

ENDIT
movlw .246
movwf TMR0
bcf INTCON,2
ENDI
bsf INTCON,7
RETFIE
;-------------------------------------------------------



ErrSerialOverr:
bcf STATUS,RP0
bcf STATUS,RP1
bcf RCSTA,CREN ;reset the receiver logic
bsf RCSTA,CREN ;enable reception again
goto ENDIT
ErrSerialFrame:
bcf STATUS,RP0
bcf STATUS,RP1
movf RCREG,W ;discard received data that has error
goto ENDIT
;----------------
Main

GOTO Main
END


Прикачени файлове:
main1.asm [3.41 KiB]
230 пъти
Сря Юли 11, 2007 8:53 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пет Апр 13, 2007 10:50 am
Мнения: 105
Местоположение: Перник
Мнение 
Не ща да се заяждам, ама по-лесно се чете на кирилица. А асемблерски ( и не само ) сорс без подробни коментари си е понятен само за автора, и то не винаги :!:


Чет Юли 12, 2007 7:49 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Явно не е наясно с разликата между MOVFW и MOVWF
Пиши на кирилица!


Чет Юли 12, 2007 8:34 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 12:55 am
Мнения: 8
Мнение 
movwf - прехвъля се един байт от работниа регистър (W на аритметично логическото устройство "АЛУ") в клетка от паметта в зависимост от RP0 и RP1 на STATUS регисъра (избиране на банка от енерго зависимата памет ), movfw прехвърля единбайт от клетка от памета в паботния регистър (W наричан още акумулатор) и условието за RP0 и RP1 остава, дотук с нападките питам като човек.
Ако някои е видял грешка да я посочи, относно кирелицата сте прави, и аз неискам да се заяждам.


Чет Юли 12, 2007 7:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Разликата си я написал, ама прочете ли я ? Кода ти гъмжи от такива грешки:
Код:
nit
bcf STATUS,RP0
bcf STATUS,RP1
clrf RCSTA
bsf STATUS,RP0
bcf STATUS,RP1
movlw B'00000111'
movfw CMCON <- ????
movlw 0x00
movfw CVRCON <- ????
BCF STATUS, RP0
BCF STATUS, RP1 ; Bank0
clrf ADCON0
CLRF PORTA
BSF STATUS, RP0
BCF STATUS, RP1 ; Bank1
movlw b'00000110'
movwf ADCON1
movlw b'00111111'
movwf TRISA <- ????

( и пр....)


Чет Юли 12, 2007 9:08 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 12:55 am
Мнения: 8
Мнение 
Благодаря, оказва се че само сам си мислил че записвам в тези ргистри.
Извода от цялата работа е че небива да се пишат програми или да им се търси гресхкаа когато ти се спи. надявам се сега да тръгне
отново благодаря


Пет Юли 13, 2007 7:04 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пет Апр 13, 2007 10:50 am
Мнения: 105
Местоположение: Перник
Мнение 
За да не стават сакатлъци от недоглеждане пиша инструкциите с малки и големи букви, да се набива на очи.
movWf, movFw, btfsC, btfsS, movLw, andLw, andWf, bSf, bCf. Изглежда най-малкото странно, ама ми върши работа.


Вто Юли 17, 2007 11:59 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 12:55 am
Мнения: 8
Мнение 
то хубаво ама пак не се получава
TRISE си е 0х00 и TRISD и той


Вто Юли 17, 2007 5:13 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Юли 09, 2007 12:55 am
Мнения: 8
Мнение 
проблема е фиксиран в един pdf е вярно едно а в друг друго


Чет Юли 19, 2007 12:16 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 11 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни