Program pro displej na kolo

21. srpna 2007 v 11:40 | Petr Hawliczek "Hawelson" |  SVĚTLO
Program si zkopírujte do poznámkového bloku a koncovku přepište z TXT na ASM.
--------------------------------------------------------------------------------------------------------
; ************************************************************************************************
; * Displej na kolo.ASM *
; ************************************************************************************************
; * *
; * Autor: Petr Hawliczek "Hawelson", Hawelson@seznam.cz, http://hawelson.blog.cz *
; * Program: Displej na kolo *
; * Procesor: 16C84, 16F84, 16F84A *
; * Popis: Vykreslování textu (obrázku) na kole. *
; * Nastaveni: RC *
; * WDT - on nebo off *
; * PWR - on nebo off *
; * *
; ************************************************************************************************


INCLUDE "P16F84A.INC"
LIST P=16F84A, R=DEC

__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC

PORTB equ 06H
STATUS equ 03H
TRISB equ 86H
ZPOMAL3 equ 0DH
ZPOMAL2 equ 0EH
ZPOMAL1 equ 0FH
OPAK equ 10H
OPAK2 equ 11H
SMYC equ 12H

org 08H

BSF STATUS,RP0 ;přesun do banky 1
MOVLW b'00000000'
MOVWF TRISB
BCF STATUS,RP0 ;přesun zpět do banky 0

NAPIS movlw 7 ;mezera před nápisem
movwf OPAK

SEDM call MEZERA
decfsz OPAK,1
goto SEDM


;------------------------------------------------------------------------------------------
;******************************************************************************************
;
; Začátek nápisu - pište písmena po jednotlivých sloupcích.
; Pouze přepisujte jedička a nuly, pro každý zobrazený sloupec je přiřazen jeden rádek jedniček a nul.
;
;------------------------------------------------------------------------------------------
;******************************************************************************************



movlw B'11111111' ;H pismeno
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call MEZERA


movlw B'10000000' ;A pismeno
movwf PORTB
call CEKEJ

movlw B'01000000'
movwf PORTB
call CEKEJ

movlw B'00100000'
movwf PORTB
call CEKEJ

movlw B'00010000'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00010100'
movwf PORTB
call CEKEJ

movlw B'00010010'
movwf PORTB
call CEKEJ

movlw B'00010001'
movwf PORTB
call CEKEJ

movlw B'00010010'
movwf PORTB
call CEKEJ

movlw B'00010100'
movwf PORTB
call CEKEJ

movlw B'00011000'
movwf PORTB
call CEKEJ

movlw B'00010000'
movwf PORTB
call CEKEJ

movlw B'00100000'
movwf PORTB
call CEKEJ

movlw B'01000000'
movwf PORTB
call CEKEJ

movlw B'10000000'
movwf PORTB
call MEZERA

movlw B'00000001' ;W pismeno
movwf PORTB
call CEKEJ

movlw B'00000010'
movwf PORTB
call CEKEJ

movlw B'00000100'
movwf PORTB
call CEKEJ

movlw B'00001000'
movwf PORTB
call CEKEJ

movlw B'00010000'
movwf PORTB
call CEKEJ

movlw B'00100000'
movwf PORTB
call CEKEJ

movlw B'01000000'
movwf PORTB
call CEKEJ

movlw B'10000000'
movwf PORTB
call CEKEJ

movlw B'01000000'
movwf PORTB
call CEKEJ

movlw B'00100000'
movwf PORTB
call CEKEJ

movlw B'00010000'
movwf PORTB
call CEKEJ

movlw B'00001000'
movwf PORTB
call CEKEJ

movlw B'00000100'
movwf PORTB
call CEKEJ

movlw B'00000010'
movwf PORTB
call CEKEJ

movlw B'00000001'
movwf PORTB
call CEKEJ

movlw B'00000010'
movwf PORTB
call CEKEJ

movlw B'00000100'
movwf PORTB
call CEKEJ

movlw B'00001000'
movwf PORTB
call CEKEJ

movlw B'00010000'
movwf PORTB
call CEKEJ

movlw B'00100000'
movwf PORTB
call CEKEJ

