0% found this document useful (0 votes)
193 views

Programs & References: Chapter - 3

The document provides programs and references for various microcontroller applications including LED blinking, seven segment display, analog to digital conversion, pulse width modulation, stepper motor control, and LCD display. It includes the code listings and explanations for each program.

Uploaded by

Mohit Mahajan
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
193 views

Programs & References: Chapter - 3

The document provides programs and references for various microcontroller applications including LED blinking, seven segment display, analog to digital conversion, pulse width modulation, stepper motor control, and LCD display. It includes the code listings and explanations for each program.

Uploaded by

Mohit Mahajan
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 15

CHAPTER -3

PROGRAMS & REFERENCES

Page | 33
PROGRAMS:- CALL DELAY

PROGRAM FOR LED BLINKING:- RLF PORTB,1

LISTP=PIC16F877A
CALL DELAY

# INCLUDE<P16F877A.INC>
DECFSZ COUNT,1

GOTO $-3
_CONFIG_CP_OFF&WDT_OFF&_PWRTE_
ON&_XT_OSC GOTO $-8

CBLOCK 0x20 DELAY:

DEL1 MOVLW 0XFF

DEL2 MOVWF DEL1

COUNT MOVLW 0XFF

ENDC MOVWF DEL2

ORG 0x00 DECFSZ DEL2,1

GOTO START GOTO $-1

START: DECFSZ DEL1,1

CLRF PORTB GOTO $-5

BANKSEL TRISB RETURN

CLRF TRISB END

BANKSEL PORTB

MOVLW 0X04

MOVWF COUNT PROGRAM FOR SEVEN SEGMENT


DISPLAY
BSF PORTB,0
LIST P = PIC16F877A

Page | 34
#INCLUDE<P16F877A.INC> MOVWF PORTC

ORG 0x00 BCF PORTB,2

GOTO START BSF PORTB,2

START: MOVLW 0XF3

CLRF PORTB MOVWF PORTC

BANKSEL TRISB BCF PORTB,3

CLRF TRISB BSF PORTB,3

CLRF TRISC GOTO LOOP

BANKSEL PORTC END

CLRF PORTC

MOVLW 0X0F PROGRAM FOR ANALOG TO DIGITAL


CONVERTER
MOVWF PORTB
LIST P = PIC16F877A
LOOP
#INCLUDE<P16F877A.INC>
MOVLW 0X49
ORG 0x00
MOVWF PORTC
GOTO START
BCF PORTB,0
START:
BSF PORTB,0
CLRF PORTB
MOVLW 0XF3
CLRF PORTA
MOVWF PORTC
CLRF PORTD
BCF PORTB,1
CLRF ADCON0
BSF PORTB,1
CLRF ADRESH
MOVLW 0X49
BANKSEL TRISA
Page | 35
CLRF TRISB MOVWF PORTD

CLRF TRISD BCF PIR1,6

MOVLW 0XFF GOTO CONVERT

MOVWF TRISA END

MOVLW 0XFE

MOVWF ADCON1

CLRF ADRESL PROGRAM FOR PWM

BANKSEL PORTA LIST P=PIC16F877A

BSF ADCON0,0 #INCLUDE<P16F877A.INC>

NOP ORG 0x00

NOP GOTO START

GOTO CONVERT START:

CLRF PORTC

CONVERT CLRF T2CON

BSF ADCON0,2 BANKSEL TRISC

BTFSC ADCON0,2 CLRF TRISC

GOTO $-1 BANKSEL PR2

MOVF ADRESH,W MOVLW .40

MOVWF PORTB MOVWF PR2

BANKSEL ADRESL BANKSEL CCPR1L

MOVF ADRESL,W MOVLW .13

BANKSEL PORTD MOVWF CCPR1L

Page | 36
MOVLW 0X0C CLRF PORTD

MOVWF CCP1CON BANKSEL TRISD

BSF T2CON,TMR2ON CLRF TRISD

GOTO $ MOVLW 0XFF

END MOVWF TRISC

CALL INT

GOTO SCAN

PROGRAM USING RETLW INT

LIST P = PIC16F877A BANKSEL PORTC

#INCLUDE<P16F877A.INC> MOVLW 0XFD

MOVWF MOTOR1

CBLOCK 0x20 MOVLW 0XFB

MOTOR1 MOVWF MOTOR2

MOTOR2 MOVLW 0XF9

MOTOR3 MOVWF MOTOR3

MOTOR4 MOVLW 0XF7

MOTOR5 MOVWF MOTOR4

ENDC MOVLW 0XFA

ORG 0x00 MOVWF MOTOR5

GOTO START RETURN

START: SCAN

CLRF PORTC MOVF PORTC,W

Page | 37
XORWF MOTOR1,0 CALL TABLE

BTFSSSTATUS,2 MOVWF PORTD

GOTO M2 GOTO SCAN

