How to control an output pin...and how to find out what the compiler name for the pin is.

Dependencies:   mbed

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?

UserRevisionLine numberNew 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