Re: PIC16F84 - záčátečník

Danhard danhard@volny.cz
Sobota Říjen 28 21:15:18 CEST 2006


Podivej se na adresaci podle ukazatele, odskok do tabulky a navrat s hodnotou.
Inkrementovani ukazatele + volani hodnoty dej do cyklu.
Hodnotu ukazatele ukladej pri zastaveni do EEPROM.
Program te vyjde na 20 radku +  naplneni tabulky.
Tabulku umisti na absolutni misto, zacatek stranky, pak muzes bezproblemove vyuzit celych 256 hodnot.

Danhard


> Zdravim,
> prosim zkušené o pomoc. v příloze zasílám program. Je to jeden efekt z
> ledek za druhým. Jsem úplný začátečník s PIC a potřeboval bych tento
> program upravit tak, aby se opakoval efekt č.1 do tý doby, než stisknu
> tlačítko, po jeho stisku se bude opakovat efekt č.2, stisknu a přepne se
> a opakuje se efekt č.3,....
>
> šlo by ještě udělat (co nejjednodušeji), aby si PIC pamatoval u kterýho
> efektu skončil?
>
> poradí někdo?
> Petr
>
>


--------------------------------------------------------------------------------


> ; ************************************************************************
> ; *     SVETLO3.ASM *
> ; ************************************************************************
> ; * *
> ; * Autor: Petr Kout, pkout@wo.cz,  http://www.ferrari105.tk *
> ; * Program: Bezici svetlo - vylepsene *
> ; * Procesor: 16C84, 16F84 *
> ; * Popis: Postupne blikani LED na porte RB *
> ; * Nastaveni: RC *
> ; * WDT - on nebo off *
> ; * PWR - on nebo off *
> ; * *
> ; ************************************************************************
>
>
> LIST P=16C84
>
> PORTB equ 06H
> STATUS equ 03H
> TRISB equ 86H
> ZPOMAL3 equ 0DH
> ZPOMAL2 equ 0EH
> ZPOMAL1 equ 0FH
>
> org 08H
>
> bsf STATUS,5
> clrf TRISB
> bcf STATUS,5
>
> SVETLO movlw B'10000000'
> movwf PORTB
> call CEKEJ
>
>         movlw B'11000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110001'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110011'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110111'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111111'
> movwf PORTB
> call CEKEJ
> ;e2
>         movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01100110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01100110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10000001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10000001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
> ;e3
> movlw B'10001000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10001000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01000100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01000100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00100010'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00100010'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00010001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00010001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00100010'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00100010'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01000100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01000100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10001000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10001000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
> ;e4
> movlw B'10100101';1
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10100101'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10100101'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101';2
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'10111101'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10100101';3
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10100101'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10100101'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
> ;e5
> movlw B'10000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10000001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11000001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11000011'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100011'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
> ;e6
> movlw B'10000000'
> movwf PORTB
> call CEKEJ
>
>         movlw B'11000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00111000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00001110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000011'
> movwf PORTB
> call CEKEJ
>
>         movlw B'00000001'
> movwf PORTB
> call CEKEJ
>
>         movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> ; pohyb zpet
>
> movlw B'00000001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000011'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00001110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00111000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
> ;e7
> movlw B'10000000'
> movwf PORTB
> call CEKEJ
>
>         movlw B'11000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111100'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111110'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111111'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111110'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111100'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00111000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00001110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00001110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00111000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11100000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111100'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111110'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111111'
> movwf PORTB
> call CEKEJ
>
> movlw B'01111111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00111111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00001111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000011'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
> ;e9
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00111100'
> movwf PORTB
> call CEKEJ
>
> movlw B'01111110'
> movwf PORTB
> call CEKEJ
>
> movlw B'11111111'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01111110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00111100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00110000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'01100000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'11000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'10000001'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000011'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000110'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00001100'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00000000'
> movwf PORTB
> call CEKEJ
>
> movlw B'00011000'
> movwf PORTB
> call CEKEJ
>
> goto SVETLO ;opakuj stale dokola
>
> ; tady je vytvorena casova prodleva
>
> CEKEJ movlw 1 ;vnejsi smycka
> movwf ZPOMAL3
>
> NASTAV1 movlw 45 ;prostredni smycka
> movwf ZPOMAL2
>
> NASTAV2 movlw 200 ;vnitrni smycka 0 - 127
> movwf ZPOMAL1
> clrwdt
>
> NASTAV3 decfsz ZPOMAL1,1 ;cyklus 1
> goto NASTAV3
> decfsz ZPOMAL2,1 ;cyklus 2
> goto NASTAV2
> decfsz ZPOMAL3,1 ;cyklus 3
> goto NASTAV1
> return ;navrat do programu
>
> END
>
>


--------------------------------------------------------------------------------






--------------------------------------------------------------------------------


_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list





Další informace o konferenci Hw-list