MOVLW 0X00 M4

CALL TABLE MOVF PORTC,W

MOVWF PORTD XORWF MOTOR4,0

GOTO SCAN BTFSSSTATUS,2

M2 GOTO M5

MOVF PORTC,W MOVLW 0X03

XORWF MOTOR2,0 CALL TABLE

BTFSSSTATUS,2 MOVWF PORTD

GOTO M3 GOTO SCAN

MOVLW 0X01 M5

CALL TABLE MOVF PORTC,W

MOVWF PORTD XORWF MOTOR5,0

GOTO SCAN BTFSSSTATUS,2

M3 GOTO SCAN

MOVF PORTC,W MOVLW 0X04

XORWF MOTOR3,0 CALL TABLE

BTFSSSTATUS,2 MOVWF PORTD

GOTO M4 GOTO SCAN

MOVLW 0X02

Page | 38
TABLE CLRF TRISB

ADDWF PCL,F BSF TRISB,0

RETLW 0X89 BCF TRISB,1

RETLW 0X85 BANKSEL TRISD

RETLW 0X8A CLRF TRISD

RETLW 0X86 BANKSEL PORTD

RETLW 0X00 CLRF PORTD

END BANKSEL PORTB

BTFSC PORTB,0

CALL CLOCKWISE

PROGRAM FOR STEPPER MOTOR CALL ANTICLOCK

LIST P = PIC16F877A CLOCKWISE:

#INCLUDE<P16F877A.INC> MOVLW 0x10

CBLOCK 0x20 MOVWF PORTD

DEL1 CALL DELAY

DEL2 MOVLW 0X20

ENDC MOVWF PORTD

ORG 0x00 CALL DELAY

GOTO START MOVLW 0X40

START: MOVWF PORTD

CLRF PORTB CALL DELAY

BANKSEL TRISB MOVLW 0X80

Page | 39
MOVWF PORTD DECFSZ DEL2,1

CALL DELAY GOTO $-1

GOTO START DECFSZ DEL1,1

ANTICLOCK: GOTO $-5

MOVLW 0x80 RETURN

MOVWF PORTD END

CALL DELAY

MOVLW 0X40 PROGRAM FOR LCD DISPLAY

MOVWF PORTD

CALL DELAY LIST P=PIC16F877

MOVLW 0X20 INCLUDE "P16F877.INC"

MOVWF PORTD CBLOCK 0X20

CALL DELAY TEMP

MOVLW 0X10 COUNT

MOVWF PORTD DEL1

CALL DELAY DEL2

GOTO START

DELAY: ENDC

MOVLW 0X45 ORG 0X2100

MOVWF DEL1 CH_TBL DE "ESTC WELCOMES U "

MOVLW 0X45 ORG 0X00

MOVWF DEL2 GOTO START

Page | 40
START

BANKSEL TRISA ;IN DISPLAY


