;Experiment-11 for "5x7 Video Screen" Project ;PIC16F84 and only F84 chip  ; ELEVATOR DISPLAY Start ORG 0x00 BSF 03,5 ;Go to page1 for setting-up the ports MOVLW 0Ch ;Put 0C into W MOVWF 05h ; to make RA2 & RA3 input MOVLW 00h ;Put 00 into W MOVWF 06h ;to make all RB lines output BCF 03,5 ;Go to Page0 for programming GOTO Main Table1 ADDWF 02h,1 ;Add W to Program Counter RETLW 0Eh RETLW 11h RETLW 11h RETLW 0Fh RETLW 01h RETLW 11h RETLW 0Eh RETLW 00h RETLW 0Eh RETLW 11h RETLW 11h RETLW 0Eh RETLW 11h RETLW 11h RETLW 0Eh RETLW 00h RETLW 1Fh RETLW 02h RETLW 02h RETLW 04h RETLW 08h RETLW 08h RETLW 08h RETLW 00h RETLW 0Eh RETLW 11h RETLW 10h RETLW 1Eh RETLW 11h RETLW 11h RETLW 0Eh RETLW 00h RETLW 1Fh RETLW 10h RETLW 10h RETLW 1Eh RETLW 01h RETLW 11h RETLW 0Eh RETLW 00h RETLW 02h RETLW 06h RETLW 0Ah RETLW 12h RETLW 1Fh RETLW 02h RETLW 02h RETLW 00h RETLW 0Eh RETLW 11h RETLW 01h RETLW 06h RETLW 01h RETLW 11h RETLW 0Eh RETLW 00h RETLW 0Eh RETLW 11h RETLW 01h RETLW 0Eh RETLW 10h RETLW 10h RETLW 1Fh RETLW 00h RETLW 04h RETLW 0Ch RETLW 14h RETLW 04h RETLW 04h RETLW 04h RETLW 04h RETLW 00h RETLW 0Eh RETLW 11h RETLW 10h RETLW 17h RETLW 11h RETLW 11h RETLW 0Eh RETLW 00h RETLW 00h ;Ghost routine transfers data from the ; Ghost files to the Video Screen ; and scans the Video Screen ONCE Ghost BSF 05,1 ;Reset 4017 NOP BCF 05,1 MOVF 11h,0 MOVWF 06h CALL DelA MOVF 12h,0 MOVWF 06h CALL DelA MOVF 13h,0 MOVWF 06h CALL DelA MOVF 14h,0 MOVWF 06h CALL DelA MOVF 15h,0 MOVWF 06h CALL DelA RETURN DelA DECFSZ 1Bh,1 GOTO DelA MOVLW 00h MOVWF 06 Clk BCF 05,0 NOP BSF 05,0 RETURN ;FillTop moves the 5 Ghost locations down one bit ; and fills the top row with new data. ;File 16h contains the new data for the 5 locations FillTop RRF 11h,1 RRF 12h,1 RRF 13h,1 RRF 14h,1 RRf 15h,1 BCF 11h,6 BCF 12h,6 BCF 13h,6 BCF 14h,6 BCF 15h,6 BTFSS 16h,4 GOTO L BSF 11h,6 L BTFSS 16h,3 GOTO M BSF 12h,6 M BTFSS 16h,2 GOTO N BSF 13h,6 N BTFSS 16h,1 GOTO O BSF 14h,6 O BTFSS 16h,0 RETURN BSF 15h,6 RETURN ;FilGho fills the Ghost area with 7 rows of "G" data ;from Table1 FilGho MOVLW 07 MOVWF 1A ;1A is count file for 7 cycles of "FilGho" MOVLW 4Eh ;Jump down table1 xxh locations MOVWF 17h ;file17h is pointer for Table1 FilGho1 CALL Table1 MOVWF 16h CALL FillTop DECF 17h,1 MOVF 17h,0 ;Put pointer into W DECFSZ 1A,1 GOTO FilGho1 RETURN ; Main CALL FilGho ;Put "G" on screen CALL Ghost ;Display whatever is in Ghost files BTFSS 05h,2 ;Test for buttonA GOTO Main2 ;Pushed GOTO Main Main2 MOVLW 08 MOVWF 1A Main3 MOVLW 20h MOVWF 18h ;18h = number of scans before adding next row Main4 CALL Ghost DECFSZ 18h,1 GOTO Main4 MOVF 17h,0 ;Put table1 pointer into W CALL Table1 MOVWF 16h CALL FillTop DECF 17h,1 DECFSZ 1A,1 GOTO Main3 Main5 CALL Ghost ;Display whatever is in Ghost files BTFSS 05h,2 ;Test for buttonA GOTO Main2 ;Pushed GOTO Main5 END