Simple library for controll a matrix of 7 segment displays. It also support the Hexadecimal and the Decimal visualisation.

Dependents:   Demo_Led7seg

Committer:
trombettamichele
Date:
Sat Apr 23 10:30:51 2011 +0000
Revision:
1:4ee2f3c3cf46
Parent:
0:9db0be7962dd

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
trombettamichele 0:9db0be7962dd 1 #include "mbed.h"
trombettamichele 0:9db0be7962dd 2 // Simple library that can controll a matrix of 7 segment led displays
trombettamichele 0:9db0be7962dd 3 // Created by Michele Trombetta
trombettamichele 0:9db0be7962dd 4 // Copyright 2010 5OFT. All rights reserved.
trombettamichele 0:9db0be7962dd 5
trombettamichele 1:4ee2f3c3cf46 6 #ifndef led_ANODE
trombettamichele 1:4ee2f3c3cf46 7 #define led_ANODE 0
trombettamichele 1:4ee2f3c3cf46 8 #define led_CATHODE 1
trombettamichele 0:9db0be7962dd 9 #endif
trombettamichele 0:9db0be7962dd 10
trombettamichele 1:4ee2f3c3cf46 11 #ifndef VAR_num_7seg
trombettamichele 1:4ee2f3c3cf46 12 #define VAR_num_7seg
trombettamichele 1:4ee2f3c3cf46 13 //Chars: 0123456789AbCdEF
trombettamichele 1:4ee2f3c3cf46 14 const unsigned char num_7seg[24] = {0x3F, 0x6, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x7, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00};
trombettamichele 1:4ee2f3c3cf46 15 #endif
trombettamichele 1:4ee2f3c3cf46 16
trombettamichele 1:4ee2f3c3cf46 17 #ifndef LIB_Multi7Seg
trombettamichele 1:4ee2f3c3cf46 18 #define LIB_Multi7Seg
trombettamichele 1:4ee2f3c3cf46 19 #define format_DEC 1
trombettamichele 1:4ee2f3c3cf46 20 #define format_HEX 0
trombettamichele 0:9db0be7962dd 21 class Multi7Seg {
trombettamichele 0:9db0be7962dd 22 public:
trombettamichele 0:9db0be7962dd 23 Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, bool led_type);
trombettamichele 0:9db0be7962dd 24 Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, PinName disp3, bool led_type);
trombettamichele 0:9db0be7962dd 25 Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, PinName disp3, PinName disp4, bool led_type);
trombettamichele 0:9db0be7962dd 26 Multi7Seg(PinName a, PinName b, PinName c, PinName d, PinName e, PinName f, PinName g, PinName disp1, PinName disp2, PinName disp3, PinName disp4, PinName disp5, bool led_type);
trombettamichele 0:9db0be7962dd 27 void write(unsigned int number); // Write the number to the led displays
trombettamichele 0:9db0be7962dd 28 void setformat(bool format); // Set the format (0-Dec 1-Hex)
trombettamichele 0:9db0be7962dd 29 void setspeed(float speed); // Set the delay time for digits scanning
trombettamichele 0:9db0be7962dd 30 void setenabled(unsigned char enabled); // Enable or disable a single led display (by setting the bit of the argument "enabled")
trombettamichele 0:9db0be7962dd 31 private:
trombettamichele 0:9db0be7962dd 32 BusOut _disps;
trombettamichele 0:9db0be7962dd 33 BusOut _led_7seg;
trombettamichele 0:9db0be7962dd 34 unsigned char _ndisp, _enabled;
trombettamichele 0:9db0be7962dd 35 bool _format, _led_type;
trombettamichele 0:9db0be7962dd 36 float _speed;
trombettamichele 0:9db0be7962dd 37 unsigned int _num1, _num2, _num3, _num4, _num5;
trombettamichele 0:9db0be7962dd 38 void led_write(unsigned char number);
trombettamichele 1:4ee2f3c3cf46 39 };
trombettamichele 1:4ee2f3c3cf46 40 #endif