Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

PIC 16F88 3x3 maticova klavesnica & 8 RGB LED

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
INKOGNITTO



Založen: Dec 25, 2009
Příspěvky: 1

PříspěvekZaslal: čt leden 07 2010, 16:42    Předmět: PIC 16F88 3x3 maticova klavesnica & 8 RGB LED Citovat

Zdravim, rad by som sa pochvalil s mojim najovsim vytvorom. Dufam, ze s nazvu, schemy a programu bude vsetko jasne, tak tu nebudem davat nejaky popis Smile Este to fyzicky postavene nemam, ale dalsi tyzden pride programator, takze vtedy to uz bude. Nejake navrhy na zlepsenie, alebo zefektivnenie programu rad prijmem Smile

kód:

LIST P=16F88
#include <p16f88.inc>

A1      EQU   21h
A2      EQU   22h

R1ON   EQU   23h
G1ON   EQU   24h
B1ON   EQU   25h

R2ON   EQU 26h
G2ON   EQU 27h
B2ON   EQU 28h

R3ON   EQU 29h
G3ON   EQU 2Ah
B3ON   EQU 2Bh

R4ON   EQU 2Ch
G4ON   EQU 2Dh
B4ON   EQU 2Eh

R5ON   EQU 2Fh
G5ON   EQU 30h
B5ON   EQU 31h

R6ON   EQU 32h
G6ON   EQU 33h
B6ON   EQU 34h

R7ON   EQU 35h
G7ON   EQU 36h
B7ON   EQU 37h

RShockedN   EQU 38h
GShockedN   EQU 39h
BShockedN   EQU 3Ah

LEDSET   EQU   3Bh

#DEFINE   IN1      PORTA,0
#DEFINE   IN2      PORTA,5
#DEFINE   IN3      PORTA,7

#DEFINE   OUT1   PORTA,6
#DEFINE   OUT2   PORTB,6
#DEFINE   OUT3   PORTB,7

;OUT   1      2      3
;IN   
;1      R-UP   G-UP   B-UP
;2      R-DN   G-DN   B-DN
;3      PREW   NEXT   RESET


_INTOSC_OSC_NOCLKOUT         EQU     H'3FFC'

ORG   0x2007      ; adresa konfiguracie PIC16F88
   dw   _BODEN_OFF & _CPD_OFF & _CP_OFF & _PWRTE_OFF   & _WDT_OFF & _LVP_OFF & _INTOSC_OSC_NOCLKOUT & _DEBUG_OFF & _MCLR_OFF & _WRT_PROTECT_OFF & _INTRC_IO
   

ORG   0
GOTO   START

ORG   4
GOTO   START

START
   BCF      STATUS,RP0
   CLRF   STATUS
   BANKSEL   OSCCON
   BSF      OSCCON,IRCF2
   BSF      OSCCON,IRCF1
   BSF      OSCCON,IRCF0
   BSF      STATUS,RP0
   MOVLW    0x00 ; Configure all pins
   MOVWF    ANSEL ; as digital inputs
   MOVLW   B'00000000'
   MOVWF   OPTION_REG   
   MOVLW   B'00000000'
   MOVWF   TRISB
   MOVLW   B'10100001'
   MOVWF   TRISA
   BCF      STATUS,RP0
   CLRF   PORTB
   CLRF   PORTA

   MOVLW   .1
   MOVWF   R1ON
   MOVWF   B1ON
   MOVWF   G1ON

   MOVWF   R2ON
   MOVWF   B2ON
   MOVWF   G2ON

   MOVWF   R3ON
   MOVWF   B3ON
   MOVWF   G3ON

   MOVWF   R4ON
   MOVWF   B4ON
   MOVWF   G4ON

   MOVWF   R5ON
   MOVWF   B5ON
   MOVWF   G5ON

   MOVWF   R6ON
   MOVWF   B6ON
   MOVWF   G6ON

   MOVWF   R7ON
   MOVWF   B7ON
   MOVWF   G7ON

   MOVWF   RShockedN
   MOVWF   BShockedN
   MOVWF   GShockedN

   MOVWF   LEDSET

   GOTO   PROGRAM


