Code Monkey home page Code Monkey logo

simonsaysadded-code's Introduction

simonsaysadded-code

;****************************************************************************** ; This file is a basic template for creating relocatable assembly code for * ; a PIC18F1330. Copy this file into your project directory and modify or * ; add to it as needed. * ; * ; The PIC18FXXXX architecture allows two interrupt configurations. This * ; template code is written for priority interrupt levels and the IPEN bit * ; in the RCON register must be set to enable priority levels. If IPEN is * ; left in its default zero state, only the interrupt vector at 0x008 will * ; be used and the WREG_TEMP, BSR_TEMP and STATUS_TEMP variables will not * ; be needed. * ; * ; Refer to the MPASM User's Guide for additional information on the * ; features of the assembler and linker. * ; * ;****************************************************************************** ; * ; Filename: * ; Date: * ; File Version: * ; * ; Author: * ; Company: * ; * ;****************************************************************************** ; * ; Files required: P18F1330.INC * ; * ;******************************************************************************

LIST P=18F1330, F=INHX32 ;directive to define processor and file format
#include <P18F1330.INC>	 ;processor specific variable definitions

;****************************************************************************** ;Configuration bits ;Microchip has changed the format for defining the configuration bits, please ;see the .inc file for futher details on notation. Below are a few examples.

; Oscillator Selection: ; CONFIG OSC = LP ;LP CONFIG OSC = INTIO1 CONFIG WDT = OFF

;****************************************************************************** ;Variable definitions ; These variables are only needed if low priority interrupts are used. ; More variables may be needed to store other special function registers used ; in the interrupt routines.

	UDATA

WREG_TEMP RES 1 ;variable in RAM for context saving STATUS_TEMP RES 1 ;variable in RAM for context saving BSR_TEMP RES 1 ;variable in RAM for context saving

	UDATA_ACS

EXAMPLE RES 1 ;example of a variable in access RAM

;****************************************************************************** ;EEPROM data ; Data to be programmed into the Data EEPROM is defined here

DATA_EEPROM CODE 0xf00000

	DE	"Test Data",0,1,2,3,4,5

;****************************************************************************** ;Reset vector ; This code will start executing when a reset occurs.

RESET_VECTOR CODE 0x0000

	goto	Main		;go to start of main code

;****************************************************************************** ;High priority interrupt vector ; This code will start executing when a high priority interrupt occurs or ; when any interrupt occurs if interrupt priorities are not enabled.

HI_INT_VECTOR CODE 0x0008

	bra	HighInt		;go to high priority interrupt routine

;****************************************************************************** ;Low priority interrupt vector ; This code will start executing when a low priority interrupt occurs. ; This code can be removed if low priority interrupts are not used.

LOW_INT_VECTOR CODE 0x0018

	bra	LowInt		;go to low priority interrupt routine

;****************************************************************************** ;High priority interrupt routine ; The high priority interrupt code is placed here.

	CODE

HighInt:

; *** high priority interrupt code goes here ***

	retfie	FAST

;****************************************************************************** ;Low priority interrupt routine ; The low priority interrupt code is placed here. ; This code can be removed if low priority interrupts are not used.

LowInt: movff STATUS,STATUS_TEMP ;save STATUS register movff WREG,WREG_TEMP ;save working register movff BSR,BSR_TEMP ;save BSR register

; *** low priority interrupt code goes here ***

	movff	BSR_TEMP,BSR		;restore BSR register
	movff	WREG_TEMP,WREG		;restore working register
	movff	STATUS_TEMP,STATUS	;restore STATUS register
	retfie

;****************************************************************************** ;Start of main program ; The main program code is placed here.

Main:

BSF OSCCON,  6  ;Oscillator set to 8 MHz
BSF OSCCON,  5
BSF OSCCON,  4

BSF TRISB, 4    ;Init PORTB bit 0 as an output port
BCF TRISB, 5
BCF TRISB, 0
BCF TRISB, 1
BCF TRISB, 2