BANK1
BANKSEL TEMP
CLRF TRISA ; CLEAR
MOVLW 0X28
TRISA, ALL PINS ARE OUTPUT PINS
;FUNCTION SET SETTIN (DL-0 4BIT
CLRF TRISD ; CLEAR DATA;N-1 2LINES,
TRISD, ALL PINS ARE OUTPUT PINS
;F=0
BANKSEL PORTA ;INBANK 5X7 MATRIX
0
MOVWF TEMP
CLRF PORTA ;
CALL WRITE
CLEAR PORTA LATCHES

MOVLW 0X0E ; For


CLRF PORTD ;
DISPLAY ON ,CURSOR NOT BLINKING
CLEAR PORT D LATCHES

MOVWF TEMP
BANKSEL ADCON1

CALL WRITE
MOVLW B'00001110'

MOVLW 0X01 ;FOR


MOVWF ADCON1 ; A0 IS
CLEAR DISPLAY SCREEN
ANALOG INPUT A1-A5 DIGITAL PINS

MOVWF TEMP
BANKSEL PORTA ;INBANK
0 CALL WRITE

MOVLW 0X06
;INCREMENT CURSER ,SHIFT IT TO
BANKSEL
RIGHT
EEADR

MOVWF TEMP
MOVLW 0X00

CALL WRITE
MOVWF
EEADR

Page | 41
MOVLW 0X80 ;FORCE CALL DELAY
CURSER TO THE BEGINNING OF THE
BANKSEL EEADR
FIRST LINE
INCF EEADR,1
MOVWF TEMP
GOTO READ
CALL WRITE
WRITE
BANKSEL PORTA
BANKSEL PORTA
BSF PORTA,3
SWAPF TEMP,0
READ
MOVWF PORTD
BANKSEL
CALL ENABLE
EECON1

MOVF TEMP,W
BCF
EECON1,EEPGD MOVWF PORTD

BSF CALL ENABLE


EECON1,RD
CALL DELAY
BANKSEL
EEDATA RETURN

MOVF ENABLE

EEDATA,W
BANKSEL PORTA

BANKSEL
BSF PORTA,1
TEMP
NOP
MOVWF
TEMP NOP

BANKSEL NOP
PORTA
NOP
CALL
NOP
WRITE

Page | 42
NOP ENDC

NOP ORG 0X00

BCF PORTA,1 GOTO START

CALL DELAY START

RETURN CLRF PORTA

DELAY CLRF PORTB

MOVLW 0XFF BANKSEL TRISB

MOVWF DEL1 CLRF TRISB

MOVLW 0XFF CLRF TRISA

MOVWF DEL2 BSF TRISA,4

DECFSZ DEL2,F BANKSEL PORTB

GOTO $-1 CLRF T1CON

DECFSZ DEL1,F CLRF TMR1H

GOTO $-5 CLRF TMR1L

RETURN ; MOVLW 0X00

END ; MOVWF T1CON

GLOW

LED BLINKING PROGRAM WITH BCF PORTA,4


VARIABLE TIMING
MOVLW 0X08
LIST P=PIC16F877
MOVWF PORTB
#INCLUDE<P16F877.INC>
CALL TIMER
CBLOCK 0X20
BTFSS PORTA,4
COUNT1
Page | 43
CALL SCALE ; MOVLW 0XFE

MOVLW 0X01 ; MOVWF TMR1H

MOVWF PORTB ; MOVLW 0XFA

CALL TIMER ; MOVWF TMR1L

BTFSS PORTA,4 BSF T1CON,TMR1ON

CALL SCALE BTFSS PIR1,0

MOVLW 0X04 GOTO $-1

MOVWF PORTB BCF T1CON,TMR1ON

CALL TIMER BCF PIR1,0

BTFSS PORTA,4 DECFSZ COUNT1,1

CALL SCALE GOTO $-8

MOVLW 0X02 RETURN

MOVWF PORTB SCALE

CALL TIMER SWAPF T1CON,F

BTFSS PORTA,4 INCF T1CON,1

CALL SCALE SWAPF T1CON,F

GOTO GLOW BCF PORTA,4

TIMER RETURN

MOVLW .31 END

MOVWF COUNT1 PROGRAM FOR FINDING AVERAGE

CLRF TMR1H LIST P = PIC16F877

CLRF TMR1L #INCLUDE<P16F877.INC>

Page | 44
CBLOCK 0X20 MOVLW .40

COUNT MOVWF INDF

SUM INCF FSR,1

NUMBER MOVLW .73

ENDC MOVWF INDF

ORG 0X00 INCF FSR,1

GOTO START MOVLW .68

START MOVWF INDF

BANKSEL TRISB MOVLW 0X23

CLRF TRISB MOVWF FSR

BANKSEL PORTB MOVLW 0X04

MOVLW 0X00 MOVWF COUNT

MOVWF STATUS MOVWF NUMBER

CLRF PORTB INCF NUMBER,1

MOVLW 0X23 MOVF INDF,W

MOVWF FSR MOVWF SUM

MOVLW .52 INCF FSR,1

MOVWF INDF MOVF INDF,W

INCF FSR,1 ADDWF SUM,F

MOVLW .12 DECFSZ COUNT,1

MOVWF INDF GOTO $-4

INCF FSR,1 INCF COUNT,1

Page | 45
AVG ENDC

MOVLW 0X00 ORG 0X00

MOVWF COUNT GOTO START

MOVF NUMBER,W START

SUBWF SUM,1 BANKSEL TRISB

INCF COUNT,1 CLRF TRISB

SUBWF SUM,W BANKSEL PORTB

BTFSC STATUS,0 MOVLW 0X00

GOTO $-5 MOVWF STATUS

MOVF COUNT,W CLRF PORTB

MOVWF PORTB

NOP MOVLW 0X22

GOTO $-1 MOVWF FSR

END MOVLW .67

MOVWF INDF

INCF FSR,1

PROGRAM FOR FINDING LARGEST MOVLW .27


NUMBER
MOVWF INDF
LIST P = PIC16F877
INCF FSR,1
#INCLUDE<P16F877.INC>
MOVLW .55
CBLOCK 0X20
MOVWF INDF
MAX
INCF FSR,1
COUNT
Page | 46
MOVLW .88 CHANGE

MOVWF INDF MOVF INDF,W

INCF FSR,1 MOVWF MAX

MOVLW .87 RETURN

MOVWF INDF END

MOVLW 0X22

MOVWF FSR

MOVF INDF,W

MOVWF MAX

MOVLW 0X04

MOVWF COUNT

INCF FSR,1

MOVF INDF,W

SUBWF MAX,W

BTFSSSTATUS,0

CALL CHANGE

DECFSZ COUNT,1

GOTO $-6

MOVF MAX,W

MOVWF PORTB

NOP

GOTO $-1

Page | 47

You might also like