PROGRAM
   ;klavesnica
   BCF      OUT2   
   BCF      OUT3
   BSF      OUT1
   
   BTFSC   IN1
   GOTO   RUP
   BTFSC   IN2
   GOTO   RDN
   BTFSC   IN3
   GOTO   PREW
   
   BCF      OUT1
   BSF      OUT2

   BTFSC   IN1
   GOTO   GUP
   BTFSC   IN2
   GOTO   GDN
   BTFSC   IN3
   GOTO   NEXT

   BCF      OUT2
   BSF      OUT3
   
   BTFSC   IN1
   GOTO   BUP
   BTFSC   IN2
   GOTO   BDN
   BTFSC   IN3
   GOTO   RESETT
   GOTO   JADRO
   
JADRO
   CLRF   PORTB
   BSF      PORTA,2
   BSF      PORTA,3
   BSF      PORTA,4
   BSF      PORTA,1

   CALL   LEDKY
   GOTO   PROGRAM


LEDKY
;LED1
   ;RED1
   BCF      PORTA,2
   BSF      PORTB,0
   MOVFW   R1ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,0
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN1
   BCF      PORTB,0
   BSF      PORTB,1
   MOVFW   G1ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,1
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE1
   BCF      PORTB,1
   BSF      PORTB,2
   MOVFW   B1ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,2
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   
;LED2
   ;RED
   BSF      PORTA,2
   BCF      PORTA,3
   BCF      PORTB,2
   BSF      PORTB,0
   MOVFW   R2ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,0
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN
   BCF      PORTB,0
   BSF      PORTB,1
   MOVFW   G2ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,1
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE
   BCF      PORTB,1
   BSF      PORTB,2
   MOVFW   B2ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,2
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   
;LED3
   ;RED
   BSF      PORTA,3
   BCF      PORTA,4
   BCF      PORTB,2
   BSF      PORTB,0
   MOVFW   R3ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,0
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN
   BCF      PORTB,0
   BSF      PORTB,1
   MOVFW   G3ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,1
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE
   BCF      PORTB,1
   BSF      PORTB,2
   MOVFW   B3ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,2
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ

;LED4
   ;RED
   BSF      PORTA,4
   BCF      PORTA,1
   BCF      PORTB,2
   BSF      PORTB,0
   MOVFW   R4ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,0
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN
   BCF      PORTB,0
   BSF      PORTB,1
   MOVFW   G4ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,1
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE
   BCF      PORTB,1
   BSF      PORTB,2
   MOVFW   B4ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,2
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ

;LED5
   ;RED1
   BSF      PORTA,1
   BCF      PORTA,2
   BSF      PORTB,3
   MOVFW   R5ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,3
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN1
   BCF      PORTB,3
   BSF      PORTB,4
   MOVFW   G5ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,4
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE1
   BCF      PORTB,4
   BSF      PORTB,5
   MOVFW   B5ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,5
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   
;LED6
   ;RED
   BSF      PORTA,2
   BCF      PORTA,3
   BCF      PORTB,5
   BSF      PORTB,3
   MOVFW   R6ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,3
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN
   BCF      PORTB,3
   BSF      PORTB,4
   MOVFW   G6ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,4
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE
   BCF      PORTB,4
   BSF      PORTB,5
   MOVFW   B6ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,5
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   
;LED7
   ;RED
   BSF      PORTA,3
   BCF      PORTA,4
   BCF      PORTB,5
   BSF      PORTB,3
   MOVFW   R7ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,3
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN
   BCF      PORTB,3
   BSF      PORTB,4
   MOVFW   G7ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,4
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE
   BCF      PORTB,4
   BSF      PORTB,5
   MOVFW   B7ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,5
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ

