Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Project: Interfacing PICs ; Source File Name: VINTEST.ASM ; Devised by: MPB ; Date: 19-12-05 ; Status: Final version ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Project: Interfacing PICs ; Source File Name: VINTEST.ASM ; Devised by: MPB ; Date: 19-12-05 ; Status: Final version ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Demonstrates simple analogue input ; using an external reference voltage of 2.56V ; The 8-bit result is converted to BCD for display ; as a voltage using the standard LCD routines. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PROCESSOR 16F877A Clock = XT 4MHz, standard fuse settings __CONFIG 0x3731 ; LABEL EQUATES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #INCLUDE "P16F877A.INC" ; standard labels ; GPR 70 - 75 allocated to included LCD display routine count EQU 30 ADbin EQU 31 huns EQU 32 tens EQU 33 ones EQU 34 ; PROGRAM BEGINS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0 NOP ; Port & display setup..................................... BANKSEL TRISC CLRF TRISD MOVLW B'00000011' MOVWF ADCON1 BANKSEL PORTC CLRF PORTD MOVLW B'01000001' MOVWF ADCON0 CALL inid ; MAIN LOOP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; start CALL getADC CALL condec CALL putLCD GOTO start ; SUBROUTINES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Read ADC input and store ................................ getADC BSF ADCON0,GO wait BTFSC ADCON0,GO GOTO wait MOVF ADRESH,W RETURN ; Convert input to decimal ................................ condec MOVWF ADbin CLRF huns CLRF tens CLRF ones ; Calclulate hundreds...................................... BSF STATUS,C MOVLW D'100' sub1 SUBWF ADbin INCF huns BTFSC STATUS,C GOTO sub1 ADDWF ADbin DECF huns ; Calculate tens digit..................................... BSF STATUS,C MOVLW D'10' sub2 SUBWF ADbin INCF tens BTFSC STATUS,C GOTO sub2 ADDWF ADbin DECF tens MOVF ADbin,W MOVWF ones RETURN ; Output to display........................................ putLCD BCF Select,RS ; MOVLW 080 ; CALL send ; BSF Select,RS ; ; Convert digits to ASCII and display...................... MOVLW 030 ; ADDWF huns ; ADDWF tens ; ADDWF ones ; MOVF huns,W ; CALL send ; MOVLW '.' ; CALL send ; MOVF tens,W ; CALL send ; MOVF ones,W ; CALL send ; MOVLW ' ' ; CALL send ; MOVLW 'V' ; CALL send ; MOVLW 'o' ; CALL send ; MOVLW 'l' ; CALL send ; MOVLW 't' ; CALL send ; MOVLW 's' ; CALL send ; RETURN ; ; INCLUDED ROUTINES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Include LCD driver routines ; #INCLUDE "LCDIS.INC" ; Contains routines: ; inid: Initialises display ; onems: 1 ms delay ; xms: X ms delay ; Receives X in W ; send: Sends a character to display ; Receives: Control code in W (Select,RS=0) ; ASCII character code in W (RS=1) END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Project: Interfacing PICs ; Source File Name: VINTEST.ASM ; Devised by: MPB ; Date: 19-12-05 ; Status: Final version ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Demonstrates simple analogue input ; using an external reference voltage of 2.56V ; The 8-bit result is converted to BCD for display ; as a voltage using the standard LCD routines. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PROCESSOR 16F877A Clock = XT 4MHz, standard fuse settings __CONFIG 0x3731 ; LABEL EQUATES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #INCLUDE "P16F877A.INC" ; standard labels ; GPR 70 - 75 allocated to included LCD display routine count EQU 30 ADbin EQU 31 huns EQU 32 tens EQU 33 ones EQU 34 ; PROGRAM BEGINS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0 NOP ; Port & display setup..................................... BANKSEL TRISC CLRF TRISD MOVLW B'00000011' MOVWF ADCON1 BANKSEL PORTC CLRF PORTD MOVLW B'01000001' MOVWF ADCON0 CALL inid ; MAIN LOOP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; start CALL getADC CALL condec CALL putLCD GOTO start ; SUBROUTINES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Read ADC input and store ................................ getADC BSF ADCON0,GO wait BTFSC ADCON0,GO GOTO wait MOVF ADRESH,W RETURN ; Convert input to decimal ................................ condec MOVWF ADbin CLRF huns CLRF tens CLRF ones ; Calclulate hundreds...................................... BSF STATUS,C MOVLW D'100' sub1 SUBWF ADbin INCF huns BTFSC STATUS,C GOTO sub1 ADDWF ADbin DECF huns ; Calculate tens digit..................................... BSF STATUS,C MOVLW D'10' sub2 SUBWF ADbin INCF tens BTFSC STATUS,C GOTO sub2 ADDWF ADbin DECF tens MOVF ADbin,W MOVWF ones RETURN ; Output to display........................................ putLCD BCF Select,RS ; MOVLW 080 ; CALL send ; BSF Select,RS ; ; Convert digits to ASCII and display...................... MOVLW 030 ; ADDWF huns ; ADDWF tens ; ADDWF ones ; MOVF huns,W ; CALL send ; MOVLW '.' ; CALL send ; MOVF tens,W ; CALL send ; MOVF ones,W ; CALL send ; MOVLW ' ' ; CALL send ; MOVLW 'V' ; CALL send ; MOVLW 'o' ; CALL send ; MOVLW 'l' ; CALL send ; MOVLW 't' ; CALL send ; MOVLW 's' ; CALL send ; RETURN ; ; INCLUDED ROUTINES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Include LCD driver routines ; #INCLUDE "LCDIS.INC" ; Contains routines: ; inid: Initialises display ; onems: 1 ms delay ; xms: X ms delay ; Receives X in W ; send: Sends a character to display ; Receives: Control code in W (Select,RS=0) ; ASCII character code in W (RS=1) END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2. Design an assembly language program using 16f877 instruction set and verify your code using proteus simulation software. q- write the comment for each instruction

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

18. If you have power, then people will dislike and fear you.

Answered: 1 week ago