BCF T0CON, 5    ;Init TMR0 as a timer (not an event counter)
BCF T0CON, 6    ;Init TMR0 as a 16-bit counter (not 8 bit)
BCF T0CON, 3    ;Init TMR0 PreScaler ON

BCF T0CON, 7    ;Init Timer to be OFF

BCF PORTB, 5    ;Init PORTB Bit 0 Low
BCF PORTB, 0
BCF PORTB, 1
BCF PORTB, 2

NOTPRESSED: BTFSS PORTB, 4 BRA NOTPRESSED BRA PRESSED

PRESSED:

;------------------------------------------------------------------------------ LEVEL1:

; 1ST LED

BSF T0CON, 2    ;Prescaler 1:128
BSF T0CON, 1    ;Prescaler 1:128
BSF T0CON, 0    ;Prescaler 1:128

MOVLW   0x48             ;Starting Count = 0000
MOVWF   TMR0H
MOVLW   0xE4
MOVWF   TMR0L

BSF     T0CON, 7        ;Turn Timer 0N
BSF     PORTB, 0

WaitMoreLEVEL1LED1: BTFSS INTCON, TMR0IF ;Check for Count = FFFF BRA WaitMoreLEVEL1LED1

BCF     T0CON, 7        ;Turn Timer OFF
BCF     INTCON, TMR0IF  ;Reset TIMER interrupt low
BCF     PORTB, 0


; 2ND LED

BSF T0CON, 2    ;Prescaler 1:128
BSF T0CON, 1    ;Prescaler 1:128
BSF T0CON, 0    ;Prescaler 1:128

MOVLW   0x48             ;Starting Count = 0000
MOVWF   TMR0H
MOVLW   0xE4
MOVWF   TMR0L

BSF     T0CON, 7        ;Turn Timer 0N
BSF     PORTB, 1

WaitLEVEL1LED2:

BTFSS   INTCON, TMR0IF  ;Check for Count = FFFF
BRA     WaitLEVEL1LED2

BCF     T0CON, 7        ;Turn Timer OFF
BCF     INTCON, TMR0IF  ;Reset TIMER interrupt low
BCF     PORTB, 1

; 3RD LED

BSF T0CON, 2    ;Prescaler 1:128
BSF T0CON, 1    ;Prescaler 1:128
BSF T0CON, 0    ;Prescaler 1:128

MOVLW   0x48             ;Starting Count = 0000
MOVWF   TMR0H
MOVLW   0xE4
MOVWF   TMR0L

BSF     T0CON, 7        ;Turn Timer 0N
BSF     PORTB, 5

WaitMoreMORELEVEL1LED3: BTFSS INTCON, TMR0IF ;Check for Count = FFFF BRA WaitMoreMORELEVEL1LED3

BCF     T0CON, 7        ;Turn Timer OFF
BCF     INTCON, TMR0IF  ;Reset TIMER interrupt low
BCF     PORTB, 5

;4TH LED

BSF T0CON, 2    ;Prescaler 1:128
BSF T0CON, 1    ;Prescaler 1:128
BSF T0CON, 0    ;Prescaler 1:128

MOVLW   0x48             ;Starting Count = 0000
MOVWF   TMR0H
MOVLW   0xE4
MOVWF   TMR0L

BSF     T0CON, 7        ;Turn Timer 0N
BSF     PORTB, 2

WaitMoreMOREMORELEVEL1LED4: BTFSS INTCON, TMR0IF ;Check for Count = FFFF BRA WaitMoreMOREMORELEVEL1LED4

BCF     T0CON, 7        ;Turn Timer OFF
BCF     INTCON, TMR0IF  ;Reset TIMER interrupt low
BCF     PORTB, 2

;----------------------------------------------------------------------------- ;****************************************************************************** ;End of program

simonsaysadded-code's People

Contributors

arriolks01 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.