movlw B'01000000'
movwf PORTB
call CEKEJ

movlw B'10000000'
movwf PORTB
call CEKEJ

movlw B'01000000'
movwf PORTB
call CEKEJ

movlw B'00100000'
movwf PORTB
call CEKEJ

movlw B'00010000'
movwf PORTB
call CEKEJ

movlw B'00001000'
movwf PORTB
call CEKEJ

movlw B'00000100'
movwf PORTB
call CEKEJ

movlw B'00000010'
movwf PORTB
call CEKEJ

movlw B'00000001'
movwf PORTB
call MEZERA

movlw B'11111111' ;E pismeno
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call MEZERA

movlw B'11111111' ;L pismeno
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call MEZERA

movlw B'01000110' ;S pismeno
movwf PORTB
call CEKEJ

movlw B'11001010'
movwf PORTB
call CEKEJ

movlw B'10001001'
movwf PORTB
call CEKEJ

movlw B'10001001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10011001'
movwf PORTB
call CEKEJ

movlw B'10010001'
movwf PORTB
call CEKEJ

movlw B'10010001'
movwf PORTB
call CEKEJ

movlw B'01010010'
movwf PORTB
call CEKEJ

movlw B'01100010'
movwf PORTB
call MEZERA

movlw B'00111100' ;O pismeno
movwf PORTB
call CEKEJ

movlw B'01111110'
movwf PORTB
call CEKEJ

movlw B'11000011'
movwf PORTB
call CEKEJ

movlw B'10000001'
movwf PORTB
call CEKEJ

movlw B'10000001'
movwf PORTB
call CEKEJ

movlw B'10000001'
movwf PORTB
call CEKEJ

movlw B'10000001'
movwf PORTB
call CEKEJ

movlw B'10000001'
movwf PORTB
call CEKEJ

movlw B'10000001'
movwf PORTB
call CEKEJ

movlw B'11000011'
movwf PORTB
call CEKEJ

movlw B'01111110'
movwf PORTB
call CEKEJ

movlw B'00111100'
movwf PORTB
call MEZERA

movlw B'11111111' ;N pismeno
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'00000001'
movwf PORTB
call CEKEJ

movlw B'00000010'
movwf PORTB
call CEKEJ

movlw B'00000100'
movwf PORTB
call CEKEJ

movlw B'00001000'
movwf PORTB
call CEKEJ

movlw B'00010000'
movwf PORTB
call CEKEJ

movlw B'00100000'
movwf PORTB
call CEKEJ

movlw B'01000000'
movwf PORTB
call CEKEJ

movlw B'10000000'
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call MEZERA

movlw B'11000000' ;. tečka
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call MEZERA

movlw B'11000000'
movwf PORTB
call MEZERA

movlw B'11111111' ;b pismeno
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'10010000'
movwf PORTB
call CEKEJ

movlw B'10011000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10011000'
movwf PORTB
call CEKEJ

movlw B'10010000'
movwf PORTB
call CEKEJ

movlw B'10010000'
movwf PORTB
call CEKEJ

movlw B'11110000'
movwf PORTB
call CEKEJ

movlw B'01100000'
movwf PORTB
call MEZERA

movlw B'11111111' ;l pismeno
movwf PORTB
call CEKEJ

movlw B'11111111'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call MEZERA

movlw B'01110000' ;o pismeno
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call CEKEJ

movlw B'01110000'
movwf PORTB
call MEZERA

movlw B'10011000' ;g pismeno
movwf PORTB
call CEKEJ

movlw B'10011000'
movwf PORTB
call CEKEJ

movlw B'10111100'
movwf PORTB
call CEKEJ

movlw B'10100100'
movwf PORTB
call CEKEJ

movlw B'10100100'
movwf PORTB
call CEKEJ

movlw B'10100100'
movwf PORTB
call CEKEJ

movlw B'10100100'
movwf PORTB
call CEKEJ

movlw B'10100100'
movwf PORTB
call CEKEJ

movlw B'10111100'
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call MEZERA

movlw B'11000000' ;. tečka
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call CEKEJ

movlw B'11000000'
movwf PORTB
call MEZERA

