Micro Controller

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Micro Controller as PDF for free.

More details

  • Words: 616
  • Pages: 3
Microcontroller & 7-Segments LED Display Interfacing By adminstrator Rev1.0 Copyright© 2007

Power consumption is the common problem you will encounter when your electronics project requires multiple seven-segments LED display, the electrical current required by the entire circuit will be the double if not the triple! Another problem is that for each digit you need a driver - decoder IC, which means more cost, more area and larger PCB! This tutorial will show you how to utilize the multiplexing technique in order to use only one 7-segments driver chip and to reduce the power consumption. The main idea here is to connect all the seven-segment LED display units with each other in parallel and turning only one unit at a time for a certain - very small time, and then move to the next unit. Therefore, the power consumption will be as if you have only one 7segment! If each unit is turned on for a 1 or 2 millisecond, the human eye will see all the 7-segment units as if it turned on at one time! A microcontroller will control the entire operation; it will turn on one seven-segment unit by means of transistor, and send the appropriate BCD code to the 7447 driver chip to be displayed on that unit. After 2ms, this unit will turned off and move to the next unit, turn it on and send the appropriate BCD code to the driver chip. Tip: Since the display is multiplexed, you may feel that the display is not bright enough. To get a brighter display, use smaller values than 150Ω in schematic below. However, be sure that you will not exceed the absolute maximum rating for 7-segment display current. In this project, we will use three 7-segment common anode display units, to display the numbers from 0 to 255, connected to 7447 driver chip and controlled by an AT89C2051 ("8051 family") microcontroller by means of 2N3906 PNP transistor. The controller will take the binary number on port 1 as input, convert it into BCD data and display the corresponding decimal number on the 7-segment LED display unit. 7447 driver - decoder chip is connected to P3.0 to P3.3 and P3.5 to P3.7 pins are connected to the three PNP

transistors, as shown in the schematic below:

MOV

P1,#0FFH

;MAKE P1 INPUT

MOV

A,P1

;GET BINARY DATA

MOV DIV

B,#100 AB

;PREPARE FOR DIVISION ;DIVIDE BY 100

ORL

A,#10000000B ;INCLUDE CONTROL BIT

MOV

R0,A

;STORE 100'S DIGIT IN R0

MOV

A,B

;GET THE FRACTION

MOV DIV

B,#10 AB

;PREPARE FOR DIVISION ;DIVIDE BY 10

ORL

A,#00100000B ;INCLUDE CONTROL BIT

MOV

R1,A

;STORE 10'S DIGIT IN R1

MOV

A,B

;GET FRACTION

ORL

A,#00010000B ;INCLUDE CONTROL BIT

LOOP:

MOV

P3,A

;DISPLAY 1'S DIGIT

CALL

DELAY

;DELAY 1 MS

MOV

P3,R1

;DISPLAY 10'S DIGIT

CALL

DELAY

;DELAY 1 MS

MOV

P3,R0

;DISPLAY 100'S DIGIT

CALL

DELAY

;DELAY 1 1M

SJMP

LOOP

;KEEP DOING THIS

DELAY:

;1 MILLISECOND DELAY ROUTINE

MOV repeat: MOV repeatt: DJNZ

R4,#2

DJNZ

R4,repeat

R5,#230 R5,repeatt

RET

How to convert Binary number into BCD number? Since microcontroller input is in binary format, and the output should be in BCD format, we have to convert the binary data into BCD data. As you can see in the assembly code below, this conversion based onto the following algorithm: - Divide the binary number by 100, the result will be the BCD hundreds digit. - Take the remaining number ("fraction") from the previous division and divide it by 10, the result will be the BCD tens digit. - The remaining number ("fraction") from the previous division will be the BCD ones digit. Assembly program for controlling multi 7-segments LED display by using microcontroller at the right side.

Related Documents