|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 2:00 am
|
Страница 1 от 1
|
[ 11 мнения ] |
|
проблем s PORTD I PORTE na PIC16F877A
| Автор |
Съобщение |
|
hobsi
Ранг: Минаващ
Регистриран на: Пон Юли 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 |
|
 |
|
123
Ранг: Новодошъл
Регистриран на: Пет Апр 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 |
|
 |
|
hobsi
Ранг: Минаващ
Регистриран на: Пон Юли 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
|
| Сря Юли 11, 2007 8:53 pm |
|
 |
|
123
Ранг: Новодошъл
Регистриран на: Пет Апр 13, 2007 10:50 am Мнения: 105 Местоположение: Перник
|
Не ща да се заяждам, ама по-лесно се чете на кирилица. А асемблерски ( и не само ) сорс без подробни коментари си е понятен само за автора, и то не винаги 
|
| Чет Юли 12, 2007 7:49 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Явно не е наясно с разликата между MOVFW и MOVWF
Пиши на кирилица!
|
| Чет Юли 12, 2007 8:34 am |
|
 |
|
hobsi
Ранг: Минаващ
Регистриран на: Пон Юли 09, 2007 12:55 am Мнения: 8
|
movwf - прехвъля се един байт от работниа регистър (W на аритметично логическото устройство "АЛУ") в клетка от паметта в зависимост от RP0 и RP1 на STATUS регисъра (избиране на банка от енерго зависимата памет ), movfw прехвърля единбайт от клетка от памета в паботния регистър (W наричан още акумулатор) и условието за RP0 и RP1 остава, дотук с нападките питам като човек.
Ако някои е видял грешка да я посочи, относно кирелицата сте прави, и аз неискам да се заяждам.
|
| Чет Юли 12, 2007 7:55 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Разликата си я написал, ама прочете ли я ? Кода ти гъмжи от такива грешки:
|
| Чет Юли 12, 2007 9:08 pm |
|
 |
|
hobsi
Ранг: Минаващ
Регистриран на: Пон Юли 09, 2007 12:55 am Мнения: 8
|
Благодаря, оказва се че само сам си мислил че записвам в тези ргистри.
Извода от цялата работа е че небива да се пишат програми или да им се търси гресхкаа когато ти се спи. надявам се сега да тръгне
отново благодаря
|
| Пет Юли 13, 2007 7:04 pm |
|
 |
|
123
Ранг: Новодошъл
Регистриран на: Пет Апр 13, 2007 10:50 am Мнения: 105 Местоположение: Перник
|
За да не стават сакатлъци от недоглеждане пиша инструкциите с малки и големи букви, да се набива на очи.
movWf, movFw, btfsC, btfsS, movLw, andLw, andWf, bSf, bCf. Изглежда най-малкото странно, ама ми върши работа.
|
| Вто Юли 17, 2007 11:59 am |
|
 |
|
hobsi
Ранг: Минаващ
Регистриран на: Пон Юли 09, 2007 12:55 am Мнения: 8
|
то хубаво ама пак не се получава
TRISE си е 0х00 и TRISD и той
|
| Вто Юли 17, 2007 5:13 pm |
|
 |
|
hobsi
Ранг: Минаващ
Регистриран на: Пон Юли 09, 2007 12:55 am Мнения: 8
|
проблема е фиксиран в един pdf е вярно едно а в друг друго
|
| Чет Юли 19, 2007 12:16 am |
|
|
|
Страница 1 от 1
|
[ 11 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|