movlw B'11000000'
movwf PORTB
call MEZERA

movlw B'01110000' ;c pismeno
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call CEKEJ

movlw B'11111000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'10011000'
movwf PORTB
call CEKEJ

movlw B'10011000'
movwf PORTB
call MEZERA

movlw B'10001000' ;z pismeno
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call CEKEJ

movlw B'11001000'
movwf PORTB
call CEKEJ

movlw B'11001000'
movwf PORTB
call CEKEJ

movlw B'11001000'
movwf PORTB
call CEKEJ

movlw B'10101000'
movwf PORTB
call CEKEJ

movlw B'10101000'
movwf PORTB
call CEKEJ

movlw B'10101000'
movwf PORTB
call CEKEJ

movlw B'10011000'
movwf PORTB
call CEKEJ

movlw B'10011000'
movwf PORTB
call CEKEJ

movlw B'10001000'
movwf PORTB
call MEZERA

;------------------------------------------------------------------------------------------
;******************************************************************************************
;
; Konec nápisu - nic víc nemusite přepisovat.
; Nyní program přeložte do HEX souboru, nahrajte do mikrokontroléru a vše je hotovo.
;
;------------------------------------------------------------------------------------------
;******************************************************************************************


; snímaní čidla otáček kola

SMYCKA movlw 255
movwf SMYC

SMYCKA1 call MEZERA
decfsz SMYC,1
goto SMYCKA1
goto SMYCKA

; vytvořena mezera mezi písmeny

MEZERA movlw 6
movwf OPAK2

SEST clrf PORTB
call CEKEJ
decfsz OPAK2,1
goto SEST
return

; zde je vytvorena casova prodleva

CEKEJ movlw 1 ;vnejsi smycka
movwf ZPOMAL3

NASTAV1 movlw 1 ;prostredni smycka
movwf ZPOMAL2

NASTAV2 movlw 70 ;vnitrni smycka 0 - 127 - Určení délky nápisu 200-dlouhý 1-krátký
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

KONEC nop

END
 

7 lidí ohodnotilo tento článek.

Komentáře

1 pepa pepa | 27. srpna 2007 v 0:30 | Reagovat

mas to kapku prasacky:) to by se nechalo zmensit na petinu

2 hawelson hawelson | E-mail | Web | 27. srpna 2007 v 13:22 | Reagovat

Tak jsem to trochu zmenšil, ono není nejednodušší měnit velikost písma u blogu, takže menší už to asi nepůjde.

3 Asman Asman | E-mail | 15. září 2007 v 7:13 | Reagovat

Já to mám taky trochu kratší:-).

Ale funguje, tak co. ;-)

4 adam adam | 12. listopadu 2007 v 1:46 | Reagovat

no hodil sem to do toho poznamkovyho bloku a dal fakt nevim. zkousel sem vsechno mozny v tom programku ale k nicemu sem se poradne nedostal. potreboval bych radu pro blbce. dik

5 adam adam | 12. listopadu 2007 v 1:55 | Reagovat

potrebuju hlavne popis pro uplny totalni debily. abych to pochopil. diky

6 ToNdA ToNdA | 16. listopadu 2007 v 22:15 | Reagovat

Hawelsone, mas super blog. Dneska sem dostavil displej na kolo. to jsi navrhnul sam? ses dobrej!! jak se prosimte jmenuje programek ve kterym se zapisuje ta funkce a prevadi do hex?

7 Hawelson Hawelson | E-mail | Web | 17. listopadu 2007 v 19:43 | Reagovat

Zapisuje se s picprog

Převádí se s MPASMWIN

8 kroupahans kroupahans | E-mail | Web | 22. prosince 2007 v 21:13 | Reagovat

Nechceš vyrobit ještě nějakej prográmek s obrázkem? Bylo by to super!

9 Hawelson Hawelson | E-mail | Web | 23. prosince 2007 v 12:59 | Reagovat

Na prográmku s obrázkem už pracuje jiný člověk ze http://www.svetelektro.com/ Dělá i prográmek, kde si namaluješ obrázek a on ti z toho sám udělá program.

