Last active
January 17, 2016 20:18
-
-
Save ivanpepelko/73611c3a5b22534f9d1c to your computer and use it in GitHub Desktop.
R1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;******************************************************************************* | |
;* | |
;* PORTA | |
;* RA1 - Crveni led | |
;* RA2 - Zuti led | |
;* RA3 - Zeleni led | |
;* | |
;* PORTB | |
;* RB0-RB7 - 7-segmentni display | |
;* | |
;******************************************************************************* | |
; Postavljnje MCU i kofiguracijska rijec | |
PROCESSOR 16F84A | |
#include "p16f84a.inc" ; ova datoteka sadrzi sva imena registara specijalnih | |
; namjena i njihove adrese od PIC16F84A mikrokontrolera | |
ERRORLEVEL -224 | |
__CONFIG _CP_OFF & _XT_OSC & _PWRTE_ON & _WDT_OFF ; procesorske direktive | |
;varijable potrebne za petlje u proceduri za 1 sec kasnjenje | |
p1 EQU 0x0C | |
p2 EQU 0x0D | |
p3 EQU 0x0E | |
sedseg_c MACRO ; macro za slovo C na sedseg | |
;gasenje svih segmenata | |
MOVLW 0xff | |
MOVWF PORTB | |
;paljenje potrebnih segmenata | |
MOVLW b'11000110' | |
MOVWF PORTB | |
ENDM | |
sedseg_z MACRO | |
;gasenje svih segmenata | |
MOVLW 0xff | |
MOVWF PORTB | |
;paljenje potrebnih segmenata | |
MOVLW b'10100100' | |
MOVWF PORTB | |
ENDM | |
sedseg_zdot MACRO | |
;gasenje svih segmenata | |
MOVLW 0xff | |
MOVWF PORTB | |
;paljenje potrebnih segmenata | |
MOVLW b'00100100' | |
MOVWF PORTB | |
ENDM | |
ORG 0x0 ; pocetna adresa od koje mikrokontroler krece nakon dovodenja napajanja | |
;inicijalno postavljanje | |
BSF STATUS, RP0 ; odabir BANK1 | |
CLRF TRISA ; postavljanje svih PORTA bitova na output | |
CLRF TRISB ; postavljanje svih PORTB bitova na output | |
BCF STATUS, RP0 ; povratak na BANK0 | |
MOVLW 0xFF ; w=b'11111111' | |
MOVWF PORTA ; gasenje svih ledica na PORTA | |
MOVWF PORTB ; gasenje svih ledica na PORTB | |
MAIN | |
bcf PORTA, RA1 ; paljenje ledice na RA1 (crvena) | |
sedseg_c ; macro za slovo C na sedseg | |
call sekunda ; procedura koja traje 1 sek | |
bsf PORTA, RA1 ; gasenje ledice na RA1 (crvena) | |
bcf PORTA, RA2 ; paljenje ledice na RA2 (zuta) | |
sedseg_zdot ; macro za slovo Z. na sedseg | |
call sekunda ; procedura koja traje 1 sek | |
call sekunda ; procedura koja traje 1 sek, ukupno 2 sek | |
bsf PORTA, RA2 ; gasenje ledice na RA2 (zuta) | |
bcf PORTA, RA3 ; paljenje ledice na RA3 (zelena) | |
sedseg_z ; macro za slovo Z na sedseg | |
call sekunda ; procedura koja traje 1 sek | |
call sekunda ; procedura koja traje 1 sek, ukupno 2 sek | |
bsf PORTA, RA3 ; gasenje ledice na RA3 (zelena) | |
goto MAIN ; povratak na MAIN loop | |
;procedura za kasnjenje 1 sek | |
;1000000 instrukcijskih ciklusa=1s | |
;uracunati CALL i RETURN | |
sekunda | |
movlw 0x07 | |
movwf p1 ; p1=7 | |
movlw 0x2F | |
movwf p2 ; p2=47 | |
movlw 0x03 | |
movwf p3 ; p3=3 | |
l1 decfsz p1, 1 | |
goto l2 | |
decfsz p2, 1 | |
l2 goto l3 | |
decfsz p3, 1 | |
l3 goto l1 | |
nop | |
nop | |
nop | |
return | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;!!!BEER!!! | |
; 95 impulsa => 1 litra | |
;=============================================================================== | |
; Postavljnje MCU i kofiguracijska rijec | |
;=============================================================================== | |
PROCESSOR 16F84A | |
#include "p16f84a.inc" ; ova datoteka sadrzi sva imena registara specijalnih | |
; namjena i njihove adrese od PIC16F84A mikrokontrolera | |
ERRORLEVEL -224 | |
__CONFIG _CP_OFF & _XT_OSC & _PWRTE_ON & _WDT_OFF ; procesorske direktive | |
;=============================================================================== | |
IMPULSI EQU 0x0C | |
LITRE EQU 0x0D | |
RESET_IMPULSI MACRO | |
MOVLW D'95' ; broj impulsa koji oznacavaju litru | |
MOVWF IMPULSI | |
ENDM | |
RESET_LITRE MACRO | |
MOVLW D'10' ; broj litara | |
MOVWF LITRE | |
ENDM | |
ORG 0 | |
GOTO KONF | |
ORG 4 | |
GOTO INTER | |
KONF | |
; postavljanje RB4 na input | |
BSF STATUS, RP0 ; BANK1 | |
BSF TRISB, RB4 ; RB4 -> INPUT | |
BCF STATUS, RP0 ; BANK0 | |
RESET_IMPULSI | |
RESET_LITRE | |
; ukljucivanje interrupta | |
BSF INTCON, RBIE ; PORTB | |
BSF INTCON, GIE ; globalni | |
MAIN ; cekanje na interrupt | |
NOP | |
GOTO MAIN | |
INTER | |
BCF INTCON, RBIF ; resetiranje RBIF bita | |
; IMPULSI i LITRE se smanjuju 95x10 puta = 950 impulsa = 10 litara | |
DECFSZ IMPULSI, 1 | |
RETFIE | |
RESET_IMPULSI | |
DECFSZ LITRE, 1 | |
RETFIE | |
END |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;=============================================================================== | |
; TEMPERATURA | |
;=============================================================================== | |
; | |
; PORTA | |
; RB1- grijac | |
; | |
; PORTB | |
; RB0-RB7 - AD pretvornik s temperaturnim senzorom | |
; | |
;=============================================================================== | |
; Postavljnje MCU i kofiguracijska rijec | |
;=============================================================================== | |
PROCESSOR 16F84A | |
#include "p16f84a.inc" ; ova datoteka sadrzi sva imena registara specijalnih | |
; namjena i njihove adrese od PIC16F84A mikrokontrolera | |
ERRORLEVEL -224 | |
__CONFIG _CP_OFF & _XT_OSC & _PWRTE_ON & _WDT_OFF ; procesorske direktive | |
;=============================================================================== | |
ORG 0 | |
BSF STATUS, RP0 ; odabir BANK1 | |
BCF TRISA, RA1 ; postavljanje RA1 na output (grijac) | |
MOVLW 0XFF | |
MOVWF TRISB ; postavljanje svih PORTB bitova na input | |
BCF STATUS, RP0 ; povratak na BANK0 | |
BSF PORTA, RA1 ; grijac je iskljucen | |
MAIN | |
MOVLW D'21' ; 0b00010101, 0x15, 21 => trazena temperatura | |
SUBWF PORTB, W ; razlika izmedu trazene i trenutna | |
BTFSS STATUS, C ; ako je STATUS<C>=0 temperatura je manja od trazene | |
GOTO PALI ; pali se grijac | |
; ako je STATUS<C>=1, potrebno je provjeriti STATUS<Z> | |
BTFSS STATUS, Z ; ako je STATUS<Z>=0, temperatura je veca od trazene | |
GOTO GASI ; gasi se grijac | |
GOTO MAIN ; ako je temperatura jednaka trazenoj ceka se promjena | |
PALI | |
BCF PORTA, RA1 | |
GOTO MAIN | |
GASI | |
BSF PORTA, RA1 | |
GOTO MAIN | |
END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment