Tim Johnson
/
Controlling_GPIO_pinouts
How to control an output pin...and how to find out what the compiler name for the pin is.
main.cpp@3:9affc00dfa25, 2016-09-03 (annotated)
- Committer:
- captaintim
- Date:
- Sat Sep 03 02:04:38 2016 +0000
- Revision:
- 3:9affc00dfa25
- Parent:
- 1:0e26c8d5e834
Basic commands and instructions for exploring BusOut command for 4 digit, 7segment LED Display
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
captaintim | 1:0e26c8d5e834 | 1 | /*test program to learn how to write code for a 4 digit, 7-segment LED display LDQ-N524R1 |
captaintim | 1:0e26c8d5e834 | 2 | The schematic for this (COMMON CATHODE) display shows the following connections |
captaintim | 1:0e26c8d5e834 | 3 | schematic located at http://www.lumex.com/ldq-n514ri (open Specs PDF for drawing) |
captaintim | 3:9affc00dfa25 | 4 | The Common Cathode means that to turn on the segments of the 7-segment (including decimal point) |
captaintim | 3:9affc00dfa25 | 5 | you write a one to that segment. |
captaintim | 3:9affc00dfa25 | 6 | For this 4 digit display (LDQ-N524R1), each digit works backward--like its wired Common Anode so |
captaintim | 3:9affc00dfa25 | 7 | You write a ZERO to turn on the selected digit AND a ONE to turn off the digit. |
captaintim | 1:0e26c8d5e834 | 8 | |
captaintim | 3:9affc00dfa25 | 9 | Pin Out wiring guide:(connect the display pin # to XX mbed pin) |
captaintim | 1:0e26c8d5e834 | 10 | |
captaintim | 1:0e26c8d5e834 | 11 | CONTROL DISPLAY Pin# MBED Pin# |
captaintim | 1:0e26c8d5e834 | 12 | ---------------------------------- |
captaintim | 1:0e26c8d5e834 | 13 | Digit1 12 14 |
captaintim | 1:0e26c8d5e834 | 14 | Digit2 9 13 |
captaintim | 1:0e26c8d5e834 | 15 | Digit3 8 12 |
captaintim | 1:0e26c8d5e834 | 16 | Digit4 6 11 |
captaintim | 1:0e26c8d5e834 | 17 | DP 3 10 |
captaintim | 1:0e26c8d5e834 | 18 | A 11 21 |
captaintim | 1:0e26c8d5e834 | 19 | B 7 22 |
captaintim | 1:0e26c8d5e834 | 20 | C 4 23 |
captaintim | 1:0e26c8d5e834 | 21 | D 2 24 |
captaintim | 1:0e26c8d5e834 | 22 | E 1 25 |
captaintim | 1:0e26c8d5e834 | 23 | F 5 26 |
captaintim | 1:0e26c8d5e834 | 24 | G 5 27 |
captaintim | 1:0e26c8d5e834 | 25 | |
captaintim | 1:0e26c8d5e834 | 26 | There is no blanking on this display, |
captaintim | 3:9affc00dfa25 | 27 | |
captaintim | 3:9affc00dfa25 | 28 | Program demonstrates use of BusOut to control segments of 7-segment display for 4 digit display LDQ-N514R1 |
captaintim | 1:0e26c8d5e834 | 29 | Author: Cap'n Tim Johnson PE |
captaintim | 1:0e26c8d5e834 | 30 | Retired Professor |
captaintim | 1:0e26c8d5e834 | 31 | Wentworth Institude of Technology |
captaintim | 1:0e26c8d5e834 | 32 | Dept. Electrical Engineering and Technology |
captaintim | 1:0e26c8d5e834 | 33 | Boston, MA |
captaintim | 1:0e26c8d5e834 | 34 | */ |
captaintim | 1:0e26c8d5e834 | 35 | |
captaintim | 3:9affc00dfa25 | 36 | #include "mbed.h" |
captaintim | 1:0e26c8d5e834 | 37 | |
captaintim | 3:9affc00dfa25 | 38 | BusOut myleds(LED1, LED2, LED3, LED4); //adding a common cathode bus to contrast with Digits bus |
captaintim | 3:9affc00dfa25 | 39 | //LED1 is next to pin 20 |
captaintim | 3:9affc00dfa25 | 40 | BusOut Segments(p21,p22,p23,p24,p25,p26,p27,p10); //8-bit bus MSB is pin 21--the "a" segment |
captaintim | 3:9affc00dfa25 | 41 | BusOut Digits(p14, p13, p12, p11); //4 bit digit control bus with digit 1 (pin 14) on left then in decreasing order |
captaintim | 3:9affc00dfa25 | 42 | //But to turn on MSD, write a zero to bit 0 of the bus...0x1110 or 14 decimal |
captaintim | 3:9affc00dfa25 | 43 | //the bit order is reversed from the written order for Digits bus as with the Segment bus |
captaintim | 0:e3b48fea2164 | 44 | |
captaintim | 3:9affc00dfa25 | 45 | //writing decimal to Digits bus: |
captaintim | 3:9affc00dfa25 | 46 | //binary 1111, decimal 15 turns off the digits |
captaintim | 3:9affc00dfa25 | 47 | //binary 1110, decimal 14 turns on digit 1 (MSD) |
captaintim | 3:9affc00dfa25 | 48 | //binary 1101, decimal 13 turns on digit 2 (2nd from left) |
captaintim | 3:9affc00dfa25 | 49 | //binary 1100, decimal 12 turns on the 2 MSD |
captaintim | 3:9affc00dfa25 | 50 | //binary 1011, decimal 11 turns on digit 3 (3rd from left) |
captaintim | 3:9affc00dfa25 | 51 | //binary 0111, decimal 7 turns on digit 4 (LSD) |
captaintim | 3:9affc00dfa25 | 52 | |
captaintim | 3:9affc00dfa25 | 53 | int i = 1; //used to set wait time |
captaintim | 0:e3b48fea2164 | 54 | int main() { |
captaintim | 3:9affc00dfa25 | 55 | // while (1){ //used to turn off loop |
captaintim | 3:9affc00dfa25 | 56 | |
captaintim | 3:9affc00dfa25 | 57 | wait (i); |
captaintim | 3:9affc00dfa25 | 58 | myleds = 15; //turns on all the signal LEDs |
captaintim | 3:9affc00dfa25 | 59 | Segments = 255; //decimal #255 write ones to every bit in Segment bus--turn on all 7-segments + DP |
captaintim | 3:9affc00dfa25 | 60 | Digits = 0; //turn on all digits (digit wired common anode--opposite of segments bus |
captaintim | 3:9affc00dfa25 | 61 | wait (i); |
captaintim | 3:9affc00dfa25 | 62 | myleds = 0; //turning of the signal LEDs |
captaintim | 3:9affc00dfa25 | 63 | Digits = 15; //turn off the digits |
captaintim | 3:9affc00dfa25 | 64 | wait (i); |
captaintim | 3:9affc00dfa25 | 65 | myleds = 1; //turns on LED1 |
captaintim | 3:9affc00dfa25 | 66 | Digits = 14; //turn on just one digit, MSD, left-most digit |
captaintim | 3:9affc00dfa25 | 67 | wait (i); |
captaintim | 3:9affc00dfa25 | 68 | myleds = 3; //turning on 2 signal LEDs |
captaintim | 3:9affc00dfa25 | 69 | Digits = 12; //turn on two digits |
captaintim | 3:9affc00dfa25 | 70 | wait (i); |
captaintim | 3:9affc00dfa25 | 71 | myleds = 7; //turning on 3 signal LEDs |
captaintim | 3:9affc00dfa25 | 72 | Digits = 8; //turn on 3 digits |
captaintim | 3:9affc00dfa25 | 73 | wait (i); |
captaintim | 3:9affc00dfa25 | 74 | myleds = 15; //turning on all for digits |
captaintim | 3:9affc00dfa25 | 75 | Digits = 0; //turn on 4 digits |
captaintim | 3:9affc00dfa25 | 76 | wait (i); |
captaintim | 3:9affc00dfa25 | 77 | myleds = 0; //turning off all for signal LEDs and ending this comparison of REVERSE LOGIC |
captaintim | 3:9affc00dfa25 | 78 | Digits = 15; //turn off all 4 digits |
captaintim | 3:9affc00dfa25 | 79 | wait (i); |
captaintim | 3:9affc00dfa25 | 80 | Segments = (7); //turn on the number 7 for all four |
captaintim | 3:9affc00dfa25 | 81 | Digits = 0; //turn on all 4 digits |
captaintim | 3:9affc00dfa25 | 82 | wait (i); |
captaintim | 3:9affc00dfa25 | 83 | Digits =15; //turn off all 4 digits |
captaintim | 3:9affc00dfa25 | 84 | wait (i); |
captaintim | 3:9affc00dfa25 | 85 | Segments = (63); //turn them on as zeros |
captaintim | 3:9affc00dfa25 | 86 | Digits =0; //turn on the 4 digits |
captaintim | 3:9affc00dfa25 | 87 | wait (i); |
captaintim | 3:9affc00dfa25 | 88 | Digits = 15; //turn off the 4 digits |
captaintim | 3:9affc00dfa25 | 89 | Segments=0; //turn off the segments |
captaintim | 3:9affc00dfa25 | 90 | wait (i); //wait with everything dead |
captaintim | 3:9affc00dfa25 | 91 | Segments = 128; //Turn on the decimal points |
captaintim | 3:9affc00dfa25 | 92 | Digits = 0; //turn on the digits |
captaintim | 3:9affc00dfa25 | 93 | wait (i); |
captaintim | 3:9affc00dfa25 | 94 | Digits = 0; |
captaintim | 1:0e26c8d5e834 | 95 | |
captaintim | 3:9affc00dfa25 | 96 | // } //remove leading slashes to enable looping |
captaintim | 3:9affc00dfa25 | 97 | // */ |
captaintim | 3:9affc00dfa25 | 98 | } |
captaintim | 1:0e26c8d5e834 | 99 | |
captaintim | 3:9affc00dfa25 | 100 |