Page2
REMINDER: These are the items you need for these experiments:
The project must be tested for wiring faults, faulty LEDs and correct operation, before carrying out any experiments. Always be pleased that something has to be tested or something doesn’t work, because that is the only time when you will LEARN.
The way the author learned electronics is by fixing 35,000 television sets. The way you will LEARN is by fixing a “bug.” The project can be tested by going to the test pages:
The first 6 experiments are on: ”Experiments Page1“.
The next set of experiments use the whole screen and as we have said in the introduction, the screen is scanned from left to right via the 4017 chip. This means each column of LEDs is on for only a very short period of time and you eye has a short retention that merges the images into one. It’s the same as a movie screen or TV screen. They all rely on the eye creating a smooth image from a number of rapidly appearing images.
With our screen, the reason why the columns have to be scanned is due to the 7 rows of information coming from the left-hand-side. If you want to produce the letter “A” on the screen, each column has different LEDs illuminated. If the rows were not scanned, each row would show the information from the first row. By scanning you get enormous flexibility.
Start thinking up your own ideas for games and displays because these experiments are going to give you the “building blocks” for putting your ideas “on the screen.”
This experiment shifts a column of LED from left to right. (It is not the same as Test4 - we have not introduced the principle of scanning with a “ghost” display in memory.) The program turns on all the lines of port6 and output them to the display while a Delay is executed. The port is turned off (to prevent mirroring) and the 4017 is clocked to the next output. The cycle is repeated for the 5 columns and the program repeats by going to “Shift.”
Experiment-7 for “5x7 Display” Project
;PIC16F84 and only F84 chip
;Column shift right
Start ORG 0x00 BSF 03,5 ;Go to page1 to set the ports MOVLW 00h ;Put 00 into W MOVWF 05h ;Make all RA lines output MOVWF 06h ;Make all RB lines output BCF 03,5 ;Go to Page0 for programming Shift MOVLW 05 MOVWF 19h ;Put 5 in the Count file for 5 columns BSF 05h,1 ;Reset 4017 BCF 05h,1 ;allow 4017 to clock via clock line Shift1 MOVLW 7F MOVWF 06h ;Turn on 7 outputs for LEDs CALL Delay MOVLW 00 ;Turn off LEDs to prevent mirroring MOVWF 06h CALL Clock ;Clock the 4017 DECFSZ 19h,1 ;Decrement the count file GOTO Shift1 GOTO Shift Clock BCF 05,0 ;Clock the 4017 NOP BSF 05,0 RETURN Delay MOVLW 03 MOVWF 1Ah Delay1 DECFSZ 1Bh,1 GOTO Delay1 DECFSZ 1Ch,1 GOTO Delay1 DECFSZ 1Ah,1 GOTO Delay1 RETURN END
The block of numbers below is the HEX file for Experiment-7. Copy and paste it into a text program such as TEXTPAD or NOTEPAD and call it: Expt-7.hex
:100000008316003085008600831205309900851420 :1000100085107F3086001620003086001220990B54 :1000200009280528051000000514080003309A006F :0E0030009B0B18289C0B18289A0B1828080008 :00000001FF
The experiment moves a column of LEDs across the display then back again. Moving the column back is not as easy as moving forward as the 4017 only clock from left to right. To move the column to the left, the 4017 has to be reset (so you know the first output is HIGH) then clocked so that the fourth output is HIGH. The LEDs can then be turned ON. This is repeated by clocking the 4017 two times to produce the third column and finally once to produce the second column, before the program goes to “Shift.”
Experiment-8 for “5x7 Display” Project
;PIC16F84 and only F84 chip
;Column of LEDs moves across and back
Start ORG 0x00 BSF 03,5 ;Go to page1 for setting-up the ports MOVLW 00h ;Put 00 into W MOVWF 05h ;Make all RA lines output MOVWF 06h ;Make all RB lines output BCF 03,5 ;Go to Page0 for programming Shift MOVLW 05 MOVWF 19h ;Put 5 in the Count file for 5 columns BSF 05h,1 ;Reset 4017 BCF 05h,1 ;allow 4017 to clock via clock line Shift1 MOVLW 7F MOVWF 06h ;Turn on 7 outputs for LEDs CALL Delay MOVLW 00 ;Turn off LEDs to prevent mirroring MOVWF 06h CALL Clock ;Clock the 4017 DECFSZ 19h,1 ;Decrement the count file GOTO Shift1 MOVLW 03h MOVWF 19h ;3 shifts - yes 3 shifts! AAA CALL Back DECFSZ 19h,1 GOTO AAA GOTO Shift Back BSF 05h,1 BCF 05h,1 ;Reset 4017 and allow 4017 to clock MOVLW 00h MOVWF 06h ;Turn off LEDs to prevent "streaking" MOVF 19h,0 ;Copy 19h into W MOVWF 18h ;Copy W into file 18h BBB CALL Clock DECFSZ 18h,1 GOTO BBB MOVLW 7Fh MOVWF 06h ;Turn on all 7 LEDs CALL Delay RETURN Clock BCF 05,0 ;Clock the 4017 NOP BSF 05,0 RETURN Delay MOVLW 03 MOVWF 1Ah Delay1 DECFSZ 1Bh,1 GOTO Delay1 DECFSZ 1Ch,1 GOTO Delay1 DECFSZ 1Ah,1 GOTO Delay1 RETURN END
The block of numbers below is the HEX file for Experiment-8. Copy and paste it into a text program such as TEXTPAD or NOTEPAD and call it: Expt-8.hex
:100000008316003085008600831205309900851420 :1000100085107F3086002820003086002420990B30 :100020000928033099001720990B132805288514F7 :10003000851000308600190898002420980B1D2890 :100040007F308600282008000510000005140800F5 :1000500003309A009B0B2A289C0B2A289A0B2A28EB :02006000080096 :00000001FF
This experiment moves a column of LEDs across the screen and back again. It then moves a row of LEDs up the screen and down. This then repeats. The program shows the number of steps required to produce the effects and you will notice the row of LEDs is not as bright as the column. The reason is the row of LEDs are scanned and the energy that normally goes into one LED has to be divided by 5 LEDs. Even though each LED is receiving one one-fifth of the normal energy, its brightness is not reduced too much due to the nature of the solid-state device.
Experiment-9 for “5x7 Display” Project
;PIC16F84 and only F84 chip
;Column of LEDs moves across/back then up and down
Start ORG 0x00 BSF 03,5 ;Go to page1 for setting-up the ports MOVLW 00h ;Put 00 into W MOVWF 05h ;Make all RA lines output MOVWF 06h ;Make all RB lines output BCF 03,5 ;Go to Page0 for programming GOTO Main Back BSF 05h,1 BCF 05h,1 ;Reset 4017 and allow 4017 to clock MOVLW 00h MOVWF 06h ;Turn off LEDs to prevent "streaking" MOVF 19h,0 ;Copy 19h into W MOVWF 18h ;Copy W into file 18h Back1 CALL Clock DECFSZ 18h,1 GOTO Back1 MOVLW 7Fh MOVWF 06h ;Turn on all 7 LEDs CALL Delay RETURN Scan MOVLW 080h ;Determines the number of scans before MOVWF 1Ch ;incrementing routine Scan1 BSF 05h,1 ;Reset 4017 BCF 05h,1 ;allow 4017 to clock via clock line MOVLW 05h MOVWF 19h ;File 19h counts the number of columns Scan2 CALL Short BCF 05,0 ;Clock the 4017 BSF 05,0 DECFSZ 19h,1 GOTO Scan2 DECFSZ 1Ch,1 GOTO Scan1 RETURN Clock BCF 05,0 ;Clock the 4017 NOP BSF 05,0 RETURN Delay MOVLW 03 MOVWF 1Ah Delay1 DECFSZ 1Bh,1 GOTO Delay1 DECFSZ 1Ch,1 GOTO Delay1 DECFSZ 1Ah,1 GOTO Delay1 RETURN ;Short Delay Short DECFSZ 1Bh,1 GOTO Short RETURN ;Moves a column of LEDs across the screen and back, ;then up and down the screen Main MOVLW 05 MOVWF 19h ;Put 5 in the Count file for 5 columns BSF 05h,1 ;Reset 4017 BCF 05h,1 ;allow 4017 to clock via clock line Main1 MOVLW 7F MOVWF 06h ;Turn on 7 outputs for LEDs CALL Delay MOVLW 00 ;Turn off LEDs to prevent mirroring MOVWF 06h CALL Clock ;Clock the 4017 DECFSZ 19h,1 ;Decrement the count file GOTO Main1 MOVLW 03h MOVWF 19h ;3 shifts - yes 3 shifts! Main2 CALL Back DECFSZ 19h,1 GOTO Main2 BSF 05h,1 BCF 05h,1 ;Reset 4017 CALL Delay ;This illuminates the first row! MOVLW 01 MOVWF 06h ;Turn on first LED BCF 03h,0 ;clear the carry flag Main3 CALL Scan RLF 06,1 BTFSS 06,7 ;When 8th! output is HIGH, program repeats GOTO Main3 MOVLW 20h MOVWF 06h Main4 CALL Scan RRF 06,1 BTFSS 06,0 GOTO Main4 CALL Scan ;This illuminates bottom row! GOTO Main END
The block of numbers below is the HEX file for Experiment-9. Copy and paste it into a text program such as TEXTPAD or NOTEPAD and call it: Expt-9.hex
:100000008316003085008600831231288514851000 :1000100000308600190898002120980B0C287F30AA :1000200086002520080080309C008514851005304E :1000300099002E2005100514990B19289C0B1528E2 :100040000800051000000514080003309A009B0BFF :1000500027289C0B27289A0B272808009B0B2E2863 :10006000080005309900851485107F308600252012 :10007000003086002120990B352803309900062096 :10008000990B3F2885148510252001308600031028 :100090001320860D861F4828203086001320860CEA :0800A000061C4E281320312834 :00000001FF
Go to the next page of experiments: 5x7 EXPERIMENTS: Page-3
Quick Links
Legal Stuff
Social Media