TWO EXTERNAL INPUTS AND FOUR OUTPUTS |
;PROGRAM OF TWO EXTERNAL INPUTS AND 4 OUTPUTS ;PORTD PIN NUMBER 1 AND 2 IS USED FOR EXTERNAL INPUTS ;PORTB PINS 0 TO 4 ARE USED FOR 4 BITS OUTPUT ;TIME DELAY=4SECOND LIST P=18F458, F=INHX32, MM=OFF, ST=OFF, N=0, R=HEX #INCLUDE <P18F458.INC> CONFIG OSC = HS, OSCS = OFF CONFIG WDT = OFF CONFIG BORV = 45, PWRT = ON, BOR = ON CONFIG DEBUG = OFF, LVP = OFF, STVR = OFF R2 EQU 20H R3 EQU 21H R4 EQU 22H ORG 0H CLRF TRISB SETF TRISD HERE BTFSS PORTD,1 ;IF BIT 1 OF PORTD IS HIGH SO BTFSS SKIPS THE NEXT INSTRUCTION GOTO OVER BTFSC PORTD,2 ;IF BIT 2 OF PORTD IS LOW SO BTFSC SKIPS THE NEXT INSTRUCTION GOTO OVER MOVLW B'00001010' MOVWF PORTB CALL DELAY MOVLW B'00000101' MOVWF PORTB CALL DELAY MOVLW B'00000011' MOVWF PORTB CALL DELAY MOVLW B'00001100' MOVWF PORTB CALL DELAY GOTO HERE OVER MOVLW B'00000000' MOVWF PORTB GOTO HERE RETURN ORG 300H ;START ADDRESS FROM 300H DELAY ;STARTING OF LOOP MOVLW D'200' MOVWF R2 L1 MOVLW D'200' MOVWF R3 L2 MOVLW D'50' MOVWF R4 L3 NOP NOP DECF R4,F BNZ L3 DECF R3,F BNZ L2 DECF R2,F BNZ L1 RETURN END
|
BLINKING LEDS WITH PIC18F452(MCU) |
;TOGGLING PORTD`WITH 50SEC DELAY FOR THE PIC18F452
;OSCILLATOR FREQUENCY=4MHZ ;TIME DELAY=250*200*200*5*1MICROSECOND=50SECONDS PROCESSOR PIC18F452 #include "p18f452.inc" CONFIG OSC = HS, OSCS = OFF CONFIG WDT = OFF CONFIG BORV = 45, PWRT = ON, BOR = ON CONFIG DEBUG = OFF, LVP = OFF, STVR = OFF R1 EQU 0x25 R2 EQU 0x26 R3 EQU 0x27 ORG 0H CLRF TRISB BACK MOVLW 0x55 MOVWF PORTB CALL DELAY COMF PORTB,F CALL DELAY GOTO BACK ORG 300H DELAY MOVLW D'250' MOVWF R3 LOP_3 MOVLW D'200' MOVWF R2 LOP_2 MOVLW D'200' MOVWF R1 LOP_1 NOP NOP DECF R1,F BNZ LOP_1 DECF R2,F BNZ LOP_2 DECF R3,F BNZ LOP_3 RETURN END
|
LCD WITH PIC18F452 MICROCONTROLLER(MAKER:SEN) |
;LCD INTERFACING WITH PIC18F452(8 BIT INTERFACE)
PROCESSOR PIC18F452 #include "p18f452.inc" CONFIG OSC = HS, OSCS = OFF CONFIG WDT = OFF CONFIG BORV = 45, PWRT = ON, BOR = ON CONFIG DEBUG = OFF, LVP = OFF, STVR = OFF ORG 0H MYREG_1 EQU 7H MYREG_2 EQU 8H CLRF TRISD CLRF TRISB HERE MOVLW 38H ;2 LINES AND 5*7 MATRIX CALL COMNWRT CALL DELAY MOVLW 0EH ;DISPLAY ON CURSOR BLINKING CALL COMNWRT CALL DELAY MOVLW 06H ;SHIFT CURSOR TO WRITE CALL COMNWRT CALL DELAY MOVLW 80H ;FORCE CURSOR TO BEGINNING OF 1ST LINE CALL COMNWRT CALL DELAY MOVLW 01H ;CLEAR DISPLAY SCREEN CALL COMNWRT CALL DELAY MOVLW A'S' CALL DATAWRT CALL DELAY MOVLW A'K' CALL DATAWRT CALL DELAY MOVLW A'Y' CALL DATAWRT CALL DELAY MOVLW A'O' CALL DATAWRT CALL DELAY MOVLW A'N' CALL DATAWRT CALL DELAY MOVLW A'L' CALL DATAWRT CALL DELAY MOVLW A'I' CALL DATAWRT CALL DELAY MOVLW A'N' CALL DATAWRT CALL DELAY MOVLW A'E' CALL DATAWRT CALL DELAY GOTO HERE RETURN COMNWRT MOVWF PORTD BCF PORTB,0 ;RS=0 TO SELECT COMMAND REGISTER BCF PORTB,1 ;R/W=0 FOR WRITE BSF PORTB,2 ;EN=1 CALL DELAY BCF PORTB,2 ;EN=0 RETURN DATAWRT MOVWF PORTD BSF PORTB,0 ;RS=1 TO SELECT DATA REGISTER BCF PORTB,1 ;R/W=0 FOR WRITE BSF PORTB,2 ;EN=1 CALL DELAY BCF PORTB,2 ;EN=0 RETURN DELAY MOVLW 90H MOVWF MYREG_2 CLICK_1 MOVLW 95H MOVWF MYREG_1 CLICK DECF MYREG_1,F NOP NOP NOP NOP BNZ CLICK DECF MYREG_2,F BNZ CLICK_1 RETURN END |
SEVEN SEGMENT DISPLAY WITH PIC18F452 MCU(MAKER:SEN) |
PROCESSOR PIC18F452
#include "p18f452.inc" CONFIG OSC = HS, OSCS = OFF CONFIG WDT = OFF CONFIG BORV = 45, PWRT = ON, BOR = ON CONFIG DEBUG = OFF, LVP = OFF, STVR = OFF ORG 0H R1 EQU 21H R2 EQU 22H MYREG EQU 23H CLRF TRISD BACK MOVLW B'00111111' MOVWF PORTD CALL DELAY MOVLW B'00000110' MOVWF PORTD CALL DELAY MOVLW B'01011011' MOVWF PORTD CALL DELAY MOVLW B'01001111' MOVWF PORTD CALL DELAY MOVLW B'01100110' MOVWF PORTD CALL DELAY MOVLW B'01101101' MOVWF PORTD CALL DELAY MOVLW B'01111101' MOVWF PORTD CALL DELAY MOVLW B'00000111' MOVWF PORTD CALL DELAY MOVLW B'01111111' MOVWF PORTD CALL DELAY MOVLW B'01101111' MOVWF PORTD CALL DELAY GOTO BACK RETURN ORG 300H DELAY MOVLW D'200' MOVWF R2 LOP_2 MOVLW D'200' MOVWF R1 LOP_1 NOP NOP DECF R1,F BNZ LOP_1 DECF R2,F BNZ LOP_2 RETURN END |