;LED8
   ;RED
   BSF      PORTA,4
   BCF      PORTA,1
   BCF      PORTB,2
   BSF      PORTB,0
   MOVFW   R4ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,0
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ   
   ;GREEN
   BCF      PORTB,0
   BSF      PORTB,1
   MOVFW   G4ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,1
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   ;BLUE
   BCF      PORTB,1
   BSF      PORTB,2
   MOVFW   B4ON
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ
   BCF      PORTB,2
   MOVLW   .255
   MOVWF   A1
   MOVWF   A2
   CALL   CAKAJ

RETURN


CAKAJ
   DECFSZ   A1
   GOTO   $-1
   DECFSZ   A2
   GOTO   $-1
   RETURN

;RED UP/DN
RUP
   MOVLW   .1
   CALL   REDINC
   BTFSC   STATUS,2
   CALL   REDDEC
   GOTO   JADRO

RDN
   MOVLW   .1
   CALL   REDDEC
   BTFSC   STATUS,2
   CALL   REDINC
   GOTO   JADRO

REDDEC
   BTFSC   LEDSET,0
   SUBWF   R1ON
   BTFSC   LEDSET,1
   SUBWF   R2ON
   BTFSC   LEDSET,2
   SUBWF   R3ON
   BTFSC   LEDSET,3
   SUBWF   R4ON
   BTFSC   LEDSET,4
   SUBWF   R5ON
   BTFSC   LEDSET,5
   SUBWF   R6ON
   BTFSC   LEDSET,6
   SUBWF   R7ON
   BTFSC   LEDSET,7
   SUBWF   RShockedN
RETURN

REDINC
   BTFSC   LEDSET,0
   ADDWF   R1ON
   BTFSC   LEDSET,1
   ADDWF   R2ON
   BTFSC   LEDSET,2
   ADDWF   R3ON
   BTFSC   LEDSET,3
   ADDWF   R4ON
   BTFSC   LEDSET,4
   ADDWF   R5ON
   BTFSC   LEDSET,5
   ADDWF   R6ON
   BTFSC   LEDSET,6
   ADDWF   R7ON
   BTFSC   LEDSET,7
   ADDWF   RShockedN
RETURN


;GREEN UP/DN
GUP
   MOVLW   .1
   CALL   GREENINC
   BTFSC   STATUS,2
   CALL   GREENDEC
   GOTO   JADRO

GDN
   MOVLW   .1
   CALL   GREENDEC
   BTFSC   STATUS,2
   CALL   GREENINC
   GOTO   JADRO

GREENDEC
   BTFSC   LEDSET,0
   SUBWF   G1ON
   BTFSC   LEDSET,1
   SUBWF   G2ON
   BTFSC   LEDSET,2
   SUBWF   G3ON
   BTFSC   LEDSET,3
   SUBWF   G4ON
   BTFSC   LEDSET,4
   SUBWF   G5ON
   BTFSC   LEDSET,5
   SUBWF   G6ON
   BTFSC   LEDSET,6
   SUBWF   G7ON
   BTFSC   LEDSET,7
   SUBWF   GShockedN
RETURN

GREENINC
   BTFSC   LEDSET,0
   ADDWF   G1ON
   BTFSC   LEDSET,1
   ADDWF   G2ON
   BTFSC   LEDSET,2
   ADDWF   G3ON
   BTFSC   LEDSET,3
   ADDWF   G4ON
   BTFSC   LEDSET,4
   ADDWF   G5ON
   BTFSC   LEDSET,5
   ADDWF   G6ON
   BTFSC   LEDSET,6
   ADDWF   G7ON
   BTFSC   LEDSET,7
   ADDWF   GShockedN
RETURN

;BLUE UP/DN
BUP
   MOVLW   .1
   CALL   BLUEINC
   BTFSC   STATUS,2
   CALL   BLUEDEC
   GOTO   JADRO

BDN
   MOVLW   .1
   CALL   BLUEDEC
   BTFSC   STATUS,2
   CALL   BLUEINC
   GOTO   JADRO

