{"id":19520327,"url":"https://github.com/henryhale/7-segment-display-decoder","last_synced_at":"2025-02-26T00:23:28.977Z","repository":{"id":114995172,"uuid":"556506718","full_name":"henryhale/7-segment-display-decoder","owner":"henryhale","description":"📟 A BCD to seven segment display decoder implementation","archived":false,"fork":false,"pushed_at":"2024-06-06T06:25:06.000Z","size":123,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-08T13:38:49.380Z","etag":null,"topics":["bcd-to-7-segment","bcd-to-decimal","boolean-algebra","boolean-expression","boolean-logic","decoder","display-decoder-javascript","electronics","henryhale","html-css-javascipt","html-css-js","javascript","javascript-project","number-systems","seven-segment","seven-segment-decoder","seven-segment-display","seven-segments-display"],"latest_commit_sha":null,"homepage":"https://henryhale.github.io/7-segment-display-decoder/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henryhale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-24T01:31:09.000Z","updated_at":"2024-06-06T06:25:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"3f7c4f72-ca07-4075-a9f8-8a4848e25d57","html_url":"https://github.com/henryhale/7-segment-display-decoder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2F7-segment-display-decoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2F7-segment-display-decoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2F7-segment-display-decoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2F7-segment-display-decoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henryhale","download_url":"https://codeload.github.com/henryhale/7-segment-display-decoder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240768259,"owners_count":19854422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bcd-to-7-segment","bcd-to-decimal","boolean-algebra","boolean-expression","boolean-logic","decoder","display-decoder-javascript","electronics","henryhale","html-css-javascipt","html-css-js","javascript","javascript-project","number-systems","seven-segment","seven-segment-decoder","seven-segment-display","seven-segments-display"],"created_at":"2024-11-11T00:25:00.284Z","updated_at":"2025-02-26T00:23:28.951Z","avatar_url":"https://github.com/henryhale.png","language":"JavaScript","readme":"\n![preview](./src/images/preview.png)\n\n# 7 Segment Display Decoder\n\n````txt\n       __        __    __          __    __   __    __    __\n      |  |   |   __|   __|  |__|  |__   |__     |  |__|  |__|\n      |__|   |  |__    __|     |   __|  |__|    |  |__|     |\n    \n````\n\n## Before You Start\n\nA clear understanding of Boolean Algebra and/or Electronics is required to get started with implementing a decoder. A decoder is a combinational circuit and so prior knowledge concerning multiplexers, and encoders might be useful.\n\n\u003e I recommend that you read this article on Wikipedia before you proceed;\n\u003e [Seven Segment Display](https://en.wikipedia.org/wiki/Seven-segment_display)\n\n## Live Demo\n\nWith **HTML** and **CSS**, the design was done. A touch of **JAVASCRIPT** brought the implentation to life.\n\nJust to clear the mind, here is a live demo of digital clock.\n\n\u003e _Check out this live demo_ [here](https://henryhale.github.io/7-segment-display-decoder/)\n\n## Introduction\n\nA **Display Decoder** is a _combinational circuit_ which decodes an _n-bit input value_ into a number of output lines to drive a display. An device which converts one digit format into another is a **Display Decoder Intergrated Circuit** \n\nOne of the most common decoders takes a BCD (Binary Coded Decimal) input and converts it to an \noutput which will drive a seven segment display. \n\n## The Architecture Behind\n\nA seven segment display is made from seven LED (Light Emitting Diodes) segments. These segments are segments `a` through `g` and are lettered clockwise from the top segment of the display with the `g` segment being the middle segment as shown in the figure below;\n\n![segments](./src/images/segments.gif)\n\nThe seven segment display does not work by directly applying voltage to different segments of LEDs. First, our Decimal number is converted into its BCD equivalent signal then BCD to seven segment decoder converts that signals to the form which is fed to seven segment display.\n\nFor the decoder to perform this function has four input lines (A, B, C and D) and 7 output lines (a, b, c, d, e, f and g), this output is given to seven segment LED display which displays the decimal number depending upon inputs.\n\n![bcd](./src/images/bcd.png)\n\nA truth table generated for this decoder gives:\n\n![truth table](./src/images/truthtable.png)\n\nUsing [K-maps](https://www.geeksforgeeks.org/bcd-to-7-segment-decoder/) greatly simplifies the truth table in such a way that a boolean expression for each segment\ncan be obtained easily.\n\nWith boolean expressions for each segment, I implemented the logical display using **HTML and CSS**\n\n## Building Blocks\n\nThere only two modules; the [decoder](./src/js/decoder.js) and a [renderer](./src/js/render.js)\n\n\u003e NB: Not Applications should be built with this as it causes performance overheads during rendering.\n\n\n## Applications\n\nSeven segment displays are used to display digits in;\n\n- calculators\n- clocks\n- digital watches\n- digital counters\n\n\u003eClubs and theatres event displays are some of the places I normally find these displays being used. The information consists of digits and letters scrolling horizontally. \n\n# Samples\n\nI only implemented two displays just to be sure;\n\n- [Number Count](./examples/01-number-count/)\n\n- [Digital Clock](./examples/02-digital-clock/)\n\n## References\n\n- [Seven Segment Display](https://en.wikipedia.org/wiki/Seven-segment_display)\n\n- [BCD to 7 Segment Decoder](https://www.geeksforgeeks.org/bcd-to-7-segment-decoder/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenryhale%2F7-segment-display-decoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenryhale%2F7-segment-display-decoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenryhale%2F7-segment-display-decoder/lists"}