10 Habo Habo | E-mail | Web | 25. prosince 2008 v 16:07 | Reagovat

Napadlo mi ci by nebolo lepsie ulozit napis do pamate kontrolera a programovo ho citat - teda neviem aku pamat ma ten ale ja mam PICAXE 40X1 (fakt dobry) a ten by mohol ulozit 127 stlpcov... alebo ulozit celu abecedu a potom naprogramovat iba text... viem 40X1 je hebedo tak by som ho moc nepouzival na toto ale nieco mensie...

11 Hawelson Hawelson | E-mail | Web | 25. prosince 2008 v 19:28 | Reagovat

Hmm nj, pokud bychom měli dost paměti, šlo by naprogramovat celou abecedu a pak jen vložit do programu odkazy na jednotlivé písmena.

12 ja ja | E-mail | 5. února 2009 v 21:11 | Reagovat

chcete zarabat jednoduchym prijimanim e-mailov registracia na tomto linku  .............. http://www.klikacka.sk/registracia/?odporucatel=marek1992m

13 Matho Matho | E-mail | 5. března 2009 v 6:56 | Reagovat

Caute nechapem tomu ako do toho programu dam svoje meno lebo ked sa pozriem na ten kod tak pri kazdom pismene su ine cisla napriklad pri H 1001001 to je len priklad a je ich tu cca 10 a pri W je ich okolo 20 co to znamena?

14 elektron elektron | 5. dubna 2009 v 13:15 | Reagovat

v tom programu máš chybu

15 elektron elektron | 5. dubna 2009 v 13:15 | Reagovat

ukazuje to mpasm

16 elektron elektron | 5. dubna 2009 v 13:16 | Reagovat

Error[125]   E:\PICPROG\DISP-B~1.ASM 2 : Illegal condition (EOF encountered before END or conditional end directive)

17 Hawelson Hawelson | E-mail | Web | 8. dubna 2009 v 16:45 | Reagovat

To elektron: Paks, to zkopíroval špatně, zkus to ještě jednou.

18 Maxforever Maxforever | E-mail | 2. června 2009 v 19:47 | Reagovat

Prosimte jak se zachazi stim programem asmhex nejde mi to nak nastartovat ten program mam v poznamkovem bloku koncovka asm ale nevim jak s toho udelat HEX dekuji za radu..

19 Soi Fong Soi Fong | Web | 26. září 2010 v 18:47 | Reagovat

Takej program O_O

20 czeki czeki | 23. listopadu 2010 v 20:23 | Reagovat

Hawelsone myslis ze to bude fungovat? moc byxch te chtel poprosit jestli bys to neskusil nahrat do teho procesoru a napsat jestli to fungovalo..=) mel by se ti tam vykreslit nijak nezdeformovany kosoctverec (nic jineho me na rychlo nenapadlo) =)

;P1 - LED

DISP:   MOV   R0,#8
        MOV   R1,#0
CYKL:   MOV   A,R1
        CALL  DAT
        CALL  CAS
        INC   R1
        DJNZ  R0,CYKL
        JMP   DISP
;*************************
DAT:    MOV   DPTR,#TAB
        MOVC  A,@A+DPTR
        CPL   A
        MOV   P1,A

        RET

TAB:    DB    18H
        DB    24H
        DB    42H
        DB    81H
        DB    81H
        DB    42H
        DB    24H
        DB    18H

CAS:      
          MOV   R2,#100
OPAKUJ1:  
          MOV   R3,#255
OPAKUJ2:  
          DJNZ  R3,OPAKUJ2
          DJNZ  R2,OPAKUJ1

        END

21 czeki czeki | 23. listopadu 2010 v 20:26 | Reagovat

a nevim jestli bude stacit 51,3ms na vykresleni jednoho sloupce..=( kdyztak bych to jeste predelal..=)

22 Hawelson Hawelson | E-mail | Web | 26. listopadu 2010 v 21:07 | Reagovat

[21]: Vyzkoušej uvidíš.

23 kokot kokot | 15. dubna 2011 v 13:58 | Reagovat

hahaha dobre je tu všechnoooooooooooooooooooooo :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-D  :-D  :-D  :-D  :-D xD

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.