BLUEDEC
   BTFSC   LEDSET,0
   SUBWF   B1ON
   BTFSC   LEDSET,1
   SUBWF   B2ON
   BTFSC   LEDSET,2
   SUBWF   B3ON
   BTFSC   LEDSET,3
   SUBWF   B4ON
   BTFSC   LEDSET,4
   SUBWF   B5ON
   BTFSC   LEDSET,5
   SUBWF   B6ON
   BTFSC   LEDSET,6
   SUBWF   B7ON
   BTFSC   LEDSET,7
   SUBWF   BShockedN
RETURN

BLUEINC
   BTFSC   LEDSET,0
   ADDWF   B1ON
   BTFSC   LEDSET,1
   ADDWF   B2ON
   BTFSC   LEDSET,2
   ADDWF   B3ON
   BTFSC   LEDSET,3
   ADDWF   B4ON
   BTFSC   LEDSET,4
   ADDWF   B5ON
   BTFSC   LEDSET,5
   ADDWF   B6ON
   BTFSC   LEDSET,6
   ADDWF   B7ON
   BTFSC   LEDSET,7
   ADDWF   BShockedN
RETURN

NEXT
   BTFSC   LEDSET,0
   MOVLW   .2
   BTFSC   LEDSET,1
   MOVLW   .4
   BTFSC   LEDSET,2
   MOVLW   .8
   BTFSC   LEDSET,3
   MOVLW   .16
   BTFSC   LEDSET,4
   MOVLW   .32
   BTFSC   LEDSET,5
   MOVLW   .64
   BTFSC   LEDSET,6
   MOVLW   .128
   BTFSC   LEDSET,7
   MOVLW   .1
   MOVWF   LEDSET
   GOTO   JADRO

PREW
   BTFSC   LEDSET,0
   MOVLW   .128
   BTFSC   LEDSET,1
   MOVLW   .1
   BTFSC   LEDSET,2
   MOVLW   .2
   BTFSC   LEDSET,3
   MOVLW   .4
   BTFSC   LEDSET,4
   MOVLW   .8
   BTFSC   LEDSET,5
   MOVLW   .16
   BTFSC   LEDSET,6
   MOVLW   .32
   BTFSC   LEDSET,7
   MOVLW   .64
   MOVWF   LEDSET
   GOTO   JADRO

RESETT
   MOVLW   .1
   MOVWF   R1ON
   MOVWF   B1ON
   MOVWF   G1ON

   MOVWF   R2ON
   MOVWF   B2ON
   MOVWF   G2ON

   MOVWF   R3ON
   MOVWF   B3ON
   MOVWF   G3ON

   MOVWF   R4ON
   MOVWF   B4ON
   MOVWF   G4ON

   MOVWF   R5ON
   MOVWF   B5ON
   MOVWF   G5ON

   MOVWF   R6ON
   MOVWF   B6ON
   MOVWF   G6ON

   MOVWF   R7ON
   MOVWF   B7ON
   MOVWF   G7ON

   MOVWF   RShockedN
   MOVWF   BShockedN
   MOVWF   GShockedN

   MOVLW   B'00000001'   ;LED0
   MOVWF   LEDSET
   GOTO   JADRO

END



schema.jpg
 Komentář:

Stáhnout
 Soubor:  schema.jpg
 Velikost:  288.7 kB
 Staženo:  145 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Bernard



Založen: May 27, 2005
Příspěvky: 3647

PříspěvekZaslal: čt leden 07 2010, 22:25    Předmět: Citovat

Promiň, INKOGNITTO, ten off-topic, já se v PICech nevyznám, ale v tom zdrojáku vidím smajly "Shocked", a to mě šokuje. Snad ty meta-tagy Code tu slouží na to, aby se zobrazil text jak byl napsán, ale postupnosti znaků "8" a "O" to zkrátka neodolá.
kód:
Shocked

Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
daymoon



Založen: Dec 26, 2009
Příspěvky: 12
Bydliště: Brno

PříspěvekZaslal: pá leden 08 2010, 6:56    Předmět: Citovat

Příliš mnoho opakujícího se kódu. Je to dlouhý jak tejden a furt tam vidím ty samý kontrukce jednu za druhou.

Nechtěl bych takový program upravovat ani za svět.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.28 sekund